Files
Mdeical_Sur_Report/工程分析/需求分析-2026-04-19-03-03-55.md

38 lines
2.1 KiB
Markdown
Raw Blame History

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