1205 lines
31 KiB
Markdown
1205 lines
31 KiB
Markdown
# 开发里程碑与ToDo清单
|
||
|
||
> **项目周期:** 10-11周(2.5-3个月)
|
||
> **开发策略:** MVP优先 + 技术验证第一
|
||
> **团队规模:** 2人(1全栈 + 1前端)
|
||
> **开始日期:** 2025-10-10
|
||
> **预计完成:** 2025-12-25
|
||
|
||
---
|
||
|
||
## 📊 总体进度
|
||
|
||
```
|
||
设计阶段 ████████████████████ 100% (已完成)
|
||
里程碑1 MVP ░░░░░░░░░░░░░░░░░░░░ 0% (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: 核心MVP(Week 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 Key(DeepSeek、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 1(Day 4-10):基础搭建 + 前端布局
|
||
|
||
#### Day 4: 环境搭建 ✅ 核心完成
|
||
- [x] 创建项目目录结构(frontend/ + backend/)
|
||
- [x] 初始化Git仓库(完整文档体系)
|
||
- [x] 安装Docker Desktop(已完成)
|
||
- [x] 启动PostgreSQL + Redis(Docker Compose)
|
||
- [ ] 部署Dify(Docker)⏸️ 暂时跳过(网络问题)
|
||
- [ ] 验证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 ORM(schema.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: 前端页面完善
|
||
- [ ] 项目管理功能
|
||
```bash
|
||
npm create vite@latest frontend -- --template react-ts
|
||
cd frontend
|
||
npm install
|
||
```
|
||
- [ ] 安装依赖
|
||
```bash
|
||
npm install react-router-dom zustand axios
|
||
npm install -D tailwindcss postcss autoprefixer
|
||
npx tailwindcss init -p
|
||
```
|
||
- [ ] 配置TailwindCSS
|
||
- [ ] 配置路由(React Router)
|
||
- [ ] 配置状态管理(Zustand)
|
||
- [ ] 创建基础目录结构
|
||
```
|
||
src/
|
||
├── components/
|
||
├── pages/
|
||
├── services/
|
||
├── stores/
|
||
└── types/
|
||
```
|
||
|
||
**验收:** 前端启动正常,能显示Hello World
|
||
|
||
---
|
||
|
||
#### Day 7-8: 前端完整布局 ⭐
|
||
- [ ] **侧边栏组件**
|
||
- 顶部Logo
|
||
- 导航菜单(智能体、历史记录、知识库)
|
||
- 项目列表(全局快速问答 + 用户项目)
|
||
- 底部(快速上手、帮助中心)
|
||
|
||
- [ ] **主界面布局**
|
||
- Header(面包屑导航、操作按钮)
|
||
- Content区域(路由切换)
|
||
|
||
- [ ] **智能体选择页面**
|
||
- 12个智能体卡片(Grid布局)
|
||
- 只有"选题评价"可点击
|
||
- 其他11个显示"🔒 即将上线"
|
||
- 点击提示:"该智能体正在开发中,敬请期待"
|
||
|
||
- [ ] **聊天页面布局**(暂不实现功能)
|
||
- 消息列表区域
|
||
- 输入框区域
|
||
- 工具栏(上传、@知识库、模型切换)
|
||
|
||
- [ ] **知识库页面布局**(暂不实现功能)
|
||
- 知识库列表
|
||
- 文档列表
|
||
|
||
- [ ] **历史记录页面**(占位符)
|
||
- 显示"即将上线"
|
||
|
||
- [ ] **运营后台页面**(占位符)
|
||
- 显示"即将上线"
|
||
|
||
**验收:** 前端完整布局完成,可以在各个页面之间导航
|
||
|
||
---
|
||
|
||
#### Day 9-10: 项目管理功能
|
||
- [ ] **后端API**
|
||
- `POST /api/v1/projects` - 创建项目
|
||
- `GET /api/v1/projects` - 获取项目列表
|
||
- `GET /api/v1/projects/:id` - 获取项目详情
|
||
- `PUT /api/v1/projects/:id` - 更新项目
|
||
- `DELETE /api/v1/projects/:id` - 删除项目
|
||
|
||
- [ ] **前端功能**
|
||
- 创建项目对话框
|
||
- 编辑项目背景信息(模态框)
|
||
- 项目列表显示
|
||
- 切换项目
|
||
|
||
**验收:** 可以创建项目,编辑项目背景,切换项目
|
||
|
||
---
|
||
|
||
### Week 2(Day 11-17):智能体配置 + 对话系统
|
||
|
||
#### Day 11: 智能体配置系统
|
||
- [ ] **创建配置文件**
|
||
- `backend/config/agents.yaml`
|
||
```yaml
|
||
agents:
|
||
- id: agent-topic-evaluation
|
||
name: 选题评价
|
||
description: 从创新性、临床价值等维度评价研究选题
|
||
category: 选题阶段
|
||
icon: lightbulb
|
||
system_prompt_file: prompts/topic_evaluation_system.txt
|
||
user_prompt_template_file: prompts/topic_evaluation_user.txt
|
||
models:
|
||
deepseek-v3:
|
||
temperature: 0.4
|
||
max_tokens: 2000
|
||
qwen3-72b:
|
||
temperature: 0.5
|
||
max_tokens: 2000
|
||
rag_enabled: true
|
||
status: active
|
||
|
||
# 其他11个智能体(status: inactive)
|
||
- id: agent-scientific-question
|
||
name: 科学问题梳理
|
||
status: inactive
|
||
# ... 其他10个
|
||
```
|
||
|
||
- [ ] **创建Prompt文件**
|
||
- `backend/prompts/topic_evaluation_system.txt`
|
||
```
|
||
你是一位经验丰富的临床研究专家,擅长评估研究选题的质量...
|
||
|
||
评价维度:
|
||
1. 创新性:...
|
||
2. 临床价值:...
|
||
3. 科学性:...
|
||
4. 可行性:...
|
||
```
|
||
|
||
- `backend/prompts/topic_evaluation_user.txt`
|
||
```
|
||
请对以下研究选题进行评价:
|
||
|
||
{user_question}
|
||
|
||
请按照创新性、临床价值、科学性、可行性四个维度进行分析。
|
||
```
|
||
|
||
- [ ] **编写配置加载器**
|
||
- `backend/src/config/agent-loader.ts`
|
||
- 读取agents.yaml
|
||
- 读取prompts/*.txt
|
||
- 提供getAgent()、getAllAgents()方法
|
||
|
||
**验收:** 配置系统可以正常加载智能体配置和Prompt
|
||
|
||
---
|
||
|
||
#### Day 12-13: LLM适配器
|
||
- [ ] **创建LLM Factory**
|
||
- `backend/src/adapters/llm-factory.ts`
|
||
- 支持DeepSeek-V3和Qwen3
|
||
- 统一的调用接口
|
||
|
||
- [ ] **实现DeepSeek适配器**
|
||
```typescript
|
||
class DeepSeekAdapter {
|
||
async chat(messages, options) {
|
||
// 调用DeepSeek API
|
||
// 支持流式输出
|
||
}
|
||
}
|
||
```
|
||
|
||
- [ ] **实现Qwen适配器**
|
||
```typescript
|
||
class QwenAdapter {
|
||
async chat(messages, options) {
|
||
// 调用DashScope API (Qwen)
|
||
// 支持流式输出
|
||
}
|
||
}
|
||
```
|
||
|
||
- [ ] **测试两个模型**
|
||
- 测试DeepSeek-V3调用
|
||
- 测试Qwen3调用
|
||
- 测试流式输出
|
||
|
||
**验收:** 两个LLM模型都能正常调用,流式输出正常
|
||
|
||
---
|
||
|
||
#### Day 14-15: 对话系统(后端)⭐⭐⭐
|
||
- [ ] **上下文组装逻辑**
|
||
```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 3(Day 18-24):知识库完整流程 ⭐⭐⭐
|
||
|
||
#### Day 18: Dify客户端封装
|
||
- [ ] **创建Dify客户端**
|
||
- `backend/src/clients/dify.ts`
|
||
|
||
- [ ] **实现知识库API封装**
|
||
```typescript
|
||
class DifyClient {
|
||
// 创建知识库
|
||
async createDataset(name: string, description: string)
|
||
|
||
// 上传文档
|
||
async uploadDocument(datasetId: string, file: Buffer, filename: string)
|
||
|
||
// 获取文档处理状态
|
||
async getDocumentStatus(documentId: string)
|
||
|
||
// 检索知识库
|
||
async retrieveKnowledge(datasetId: string, query: string, topK: number)
|
||
|
||
// 删除文档
|
||
async deleteDocument(documentId: string)
|
||
}
|
||
```
|
||
|
||
- [ ] **测试Dify API**
|
||
- 测试创建知识库
|
||
- 测试上传文档
|
||
- 测试查询文档状态
|
||
- 测试检索功能
|
||
|
||
**验收:** Dify客户端能正常调用所有API
|
||
|
||
---
|
||
|
||
#### Day 19-20: 知识库管理(后端)
|
||
- [ ] **知识库API**
|
||
- `POST /api/v1/knowledge-bases` - 创建知识库
|
||
- `GET /api/v1/knowledge-bases` - 获取知识库列表
|
||
- `DELETE /api/v1/knowledge-bases/:id` - 删除知识库
|
||
|
||
- [ ] **文档上传API**
|
||
- `POST /api/v1/knowledge-bases/:id/documents` - 上传文档
|
||
- `GET /api/v1/knowledge-bases/:id/documents` - 获取文档列表
|
||
- `DELETE /api/v1/knowledge-bases/:kbId/documents/:docId` - 删除文档
|
||
|
||
- [ ] **文档处理流程**
|
||
```typescript
|
||
async function processDocument(kbId, file) {
|
||
// 1. 上传到对象存储
|
||
// 2. 创建document记录(status: uploading)
|
||
// 3. 调用Dify上传API
|
||
// 4. 异步轮询处理状态
|
||
// 5. 更新document状态
|
||
}
|
||
```
|
||
|
||
- [ ] **实现配额检查**
|
||
- 检查知识库数量(最多3个)
|
||
- 检查文档数量(最多50个/知识库)
|
||
- 检查文件格式(PDF/DOCX)
|
||
- 检查文件大小(最大50MB)
|
||
|
||
**验收:** 知识库API全部实现,配额限制正常工作
|
||
|
||
---
|
||
|
||
#### 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 4(Day 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 5(Day 29-35):开发4个智能体
|
||
|
||
#### Day 29-30: 科学问题梳理 + PICOS构建
|
||
- [ ] **科学问题梳理智能体**
|
||
- 编写System Prompt(0.5天)
|
||
- 编写User Prompt Template(0.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 6(Day 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 7(Day 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 8(Day 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 9(Day 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 10(Day 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 11(Day 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
|
||
**维护者:** 项目经理
|
||
|