feat: Kimi k2.5参数适配+AI日志导出完善(20260419_2249)

- 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 字段
This commit is contained in:
2026-04-19 22:54:00 +08:00
parent 2e634ff832
commit 3bec69986e
4 changed files with 269 additions and 9 deletions

View File

@@ -0,0 +1,44 @@
# 功能变更需求文档20260419_2249
## 需求 1Kimi 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`(主要修改文件)
- 无新增依赖