diff --git a/docs/【开发运维】本地开发验证与生产运维-2026-05-15.md b/docs/【开发运维】本地开发验证与生产运维-2026-05-15.md index 9447aa508..a21ae5736 100644 --- a/docs/【开发运维】本地开发验证与生产运维-2026-05-15.md +++ b/docs/【开发运维】本地开发验证与生产运维-2026-05-15.md @@ -655,6 +655,20 @@ OpenTelemetry 现阶段默认开启 OTLP traces / metrics / logs,但本地日 验收证据分为两类:`cargo test -p platform-llm` 的确定性用例验证 checked-in SSE fixture 的 parser 行为;默认忽略的 `tests/live_stream_tool_calls.rs` 只对真实端点做归一后的工具调用 smoke,检查最终工具名、id、完整参数 JSON 和文本增量字符数。该 smoke 不录制或逐事件比较原始 SSE,fixture 即使来源于真实抓包也不能据此宣称转录无偏差。 +真实端点 smoke 由四个环境变量驱动,缺任一个直接失败:`PLATFORM_LLM_LIVE_BASE_URL`、`PLATFORM_LLM_LIVE_API_KEY`、`PLATFORM_LLM_LIVE_MODEL`、`PLATFORM_LLM_LIVE_API_KIND`(取值 `anthropic` / `openai_chat` / `openai_responses`,其它值按 `openai_responses` 处理)。仓库根目录没有 `Cargo.toml`,必须显式指定 workspace manifest: + +```bash +PLATFORM_LLM_LIVE_BASE_URL=https://api.example.com/anthropic \ +PLATFORM_LLM_LIVE_API_KEY=<从密钥管理处取,勿写入仓库> \ +PLATFORM_LLM_LIVE_MODEL=<模型名> \ +PLATFORM_LLM_LIVE_API_KIND=anthropic \ +cargo test -p platform-llm --manifest-path server-rs/Cargo.toml --test live_stream_tool_calls -- --ignored --nocapture +``` + +PowerShell 下先用 `$env:PLATFORM_LLM_LIVE_API_KEY = '...'` 赋值再执行同一条 `cargo test`。切换 `PLATFORM_LLM_LIVE_API_KIND` 逐个跑三种协议,才算覆盖完整;`--nocapture` 会打印解析出的工具名、id 和参数,便于核对。 + +该用例只从进程环境变量读取凭据,不读 `.env.secrets.local`,也不会写入任何文件。真实 API Key 一律不得提交进仓库,也不要写进 `docs/`、脚本默认值或测试 fixture;临时密钥用完应在上游及时吊销。 + 创意 Agent `gpt-5` 文本链路已从 APIMart 切到 VectorEngine:`api-server` 读取 `VECTOR_ENGINE_BASE_URL` / `VECTOR_ENGINE_API_KEY` 构造 OpenAI-compatible LLM client,并自动补齐 `/v1` 前缀用于 Responses 协议。排查或切换密钥后,可在本地运行: 创意 Agent `gpt-5.4-mini` 文本链路已从 APIMart 切到 VectorEngine:`api-server` 读取 `VECTOR_ENGINE_BASE_URL` / `VECTOR_ENGINE_API_KEY` 构造 OpenAI-compatible LLM client,并自动补齐 `/v1` 前缀后请求 `/chat/completions`。通用 `/api/llm/chat/completions` 代理使用 `GENARRATIVE_LLM_PROVIDER=openai-compatible`、`GENARRATIVE_LLM_BASE_URL=https://api.vectorengine.cn/v1`、`GENARRATIVE_LLM_MODEL=gpt-5.4-mini`,未单独配置 `GENARRATIVE_LLM_API_KEY` 时可复用 `VECTOR_ENGINE_API_KEY`。排查或切换密钥后,可在本地运行: diff --git a/server-rs/crates/platform-llm/tests/live_stream_tool_calls.rs b/server-rs/crates/platform-llm/tests/live_stream_tool_calls.rs index b8a9d6dc3..6b45652b8 100644 --- a/server-rs/crates/platform-llm/tests/live_stream_tool_calls.rs +++ b/server-rs/crates/platform-llm/tests/live_stream_tool_calls.rs @@ -1,13 +1,17 @@ //! 真实端点的流式工具调用验收。默认 `#[ignore]`,只在显式指定环境变量时运行: //! +//! 仓库根目录没有 Cargo.toml,必须显式指定 workspace manifest: +//! //! ```powershell //! $env:PLATFORM_LLM_LIVE_BASE_URL = 'https://api.minimaxi.com/anthropic' //! $env:PLATFORM_LLM_LIVE_API_KEY = '...' //! $env:PLATFORM_LLM_LIVE_MODEL = 'MiniMax-M3' //! $env:PLATFORM_LLM_LIVE_API_KIND = 'anthropic' # 或 openai_chat / openai_responses -//! cargo test -p platform-llm --test live_stream_tool_calls -- --ignored --nocapture +//! cargo test -p platform-llm --manifest-path server-rs/Cargo.toml --test live_stream_tool_calls -- --ignored --nocapture //! ``` //! +//! 凭据只从进程环境变量读取,不要写进仓库内任何文件。 +//! //! 本用例是实时端点工具调用 smoke,只验证归一后的工具名、id、完整参数 JSON //! 和文本增量字符数;不录制或逐事件比对原始 SSE,也不承担固定 fixture 转录一致性证明。