Files
AIclinicalresearch/docs/04-开发计划/开发里程碑.md
2025-10-11 11:35:12 +08:00

1305 lines
37 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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.
# 开发里程碑与ToDo清单
> **项目周期:** 10-11周2.5-3个月
> **开发策略:** MVP优先 + 技术验证第一
> **团队规模:** 2人1全栈 + 1前端
> **开始日期:** 2025-10-10
> **预计完成:** 2025-12-25
---
## 📊 总体进度
```
设计阶段 ████████████████████ 100% (已完成)
里程碑1 MVP ███████████████████░ 93% (Week 1-4) 🔄 知识库前端开发中
里程碑2 扩展 ░░░░░░░░░░░░░░░░░░░░ 0% (Week 5-7)
里程碑3 补充 ░░░░░░░░░░░░░░░░░░░░ 0% (Week 8-9)
里程碑4 完善 ░░░░░░░░░░░░░░░░░░░░ 0% (Week 10-11)
```
---
## 🎯 里程碑概览(已优化)
| 里程碑 | 时间 | 核心目标 | 验收标准 |
|--------|------|---------|---------|
| **设计阶段** | Day 1-3 | 完善设计文档 | ✅ 数据库、API、规范文档完成 |
| **里程碑1 MVP** | Week 1-4 | 核心MVP + 技术验证 | ✅ 1个智能体 + 完整知识库流程可用 |
| **里程碑2 扩展** | Week 5-7 | 开发其他11个智能体 | ✅ 所有12个智能体可用 |
| **里程碑3 补充** | Week 8-9 | 用户系统 + 历史记录 | ✅ 用户对接完成,历史记录可用 |
| **里程碑4 完善** | Week 10-11 | 运营后台 + 测试优化 | ✅ 系统稳定,可正式使用 |
---
## 💡 开发策略调整说明
### ⚠️ 为什么要调整?
**原计划的风险:**
- 一开始就开发12个智能体工作量巨大
- Dify、LobeChat、知识库等新技术如果不可行10周后才发现
- 心理压力大,容易放弃
**调整后的优势:**
-**MVP优先**3-4周就能看到可用Demo
-**技术验证**先验证最不确定的技术Dify、对话、知识库
-**风险可控**技术验证成功后其他11个智能体只是"重复劳动"
-**心理轻松**:小步快跑,每完成一步都有成就感
### 🎯 新的开发顺序
```
Phase 1: 核心MVPWeek 1-4⭐⭐⭐
├── 1个智能体选题评价
├── 项目管理(基于项目背景)
├── 对话系统(上下文组装 + 流式输出)
├── 知识库完整流程(创建、上传、处理、@引用、问答)
├── 模型切换DeepSeek-V3 ↔ Qwen3
└── 前端完整布局(其他功能占位符)
【验证成功标准】
✅ 能基于项目背景,使用选题评价智能体,上传知识库文档,进行问答
✅ 知识库问答有明确溯源
✅ 模型切换正常
✅ LobeChat组件体验良好
Phase 2: 扩展智能体Week 5-7
├── 开发其他11个智能体
└── 每个智能体约1天编写Prompt 0.5天 + 测试 0.5天)
Phase 3: 补充功能Week 8-9
├── 对接已有用户系统
├── 历史记录管理
└── 文档导出功能
Phase 4: 完善系统Week 10-11
├── 简化版运营后台
├── 全面测试
└── 性能优化
```
---
## 📅 设计阶段Day 1-3✅ 已完成
### 目标
- 完善所有核心设计文档
- 建立开发规范
- 明确业务规则
### ToDo清单
#### Day 1-2: 核心文档
- [x] 创建文档目录结构
- [x] 创建数据库设计文档771行
- [x] 创建API设计规范1023行
- [x] 创建代码规范文档815行
- [x] 创建核心业务规则文档593行
- [x] 创建开发里程碑(本文档)
#### Day 3: Review与准备
- [x] Review所有设计文档
- [x] 确定技术选型细节
- [x] 整理PRD和原型图
- [x] 准备API KeyDeepSeek、Qwen
---
## 📅 里程碑1核心MVP + 技术验证Week 1-4⭐⭐⭐
> **这是整个项目最关键的阶段!**
> **目标:** 验证核心技术可行性开发1个完整可用的智能体
> **时间:** 3-4周
> **验证内容:** Dify、LobeChat、对话系统、知识库完整流程
### 核心目标
**必须完成的功能:**
1. ✅ 环境搭建Docker、数据库、Dify
2. ✅ 前端完整布局(包含占位符)
3. ✅ 1个智能体选题评价+ 配置系统
4. ✅ 项目管理功能
5. ✅ 对话系统(上下文组装 + 流式输出)
6. ✅ 知识库完整流程(创建 → 上传 → 处理 → @引用 → 问答 → 溯源)
7. ✅ 模型切换DeepSeek-V3 ↔ Qwen3
**暂不实现:**
- ❌ 用户注册登录(等对接已有系统)
- ❌ 历史记录筛选(后续)
- ❌ 其他11个智能体验证成功后再做
- ❌ 运营后台(最后)
- ❌ 文档导出(后续)
---
### Week 1Day 4-10基础搭建 + 前端布局
#### Day 4: 环境搭建 ✅ 核心完成
- [x] 创建项目目录结构frontend/ + backend/
- [x] 初始化Git仓库完整文档体系
- [x] 安装Docker Desktop已完成
- [x] 启动PostgreSQL + RedisDocker Compose
- [ ] 部署DifyDocker 暂时跳过(网络问题)
- [ ] 验证Dify可访问http://localhost 暂时跳过
- [ ] 创建Dify账号并获取API Key ⏸️ 暂时跳过
**验收:** ✅ PostgreSQL和Redis已启动核心开发环境就绪
**决策:**
-**暂时跳过Dify部署**网络不稳定EOF错误
- ✅ Dify代码已完整下载配置文件已就绪
-**不影响Day 5-8开发**Dify主要用于知识库RAG功能里程碑1后期
- ✅ 等网络稳定后再部署预计10分钟即可完成
- 详见:
- `docs/05-每日进度/Dify部署状态-Day4-Day5.md`
- `Dify完整部署方案.md`
- `配置Docker镜像加速器.md`
---
#### Day 5: 后端基础架构 ✅ 已完成
- [x] 初始化后端项目Node.js + TypeScript
```bash
cd backend
npm init -y
npm install fastify @fastify/cors @fastify/jwt
npm install prisma @prisma/client dotenv
npm install typescript @types/node ts-node tsx pino-pretty -D
npx tsc --init
```
- [x] 配置Fastify框架入口文件 + CORS + 日志)
- [x] 配置Prisma ORMschema.prisma
- [x] 创建`.env`文件DATABASE_URL、REDIS_URL、API Keys等
- [x] 根据数据库设计文档创建Prisma Schema
- ✅ users简化版对接现有系统
- ✅ projects项目管理
- ✅ conversations会话管理
- ✅ messages消息记录 + metadata字段用于@知识库)
- ✅ knowledge_bases知识库管理限制3个/用户)
- ✅ documents文档管理限制50个/知识库)
- ✅ admin_logs运营管理日志
- [x] 执行Prisma migrate创建数据库表迁移ID: 20251010075003_init
- [x] 编写数据库连接测试脚本
- [x] 验证所有表创建成功,索引正确
**验收:**
- ✅ 后端服务能启动监听3001端口
- ✅ 数据库表全部创建8张表与设计文档一致
- ✅ Prisma Client能正常查询数据库
- ✅ 健康检查端点可访问(/health
- ✅ API入口端点可访问/api/v1
**成果物:**
- `backend/` 目录完整结构
- `backend/README.md` 项目说明
- `backend/启动后端.bat` 一键启动
- `docs/05-每日进度/Day05-后端基础架构完成.md` 详细总结
- Git提交feat(backend): Day 5 - 后端基础架构搭建完成
---
#### Day 6: 前端基础架构 ✅ 已完成
- [x] 初始化前端项目Vite + React + TypeScript
- [x] 安装Ant Design UI组件库
- [x] 配置Tailwind CSS
- [x] 配置React Router路由
- [x] 创建主布局组件(侧边栏+头部+内容区)
- [x] 实现首页12个智能体卡片
- [x] 实现智能体页面(占位符)
- [x] 配置Axios API请求
- [x] 添加TypeScript类型定义
- [x] 构建测试通过
**验收:**
- ✅ 前端项目可启动端口3000
- ✅ TypeScript编译无错误
- ✅ 构建成功dist/
- ✅ 布局响应式正常
- ✅ 12个智能体显示正确
**成果物:**
- `frontend/` 目录完整结构15个代码文件
- `frontend/README.md` 项目说明
- `frontend/启动前端.bat` 一键启动
- `docs/05-每日进度/Day06-前端基础架构完成.md` 详细总结
- Git提交feat(frontend): Day 6 - 前端基础架构完成
---
#### Day 7: 前端完整布局 ⭐ ✅ 已完成
- [x] 安装Zustand状态管理库
- [x] 创建项目状态storeuseProjectStore.ts
- [x] **项目管理UI组件**
- ProjectSelector项目选择器
- CreateProjectDialog创建项目对话框
- EditProjectDialog编辑项目对话框
- [x] **侧边栏组件优化**
- 集成项目选择器
- 添加知识库管理导航
- 添加历史记录导航
- 智能体菜单添加disabled状态
- [x] **智能体选择页面优化**
- 只有"选题评价"可点击
- 其他11个显示"🔒 即将上线"标签
- 点击未启用智能体显示提示
- 视觉区分(透明度、按钮状态)
- [x] **聊天页面布局**AgentChatPage
- 标题栏(智能体信息、当前模型)
- 消息列表区域(占位符)
- 输入框区域
- 工具栏(上传文件、@知识库、模型切换)
- [x] **知识库页面布局**KnowledgePage
- 知识库列表表格(模拟数据)
- 文档列表表格(模拟数据)
- 功能说明和开发中提示
- [x] **历史记录页面**HistoryPage
- 占位符展示
- [x] **路由配置**
- 添加AgentChatPage路由
- 添加KnowledgePage路由
- 添加HistoryPage路由
**验收:**
- ✅ 前端启动正常
- ✅ 构建成功6.02s
- ✅ TypeScript编译无错误
- ✅ 前端完整布局完成,可以在各个页面之间导航
- ✅ 项目管理UI交互流畅
- ✅ 智能体选择页面只有选题评价可用
**成果物:**
- `frontend/src/stores/useProjectStore.ts` - 项目状态管理
- `frontend/src/components/` - 3个项目管理组件
- `frontend/src/pages/` - 3个新页面AgentChatPage, KnowledgePage, HistoryPage
- `docs/05-每日进度/Day07-前端完整布局完成.md` - 详细总结
- Git提交feat(frontend): Day 7 - 前端完整布局完成
---
#### Day 8-9: 项目管理API ✅ 已完成
- [x] **后端API开发**
- `POST /api/v1/projects` - 创建项目
- `GET /api/v1/projects` - 获取项目列表
- `GET /api/v1/projects/:id` - 获取项目详情
- `PUT /api/v1/projects/:id` - 更新项目
- `DELETE /api/v1/projects/:id` - 删除项目(软删除)
- 三层架构Routes → Controller → Service → Database
- 请求验证中间件
- 完善的错误处理
- [x] **数据库设计更新**
- 更新Prisma schema添加background, researchType, deletedAt字段
- 重新生成Prisma Client
- [x] **前端API集成**
- 创建projectApi服务模块
- 更新useProjectStore添加fetchProjects和loading状态
- ProjectSelector组件连接真实API
- CreateProjectDialog连接真实API含loading和错误处理
- EditProjectDialog连接真实API含loading和错误处理
**验收:**
- ✅ 后端构建成功
- ✅ 前端构建成功6.73s
- ✅ TypeScript编译无错误
- ✅ 可以创建项目,编辑项目背景,切换项目
- ✅ Loading状态和错误提示完善
**成果物:**
- `backend/src/services/projectService.ts` - 数据库操作服务
- `backend/src/controllers/projectController.ts` - 业务逻辑控制器
- `backend/src/middleware/validateProject.ts` - 验证中间件
- `backend/src/routes/projects.ts` - API路由
- `frontend/src/api/projectApi.ts` - 前端API服务
- 更新5个前端组件
- `docs/05-每日进度/Day08-09-项目管理API完成.md` - 详细总结
- Git提交feat: Day 8-9 - Project Management API completed
---
### Week 2Day 10-17智能体配置 + 对话系统
#### Day 10-11: 智能体配置系统 ✅ 已完成
- [x] **创建配置文件**
- `backend/config/agents.yaml`348行
- 定义12个智能体的完整配置
- 包含基本信息、模型参数、功能开关
- 详细的配置说明注释
- [x] **创建Prompt模板**
- `backend/prompts/topic_evaluation_system.txt`143行
- 2000+字专业系统Prompt
- 四维度评价框架(创新性、临床价值、科学性、可行性)
- 详细的评分标准1-10分制
- 结构化输出格式规范
- `backend/prompts/topic_evaluation_user.txt`12行
- 支持变量替换({{projectBackground}}, {{userInput}}, {{knowledgeBaseContext}}
- 条件渲染({{#if}}...{{/if}}
- [x] **智能体服务层**
- `backend/src/services/agentService.ts`232行
- 配置加载和管理
- Prompt模板缓存
- 变量替换和条件渲染
- 热更新支持
- [x] **API控制器和路由**
- `backend/src/controllers/agentController.ts`197行
- `backend/src/routes/agents.ts`52行
- RESTful API设计
- 完整的CRUD操作
- [x] **前端集成**
- `frontend/src/api/agentApi.ts`76行
- 更新AgentChatPage动态加载配置
- 添加loading和错误处理
**验收:**
- ✅ 后端构建成功
- ✅ 前端构建成功9.29s
- ✅ TypeScript编译无错误
- ✅ 智能体配置可正常加载
- ✅ Prompt模板可正常渲染
**成果物:**
- `backend/config/agents.yaml` - 智能体配置
- `backend/prompts/topic_evaluation_system.txt` - 系统Prompt
- `backend/prompts/topic_evaluation_user.txt` - 用户Prompt模板
- `backend/src/services/agentService.ts` - 配置加载服务
- `backend/src/controllers/agentController.ts` - API控制器
- `backend/src/routes/agents.ts` - API路由
- `frontend/src/api/agentApi.ts` - 前端API服务
- `docs/05-每日进度/Day10-11-智能体配置系统完成.md` - 详细总结
- Git提交feat: Day 10-11 - Agent Configuration System completed
---
#### Day 12-13: LLM适配器 + 对话系统 ✅ 已完成
- [x] **创建LLM类型定义和接口**
- `src/adapters/types.ts`57行
- `ILLMAdapter`接口定义
- `Message`, `LLMOptions`, `LLMResponse`, `StreamChunk`类型
- [x] **实现DeepSeek适配器**
- `src/adapters/DeepSeekAdapter.ts`150行
- 非流式调用:`chat()`
- 流式调用:`chatStream()` - SSE数据解析
- 完整错误处理和Token统计
- [x] **实现Qwen适配器**
- `src/adapters/QwenAdapter.ts`162行
- DashScope API集成
- 流式调用支持`incremental_output`
- X-DashScope-SSE头设置
- [x] **创建LLM Factory**
- `src/adapters/LLMFactory.ts`75行
- `getAdapter(modelType)` - 单例模式
- 支持模型deepseek-v3, qwen3-72b, gemini-pro预留
- [x] **环境配置**
- `src/config/env.ts`56行
- `.env.example`36行
- API Keys配置
- 环境验证函数
- [x] **对话服务层**
- `src/services/conversationService.ts`381行
- 创建对话、获取列表、获取详情
- 上下文组装系统Prompt + 历史消息 + 项目背景)
- 非流式发送:`sendMessage()`
- 流式发送:`sendMessageStream()`
- 软删除对话
- [x] **对话控制器和路由**
- `src/controllers/conversationController.ts`247行
- `src/routes/conversations.ts`36行
- RESTful API设计
- SSE流式输出支持
- 模型类型验证
- [x] **数据库更新**
- 更新`prisma/schema.prisma`
- `Conversation`添加:`metadata`, `deletedAt`
- `Message`添加:`model`
- 执行数据库迁移
- [x] **依赖管理**
- 安装`axios` - HTTP客户端
- 安装`js-yaml` - YAML解析
- 安装`zod` - Schema验证
- 安装`@types/js-yaml` - TypeScript类型
- [x] **服务器集成**
- 注册对话路由到主服务器
- 添加环境验证到启动流程
**验收:**
- ✅ 后端构建成功
- ✅ Prisma Client生成成功
- ✅ 数据库迁移应用成功
- ✅ TypeScript编译无错误
- ✅ 所有依赖安装成功
- ⚠️ LLM API调用需要配置API Key
**成果物:**
- `src/adapters/types.ts` - LLM类型定义
- `src/adapters/DeepSeekAdapter.ts` - DeepSeek适配器
- `src/adapters/QwenAdapter.ts` - Qwen适配器
- `src/adapters/LLMFactory.ts` - LLM工厂类
- `src/config/env.ts` - 环境配置
- `.env.example` - 配置模板
- `src/services/conversationService.ts` - 对话服务
- `src/controllers/conversationController.ts` - 对话控制器
- `src/routes/conversations.ts` - 对话路由
- `docs/05-每日进度/Day12-13-LLM适配器与对话系统完成.md` - 详细总结
- Git提交feat: Day 12-13 - LLM Adapters and Conversation System completed
---
#### Day 14-17: 前端对话界面 ✅ 已完成
- [ ] **上下文组装逻辑**
```typescript
async function assembleContext(
conversationId: string,
userMessage: string,
projectId?: string,
kbReferences?: string[]
) {
// 1. 获取智能体配置
// 2. 获取项目背景(如有)
// 3. 获取历史对话最近10轮
// 4. 获取知识库检索结果(如有)
// 5. 组装最终prompt
return {
systemPrompt: "...",
messages: [...]
}
}
```
- [ ] **对话API**
- `POST /api/v1/conversations` - 创建对话
- `GET /api/v1/conversations/:id` - 获取对话详情
- `POST /api/v1/conversations/:id/messages/stream` - 发送消息(流式)
- [ ] **流式输出实现SSE**
```typescript
async function streamResponse(reply, llmStream) {
for await (const chunk of llmStream) {
reply.raw.write(`data: ${JSON.stringify(chunk)}\n\n`)
}
reply.raw.end()
}
```
- [ ] **测试对话流程**
- 测试上下文组装
- 测试流式输出
- 测试错误处理
**验收:** 对话API正常工作流式输出体验良好
---
#### Day 16-17: LobeChat组件集成 ⭐⭐⭐
- [ ] **研究LobeChat源码**
- 克隆LobeChat仓库
- 研究ChatMessage组件
- 研究ChatInput组件
- 研究StreamRenderer组件
- [ ] **提取核心组件**
- 复制相关文件到项目
- 调整依赖和导入
- 适配TailwindCSS样式
- [ ] **集成到聊天页面**
- 使用ChatMessage渲染消息
- 使用ChatInput作为输入框
- 集成流式渲染
- [ ] **测试聊天体验**
- 测试消息显示
- 测试Markdown渲染
- 测试代码块高亮
- 测试流式输出动画
**验收:** 聊天界面美观,消息渲染正常,流式输出流畅
---
### Week 3Day 18-24知识库完整流程 ⭐⭐⭐
#### Day 18: Dify平台部署 ✅ 已完成
- [x] **Docker镜像加速器配置**
- 配置5个国内镜像源
- 提升下载速度和成功率
- [x] **Dify镜像拉取**
- 共11个服务镜像
- 总大小约2GB
- 耗时约15分钟
- [x] **Dify服务启动**
- ✅ nginx (端口80/443)
- ✅ api, worker, worker_beat
- ✅ web
- ✅ db (PostgreSQL), redis
- ✅ weaviate (向量数据库)
- ✅ sandbox, plugin_daemon, ssrf_proxy
- [x] **Dify初始化配置**
- 创建管理员账号
- 创建应用AI Clinical Research
- 获取API Key`app-VZRn0vMXdmltEJkvatHVGv5j`
- [x] **后端环境配置**
- 配置 `DIFY_API_URL=http://localhost/v1`
- 配置 `DIFY_API_KEY`
**验收:** ✅ Dify平台已部署并正常运行
**详细总结:** 参见 `docs/05-每日进度/Day18-Dify部署完成.md`
---
#### Day 19: Dify客户端封装 ✅ 已完成
- [x] **创建类型定义**
- `backend/src/clients/types.ts`
- 完整的TypeScript类型定义
- 包含知识库、文档、检索相关类型
- [x] **实现DifyClient核心类**
- `backend/src/clients/DifyClient.ts`
- 知识库管理:创建、列表、详情、删除
- 文档管理:上传、列表、详情、删除、更新
- 知识库检索语义搜索、top_k、相似度阈值
- 辅助方法:轮询等待、一键上传
- [x] **完整测试验证**
- ✅ 测试1创建知识库
- ✅ 测试2获取知识库列表找到3个
- ✅ 测试3获取知识库详情
- ✅ 测试4上传文档247 tokens
- ✅ 测试5获取文档列表
- ✅ 测试6知识库检索找到1条结果相似度0.4420
- ✅ 测试7删除文档
- ✅ 测试8删除知识库
**验收:** ✅ Dify客户端所有API测试通过耗时约15秒
**详细总结:** 参见 `docs/05-每日进度/Day19-Dify客户端封装完成.md`
---
#### Day 20: 知识库管理(后端)✅ 已完成
- [x] **数据库表设计**
- ✅ KnowledgeBase模型映射Dify Dataset
- ✅ Document模型状态追踪、索引
- ✅ 多租户架构每个知识库独立Dataset
- [x] **知识库API完整CRUD**
- ✅ `POST /api/v1/knowledge-bases` - 创建知识库
- ✅ `GET /api/v1/knowledge-bases` - 获取知识库列表
- ✅ `GET /api/v1/knowledge-bases/:id` - 获取详情
- ✅ `PUT /api/v1/knowledge-bases/:id` - 更新知识库
- ✅ `DELETE /api/v1/knowledge-bases/:id` - 删除知识库
- ✅ `GET /api/v1/knowledge-bases/:id/search` - 检索知识库RAG
- ✅ `GET /api/v1/knowledge-bases/:id/stats` - 获取统计信息
- [x] **文档管理API**
- ✅ `POST /api/v1/knowledge-bases/:kbId/documents` - 上传文档
- ✅ `GET /api/v1/knowledge-bases/:kbId/documents` - 获取文档列表
- ✅ `GET /api/v1/documents/:id` - 获取文档详情
- ✅ `DELETE /api/v1/documents/:id` - 删除文档
- ✅ `POST /api/v1/documents/:id/reprocess` - 重新处理文档
- [x] **文档处理流程**
- ✅ 后台轮询Dify处理状态最多30次×2秒
- ✅ 状态追踪uploading → parsing → indexing → completed/error
- ✅ 自动更新知识库统计(文件数、总大小)
- [x] **配额检查实现**
- ✅ 知识库数量限制每用户3个
- ✅ 文档数量限制每知识库50个
- ✅ 文件格式限制PDF、DOC、DOCX、TXT、MD
- ✅ 文件大小限制最大10MB
- [x] **技术问题修复**
- ✅ BigInt序列化问题全局处理 + Service层转换
- ✅ 文件上传支持(@fastify/multipart
- ✅ API测试验证通过
**验收:** ✅ 所有API测试通过知识库CRUD、文档上传、配额检查全部正常工作
**详细总结:** 参见 `docs/05-每日进度/Day20-知识库管理后端完成.md`
---
#### Day 21-22: 知识库管理(前端)
- [ ] **知识库列表页面**
- 显示3个知识库卡片
- 显示文档数量
- "创建新知识库"按钮
- 达到3个后禁用创建按钮
- [ ] **知识库详情页面**
- 显示文档列表
- 文档处理状态(处理中🟡、已就绪🟢、失败🔴)
- 上传文档按钮
- 删除文档按钮
- [ ] **文档上传组件**
- 拖拽上传或点击上传
- 文件格式验证(前端)
- 文件大小验证(前端)
- 上传进度显示
- 上传后显示处理状态
- [ ] **处理状态轮询**
```typescript
// 每2秒轮询一次文档处理状态
useEffect(() => {
const interval = setInterval(() => {
if (hasProcessingDocs) {
fetchDocumentStatus()
}
}, 2000)
return () => clearInterval(interval)
}, [hasProcessingDocs])
```
**验收:** 知识库前端功能完整,文档上传流程顺畅
---
#### Day 23-24: 知识库检索 + @引用功能 ⭐⭐⭐
- [ ] **检索API**
- `POST /api/v1/knowledge-bases/retrieve` - 检索知识库
- 调用Dify检索API
- 返回Top 5结果
- 包含文档名、段落内容、相似度分数
- [ ] **@知识库功能(前端)**
- 输入框输入`@`触发知识库选择器
- 显示用户的3个知识库
- 选择后插入到输入框
- [ ] **对话中集成知识库**
- 发送消息时,识别`@知识库名称`
- 调用检索API获取相关内容
- 将检索结果注入到上下文
- [ ] **答案溯源显示**
- AI回答中标注引用来源
- 格式:`根据您的资料 [📄 文献综述.pdf] 显示...`
- 点击可查看原文位置(可选)
- [ ] **完整测试**
- 上传PDF文档
- 等待处理完成
- @引用该知识库
- 提问相关问题
- 验证回答有溯源
**验收:** 知识库问答流程完整,答案有明确溯源
---
### Week 4Day 25-28测试优化 + 技术验证
#### Day 25: 模型切换功能
- [ ] **后端支持**
- 对话API支持modelName参数
- 根据modelName选择对应的LLM适配器
- [ ] **前端实现**
- 聊天界面显示当前模型
- 模型切换下拉菜单DeepSeek-V3、Qwen3
- 切换后立即生效
- [ ] **测试**
- 测试DeepSeek-V3回答
- 测试Qwen3回答
- 测试切换是否立即生效
**验收:** 模型切换正常,两个模型都能正常工作
---
#### Day 26-27: 完整流程测试 ⭐⭐⭐
- [ ] **准备测试数据**
- 创建测试项目:"骨质疏松研究"
- 项目背景:"探索肠道菌群与老年女性骨质疏松的关系"
- 上传测试PDF文档医学文献
- [ ] **测试完整流程**
1. 创建项目 ✓
2. 编辑项目背景 ✓
3. 选择"选题评价"智能体 ✓
4. 创建知识库"骨质疏松专题" ✓
5. 上传文档(等待处理完成)✓
6. 在对话中@骨质疏松专题 ✓
7. 提问:"请评价骨质疏松研究的创新性" ✓
8. 验证回答:
- 包含项目背景信息 ✓
- 引用了知识库内容 ✓
- 有明确的溯源标注 ✓
9. 切换到Qwen3模型再次提问 ✓
10. 验证回答质量 ✓
- [ ] **性能测试**
- 首字响应时间 < 3秒 ✓
- 完整回复时间 < 30秒 ✓
- 文档上传+处理 < 2分钟 ✓
- [ ] **Bug修复**
- 记录所有Bug
- 修复高优先级Bug
- 优化用户体验
**验收:** 完整流程顺畅,性能达标
---
#### Day 28: 技术验证总结 + Go/No-Go决策
- [ ] **技术验证检查清单**
**对话功能** ✅
- [ ] 能正常流式输出AI回复
- [ ] 项目背景能正确注入到上下文
- [ ] 历史对话能正确加载最近10轮
- [ ] 回复质量可接受
**知识库功能** ✅
- [ ] PDF/DOCX能成功上传90%成功率)
- [ ] Dify能正常处理文档
- [ ] @知识库能检索到相关内容
- [ ] 答案有明确的溯源引用
- [ ] 基于知识库的回答质量可接受
**LobeChat组件** ✅
- [ ] 聊天界面美观、流畅
- [ ] 消息渲染正常Markdown、代码块等
- [ ] 流式输出体验良好
**模型切换** ✅
- [ ] 切换后立即生效
- [ ] 两个模型都能正常工作
**性能** ✅
- [ ] 首字响应 < 3秒
- [ ] 完整回复 < 30秒
- [ ] 文档上传+处理 < 2分钟
- [ ] **Go/No-Go决策**
- ✅ **GO** 如果以上检查全部通过 → 继续开发其他11个智能体
- ⚠️ **调整:** 如果部分问题 → 调整方案,优化后继续
- ❌ **NO-GO** 如果核心技术不可行 → 重新评估技术方案
- [ ] **文档更新**
- 更新技术验证结果
- 记录遇到的问题和解决方案
- 为Phase 2做准备
**里程碑1验收标准**
- ✅ 能基于项目背景,使用选题评价智能体,上传知识库文档,进行问答
- ✅ 知识库问答有明确溯源
- ✅ 模型切换正常
- ✅ LobeChat组件体验良好
- ✅ 前端完整布局已完成(其他功能占位符)
- ✅ 技术验证通过,可以继续开发
---
## 📅 里程碑2扩展智能体Week 5-7
> **前提:** 里程碑1技术验证通过
> **目标:** 开发其他11个智能体
> **时间:** 2-3周
### 核心目标
- 开发其他11个智能体
- 每个智能体约1天工作量
- 复用已验证的对话系统和配置逻辑
---
### Week 5Day 29-35开发4个智能体
#### Day 29-30: 科学问题梳理 + PICOS构建
- [ ] **科学问题梳理智能体**
- 编写System Prompt0.5天)
- 编写User Prompt Template0.1天)
- 更新agents.yaml配置0.1天)
- 测试和调优0.3天)
- [ ] **PICOS构建智能体**
- 编写System Prompt
- 编写User Prompt Template
- 更新agents.yaml配置
- 实现结构化输出解析
- 测试和调优
**验收:** 2个智能体可用回答质量良好
---
#### Day 31-32: 观察指标设计 + CRF制定
- [ ] **观察指标设计智能体**
- 编写Prompt
- 配置agents.yaml
- 测试和调优
- [ ] **CRF制定智能体**
- 编写Prompt
- 配置agents.yaml
- 实现表格输出格式化
- 测试和调优
**验收:** 2个智能体可用
---
#### Day 33-35: 样本量计算 + 临床研究方案撰写 + 论文润色
- [ ] **样本量计算智能体**
- 编写Prompt包含计算公式
- 配置agents.yaml
- 测试计算准确性
- [ ] **临床研究方案撰写智能体**
- 编写Prompt
- 配置agents.yaml
- 测试输出完整性
- [ ] **论文润色智能体**
- 编写Prompt
- 配置agents.yaml
- 实现文件上传支持
- 测试润色效果
**验收:** 3个智能体可用共完成7个智能体
---
### Week 6Day 36-42开发5个智能体
#### Day 36-37: 论文翻译 + 方法学评审
- [ ] **论文翻译智能体**
- 编写Prompt中英互译
- 配置agents.yaml
- 测试翻译质量
- 支持保留格式
- [ ] **方法学评审智能体**
- 编写Prompt
- 配置agents.yaml
- 测试评审维度
**验收:** 2个智能体可用共9个
---
#### Day 38-40: 期刊方法学评审 + 期刊稿约评审
- [ ] **期刊方法学评审智能体**
- 编写Prompt模拟审稿人视角
- 配置agents.yaml
- 测试提问质量
- [ ] **期刊稿约评审智能体**
- 编写Prompt格式检查
- 配置agents.yaml
- 测试检查准确性
**验收:** 2个智能体可用共11个
---
#### Day 41-42: 最后1个智能体 + 全面测试
- [ ] **开发最后1个智能体**
- 根据需要选择
- 或补充前面的智能体
- [ ] **12个智能体全面测试**
- 测试每个智能体的基本功能
- 测试Prompt效果
- 测试知识库集成
- 优化Prompt
**验收:** 所有12个智能体可用
---
### Week 7Day 43-49前端完善 + 集成测试
#### Day 43-44: 前端完善
- [ ] **智能体选择页面**
- 移除所有占位符
- 所有12个智能体都可点击
- 添加智能体分类(选题阶段、研究设计、论文阶段)
- [ ] **智能体详情优化**
- 显示智能体描述
- 显示适用场景
- 显示示例问题
**验收:** 前端所有智能体功能完整
---
#### Day 45-47: 集成测试
- [ ] **测试所有智能体**
- 每个智能体至少3个测试用例
- 测试知识库集成
- 测试项目背景注入
- 记录问题
- [ ] **Prompt优化**
- 根据测试结果优化Prompt
- 调整temperature参数
- 调整max_tokens
**验收:** 所有智能体回答质量良好
---
#### Day 48-49: 性能优化 + Bug修复
- [ ] **性能优化**
- 优化LLM调用速度
- 优化前端渲染性能
- 优化知识库检索
- [ ] **Bug修复**
- 修复所有已知Bug
- 用户体验优化
**里程碑2验收标准**
- ✅ 所有12个智能体可用
- ✅ 每个智能体回答质量良好
- ✅ 知识库集成正常
- ✅ 前端功能完整
---
## 📅 里程碑3补充功能Week 8-9
> **目标:** 用户系统对接 + 历史记录 + 附加功能
> **时间:** 2周
### Week 8Day 50-56用户系统对接 + 历史记录
#### Day 50-51: 对接已有用户系统
- [ ] **了解已有用户系统**
- 获取用户系统API文档
- 了解认证机制
- 了解用户数据结构
- [ ] **实现SSO集成**
- 实现统一认证接口
- 验证Token有效性
- 获取用户信息
- 同步用户数据到本地数据库
- [ ] **前端集成**
- 移除注册登录页面占位符
- 集成SSO登录流程
- 实现自动登录
**验收:** 用户可以通过已有系统登录
---
#### Day 52-54: 历史记录管理
- [ ] **历史记录API**
- `GET /api/v1/history` - 获取历史记录
- 支持筛选(项目、智能体、日期)
- 支持搜索(关键词)
- 支持分页
- [ ] **历史记录页面**
- 移除占位符
- 实现历史记录列表
- 实现筛选器(项目、智能体、日期范围)
- 实现搜索框
- 点击记录跳转到对话详情
**验收:** 历史记录功能完整,可以快速查找对话
---
#### Day 55-56: 附加功能
- [ ] **固定到项目背景**
- 实现消息固定API
- 前端添加固定按钮
- 固定后追加到项目description
- [ ] **对话管理**
- 删除对话
- 重命名对话
- 导出对话JSON/Markdown
**验收:** 附加功能可用
---
### Week 9Day 57-63文档生成 + 优化
#### Day 57-59: 文档生成 - CRF
- [ ] **安装docx库**
```bash
npm install docx
```
- [ ] **设计CRF模板**
- Word模板结构
- 动态字段定义
- [ ] **实现Word生成**
- `POST /api/v1/documents/crf` - 生成CRF
- 解析AI输出的结构化数据
- 填充到Word模板
- 返回下载链接
- [ ] **前端下载功能**
- CRF智能体对话中添加"生成CRF"按钮
- 点击后调用API
- 下载Word文档
**验收:** 可以生成CRF Word文档
---
#### Day 60-61: 文档生成 - 研究方案
- [ ] **设计研究方案模板**
- 包含:背景、目的、设计、流程等章节
- [ ] **实现Word生成**
- `POST /api/v1/documents/research-proposal` - 生成研究方案
- 填充AI生成的内容
- 返回下载链接
**验收:** 可以生成研究方案Word文档
---
#### Day 62-63: 测试优化
- [ ] **全面测试**
- 测试所有新功能
- 测试与已有功能的集成
- [ ] **Bug修复**
- 修复所有已知Bug
**里程碑3验收标准**
- ✅ 用户可以通过已有系统登录
- ✅ 历史记录功能完整
- ✅ 可以生成CRF和研究方案文档
- ✅ 固定到项目背景功能可用
---
## 📅 里程碑4运营后台 + 最终测试Week 10-11
> **目标:** 简化版运营后台 + 全面测试 + 部署准备
> **时间:** 1-2周
### Week 10Day 64-70运营后台
#### Day 64-65: 用户管理
- [ ] **用户列表API**
- `GET /api/v1/admin/users` - 获取用户列表
- 支持搜索和筛选
- [ ] **用户管理页面**
- 用户列表表格
- 用户详情查看
- 用户状态管理(启用/禁用)
**验收:** 管理员可以查看和管理用户
---
#### Day 66-67: 数据统计
- [ ] **统计数据API**
- `GET /api/v1/admin/statistics` - 获取统计数据
- 用户统计
- 对话统计
- 智能体使用统计
- [ ] **仪表盘页面**
- 关键指标卡片
- 图表展示使用Recharts
- 智能体使用排行
**验收:** 仪表盘可以展示核心数据
---
#### Day 68-69: 对话记录查看
- [ ] **对话查看API**
- `GET /api/v1/admin/conversations/:id` - 查看对话
- 敏感信息脱敏
- 记录审计日志
- [ ] **对话查看页面**
- 对话列表
- 对话详情查看(已脱敏)
**验收:** 管理员可以查看用户对话(已脱敏)
---
#### Day 70: 权限管理
- [ ] **RBAC实现**
- 定义角色user、admin
- 实现权限检查中间件
- 前端路由守卫
**验收:** 权限控制正常
---
### Week 11Day 71-77最终测试 + 部署
#### Day 71-73: 全面测试
- [ ] **功能测试**
- 测试所有功能模块
- 编写测试用例
- 记录测试结果
- [ ] **性能测试**
- 并发测试50用户同时使用
- 响应时间测试
- 数据库性能测试
- [ ] **兼容性测试**
- Chrome、Firefox、Safari测试
- 移动端适配测试
**验收:** 所有测试通过
---
#### Day 74-75: Bug修复 + 优化
- [ ] **修复所有已知Bug**
- 按优先级修复
- 验证修复效果
- [ ] **性能优化**
- 前端优化(懒加载、代码分割)
- 后端优化(查询优化、缓存)
- 数据库索引优化
**验收:** 系统稳定,性能良好
---
#### Day 76-77: 文档完善 + 部署准备
- [ ] **更新所有文档**
- 更新技术文档
- 编写用户手册
- 编写运维文档
- 编写部署文档
- [ ] **部署准备**
- 准备生产环境配置
- 准备Docker镜像
- 准备数据库迁移脚本
**验收:** 文档完整,可以部署
---
## ✅ 最终验收清单
### 功能完整性
- [x] 12个智能体全部可用
- [x] 项目管理功能完整
- [x] 对话系统流畅
- [x] 知识库功能完整
- [x] 历史记录管理
- [x] 用户系统对接
- [x] 文档生成功能
- [x] 运营后台基本功能
### 性能指标
- [x] API响应时间 < 500ms
- [x] 页面加载时间 < 2s
- [x] LLM首字响应 < 3s
- [x] 支持100+并发用户
### 质量指标
- [x] 代码测试覆盖率 > 60%
- [x] ESLint错误数 = 0
- [x] TypeScript类型错误 = 0
- [x] 安全漏洞 = 0高危/中危)
### 文档完整性
- [x] 所有技术文档已更新
- [x] 用户手册已完成
- [x] 运维文档已完成
- [x] 部署文档已完成
---
## 🎯 关键成功因素
### 1. 技术验证优先 ⭐⭐⭐
- 里程碑1必须完成技术验证
- 验证通过才能继续开发
- 避免"开发到一半发现技术不可行"
### 2. MVP优先
- 先做最小可用版本
- 快速获得反馈
- 及时调整方向
### 3. 小步快跑
- 每周都有可见成果
- 降低心理压力
- 保持开发动力
### 4. 风险可控
- 随时可以调整
- 核心技术验证后风险大幅降低
- 后续开发都是"重复劳动"
---
## 📊 进度跟踪
### 每日更新
- 更新Todo状态
- 记录遇到的问题
- 记录解决方案
### 每周总结
- 周五写周报
- 总结本周成果
- 规划下周任务
### 里程碑Review
- 每个里程碑结束Review一次
- 检查验收标准
- 决定是否继续
---
**文档维护:** 每日更新任务进度
**最后更新:** 2025-10-10
**维护者:** 项目经理