417 lines
12 KiB
Markdown
417 lines
12 KiB
Markdown
# AI科研助手 - 优化方案总结
|
||
|
||
## 📋 需求澄清与方案调整
|
||
|
||
### 🔄 重要需求变更:知识库规模
|
||
|
||
**原PRD描述:**
|
||
> "后期考虑,增加基于大规模(1000篇以内)文献的读取、识别、内容提取的工作"
|
||
|
||
**实际需求(已明确):**
|
||
- ✅ 每个用户最多创建 **3个知识库**
|
||
- ✅ 每个知识库最多上传 **50个文件**
|
||
- ✅ 主要格式:**PDF、DOCX**
|
||
- ✅ 单用户最大文档量:**150个文件**
|
||
|
||
**影响:**
|
||
- 🎉 技术难度从 ⭐⭐⭐⭐⭐ 降至 ⭐⭐⭐
|
||
- 🎉 **Dify完全满足需求**,无需自建RAG系统
|
||
- 🎉 开发成本进一步降低
|
||
- 🎉 性能优化需求降低
|
||
|
||
---
|
||
|
||
## 📋 您提出的问题与解决方案
|
||
|
||
### 问题1:聊天功能如何实现?
|
||
|
||
**您的担忧:** 不用LobeChat整体,如何保证聊天功能稳定?
|
||
|
||
**我的方案:** ✅ **参考LobeChat开源实现,复用核心聊天组件**
|
||
|
||
```
|
||
策略:
|
||
├── ❌ 不采用:LobeChat整体(缺少项目管理、知识库功能)
|
||
├── ❌ 不采用:Dify + LobeChat组合(集成复杂,定制成本高)
|
||
├── ✅ 采用:提取LobeChat的聊天UI组件到我们的React项目
|
||
└── ✅ 采用:参考其流式输出、Markdown渲染的实现逻辑
|
||
```
|
||
|
||
**具体实施:**
|
||
1. 克隆LobeChat源码(MIT开源许可,可自由使用)
|
||
2. 提取核心组件:ChatMessage、ChatInput、StreamRenderer、MarkdownContent
|
||
3. 移植到我们的React+Vite项目中
|
||
4. 自研业务逻辑:项目管理、智能体编排、知识库集成
|
||
|
||
**优势:**
|
||
- 聊天体验有保障(LobeChat已被4万+用户验证)
|
||
- 节省开发时间(9.5天 → 见详细方案)
|
||
- 保持架构灵活性(不被整体框架绑定)
|
||
|
||
---
|
||
|
||
### 问题2:向量数据库还需要考虑吗?
|
||
|
||
**回答:** ❌ **完全不需要考虑**
|
||
|
||
**原因:**
|
||
- Dify内置了Qdrant向量数据库
|
||
- 文档解析、向量化、检索全由Dify处理
|
||
- 我们只需调用Dify的REST API即可
|
||
|
||
**实际需求下更加确定:**
|
||
```
|
||
知识库规模:
|
||
- 3个知识库/用户
|
||
- 50个文件/知识库
|
||
- 150个文件/用户最大
|
||
|
||
Dify的能力:
|
||
- 单个知识库支持上万个文档片段
|
||
- 我们只需150个文件,远低于上限
|
||
- Dify内置Qdrant完全够用!✅
|
||
```
|
||
|
||
**我们需要做的:**
|
||
```javascript
|
||
// 只需调用Dify API
|
||
const results = await difyClient.queryKnowledgeBase({
|
||
datasetId: 'kb-xxx',
|
||
query: '骨质疏松的治疗方案',
|
||
topK: 5
|
||
});
|
||
|
||
// Dify自动处理:
|
||
// 1. 向量检索(Qdrant)
|
||
// 2. 混合检索(关键词+语义)
|
||
// 3. 重排序(Reranking)
|
||
// 4. 返回结果
|
||
```
|
||
|
||
**数据库设计(业务层):**
|
||
```sql
|
||
-- 我们只需要管理知识库的元数据
|
||
CREATE TABLE knowledge_bases (
|
||
id VARCHAR(50) PRIMARY KEY,
|
||
user_id VARCHAR(50) NOT NULL,
|
||
name VARCHAR(100) NOT NULL,
|
||
dify_dataset_id VARCHAR(100) NOT NULL, -- Dify知识库ID
|
||
file_count INT DEFAULT 0,
|
||
-- 限制:每个用户最多3个
|
||
CONSTRAINT check_kb_limit CHECK (
|
||
(SELECT COUNT(*) FROM knowledge_bases WHERE user_id = user_id) <= 3
|
||
)
|
||
);
|
||
|
||
-- 文档表
|
||
CREATE TABLE documents (
|
||
id VARCHAR(50) PRIMARY KEY,
|
||
kb_id VARCHAR(50) NOT NULL,
|
||
filename VARCHAR(255) NOT NULL,
|
||
file_size_bytes BIGINT NOT NULL,
|
||
status VARCHAR(20) DEFAULT 'processing', -- processing, completed, failed
|
||
dify_document_id VARCHAR(100) NOT NULL,
|
||
-- 限制:每个知识库最多50个
|
||
CONSTRAINT check_doc_limit CHECK (
|
||
(SELECT COUNT(*) FROM documents WHERE kb_id = kb_id) <= 50
|
||
)
|
||
);
|
||
```
|
||
|
||
---
|
||
|
||
### 问题3:删除运营端功能后的方案
|
||
|
||
**已删除功能:** ✅ 降低开发成本
|
||
|
||
| 功能 | 状态 | 替代方案 |
|
||
|------|------|---------|
|
||
| 模型管理 | ❌ 删除 | 配置文件:`config/models.yaml` |
|
||
| 智能体管理 | ❌ 删除 | 配置文件:`config/agents.yaml` |
|
||
| 智能体配置 | ❌ 删除 | Prompt文件:`prompts/*.txt` |
|
||
| Prompt版本管理 | ❌ 删除 | Git版本控制 |
|
||
| 用户管理 | ✅ 保留 | 简化版(列表、禁用、查看) |
|
||
| 数据统计 | ✅ 保留 | 简化版(基础仪表盘) |
|
||
| 对话查看 | ✅ 保留 | 仅管理员可查看 |
|
||
|
||
**配置文件示例:**
|
||
|
||
```yaml
|
||
# config/agents.yaml
|
||
agents:
|
||
- id: agent-picos
|
||
name: PICOS构建
|
||
system_prompt_file: prompts/picos_system.txt
|
||
models:
|
||
deepseek-v3:
|
||
temperature: 0.3
|
||
max_tokens: 2500
|
||
rag_enabled: true
|
||
status: active
|
||
```
|
||
|
||
**优势:**
|
||
- 开发时间节省:约3周
|
||
- 开发成本降低:¥77,000 → ¥49,300(节省36%)
|
||
- 维护更简单:直接修改配置文件,无需后台界面
|
||
- 版本控制:所有配置由Git管理
|
||
|
||
---
|
||
|
||
### 问题4:大模型优先级
|
||
|
||
**您的要求:** 优先DeepSeek-V3和Qwen3
|
||
|
||
**已更新方案:** ✅
|
||
|
||
**模型配置:**
|
||
```yaml
|
||
# config/models.yaml
|
||
models:
|
||
primary:
|
||
- name: deepseek-v3
|
||
provider: deepseek
|
||
api_key: ${DEEPSEEK_API_KEY}
|
||
base_url: https://api.deepseek.com/v1
|
||
pricing:
|
||
input: 1 # ¥1/百万tokens
|
||
output: 2 # ¥2/百万tokens
|
||
features:
|
||
- reasoning # 推理能力强
|
||
- long_context # 支持128k上下文
|
||
|
||
secondary:
|
||
- name: qwen3-72b
|
||
provider: aliyun
|
||
api_key: ${DASHSCOPE_API_KEY}
|
||
base_url: https://dashscope.aliyuncs.com/api/v1
|
||
pricing:
|
||
input: 4 # ¥4/百万tokens
|
||
output: 4
|
||
features:
|
||
- chinese # 中文理解好
|
||
- stable # 国内稳定
|
||
|
||
optional:
|
||
- name: gemini-2.0-flash
|
||
provider: google
|
||
api_key: ${GEMINI_API_KEY}
|
||
# 可选,国际用户使用
|
||
```
|
||
|
||
**成本对比(1000用户/月):**
|
||
|
||
| 模型 | 月度成本 | 年度成本 | 性价比 |
|
||
|------|---------|---------|--------|
|
||
| **DeepSeek-V3** ⭐ | **¥150** | **¥1,800** | **最高** |
|
||
| Qwen3-72B | ¥600 | ¥7,200 | 高 |
|
||
| Gemini Pro | ¥300 | ¥3,600 | 中 |
|
||
| GPT-4 | ¥2,500 | ¥30,000 | 低 |
|
||
|
||
**建议:**
|
||
- 90%的请求使用DeepSeek-V3(极具性价比)
|
||
- 10%的请求使用Qwen3(需要更强中文理解时)
|
||
- 年度可节省LLM成本:¥1,200-1,500
|
||
|
||
---
|
||
|
||
## 🎯 最终优化方案总结
|
||
|
||
### 核心架构
|
||
|
||
```
|
||
┌─────────────────────────────────────────┐
|
||
│ 自定义前端(React + Vite) │
|
||
│ - 项目管理(自研) │
|
||
│ - 智能体选择(自研) │
|
||
│ - 聊天界面(参考LobeChat)⭐ │
|
||
│ - 知识库管理(自研) │
|
||
└─────────────────────────────────────────┘
|
||
↓ REST API
|
||
┌─────────────────────────────────────────┐
|
||
│ 业务层 (Node.js/TypeScript) │
|
||
│ - 智能体路由(配置化)⭐ │
|
||
│ - 上下文组装 │
|
||
│ - 用户认证 │
|
||
│ - 简化运营后台⭐ │
|
||
└─────────────────────────────────────────┘
|
||
↓ ↓
|
||
┌──────────────────┐ ┌─────────────────┐
|
||
│ Dify (RAG) │ │ LLM API │
|
||
│ - 知识库 │ │ - DeepSeek-V3⭐│
|
||
│ - 文档解析 │ │ - Qwen3 ⭐ │
|
||
│ - Qdrant(内置)⭐│ │ - Gemini(可选) │
|
||
└──────────────────┘ └─────────────────┘
|
||
```
|
||
|
||
### 技术栈
|
||
|
||
**前端:**
|
||
- React 18 + TypeScript + Vite
|
||
- TailwindCSS + HeadlessUI
|
||
- Zustand(状态管理)
|
||
- **LobeChat聊天组件(复用)** ⭐
|
||
|
||
**后端:**
|
||
- Node.js + Fastify + TypeScript
|
||
- Prisma(ORM)+ PostgreSQL
|
||
- Redis(缓存)
|
||
|
||
**RAG:**
|
||
- Dify(Docker部署,内置Qdrant)⭐
|
||
|
||
**LLM:**
|
||
- DeepSeek-V3(主力)⭐
|
||
- Qwen3-72B(备用)⭐
|
||
|
||
**配置管理:**
|
||
- agents.yaml(智能体配置)⭐
|
||
- models.yaml(模型配置)⭐
|
||
- prompts/*.txt(Prompt文件)⭐
|
||
|
||
### 开发计划
|
||
|
||
| 阶段 | 内容 | 时间 |
|
||
|------|------|------|
|
||
| 阶段1 | 基础搭建 + 复用LobeChat组件 | 1.5周 |
|
||
| 阶段2 | 核心功能(12个智能体) | 3.5周 |
|
||
| 阶段3 | 高级功能(RAG、文档生成) | 2周 |
|
||
| 阶段4 | 简化运营后台 | 1周 |
|
||
| 阶段5 | 测试优化 | 2周 |
|
||
| **总计** | **10周(2.5个月)** | ⭐ |
|
||
|
||
### 成本估算
|
||
|
||
**开发成本(知识库需求明确后):**
|
||
- 人力:4人月 × ¥12k = ¥48,000
|
||
- 服务器(开发):¥1,250
|
||
- LLM API(测试):¥50(DeepSeek-V3极便宜)
|
||
- **总计:¥49,300** ⭐
|
||
|
||
**月度运营成本(1000用户):**
|
||
- 基础设施:¥1,200
|
||
- LLM API:¥180(主要用DeepSeek-V3)
|
||
- 对象存储(知识库文件):¥140(750GB存储 + 流量)⭐
|
||
- 人力(运维):¥15,000
|
||
- **总计:¥16,520/月**
|
||
|
||
**成本节省:**
|
||
- vs 原方案(大规模文献):节省约 ¥500/月
|
||
- vs 纯手写:节省 ¥30,700+(38%+)
|
||
|
||
**知识库成本明细:**
|
||
```
|
||
单用户:150个文件 × 5MB = 750MB
|
||
1000用户:750GB总存储
|
||
|
||
对象存储(阿里云OSS):
|
||
- 存储费:750GB × ¥0.12/GB = ¥90/月
|
||
- 流量费:100GB × ¥0.5/GB = ¥50/月
|
||
- 总计:¥140/月
|
||
|
||
注:比原估算的"大规模文献处理"节省60%成本
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ 优势总结
|
||
|
||
### 1. 聊天功能有保障
|
||
- ✅ 参考LobeChat成熟实现
|
||
- ✅ 流式输出、Markdown渲染开箱即用
|
||
- ✅ 节省9.5天开发时间
|
||
|
||
### 2. 向量数据库无需关心(知识库需求明确后更加确定)
|
||
- ✅ Dify内置Qdrant,自动处理
|
||
- ✅ 只需调用API,降低技术难度
|
||
- ✅ 150个文件/用户,远低于Dify上限
|
||
- ✅ 无需考虑性能优化
|
||
|
||
### 3. 开发成本大幅降低
|
||
- ✅ 删除复杂后台功能,节省3周
|
||
- ✅ 配置文件管理,易于维护
|
||
- ✅ 总成本:¥49,300(vs ¥77,000)
|
||
|
||
### 4. LLM成本最优
|
||
- ✅ DeepSeek-V3:¥1/百万tokens
|
||
- ✅ 月度LLM成本:¥180(vs GPT-4的¥2,500)
|
||
- ✅ 年度节省:¥27,840
|
||
|
||
### 5. 开发周期短
|
||
- ✅ 2.5个月可上线MVP
|
||
- ✅ 复用成熟组件,降低风险
|
||
|
||
---
|
||
|
||
## 📝 下一步行动
|
||
|
||
### 立即可做:
|
||
|
||
**1. 确认技术方案** ✅
|
||
- 是否采用优化后的混合架构?
|
||
- 是否同意删除后台管理功能?
|
||
|
||
**2. 准备环境**
|
||
```bash
|
||
# 申请LLM API Key
|
||
- DeepSeek API Key (https://platform.deepseek.com)
|
||
- 阿里云DashScope Key (https://dashscope.aliyun.com)
|
||
|
||
# 准备服务器
|
||
- 云服务器 4核8G(开发环境)
|
||
- PostgreSQL 数据库
|
||
- Redis 缓存
|
||
|
||
# 准备代码仓库
|
||
- GitHub/GitLab 仓库
|
||
```
|
||
|
||
**3. 组建团队**
|
||
- 1名全栈开发(Node.js + React)
|
||
- 1名前端开发(React + TailwindCSS)
|
||
- 预计:2.5个月完成
|
||
|
||
**4. 启动开发**
|
||
|
||
**第1周:**
|
||
- [ ] 搭建前后端框架
|
||
- [ ] 部署Dify(Docker)
|
||
- [ ] 克隆LobeChat,提取聊天组件
|
||
|
||
**第2-4周:**
|
||
- [ ] 实现3个核心智能体
|
||
- [ ] 集成DeepSeek-V3
|
||
- [ ] 完成基础对话功能
|
||
|
||
**第5-7周:**
|
||
- [ ] 完善12个智能体
|
||
- [ ] 集成Dify RAG
|
||
- [ ] 项目管理功能
|
||
|
||
**第8-10周:**
|
||
- [ ] 简化运营后台
|
||
- [ ] 测试优化
|
||
- [ ] 上线MVP
|
||
|
||
---
|
||
|
||
## 🎉 总结
|
||
|
||
**优化后的方案:**
|
||
- ✅ 聊天功能:参考LobeChat,稳定可靠
|
||
- ✅ 向量数据库:Dify内置,无需关心
|
||
- ✅ 运营后台:配置化,大幅简化
|
||
- ✅ 大模型:DeepSeek-V3优先,成本最优
|
||
- ✅ 开发周期:2.5个月
|
||
- ✅ 开发成本:¥49,300
|
||
- ✅ 月度成本:¥16,400(1000用户)
|
||
|
||
**这是最适合您项目的技术方案!** 🚀
|
||
|
||
---
|
||
|
||
**文档版本:v2.0(优化版)**
|
||
**更新时间:2025-10-10**
|
||
**作者:AI技术顾问**
|
||
|