- Kimi k2.5 强制传参拦截: 当 provider=kimi 且 model 包含 k2.5 时, 从请求体中 delete temperature/top_p/presence_penalty/frequency_penalty, 彻底解决 HTTP 400 报错 - 完善导出AI日志: 新增 lastExchangeLog 状态, 记录每次调用的 完整请求体(requestPayload)、原始响应(responsePayload)、 错误详情(errorDetail含status/statusText/responseText)、模型配置 - 更新导出按钮 JSON 结构, 包含 lastExchange 字段
45 lines
2.2 KiB
Markdown
45 lines
2.2 KiB
Markdown
# 功能变更需求文档(20260419_2249)
|
||
|
||
## 需求 1:Kimi k2.5 模型强制传参规则适配
|
||
|
||
### 问题背景
|
||
Kimi 最新版 `kimi-k2.5` 模型对 API 请求体有极其苛刻的要求,不允许出现非标准的温度和概率参数。当前系统在向所有模型发送请求时均硬编码了 `temperature: 0.3`,导致调用 `kimi-k2.5` 时返回 HTTP 400 错误。
|
||
|
||
### 需求描述
|
||
在封装向大模型发起 `fetch` 请求的地方,增加条件判断:
|
||
- **触发条件**:当前激活供应商为 `kimi` 且模型名包含 `k2.5`(大小写不敏感)
|
||
- **数据处理**:强制从请求体中 `delete` 移除 `temperature`、`top_p`、`presence_penalty`、`frequency_penalty` 等可选参数,让 Kimi 官方服务器使用其默认安全值
|
||
- **兼容性**:其他供应商(deepseek/openai/custom)及 Kimi 非 k2.5 模型不受影响,继续保留 `temperature: 0.3`
|
||
|
||
### 参考文档
|
||
https://platform.kimi.com/docs/guide/kimi-k2-5-quickstart
|
||
|
||
---
|
||
|
||
## 需求 2:完善「导出 AI 日志」功能
|
||
|
||
### 问题背景
|
||
当前「导出 AI 日志」按钮仅导出 `chatMessages`(UI 对话历史)和少量元数据,缺少:
|
||
- 实际发往 AI 的完整请求体(System Prompt + Messages + Parameters)
|
||
- AI 返回的原始 JSON 响应
|
||
- API 调用失败时的具体错误信息(HTTP 状态码 + 响应体)
|
||
- 当前生效的模型完整配置
|
||
|
||
这些信息对于排查大模型幻觉、优化提示词、定位网络/接口故障至关重要。
|
||
|
||
### 需求描述
|
||
1. 在 `ReportEditor.tsx` 中建立 `lastExchangeLog` 状态,每次 `handleAIGenerate` 调用时记录:
|
||
- `startTime`:请求发起时间
|
||
- `requestPayload`:完整请求体(model、messages、实际发送的参数)
|
||
- `responsePayload`:AI 原始响应 JSON
|
||
- `errorDetail`:失败时的完整错误信息(含 HTTP 状态码、错误响应体文本)
|
||
- `modelConfig`:当前 provider、endpoint、modelName
|
||
2. 更新「导出 AI 日志」按钮,将 `lastExchangeLog` 一并写入导出的 JSON
|
||
3. 保持向后兼容:无 AI 调用记录时,`lastExchangeLog` 为 `null`,导出时不影响其他字段
|
||
|
||
---
|
||
|
||
## 影响范围
|
||
- `src/pages/ReportEditor.tsx`(主要修改文件)
|
||
- 无新增依赖
|