# [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智能文献PRD(1)-产品概览.md` - `00-项目概述/AI智能文献PRD(2)-初筛与复筛.md` - `00-项目概述/AI智能文献PRD(3)-提取与分析模块.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; } ``` **实施建议:** 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 2(11月11-15日) - **Day 1-2:** 项目管理基础CRUD - **Day 3-4:** 标题摘要初筛后端(含LLM网关) - **Day 5:** 标题摘要初筛前端 ### Week 3(11月18-22日) - **Day 1-2:** 全文复筛后端 - **Day 3-4:** 全文复筛前端 - **Day 5:** 测试和优化 ### Week 4(11月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智能文献PRD(1-3).md`(3个文档) **需要数据库详情:** → AI智能文献目录下的 `02-技术设计/01-数据库设计.md` **需要API详情:** → AI智能文献目录下的 `02-技术设计/02-API设计规范.md` **需要UI设计:** → `01-设计文档/AI智能文献-标题摘要初筛原型.html` → `01-设计文档/AI智能文献-全文复筛.html` --- **最后更新:** 2025-11-06 **维护人:** 技术架构师