# 功能变更测试文档(20260419_2249) ## 测试项 1:Kimi k2.5 参数拦截 ### 测试场景 A:Kimi + k2.5 模型 1. 进入系统设置 → AI 接口集成 2. 供应商选择「Kimi (Moonshot)」,模型名填写 `kimi-k2.5` 3. 填写有效 API Key,点击「测试连接」确认配置有效 4. 进入报告编辑器,打开 AI 面板,发送任意消息 5. **预期结果**: - 网络请求成功(HTTP 200),无 400 报错 - 浏览器 DevTools → Network → 请求体中**不包含** `temperature`、`top_p`、`presence_penalty`、`frequency_penalty` ### 测试场景 B:Kimi + 非 k2.5 模型 1. 系统设置中模型名改为 `moonshot-v1-32k` 2. 发送 AI 消息 3. **预期结果**: - 请求体中**包含** `temperature: 0.3` - 调用正常 ### 测试场景 C:DeepSeek / OpenAI / Custom 1. 切换供应商为 DeepSeek,模型 `deepseek-chat` 2. 发送 AI 消息 3. **预期结果**: - 请求体中**包含** `temperature: 0.3` - 调用正常 --- ## 测试项 2:AI 日志导出完善 ### 测试场景 A:成功调用后的导出 1. 发送一条 AI 消息并等待成功返回 2. 点击「导出 AI 日志」 3. **预期结果**: - 下载的 JSON 中 `lastExchange` 字段非空 - `lastExchange.requestPayload` 包含完整的 `model`、`messages`(system + user) - `lastExchange.requestPayload.messages[0].content` 包含系统提示词全文 - `lastExchange.responsePayload` 包含 AI 返回的原始 JSON(含 `reply` 和 `updatedHtml`) - `lastExchange.modelConfig` 包含 provider、endpoint、modelName - `lastExchange.errorDetail` 为 `null` ### 测试场景 B:失败调用后的导出 1. 故意填写错误的 API Key 或断开网络 2. 发送 AI 消息,等待报错 3. 点击「导出 AI 日志」 4. **预期结果**: - `lastExchange.errorDetail` 非空 - 包含 `status`(如 401/400/403)、`statusText`、`responseText`(服务端返回的原始错误 JSON)、`message` - `lastExchange.responsePayload` 为 `null` ### 测试场景 C:未进行任何 AI 调用时的导出 1. 刷新页面后直接点击「导出 AI 日志」 2. **预期结果**: - `lastExchange` 为 `null` - 其他字段(messages、metadata)正常导出 --- ## 回归测试 - `tsc --noEmit` 零错误 - `npm run build` 构建成功 - 预览服务器正常启动并可访问 - 现有 AI 对话功能不受影响的供应商(deepseek/openai)调用正常