2.1 KiB
2.1 KiB
需求分析 — 2026-04-19-03-03-55
1. 需求背景
AI 撰写功能上线后出现三个体验问题:
- SystemSettings 测试连接成功(返回 13 个模型),但 ReportEditor 调用报 404:
POST https://api.moonshot.cn/v1/chat/completions 404 - 模型名称只能手动输入:用户希望测试连接成功后,模型名称自动变为下拉选择(从
/models返回的列表中选择) - AI 聊天记录不持久:从 ReportEditor 切换到其他页面再返回,AI 撰写面板中的聊天记录全部丢失
2. 需求拆解
- Task 1:修复 404 错误
- 原因分析:测试按钮读取的是 React state(界面临时值),ReportEditor 读取的是 localStorage。若测试后未点击"保存",两者不一致。另外
apiEndpoint末尾多余斜杠可能导致路径拼接错误(v1//chat/completions) - 修复:在
handleAIGenerate中对apiEndpoint做.replace(/\/+$/, '')净化
- 原因分析:测试按钮读取的是 React state(界面临时值),ReportEditor 读取的是 localStorage。若测试后未点击"保存",两者不一致。另外
- Task 2:模型名称下拉栏
- SystemSettings.tsx 增加
availableModels状态 testApi成功后解析/models响应,填充availableModels- Model Name 输入框在有 availableModels 时自动变为
<select>下拉
- SystemSettings.tsx 增加
- Task 3:AI 聊天记录持久化
stateRef增加chatMessages字段saveDraftToStorage将chatMessages存入 draft- 初始化
useEffect恢复 draft 时,同步恢复chatMessages
3. 影响范围
| 文件 | 修改类型 | 风险等级 |
|---|---|---|
src/pages/ReportEditor.tsx |
修改(endpoint 净化 + 草稿持久化) | 中 |
src/pages/SystemSettings.tsx |
修改(testApi + UI 动态切换) | 低 |
4. 优先级
- P0:404 修复(功能不可用)
- P1:聊天记录持久化(体验问题)
- P1:模型名称下拉栏(体验优化)
5. 验收标准
- ReportEditor 中 AI 调用不再因尾部斜杠导致 404
- SystemSettings 测试连接成功后,模型名称自动变为下拉栏,可选模型列表
- 切换页面后返回 ReportEditor,AI 聊天记录保留
npm run lint无类型错误