Files
Mdeical_Sur_Report/工程分析/需求分析-2026-04-19-02-48-25.md

49 lines
2.7 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-02-48-25
## 1. 需求背景
当前 system-settings 中的 AI 接口配置存在冗余和僵化问题:
- 平铺展示 4 个输入框(`apiEndpoint`/`apiKey`/`kimiApiEndpoint`/`kimiApiKey`),用户困惑该填哪个
- ReportEditor 中 AI 调用逻辑硬编码 `kimi-k2-5` 模型和 Kimi 接口,无法切换其他模型
- 未来需要支持 DeepSeek、OpenAI、本地模型等多种服务商且模型版本会频繁迭代
## 2. 需求拆解
- [ ] **Task 1**:重构 `types.ts``SystemSettings` 的数据结构
- 废除 `apiEndpoint``apiKey``kimiApiKey``kimiApiEndpoint` 四个散装字段
- 新增 `activeAiProvider: string`(当前激活的服务商)
- 新增 `aiProviders: Record<string, AiProviderConfig>`(多服务商配置字典)
- `AiProviderConfig` 包含:`endpoint``apiKey``modelName`
- [ ] **Task 2**:重构 `SystemSettings.tsx` UI
- 改为"服务商选择器 + 动态配置表单"模式
- 预设服务商Kimi、DeepSeek、OpenAI、自定义
- 每个服务商可配置Base URL、API Key、Model Name
- `testApi` 改为通用测试,使用当前选中的服务商配置
- [ ] **Task 3**:重构 `ReportEditor.tsx` 调用逻辑
- `handleAIGenerate``aiProviders[activeAiProvider]` 动态读取 endpoint/key/model
- 消除 `model: 'kimi-k2-5'` 硬编码
- 保持 OpenAI 兼容的 messages 组装逻辑不变
- [ ] **Task 4**:数据迁移
- 首次加载时,若检测到旧的 `kimiApiKey`/`kimiApiEndpoint`,自动迁移到 `aiProviders.kimi`
- 默认模型名设为 `kimi-k2-5`
## 3. 影响范围
| 文件 | 修改类型 | 风险等级 |
|------|----------|----------|
| `src/types.ts` | 修改(重构 SystemSettings | **高**(数据结构变更) |
| `src/pages/SystemSettings.tsx` | 修改UI 重构 + 数据迁移) | **高** |
| `src/pages/ReportEditor.tsx` | 修改(解耦 AI 调用) | 中 |
| `src/pages/Login.tsx` | 可能修改(默认设置初始化) | 低 |
## 4. 优先级
- P0数据结构重构 + 迁移逻辑(不做好,旧数据会丢失或报错)
- P0SystemSettings UI 改造
- P0ReportEditor 调用解耦
- P1Login.tsx 默认初始化更新
## 5. 验收标准
- [ ] SystemSettings 中只看到 1 个服务商选择下拉框 + 3 个动态输入框Base URL / API Key / Model
- [ ] 切换服务商时,输入框的值自动切换为该服务商的配置
- [ ] 旧用户(已有 `kimiApiKey`)首次进入 settings数据自动迁移配置不丢失
- [ ] ReportEditor AI 调用使用当前选中的服务商配置,模型名随配置变化
- [ ] `npm run lint` 无类型错误
- [ ] `npm run build` 成功,页面可正常访问