Files
AIclinicalresearch/docs/03-业务模块/ASL-AI智能文献/[AI对接] ASL快速上下文.md
HaHafeng 31d555f7bb docs: Update architecture docs with platform infrastructure details
- Add platform infrastructure chapter to frontend-backend architecture design
- Update system architecture document with 6 new infrastructure modules
- Update AI onboarding guide with infrastructure overview
- Link to backend/src/common/README.md for detailed usage guide

Key Updates:
- Storage service (LocalAdapter + OSSAdapter)
- Logging system (Winston + JSON format)
- Cache service (Memory + Redis)
- Async job queue (Memory + Database)
- Health check endpoints
- Monitoring metrics
- Database connection pool
- Environment config management

All modules support zero-code switching between local and cloud environments.

Related: #Platform-Infrastructure
2025-11-17 08:36:10 +08:00

323 lines
8.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
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.
# [AI对接] ASL快速上下文
> **阅读时间:** 3-5分钟 | **Token消耗** ~2000 tokens
> **层级:** L2 | **前置阅读:** 00-系统总体设计/[AI对接] 快速上下文.md
---
## 📋 模块定位
**AI智能文献筛选系统**,帮助研究者快速筛选和分析大量文献,提高系统评价效率。
**商业价值:** ⭐⭐⭐⭐⭐ 可独立售卖
**开发状态:** ⏳ 即将开发Week 2-4
**依赖能力:** LLM网关P0、文档处理引擎、RAG引擎
---
## 🎯 核心功能6个模块
1.**标题摘要初筛** - 双模型AI判断 → Week 2-3重点
2.**全文复筛** - PDF全文分析 → Week 3-4重点
3. ⏳ 全文解析与数据提取
4. ⏳ 数据分析与报告生成
5. ⏳ 系统评价与Meta分析
6. ⏳ 文献管理
**本次开发重点:** 标题摘要初筛 + 全文复筛
---
## 🏗️ 技术架构一览
### 前端React
```
src/pages/Literature/
├── ProjectManagement/ # 文献项目管理
├── TitleScreening/ # 标题摘要初筛 ⭐
├── FullTextScreening/ # 全文复筛 ⭐
├── DataExtraction/ # 数据提取
└── Management/ # 文献管理
```
### 后端Node.js
```
backend/src/modules/asl/
├── controllers/
│ ├── projectController.ts # 项目管理
│ ├── screeningController.ts # 筛选控制 ⭐
│ └── extractionController.ts # 数据提取
├── services/
│ ├── screeningService.ts # 筛选业务逻辑 ⭐
│ └── extractionService.ts
└── routes/
└── literatureRoutes.ts
```
### 数据库asl_schema
```sql
CREATE SCHEMA asl_schema;
- literature_projects #
- literature_items # CSV导入
- pico_configs # PICO(S)
- screening_results # INCLUDE/EXCLUDE/UNCERTAIN
- screening_history #
- extraction_tasks #
- extraction_results #
```
---
## 💡 核心业务流程
### 标题摘要初筛流程 ⭐
```
1. 用户上传CSV文件包含标题、摘要、作者等
2. 配置PICO(S)纳入/排除标准
- P: Population研究对象
- I: Intervention干预措施
- C: Comparison对照
- O: Outcome结局指标
- S: Study Design研究类型
3. AI双模型判断DeepSeek + Qwen3
- 每篇文献独立判断
- 两个模型投票
- 固定3并发处理
4. 返回结果INCLUDE / EXCLUDE / UNCERTAIN
- INCLUDE: 两个模型都认为应纳入
- EXCLUDE: 两个模型都认为应排除
- UNCERTAIN: 两个模型意见不一致,需人工复核
5. 导出Excel双Sheet设计
- Sheet1: 通过的文献INCLUDE
- Sheet2: 未通过的文献EXCLUDE + UNCERTAIN
```
### AI判断逻辑关键
```typescript
// 双模型投票机制
if (deepseekResult === "INCLUDE" && qwen3Result === "INCLUDE") {
finalResult = "INCLUDE";
} else if (deepseekResult === "EXCLUDE" && qwen3Result === "EXCLUDE") {
finalResult = "EXCLUDE";
} else {
// 意见不一致
finalResult = "UNCERTAIN"; // 标记为需要人工复核
}
```
---
## 📚 已有设计文档
### PRD文档完整
- `00-项目概述/AI智能文献PRD1-产品概览.md`
- `00-项目概述/AI智能文献PRD2-初筛与复筛.md`
- `00-项目概述/AI智能文献PRD3-提取与分析模块.md`
**内容:** 完整的功能需求、用户故事、验收标准
### 技术设计(完整!)
- `01-设计文档/02-数据库设计.md` - 完整表结构
- `01-设计文档/03-API设计.md` - 所有API端点
- `01-设计文档/04-前端组件设计.md` - 组件树
- `01-设计文档/05-AI模型集成设计.md` - 双模型投票逻辑
### UI原型完整
- `01-设计文档/07-UI设计/标题摘要初筛原型.html`
- `01-设计文档/07-UI设计/全文复筛原型.html`
---
## 🔗 依赖的通用能力
### 1. LLM网关❌ 待实现P0⭐ **必须先实现**
**为什么ASL需要LLM网关**
- 标题摘要初筛需要调用2个LLM模型
- 全文复筛需要调用1个LLM模型
- 需要成本控制和配额管理
**接口需求:**
```typescript
// ASL模块需要的接口
interface LLMGateway {
// 单次调用(非流式)
chat(params: {
userId: string;
modelType: 'deepseek-v3' | 'qwen3';
messages: Message[];
}): Promise<{
content: string;
tokenUsage: number;
}>;
// 检查配额
checkQuota(userId: string): Promise<boolean>;
}
```
**实施建议:** Week 2 Day 1-3 同步开发LLM网关
---
### 2. 文档处理引擎(✅ 已实现)
**ASL使用场景**
- 全文复筛PDF全文提取
**已有接口:**
```typescript
// extraction_service已提供
POST /api/extract/pdf
```
---
### 3. RAG引擎✅ 已实现,可选)
**ASL使用场景可选**
- 文献内容检索
- 文献相似度分析
---
## 📋 API端点清单
### 项目管理
```
POST /api/v1/literature/projects # 创建文献项目
GET /api/v1/literature/projects # 获取项目列表
GET /api/v1/literature/projects/:id # 获取项目详情
PUT /api/v1/literature/projects/:id # 更新项目
DELETE /api/v1/literature/projects/:id # 删除项目
```
### 标题摘要初筛 ⭐
```
POST /api/v1/literature/projects/:id/items/import # 导入CSV
POST /api/v1/literature/projects/:id/pico # 配置PICO
POST /api/v1/literature/projects/:id/screening/title # 执行初筛
GET /api/v1/literature/projects/:id/screening/status # 查询进度
GET /api/v1/literature/projects/:id/screening/results # 获取结果
POST /api/v1/literature/projects/:id/screening/export # 导出Excel
```
### 全文复筛
```
POST /api/v1/literature/projects/:id/screening/fulltext # 执行全文筛选
```
---
## 📅 开发计划
### Week 211月11-15日
- **Day 1-2** 项目管理基础CRUD
- **Day 3-4** 标题摘要初筛后端含LLM网关
- **Day 5** 标题摘要初筛前端
### Week 311月18-22日
- **Day 1-2** 全文复筛后端
- **Day 3-4** 全文复筛前端
- **Day 5** 测试和优化
### Week 411月25-29日
- **Day 1-2** 数据提取功能
- **Day 3-5** 整体测试和文档完善
---
## ⚠️ 关键技术难点
### 1. AI判断准确率
**解决方案:**
- 双模型投票机制
- 优化PICO提示词
- 提供人工复核入口UNCERTAIN项
### 2. 大批量处理
**解决方案:**
- 固定3并发p-queue
- 实时进度显示
- 失败重试机制
### 3. CSV解析
**解决方案:**
- 使用papaparse库
- 支持多种编码UTF-8、GBK
- 容错处理
### 4. PDF全文提取
**解决方案:**
- 调用extraction_service
- 降级策略Nougat → PyMuPDF
---
## ✅ 快速开发检查清单
**开始开发前确认:**
- [ ] LLM网关是否已实现如未实现Week 2 Day 1-3同步开发
- [ ] 数据库Schema是否已创建asl_schema
- [ ] Prisma Schema是否已更新
- [ ] API路由是否已注册
- [ ] 前端路由是否已配置?
**常见问题:**
**Q: LLM调用超时怎么办**
A: 设置timeout=60s添加重试机制最多3次
**Q: CSV解析失败怎么办**
A: 检查编码格式,提供明确的错误提示,支持重新上传
**Q: 两个模型都返回UNCERTAIN怎么办**
A: 标记为UNCERTAIN提示用户需要人工复核
**Q: PDF提取失败怎么办**
A: 降级策略Nougat → PyMuPDF → 提示用户手动处理
---
## 📖 更多详细信息
**需要完整PRD**
`00-项目概述/AI智能文献PRD1-3.md`3个文档
**需要数据库详情:**
→ AI智能文献目录下的 `02-技术设计/01-数据库设计.md`
**需要API详情**
→ AI智能文献目录下的 `02-技术设计/02-API设计规范.md`
**需要UI设计**
`01-设计文档/AI智能文献-标题摘要初筛原型.html`
`01-设计文档/AI智能文献-全文复筛.html`
---
**最后更新:** 2025-11-06
**维护人:** 技术架构师