chore: project initialization - Day 4 environment setup
This commit is contained in:
359
docs/00-项目概述/产品需求文档(PRD).md
Normal file
359
docs/00-项目概述/产品需求文档(PRD).md
Normal file
@@ -0,0 +1,359 @@
|
||||
# AI科研助手产品需求文档 (PRD)
|
||||
|
||||
> **版本:** v1.0
|
||||
> **创建日期:** 2025-10-10
|
||||
> **文档状态:** 正式版
|
||||
|
||||
---
|
||||
|
||||
## 📋 目录
|
||||
|
||||
1. [产品概述](#产品概述)
|
||||
2. [功能需求详述](#功能需求详述)
|
||||
3. [用户端功能](#用户端功能)
|
||||
4. [运营端/后台功能](#运营端后台功能)
|
||||
|
||||
---
|
||||
|
||||
## 1. 产品概述
|
||||
|
||||
### 1.1 产品简介
|
||||
|
||||
**AI科研助手**是一款专注于赋能临床及科研人员的智能化平台。它通过集成一系列基于大语言模型的AI智能体,为科研工作者在从课题选择、方案设计、数据收集、论文撰写到最终发表的全流程中提供精准、高效、专业的AI辅助,旨在解决科研过程中耗时耗力、信息壁垒、方法学门槛高等痛点,全面提升科研工作的效率与质量。
|
||||
|
||||
### 1.2 目标用户
|
||||
|
||||
本平台的核心用户群体包括:
|
||||
|
||||
**(1) 临床医生/科研人员**
|
||||
- 需要在繁忙的临床工作之余,高效开展高质量科学研究的核心人群
|
||||
|
||||
**(2) 在读硕/博士研究生**
|
||||
- 在科研学习阶段,需要专业指导和高效工具来完成研究课题与毕业论文的学生
|
||||
|
||||
**(3) 医药企业研发人员(R&D)**
|
||||
- 从事新药研发、临床试验等工作,需要快速获取文献信息、设计研究方案的专业人士
|
||||
|
||||
### 1.3 产品目标
|
||||
|
||||
**(1) 工具集覆盖**
|
||||
- 打造一套覆盖临床研究核心流程的AI智能体工具集,解决用户在选题、研究设计及论文写作阶段的关键需求
|
||||
|
||||
**(2) 交互优化**
|
||||
- 优化人机交互体验,确保用户可以低门槛、便捷地使用各项功能
|
||||
|
||||
**(3) 行业领先**
|
||||
- 发展成为科研领域内领先的一站式AI解决方案平台
|
||||
|
||||
**(4) 未来规划**
|
||||
- 后期考虑,增加基于大规模(1000篇以内)文献的读取、识别、内容提取的工作
|
||||
|
||||
---
|
||||
|
||||
## 2. 功能需求详述 (Functional Requirements)
|
||||
|
||||
### 2.1 用户端功能
|
||||
|
||||
#### 2.1.1 核心功能:项目/课题管理 (Context Persistence)
|
||||
|
||||
为解决用户需要反复输入背景信息的问题,引入项目制管理,确保AI对话的上下文连贯性。
|
||||
|
||||
**基础功能:**
|
||||
|
||||
**(1) 项目创建与管理**
|
||||
- 用户可以创建、编辑和删除不同的"项目"或"课题"
|
||||
|
||||
**(2) 项目背景信息预设**
|
||||
- 在每个项目中,用户可以预先填入该项目的核心背景信息
|
||||
|
||||
**(3) 上下文自动关联**
|
||||
- 在特定项目内发起的所有AI智能体对话,都将自动继承该项目的背景信息
|
||||
|
||||
**动态背景信息管理:**
|
||||
|
||||
**(1) 宏观编辑**
|
||||
- 在项目主页,用户可通过点击编辑按钮,在弹出的模态框中对项目背景信息进行全面的、多行的编辑与修改
|
||||
|
||||
**(2) 微观追加**
|
||||
- 在项目内的对话中,用户可将AI生成的关键回答(如PICOS框架、核心结论等)通过"固定"操作,一键追加到当前项目的背景信息中,实现项目信息的动态演进
|
||||
|
||||
---
|
||||
|
||||
#### 2.1.2 核心功能:AI智能体 (Agent)
|
||||
|
||||
AI智能体是产品的核心,用户可以通过以下两种主要路径与智能体进行交互:
|
||||
|
||||
**交互路径:**
|
||||
|
||||
**1. 全局快速问答 (Global Quick Chat)**
|
||||
- 用户可直接在主界面访问所有智能体,用于处理与特定项目无关的一次性问题
|
||||
|
||||
**2. 项目内深度研究 (In-Project Deep Research)**
|
||||
- 用户进入一个具体的"项目/课题"空间后调用智能体,所有对话将自动继承该项目的背景信息
|
||||
|
||||
---
|
||||
|
||||
**(重点)智能体功能列表:**
|
||||
|
||||
##### 选题阶段
|
||||
|
||||
**① 选题评价智能体**
|
||||
- **功能描述:** 从创新性、临床价值、科学性和可行性等维度,对用户提出的临床问题进行全面评价,并提供初步的SWOT分析
|
||||
- **输入:** 用户输入的临床问题描述(自由文本),可关联项目背景
|
||||
- **输出:** 结构化的评价报告,包含创新性、临床价值、科学性、可行性分析及综合建议
|
||||
|
||||
**② 科学问题梳理智能体**
|
||||
- **功能描述:** 辅助用户将一个模糊或宽泛的研究想法,提炼成一个清晰、具体、可验证的科学问题
|
||||
- **输入:** 一个初步的研究想法,如"研究肠道菌群与抑郁症的关系"
|
||||
- **输出:** 多个精炼后的科学问题选项,供用户选择或参考
|
||||
|
||||
##### 研究设计阶段
|
||||
|
||||
**③ PICOS构建智能体**
|
||||
- **功能描述:** 引导用户按照PICOS原则来结构化地定义临床研究的核心要素
|
||||
- **输入:** 引导式表单或自由文本描述的研究问题
|
||||
- **输出:** 一个标准化的PICOS表格,清晰列出各项具体内容
|
||||
|
||||
**④ 观察指标设计智能体**
|
||||
- **功能描述:** 基于研究设计和因果关系,为用户的研究推荐合适的主要、次要及安全性观察指标集
|
||||
- **输入:** 已确定的PICOS框架或研究问题
|
||||
- **输出:** 包含具体指标、定义、测量方法建议的清单
|
||||
|
||||
**⑤ CRF制定智能体**
|
||||
- **功能描述:** 基于研究方案和观察指标,自动生成一份结构化、符合规范的病例报告表(CRF)框架
|
||||
- **输入:** 研究方案、观察指标清单
|
||||
- **输出:** 一份可下载的CRF框架草稿(如Word/Excel格式)
|
||||
|
||||
**⑥ 样本量计算智能体**
|
||||
- **功能描述:** 根据研究类型、检验水准、把握度、效应量等核心参数,提供科学合理的样本量估算结果
|
||||
- **输入:** 引导式表单输入研究设计、α、β、效应量等
|
||||
- **输出:** 详细的样本量计算结果,包含公式、参数说明和最终建议样本量
|
||||
|
||||
**⑦ 临床研究方案撰写智能体**
|
||||
- **功能描述:** 基于科学问题、PICOS等信息,自动生成一份初步但结构完整的临床研究设计方案
|
||||
- **输入:** 已确定的科学问题、PICOS、样本量等
|
||||
- **输出:** 一份包含研究背景、目的、设计、流程等章节的Word文档初稿
|
||||
|
||||
##### 论文阶段
|
||||
|
||||
**⑧ 论文润色智能体**
|
||||
- **功能描述:** 针对用户上传的稿件,提供专业级的语言润色,修正语法、拼写和表达方式
|
||||
- **输入:** 上传的论文稿件(Word/Text),目标期刊名称(可选)
|
||||
- **输出:** 一份带修订标记的润色后文稿及修改摘要说明
|
||||
|
||||
**⑨ 论文翻译智能体**
|
||||
- **功能描述:** 提供专业、精准的中英互译服务,特别针对医学科研领域的术语进行优化
|
||||
- **输入:** 上传的论文稿件(Word/Text),选择源语言和目标语言
|
||||
- **输出:** 翻译完成的稿件,保留原格式
|
||||
|
||||
**⑩ 方法学评审智能体**
|
||||
- **功能描述:** 从研究问题、方案设计、实施可行性和临床意义等维度,对研究方案或论文进行全面的方法学评审
|
||||
- **输入:** 上传的研究方案或论文稿件
|
||||
- **输出:** 一份评审报告,分点列出方法学上的优点、潜在缺陷及改进建议
|
||||
|
||||
**⑪ 期刊方法学评审智能体**
|
||||
- **功能描述:** 模拟期刊审稿人视角,针对投稿文章中可能存在的统计学、方法学问题进行提问和挑战
|
||||
- **输入:** 上传的论文稿件,目标期刊
|
||||
- **输出:** 一份模拟的"审稿意见",列出可能被挑战的问题点
|
||||
|
||||
**⑫ 期刊稿约评审智能体**
|
||||
- **功能描述:** 依据目标期刊的投稿要求,自动检查文章在格式、字数、参考文献规范等方面是否符合标准
|
||||
- **输入:** 上传的论文稿件,目标期刊的投稿指南
|
||||
- **输出:** 一份格式审查报告,清晰列出所有不符合项和修改建议
|
||||
|
||||
---
|
||||
|
||||
**在智能体对话中的重点功能:**
|
||||
|
||||
**(1) 模型即时切换**
|
||||
- 在对话界面,用户可随时通过下拉菜单切换当前对话所使用的大语言模型(如Gemini, DeepSeek等),以应对不同任务
|
||||
- 用户选择模型,后续对话由新选定的模型驱动
|
||||
|
||||
**(2) 临时附件上传**
|
||||
- 在对话输入框旁提供上传按钮,支持用户上传临时文件(如PDF, Word)供AI进行一次性分析、总结或评审
|
||||
- 用户上传的单个文件
|
||||
- AI基于该附件内容进行回答
|
||||
|
||||
**(3) 知识库融合对话** ⭐
|
||||
- 在任何对话窗口中,用户可随时通过"@"操作调用个人知识库中的分类,让AI优先基于所选内容回答
|
||||
- 示例:`@骨质疏松专题`
|
||||
- 输出:融合了私有知识和通用知识的回答
|
||||
|
||||
**(4) 答案溯源与引用**
|
||||
- 当AI回答引用自个人知识库时,必须生成清晰、可点击的引用标记
|
||||
- 回答中包含指向源文档具体位置的引用
|
||||
|
||||
**(5) 对话内追加背景**
|
||||
- 在项目对话中,提供将AI回答"固定"到项目背景的功能
|
||||
- 用户点击"固定"按钮
|
||||
- 该条回答被追加到项目描述中
|
||||
|
||||
**(6) 历史对话管理**
|
||||
- 自动保存所有对话记录,支持用户在独立的"历史记录"页面中进行查看、搜索和筛选
|
||||
|
||||
---
|
||||
|
||||
#### 2.1.3 核心功能:个人知识库 (Personal Knowledge Base)
|
||||
|
||||
个人知识库是用户专属的、私密的知识管理中心。
|
||||
|
||||
**(1) 层级化管理**
|
||||
- 采用两级结构进行管理
|
||||
- **第一级:** 知识库列表,用户可在此创建、编辑知识库分类
|
||||
- **第二级:** 知识库详情页,用户点击某个知识库后,可查看和管理该库内的所有文件
|
||||
|
||||
**(2) 文档上传与处理**
|
||||
- 支持在知识库详情页上传多种格式的文档
|
||||
|
||||
**(3) 文档处理状态透明化**
|
||||
- 每份上传的文档都应有明确的状态标识
|
||||
- 状态:**"处理中"**、**"已就绪"**、**"处理失败"**
|
||||
|
||||
**(4) 失败原因提示**
|
||||
- 若文档处理失败,系统需向用户提供清晰的原因说明
|
||||
|
||||
**(5) 在对话中使用**
|
||||
- 用户在智能体问答过程中,可以基于创建的个人知识库来进行问答
|
||||
|
||||
---
|
||||
|
||||
#### 2.1.4 核心功能:历史记录 (History)
|
||||
|
||||
提供一个独立的顶级功能入口,用于管理用户的所有对话。
|
||||
|
||||
**(1) 统一列表**
|
||||
- 按时间倒序展示用户所有的对话记录
|
||||
|
||||
**(2) 来源标识**
|
||||
- 每条记录都清晰标识其来源是"全局快速问答"还是具体的某个"项目"
|
||||
|
||||
**(3) 搜索与筛选**
|
||||
- 提供强大的搜索框
|
||||
- 支持按项目、智能体、日期范围进行筛选
|
||||
- 帮助用户快速定位历史对话
|
||||
|
||||
---
|
||||
|
||||
#### 2.1.5 辅助功能 (Support)
|
||||
|
||||
**(1) 快速上手**
|
||||
- 在侧边栏提供独立入口
|
||||
- 点击后展示产品核心功能引导和使用教程
|
||||
|
||||
**(2) 帮助中心**
|
||||
- 在侧边栏提供独立入口
|
||||
- 点击后展示FAQ和详细的用户手册
|
||||
|
||||
---
|
||||
|
||||
### 2.2 运营端/后台功能
|
||||
|
||||
#### (1) 仪表盘
|
||||
|
||||
**核心数据概览**
|
||||
- 以图表形式展示关键运营指标
|
||||
- 指标包括:
|
||||
- 今日活跃用户
|
||||
- 7日活跃用户
|
||||
- 总用户数
|
||||
- 今日对话数等
|
||||
- 目的:方便运营人员快速了解产品状态
|
||||
|
||||
---
|
||||
|
||||
#### (2) 智能体管理
|
||||
|
||||
**智能体列表**
|
||||
- 以列表形式展示所有前端可用的AI智能体
|
||||
- 支持上下线操作
|
||||
|
||||
---
|
||||
|
||||
#### (3) 智能体配置
|
||||
|
||||
**配置管理**
|
||||
- 管理员可新增、编辑智能体
|
||||
- 配置项:名称、图标、描述、所属分类等
|
||||
|
||||
---
|
||||
|
||||
#### (4) Prompt管理
|
||||
|
||||
**核心功能** ⭐
|
||||
- 管理员可为每个智能体精细化地调试和优化其背后的系统级提示词(System Prompt)
|
||||
- 支持版本管理
|
||||
- **重要性:** 这是保障智能体专业性的关键
|
||||
|
||||
---
|
||||
|
||||
#### (5) 模型管理
|
||||
|
||||
**模型接入与配置**
|
||||
- 管理后台接入的各类大语言模型(如Gemini, DeepSeek)
|
||||
- 可配置:
|
||||
- API密钥
|
||||
- 调用参数
|
||||
- 启用/禁用状态
|
||||
|
||||
---
|
||||
|
||||
#### (6) 用户管理
|
||||
|
||||
**用户列表与检索**
|
||||
- 查看所有用户信息
|
||||
- 信息包括:ID、手机号/邮箱、注册时间、状态
|
||||
- 支持多条件搜索
|
||||
|
||||
**账户详情与操作**
|
||||
- 管理员可查看单个用户的详情
|
||||
- 可进行的操作:
|
||||
- 设置/延长试用期
|
||||
- 启用或禁用账户
|
||||
- 查看操作日志
|
||||
|
||||
---
|
||||
|
||||
#### (7) 数据统计
|
||||
|
||||
**用户行为统计**
|
||||
- 查看用户的登录历史记录(登录时间)
|
||||
- 各个核心功能的使用频次统计(如不同智能体)
|
||||
- 目的:帮助分析用户偏好和功能热度
|
||||
|
||||
---
|
||||
|
||||
#### (8) 对话管理
|
||||
|
||||
**用户历史对话查看**
|
||||
- ⚠️ **重要:** 需建立严格的权限分级
|
||||
- 访问条件:
|
||||
- 只有在处理用户申诉或技术排障时
|
||||
- 由授权的高级管理员
|
||||
- 在获得审批后
|
||||
- 才能查看经过脱敏和屏蔽隐私信息的对话数据
|
||||
|
||||
**安全与隐私强化**
|
||||
- 所有查看行为必须记录在案,以备审计
|
||||
|
||||
---
|
||||
|
||||
## 附录
|
||||
|
||||
### 版本变更记录
|
||||
|
||||
| 版本 | 日期 | 变更内容 | 修改人 |
|
||||
|------|------|---------|--------|
|
||||
| v1.0 | 2025-10-10 | 初始版本,从TXT转换为MD格式 | 项目团队 |
|
||||
|
||||
### 相关文档
|
||||
|
||||
- [数据库设计文档](../01-设计文档/数据库设计文档.md)
|
||||
- [API设计规范](../01-设计文档/API设计规范.md)
|
||||
- [核心业务规则](../03-业务规则/核心业务规则总览.md)
|
||||
- [用户端原型图](../01-设计文档/用户端原型图.html)
|
||||
|
||||
---
|
||||
|
||||
**文档维护者:** 产品经理
|
||||
**最后更新:** 2025-10-10
|
||||
|
||||
419
docs/00-项目概述/技术架构总览.md
Normal file
419
docs/00-项目概述/技术架构总览.md
Normal file
@@ -0,0 +1,419 @@
|
||||
# AI科研助手 - 技术架构总览
|
||||
|
||||
> **最后更新:2025-10-10**
|
||||
> **方案版本:v2.0(最终优化版)**
|
||||
> **文档说明:** 本文档是技术架构的快速参考指南,适合新人快速了解整体技术方案
|
||||
|
||||
---
|
||||
|
||||
## 📊 核心数据一览
|
||||
|
||||
| 指标 | 数值 |
|
||||
|------|------|
|
||||
| **开发周期** | 2.5个月(10周) |
|
||||
| **开发成本** | ¥49,300 |
|
||||
| **技术难度** | ⭐⭐⭐(中等) |
|
||||
| **月度成本** | ¥16,520(1000用户) |
|
||||
| **团队规模** | 2人(1全栈 + 1前端) |
|
||||
|
||||
---
|
||||
|
||||
## 🎯 关键需求澄清
|
||||
|
||||
### 知识库规模(重要变更)
|
||||
|
||||
| 项目 | 限制 |
|
||||
|------|------|
|
||||
| 知识库数量 | 3个/用户 |
|
||||
| 文件数量 | 50个/知识库 |
|
||||
| 文件格式 | PDF、DOCX |
|
||||
| 单用户最大 | 150个文件 |
|
||||
|
||||
**影响:** 技术难度从⭐⭐⭐⭐⭐降至⭐⭐⭐,Dify完全满足需求!
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ 技术架构(一图看懂)
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────┐
|
||||
│ 前端(React + Vite) │
|
||||
│ - 项目管理(自研) │
|
||||
│ - 智能体选择(自研) │
|
||||
│ - 聊天界面(参考LobeChat)⭐ │
|
||||
│ - 知识库管理(自研) │
|
||||
└─────────────────────────────────────────┘
|
||||
↓ REST API
|
||||
┌─────────────────────────────────────────┐
|
||||
│ 业务层 (Node.js/TypeScript) │
|
||||
│ - 对话逻辑(自研)⭐ │
|
||||
│ - 项目/课题管理 │
|
||||
│ - 智能体路由(配置化)⭐ │
|
||||
│ - 简化运营后台⭐ │
|
||||
└─────────────────────────────────────────┘
|
||||
↓ ↓
|
||||
┌──────────────────┐ ┌─────────────────┐
|
||||
│ Dify │ │ LLM API │
|
||||
│ (仅RAG)⭐ │ │ - DeepSeek-V3⭐│
|
||||
│ - 知识库检索 │ │ - Qwen3 ⭐ │
|
||||
│ - Qdrant(内置)⭐ │ │ │
|
||||
└──────────────────┘ └─────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔑 核心决策
|
||||
|
||||
### 1. 聊天功能实现方式
|
||||
|
||||
| 方案 | 选择 | 原因 |
|
||||
|------|------|------|
|
||||
| **前端UI** | 参考LobeChat组件 ✅ | 成熟稳定,节省9.5天 |
|
||||
| **对话逻辑** | 自研(调用LLM API)✅ | 业务可控,核心只要4步 |
|
||||
| Dify对话功能 | ❌ 不用 | 不适合12个智能体管理 |
|
||||
| LobeChat整体 | ❌ 不用 | 缺少项目管理功能 |
|
||||
|
||||
### 2. RAG系统
|
||||
|
||||
| 功能 | 方案 |
|
||||
|------|------|
|
||||
| **知识库管理** | Dify ✅ |
|
||||
| **文档解析** | Dify内置 ✅ |
|
||||
| **向量数据库** | Dify内置Qdrant ✅ |
|
||||
| **检索** | Dify API ✅ |
|
||||
| 自建RAG | ❌ 不需要 |
|
||||
|
||||
### 3. 运营后台
|
||||
|
||||
| 功能 | 状态 | 实现方式 |
|
||||
|------|------|---------|
|
||||
| 用户管理 | ✅ 保留 | 简化版 |
|
||||
| 数据统计 | ✅ 保留 | 基础仪表盘 |
|
||||
| 模型管理 | ❌ 删除 | `config/models.yaml` |
|
||||
| 智能体管理 | ❌ 删除 | `config/agents.yaml` |
|
||||
| Prompt配置 | ❌ 删除 | `prompts/*.txt` |
|
||||
|
||||
### 4. 大模型选择
|
||||
|
||||
| 优先级 | 模型 | 价格 | 用途 |
|
||||
|--------|------|------|------|
|
||||
| **主力** | DeepSeek-V3 | ¥1/百万tokens | 90%的请求 |
|
||||
| **备用** | Qwen3-72B | ¥4/百万tokens | 需要更强中文理解时 |
|
||||
| 可选 | Gemini 2.0 | ¥2.7/百万tokens | 国际用户 |
|
||||
|
||||
---
|
||||
|
||||
## 💰 成本明细
|
||||
|
||||
### 开发成本
|
||||
|
||||
| 项目 | 金额 |
|
||||
|------|------|
|
||||
| 人力(4人月) | ¥48,000 |
|
||||
| 服务器(开发环境) | ¥1,250 |
|
||||
| LLM API(测试) | ¥50 |
|
||||
| **总计** | **¥49,300** |
|
||||
|
||||
### 月度运营成本(1000用户)
|
||||
|
||||
| 项目 | 金额 |
|
||||
|------|------|
|
||||
| 基础设施(服务器) | ¥1,200 |
|
||||
| LLM API(DeepSeek-V3) | ¥180 |
|
||||
| 对象存储(知识库) | ¥140 |
|
||||
| 人力(1人运维) | ¥15,000 |
|
||||
| **总计** | **¥16,520/月** |
|
||||
|
||||
### 知识库存储详情
|
||||
|
||||
```
|
||||
单用户:150个文件 × 5MB = 750MB
|
||||
1000用户:750GB总存储
|
||||
|
||||
对象存储(阿里云OSS):
|
||||
- 存储费:¥90/月
|
||||
- 流量费:¥50/月
|
||||
- 总计:¥140/月
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📅 开发计划(10周)
|
||||
|
||||
| 阶段 | 时间 | 主要任务 |
|
||||
|------|------|---------|
|
||||
| **阶段1** | 1.5周 | 基础搭建 + 复用LobeChat组件 |
|
||||
| **阶段2** | 3.5周 | 核心功能(12个智能体 + 对话) |
|
||||
| **阶段3** | 2周 | 高级功能(RAG + 文档生成) |
|
||||
| **阶段4** | 1周 | 简化运营后台 |
|
||||
| **阶段5** | 2周 | 测试优化 |
|
||||
|
||||
### 阶段1:基础搭建(1.5周)
|
||||
- [ ] 前端框架(React + Vite + TailwindCSS)
|
||||
- [ ] **复用LobeChat聊天UI组件** ⭐
|
||||
- [ ] 后端框架(Fastify + Prisma + PostgreSQL)
|
||||
- [ ] Dify部署(Docker)
|
||||
- [ ] DeepSeek-V3 + Qwen3接入
|
||||
|
||||
### 阶段2:核心功能(3.5周)
|
||||
- [ ] 用户认证(JWT)
|
||||
- [ ] 项目/课题CRUD
|
||||
- [ ] 12个智能体配置(`agents.yaml`)
|
||||
- [ ] 对话系统(上下文组装 + 流式输出)
|
||||
- [ ] 知识库集成(Dify API)
|
||||
|
||||
### 阶段3:高级功能(2周)
|
||||
- [ ] 多模型切换(DeepSeek/Qwen)
|
||||
- [ ] 历史记录管理
|
||||
- [ ] 固定到项目背景功能
|
||||
- [ ] 文档生成(CRF、研究方案)
|
||||
|
||||
### 阶段4:简化运营后台(1周)
|
||||
- [ ] 用户列表与管理
|
||||
- [ ] 基础数据统计
|
||||
- [ ] 对话记录查看
|
||||
|
||||
### 阶段5:测试优化(2周)
|
||||
- [ ] 功能测试
|
||||
- [ ] 性能优化
|
||||
- [ ] DeepSeek-V3效果调优
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ 技术栈
|
||||
|
||||
### 前端
|
||||
```
|
||||
- React 18 + TypeScript
|
||||
- Vite(构建工具)
|
||||
- TailwindCSS(UI框架)
|
||||
- Zustand(状态管理)
|
||||
- LobeChat组件(聊天UI)⭐
|
||||
- react-markdown(Markdown渲染)
|
||||
```
|
||||
|
||||
### 后端
|
||||
```
|
||||
- Node.js + Fastify + TypeScript
|
||||
- Prisma(ORM)
|
||||
- PostgreSQL(数据库)
|
||||
- Redis(缓存)
|
||||
```
|
||||
|
||||
### 第三方服务
|
||||
```
|
||||
- Dify(RAG知识库)⭐
|
||||
- DeepSeek-V3(主力LLM)⭐
|
||||
- Qwen3(备用LLM)⭐
|
||||
- 阿里云OSS(对象存储)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ 核心优势
|
||||
|
||||
### 1. 开发效率高
|
||||
- ✅ 复用LobeChat聊天UI:节省9.5天
|
||||
- ✅ 使用Dify RAG:节省40天
|
||||
- ✅ 配置化智能体:节省5天
|
||||
- ✅ 总节省:**约54.5天**
|
||||
|
||||
### 2. 成本可控
|
||||
- ✅ 开发成本:¥49,300(vs 纯手写¥80k+)
|
||||
- ✅ 月度LLM成本:¥180(vs GPT-4 ¥2,500)
|
||||
- ✅ 知识库存储:¥140/月(适度规模)
|
||||
|
||||
### 3. 技术风险低
|
||||
- ✅ Dify:50k+ Stars,生产级稳定
|
||||
- ✅ LobeChat:40k+ Stars,成熟方案
|
||||
- ✅ DeepSeek-V3:性价比极高
|
||||
|
||||
### 4. 架构灵活
|
||||
- ✅ 业务逻辑完全可控
|
||||
- ✅ 可随时替换RAG引擎
|
||||
- ✅ 可随时增减LLM模型
|
||||
|
||||
---
|
||||
|
||||
## 📋 核心文件结构
|
||||
|
||||
```
|
||||
项目根目录/
|
||||
├── frontend/ # 前端
|
||||
│ ├── src/
|
||||
│ │ ├── components/
|
||||
│ │ │ ├── chat/ # 聊天组件(参考LobeChat)⭐
|
||||
│ │ │ │ ├── ChatMessage.tsx
|
||||
│ │ │ │ ├── ChatInput.tsx
|
||||
│ │ │ │ └── StreamRenderer.tsx
|
||||
│ │ │ ├── project/ # 项目管理
|
||||
│ │ │ └── kb/ # 知识库管理
|
||||
│ │ ├── pages/
|
||||
│ │ └── services/
|
||||
│ └── package.json
|
||||
│
|
||||
├── backend/ # 后端
|
||||
│ ├── src/
|
||||
│ │ ├── services/
|
||||
│ │ │ ├── chat.service.ts # 对话服务 ⭐
|
||||
│ │ │ ├── kb.service.ts # 知识库服务
|
||||
│ │ │ └── project.service.ts
|
||||
│ │ ├── adapters/
|
||||
│ │ │ └── llm-factory.ts # LLM适配器 ⭐
|
||||
│ │ ├── clients/
|
||||
│ │ │ └── dify.ts # Dify客户端
|
||||
│ │ └── config/
|
||||
│ │ └── agent-loader.ts # 智能体配置加载 ⭐
|
||||
│ ├── config/
|
||||
│ │ ├── agents.yaml # 智能体配置 ⭐
|
||||
│ │ └── models.yaml # 模型配置 ⭐
|
||||
│ ├── prompts/ # Prompt文件 ⭐
|
||||
│ │ ├── picos_system.txt
|
||||
│ │ ├── topic_evaluation_system.txt
|
||||
│ │ └── ...(共12个智能体)
|
||||
│ └── package.json
|
||||
│
|
||||
└── docker-compose.yml # Dify部署
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 快速启动
|
||||
|
||||
### 1. 准备工作
|
||||
|
||||
**申请API Key:**
|
||||
- [ ] DeepSeek API Key (https://platform.deepseek.com)
|
||||
- [ ] 阿里云DashScope Key (https://dashscope.aliyun.com)
|
||||
- [ ] 阿里云OSS (https://oss.console.aliyun.com)
|
||||
|
||||
**准备服务器:**
|
||||
- [ ] 云服务器 4核8G(开发环境)
|
||||
- [ ] PostgreSQL 数据库
|
||||
- [ ] Redis 缓存
|
||||
|
||||
### 2. 部署Dify
|
||||
|
||||
```bash
|
||||
# 克隆Dify
|
||||
git clone https://github.com/langgenius/dify.git
|
||||
cd dify/docker
|
||||
|
||||
# 启动
|
||||
docker-compose up -d
|
||||
|
||||
# 访问 http://localhost:3000
|
||||
# 创建账号并获取API Key
|
||||
```
|
||||
|
||||
### 3. 后端开发
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
npm install
|
||||
|
||||
# 配置环境变量
|
||||
cp .env.example .env
|
||||
# 填入:
|
||||
# - DATABASE_URL
|
||||
# - REDIS_URL
|
||||
# - DEEPSEEK_API_KEY
|
||||
# - DASHSCOPE_API_KEY
|
||||
# - DIFY_API_KEY
|
||||
|
||||
# 运行数据库迁移
|
||||
npx prisma migrate dev
|
||||
|
||||
# 启动开发服务器
|
||||
npm run dev
|
||||
```
|
||||
|
||||
### 4. 前端开发
|
||||
|
||||
```bash
|
||||
cd frontend
|
||||
npm install
|
||||
|
||||
# 配置API地址
|
||||
# .env.local
|
||||
VITE_API_URL=http://localhost:3001
|
||||
|
||||
# 启动开发服务器
|
||||
npm run dev
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📚 相关文档
|
||||
|
||||
### 设计文档
|
||||
- [产品需求文档(PRD)](./产品需求文档(PRD).md) - 完整的产品需求
|
||||
- [数据库设计文档](../01-设计文档/数据库设计文档.md) - 数据库表结构
|
||||
- [API设计规范](../01-设计文档/API设计规范.md) - 所有API定义
|
||||
- [代码规范](../02-开发规范/代码规范.md) - 代码风格规范
|
||||
- [核心业务规则](../03-业务规则/核心业务规则总览.md) - 业务逻辑规则
|
||||
|
||||
### 开发计划
|
||||
- [开发里程碑](../04-开发计划/开发里程碑.md) - 详细的10周开发计划
|
||||
|
||||
### 参考文档
|
||||
- **技术架构选型对比方案.md** - 完整技术方案(在项目根目录)
|
||||
- **对话系统实现方案对比.md** - 对话功能详细说明(在项目根目录)
|
||||
- **知识库需求调整说明.md** - 知识库实现方案(在项目根目录)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 关键决策清单
|
||||
|
||||
**在开始开发前,请确认:**
|
||||
|
||||
- [ ] **聊天实现方式:** 参考LobeChat + 自研对话逻辑 ✅
|
||||
- [ ] **RAG系统:** 使用Dify(无需自建)✅
|
||||
- [ ] **向量数据库:** Dify内置Qdrant(无需关心)✅
|
||||
- [ ] **运营后台:** 简化版(配置文件管理)✅
|
||||
- [ ] **主力LLM:** DeepSeek-V3 ✅
|
||||
- [ ] **备用LLM:** Qwen3 ✅
|
||||
- [ ] **知识库限制:** 3个/用户,50个文件/库 ✅
|
||||
- [ ] **开发周期:** 2.5个月 ✅
|
||||
- [ ] **团队规模:** 2人 ✅
|
||||
|
||||
---
|
||||
|
||||
## 💡 常见问题 FAQ
|
||||
|
||||
### Q1: 为什么不直接用Dify的对话功能?
|
||||
**A:** Dify对话功能需要为每个智能体创建独立应用,12个智能体管理复杂,且缺少项目管理功能。我们只用Dify做RAG检索。
|
||||
|
||||
### Q2: 对话功能自己实现会很复杂吗?
|
||||
**A:** 不复杂!核心只要4步:接收消息 → 组装上下文 → 调用LLM → 返回流式结果。参考LobeChat的实现,约需4天。
|
||||
|
||||
### Q3: 150个文件/用户,Dify够用吗?
|
||||
**A:** 完全够用!Dify单个知识库支持上万个文档片段,我们的需求远低于上限。
|
||||
|
||||
### Q4: 为什么选择DeepSeek-V3?
|
||||
**A:** 性价比极高(¥1/百万tokens),性能接近GPT-4,年度可节省¥27,840。
|
||||
|
||||
### Q5: 2.5个月真的能完成吗?
|
||||
**A:** 可以!通过复用LobeChat组件、使用Dify RAG、配置化智能体,我们节省了约54天开发时间。
|
||||
|
||||
---
|
||||
|
||||
## 🎉 总结
|
||||
|
||||
**这是一个经过充分优化、成本可控、技术可行的方案:**
|
||||
|
||||
✅ **开发周期:** 2.5个月
|
||||
✅ **开发成本:** ¥49,300
|
||||
✅ **月度成本:** ¥16,520(1000用户)
|
||||
✅ **技术难度:** ⭐⭐⭐(中等)
|
||||
✅ **风险等级:** 低(使用成熟组件和服务)
|
||||
|
||||
**立即可以开始!** 🚀
|
||||
|
||||
---
|
||||
|
||||
**文档版本:v2.0**
|
||||
**最后更新:2025-10-10**
|
||||
**文档位置:** `docs/00-项目概述/技术架构总览.md`
|
||||
**作者:** AI技术顾问
|
||||
|
||||
297
docs/00-项目概述/设计文档完成总结.md
Normal file
297
docs/00-项目概述/设计文档完成总结.md
Normal file
@@ -0,0 +1,297 @@
|
||||
# 设计文档完成总结
|
||||
|
||||
> **完成时间:** 2025-10-10
|
||||
> **耗时:** 约3小时
|
||||
> **状态:** ✅ 已完成
|
||||
|
||||
---
|
||||
|
||||
## 🎉 恭喜!核心设计文档已全部完成
|
||||
|
||||
我们按照您提出的专业开发流程,成功创建了完整的设计文档体系。这为接下来的开发工作奠定了坚实的基础。
|
||||
|
||||
---
|
||||
|
||||
## 📚 已完成的文档清单
|
||||
|
||||
### ✅ 1. 文档目录结构
|
||||
**文件:** `docs/README.md`
|
||||
|
||||
- 建立了8个文档分类目录
|
||||
- 清晰的文档导航系统
|
||||
- 文档维护指南
|
||||
|
||||
### ✅ 2. 数据库设计文档(771行)
|
||||
**文件:** `docs/01-设计文档/数据库设计文档.md`
|
||||
|
||||
**包含内容:**
|
||||
- 7个核心数据表设计
|
||||
- 完整的ER图
|
||||
- 字段说明和约束
|
||||
- 索引设计
|
||||
- Prisma Schema
|
||||
- 数据安全策略
|
||||
- 性能优化建议
|
||||
|
||||
**核心表:**
|
||||
1. users - 用户表
|
||||
2. projects - 项目/课题表
|
||||
3. conversations - 对话表
|
||||
4. messages - 消息表
|
||||
5. knowledge_bases - 知识库表
|
||||
6. documents - 文档表
|
||||
7. admin_logs - 管理员日志表
|
||||
|
||||
### ✅ 3. API设计规范(1023行)
|
||||
**文件:** `docs/01-设计文档/API设计规范.md`
|
||||
|
||||
**包含内容:**
|
||||
- RESTful API设计原则
|
||||
- 完整的8个模块API定义
|
||||
- 请求/响应格式规范
|
||||
- 错误处理规范
|
||||
- 认证授权机制
|
||||
- 分页规范
|
||||
- 性能优化建议
|
||||
|
||||
**API模块:**
|
||||
1. 认证模块(注册/登录/刷新Token)
|
||||
2. 用户模块(个人信息管理)
|
||||
3. 项目管理模块
|
||||
4. 对话管理模块(含流式输出)
|
||||
5. 智能体模块
|
||||
6. 知识库模块
|
||||
7. 历史记录模块
|
||||
8. 管理后台模块
|
||||
|
||||
### ✅ 4. 开发里程碑(586行)
|
||||
**文件:** `docs/04-开发计划/开发里程碑.md`
|
||||
|
||||
**包含内容:**
|
||||
- 10周详细开发计划
|
||||
- 5个里程碑定义
|
||||
- 每日任务分解(Day 1-70)
|
||||
- 验收标准
|
||||
- 风险管理
|
||||
- 进度跟踪机制
|
||||
|
||||
**里程碑:**
|
||||
- 设计阶段:Day 1-3 ✅
|
||||
- 里程碑1:基础架构 + 用户认证(Week 1-2)
|
||||
- 里程碑2:项目管理 + 3个智能体(Week 3-4)
|
||||
- 里程碑3:12个智能体 + 知识库(Week 5-6)
|
||||
- 里程碑4:历史记录 + 文档生成(Week 7-8)
|
||||
- 里程碑5:运营后台 + 测试优化(Week 9-10)
|
||||
|
||||
### ✅ 5. 代码规范(600+行)
|
||||
**文件:** `docs/02-开发规范/代码规范.md`
|
||||
|
||||
**包含内容:**
|
||||
- TypeScript规范
|
||||
- React组件规范
|
||||
- Node.js后端规范
|
||||
- 命名规范
|
||||
- 注释规范
|
||||
- Git提交规范
|
||||
- ESLint/Prettier配置
|
||||
- Code Review检查清单
|
||||
|
||||
### ✅ 6. 核心业务规则(700+行)
|
||||
**文件:** `docs/03-业务规则/核心业务规则总览.md`
|
||||
|
||||
**包含内容:**
|
||||
- 用户管理规则(注册/登录/权限)
|
||||
- 项目管理规则(CRUD/权限验证)
|
||||
- 智能体管理规则(配置/Prompt)
|
||||
- 对话管理规则(上下文/流式输出)
|
||||
- 知识库管理规则(配额/文档处理)
|
||||
- 权限控制规则(RBAC/数据隔离)
|
||||
- 配额限制规则(知识库/API限流)
|
||||
|
||||
**关键规则:**
|
||||
- BR-K001: 每用户最多3个知识库
|
||||
- BR-K002: 每知识库最多50个文档
|
||||
- BR-K003: 只支持PDF和DOCX格式
|
||||
- BR-K004: 单文件最大50MB
|
||||
- BR-C003: 项目背景自动注入上下文
|
||||
- BR-C006: 固定消息到项目背景
|
||||
|
||||
---
|
||||
|
||||
## 📊 文档统计
|
||||
|
||||
| 文档类型 | 文件数 | 总行数 | 状态 |
|
||||
|---------|-------|--------|------|
|
||||
| 数据库设计 | 1 | 771 | ✅ |
|
||||
| API设计 | 1 | 1,023 | ✅ |
|
||||
| 开发计划 | 1 | 586 | ✅ |
|
||||
| 代码规范 | 1 | 600+ | ✅ |
|
||||
| 业务规则 | 1 | 700+ | ✅ |
|
||||
| **总计** | **5** | **3,680+** | **✅** |
|
||||
|
||||
---
|
||||
|
||||
## 🎯 设计文档的核心价值
|
||||
|
||||
### 1. 为前后端开发提供契约
|
||||
- ✅ API设计规范是前后端协作的契约
|
||||
- ✅ 可以并行开发,互不阻塞
|
||||
- ✅ 避免接口频繁变更
|
||||
|
||||
### 2. 避免开发过程中的返工
|
||||
- ✅ 数据库设计提前确定,改动成本低
|
||||
- ✅ 业务规则明确,减少理解偏差
|
||||
- ✅ 代码规范统一,提高质量
|
||||
|
||||
### 3. 提高团队协作效率
|
||||
- ✅ 新成员快速上手
|
||||
- ✅ 减少沟通成本
|
||||
- ✅ Review有据可依
|
||||
|
||||
### 4. 便于后期维护和扩展
|
||||
- ✅ 文档化的设计决策
|
||||
- ✅ 清晰的业务逻辑
|
||||
- ✅ 可追溯的变更历史
|
||||
|
||||
---
|
||||
|
||||
## 🚀 下一步行动
|
||||
|
||||
### 立即可做(今天)
|
||||
|
||||
**1. Review设计文档**
|
||||
- [ ] 仔细阅读数据库设计文档
|
||||
- [ ] 仔细阅读API设计规范
|
||||
- [ ] 仔细阅读业务规则
|
||||
- [ ] 提出疑问和优化建议
|
||||
|
||||
**2. 团队讨论(如有团队)**
|
||||
- [ ] 召开设计Review会议
|
||||
- [ ] 确认技术细节
|
||||
- [ ] 调整不合理的地方
|
||||
|
||||
**3. 准备开发环境**
|
||||
- [ ] 安装Docker Desktop ✅(已完成)
|
||||
- [ ] 申请DeepSeek API Key ✅(已完成)
|
||||
- [ ] 申请Qwen API Key ✅(已完成)
|
||||
|
||||
### 明天开始
|
||||
|
||||
**Day 4: 环境搭建**
|
||||
- [ ] 创建项目目录结构
|
||||
- [ ] 启动Docker服务
|
||||
- [ ] 初始化Git仓库
|
||||
- [ ] 验证所有服务
|
||||
|
||||
**Day 5-7: 基础框架**
|
||||
- [ ] 后端框架搭建
|
||||
- [ ] 前端框架搭建
|
||||
- [ ] 数据库迁移
|
||||
|
||||
---
|
||||
|
||||
## 📂 文档位置
|
||||
|
||||
所有文档都保存在:
|
||||
```
|
||||
AIclinicalresearch/docs/
|
||||
├── README.md # 文档导航
|
||||
├── 00-项目概述/
|
||||
│ └── 设计文档完成总结.md # 本文档
|
||||
├── 01-设计文档/
|
||||
│ ├── 数据库设计文档.md ⭐
|
||||
│ └── API设计规范.md ⭐
|
||||
├── 02-开发规范/
|
||||
│ └── 代码规范.md ⭐
|
||||
├── 03-业务规则/
|
||||
│ └── 核心业务规则总览.md ⭐
|
||||
└── 04-开发计划/
|
||||
└── 开发里程碑.md ⭐
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 💡 使用建议
|
||||
|
||||
### 对于开发者
|
||||
1. **开发前必读:**
|
||||
- 数据库设计文档(了解表结构)
|
||||
- API设计规范(了解接口定义)
|
||||
- 代码规范(统一代码风格)
|
||||
|
||||
2. **开发中参考:**
|
||||
- 业务规则总览(理解业务逻辑)
|
||||
- 开发里程碑(明确当前任务)
|
||||
|
||||
3. **遇到问题时:**
|
||||
- 先查阅相关文档
|
||||
- 文档不清楚时再讨论
|
||||
- 讨论结果更新文档
|
||||
|
||||
### 对于项目经理
|
||||
1. **进度管理:**
|
||||
- 参考开发里程碑
|
||||
- 每周更新进度
|
||||
- 风险及时沟通
|
||||
|
||||
2. **质量把控:**
|
||||
- Code Review参考代码规范
|
||||
- 验收参考验收标准
|
||||
- 业务逻辑参考业务规则
|
||||
|
||||
---
|
||||
|
||||
## ✅ 验收检查
|
||||
|
||||
### 设计文档质量检查
|
||||
- [x] 数据库设计完整,包含所有核心表
|
||||
- [x] API设计覆盖所有功能模块
|
||||
- [x] 业务规则清晰,无二义性
|
||||
- [x] 开发计划详细,可执行性强
|
||||
- [x] 代码规范全面,有示例代码
|
||||
|
||||
### 可用性检查
|
||||
- [x] 文档结构清晰,易于查找
|
||||
- [x] 术语统一,无矛盾之处
|
||||
- [x] 有充足的示例和说明
|
||||
- [x] 便于维护和更新
|
||||
|
||||
---
|
||||
|
||||
## 🎊 总结
|
||||
|
||||
**我们完成了一件非常重要的工作!**
|
||||
|
||||
通过这3小时的努力,我们建立了:
|
||||
- ✅ **完整的文档体系**(5个核心文档,3680+行)
|
||||
- ✅ **清晰的开发路线图**(10周70天详细计划)
|
||||
- ✅ **统一的技术规范**(数据库、API、代码)
|
||||
- ✅ **明确的业务规则**(70+条业务规则)
|
||||
|
||||
**这些文档的价值:**
|
||||
- 💰 **节省时间**:避免后期返工,预计节省15-20天
|
||||
- 📈 **提高质量**:统一规范,代码质量更高
|
||||
- 🤝 **降低风险**:设计明确,技术风险可控
|
||||
- 🚀 **加快开发**:任务清晰,并行开发更高效
|
||||
|
||||
---
|
||||
|
||||
## 🎯 现在可以信心满满地开始开发了!
|
||||
|
||||
**基于这些文档,我们可以:**
|
||||
1. ✅ 前后端并行开发(API已定义)
|
||||
2. ✅ 数据库结构稳定(很少需要迁移)
|
||||
3. ✅ 业务逻辑明确(减少理解偏差)
|
||||
4. ✅ 代码风格统一(便于协作和Review)
|
||||
5. ✅ 进度可控(每日任务清晰)
|
||||
|
||||
---
|
||||
|
||||
**准备好了吗?让我们开始Day 4的开发工作吧!** 🚀
|
||||
|
||||
---
|
||||
|
||||
**文档版本:** v1.0
|
||||
**完成时间:** 2025-10-10
|
||||
**创建者:** AI技术顾问 + 项目团队
|
||||
|
||||
Reference in New Issue
Block a user