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

2.7 KiB
Raw Blame History

需求分析 — 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.tsSystemSettings 的数据结构
    • 废除 apiEndpointapiKeykimiApiKeykimiApiEndpoint 四个散装字段
    • 新增 activeAiProvider: string(当前激活的服务商)
    • 新增 aiProviders: Record<string, AiProviderConfig>(多服务商配置字典)
    • AiProviderConfig 包含:endpointapiKeymodelName
  • Task 2:重构 SystemSettings.tsx UI
    • 改为"服务商选择器 + 动态配置表单"模式
    • 预设服务商Kimi、DeepSeek、OpenAI、自定义
    • 每个服务商可配置Base URL、API Key、Model Name
    • testApi 改为通用测试,使用当前选中的服务商配置
  • Task 3:重构 ReportEditor.tsx 调用逻辑
    • handleAIGenerateaiProviders[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 成功,页面可正常访问