# ASL模块开?- 新AI交接文档 **日期**: 2025-11-18 **当前阶段**: Week 2 - 前端UI开? **阅读时间**: 5分钟 --- ## 🎯 项目概述 ### 这是什么项目? **AIclinicalresearch** - 医学临床研究AI平台 一个覆盖医学研究全生命周期的AI辅助平台,包?大业务模块?*当前正在开发ASL模块**(AI智能文献筛选)? --- ### 系统架构(三层) ``` ┌─────────────────────────────────────────? ? 业务模块?(Business Layer) ? ? - ASL (AI智能文献) ?当前开发中 ? ? - AIA, PKB, DC, SSA, ST, RVW ? └─────────────────────────────────────────? ?依赖 ┌─────────────────────────────────────────? ? 能力?(Capability Layer) ? ? - LLM Gateway (5个模型已集成) ? ? ? - Document Processing Engine ? ? - RAG Engine, ETL, Medical NLP ? └─────────────────────────────────────────? ?依赖 ┌─────────────────────────────────────────? ? 平台基础设施?(Platform Layer) ? ? 8个核心模?- 已完?? ? ? Storage, Logging, Caching, Jobs, etc. ? └─────────────────────────────────────────? ``` **关键特?*: - **Schema隔离**: 10个独立PostgreSQL Schema - **模块?*: 每个业务模块独立开发、部署、销? - **云原?*: 优化Alibaba Cloud SAE部署 --- ## 📍 当前状态(2025-11-18? ### ?Week 1 已完成(提前4天) **后端开?* (100%): - ?数据库Schema设计?个表,asl_schema? - ?后端API框架?0个接口) - ?LLM双模型筛选服? - ?三种筛选风格(宽松/标准/严格? - ?JSON解析器修复(支持中文引号? - ?API测试完成?/7通过? **核心成果**: 1. **双模型筛?*: DeepSeek-V3 + Qwen-Max并行 2. **三种Prompt**: 宽松/标准/严格模式 3. **理由展示**: 保存两个模型的完整判断理? 4. **冲突检?*: 只检测conclusion冲突,不检测PICO差异 --- ### ?Week 2 待开始(当前任务? **前端UI开?* (0%): - ?Day 1-2: 项目管理界面 - ?Day 3-4: 文献导入界面 - ?Day 5: 筛选结果展? --- ## 🔧 技术栈 ### 前端 - **框架**: React 18 + TypeScript - **UI?*: Ant Design 5 - **路由**: React Router v6 - **状?*: React Query + Zustand - **架构**: Frontend-v2(模块化注册? ### 后端 - **框架**: Fastify + TypeScript - **ORM**: Prisma - **数据?*: PostgreSQL (asl_schema) - **LLM**: DeepSeek-V3, Qwen-Max, GPT-4o, Claude-4.5 ### 已完成的平台服务(可直接使用? ```typescript import { logger } from '@/common/logging'; // 日志 import { storage } from '@/common/storage'; // 存储 import { cache } from '@/common/cache'; // 缓存 import { jobQueue } from '@/common/jobs'; // 异步任务 import { prisma } from '@/config/database'; // 数据? ``` --- ## 📂 关键目录结构 ### 前端(待开发) ``` frontend-v2/src/modules/asl/ ├── pages/ # 页面组件 ? ├── ProjectList/ # 项目列表??Week 2 Day 1 ? ├── ProjectDetail/ # 项目详情??Week 2 Day 2 ? ├── LiteratureImport/ # 文献导入??Week 2 Day 3-4 ? └── ScreeningResults/ # 筛选结果页 ?Week 2 Day 5 ├── components/ # 通用组件 ├── hooks/ # 自定义Hooks ├── services/ # API调用 ├── types/ # TypeScript类型 └── index.tsx # 模块入口 ``` ### 后端(已完成)✅ ``` backend/src/modules/asl/ ├── controllers/ # 控制?? ├── services/ # 业务逻辑 ? ? └── llmScreeningService.ts # 核心筛选服? ├── routes/ # 路由 ? ├── schemas/ # JSON Schema + Prompt生成 ? ├── types/ # 类型定义 ? └── prompts/ # 三种Prompt模板 ? ├── v1.1.0-lenient.txt # 宽松模式 ├── v1.1.0-standard.txt # 标准模式 └── v1.1.0-strict.txt # 严格模式 ``` --- ## 🌟 核心功能说明 ### 1. 双模型筛选机? **工作流程**: ``` 1. 用户上传文献(Excel? 2. 系统解析文献(标?摘要? 3. 并行调用两个LLM模型? - DeepSeek-V3 - Qwen-Max 4. 两个模型独立判断(include/exclude? 5. 系统检测冲突(conclusion是否一致) 6. 返回结果? - 一??finalDecision = 模型结论 - 冲突 ?finalDecision = pending(需人工复核? ``` **重要**: 保存两个模型?*完整理由**供用户查? --- ### 2. 三种筛选风? | 风格 | 特点 | 使用场景 | |------|------|----------| | **宽松模式** | 宁可多纳入,不错?| 初筛阶段 | | **标准模式** | 平衡准确率和召回?| 常规使用 | | **严格模式** | 宁可错杀,保证质?| 精筛阶段 | **实现**: 已在后端实现,前端需添加选择? --- ### 3. 数据模型(asl_schema? **4个核心表**: ```sql screening_projects -- 筛选项目(存PICOS、纳排标准) literatures -- 文献条目(标题、摘要、PDF链接? screening_results -- 筛选结果(两个模型的判?理由? screening_tasks -- 筛选任务(批量任务进度跟踪? ``` --- ## 🎨 UI原型参? **位置**: `docs/03-业务模块/ASL-AI智能文献/03-UI设计/AI智能文献-标题摘要初筛原型.html` **核心页面**: 1. **项目列表** - 显示所有筛选项? 2. **项目详情** - PICOS标准、纳排标准、文献列? 3. **文献导入** - Excel上传、预览、导? 4. **筛选结?* - 显示筛选结果、两个模型的理由、冲突标? --- ## 📋 Week 2 开发任务(详细清单? ### Day 1-2: 项目管理界面 **任务**: - [ ] 创建项目列表页(`/asl/projects`? - [ ] 创建项目按钮 + 创建项目表单 - 项目名称 - PICOS标准?个字段) - 纳入标准(文本域? - 排除标准(文本域? - **筛选风格选择**(Radio: 宽松/标准/严格)⭐ - [ ] 项目列表展示(Table? - [ ] 项目详情页(`/asl/projects/:id`? **API接口**(已完成? - `POST /api/v1/asl/projects` - 创建项目 - `GET /api/v1/asl/projects` - 获取项目列表 - `GET /api/v1/asl/projects/:id` - 获取项目详情 --- ### Day 3-4: 文献导入界面 **任务**: - [ ] 文献导入页(`/asl/projects/:id/import`? - [ ] Excel文件上传(Dragger? - [ ] 文献预览(Table? - [ ] 格式验证提示 - [ ] 确认导入按钮 - [ ] 导入进度提示 **API接口**(已完成? - `POST /api/v1/asl/projects/:id/literatures/import-json` - 导入文献 - `GET /api/v1/asl/projects/:id/literatures` - 获取文献列表 **Excel格式**: ``` 必须字段: title, abstract 可选字? pmid, authors, journal, publicationYear, doi ``` --- ### Day 5: 筛选结果展??**重点** **任务**: - [ ] 筛选结果列表页(`/asl/projects/:id/results`? - [ ] 结果筛选(全部/纳入/排除/待复核) - [ ] 结果详情弹窗 ?**关键** - 文献信息(标题、摘要) - 最终决策(include/exclude/pending? - **两个模型的完整结?*? - DeepSeek-V3:结?+ 理由 + 置信? - Qwen-Max:结?+ 理由 + 置信? - 冲突提示(如果两个模型不一致) - 人工复核按钮 **API接口**(已完成? - `GET /api/v1/asl/projects/:id/results` - 获取筛选结? **响应格式**: ```typescript { literatureId: string; title: string; abstract: string; finalDecision: 'include' | 'exclude' | 'pending'; // ?两个模型的详细结? model1Result: { modelName: 'DeepSeek-V3'; conclusion: 'exclude'; confidence: 0.92; reason: '完整的排除理?..'; // ?前端需显示 judgment: { P: 'match', I: 'match', C: 'mismatch', S: 'match' }; }, model2Result: { modelName: 'Qwen-Max'; conclusion: 'include'; confidence: 0.85; reason: '完整的纳入理?..'; // ?前端需显示 judgment: { ... }; }, hasConflict: true; // 两个模型不一? conflictFields: ['conclusion']; } ``` --- ## 🔥 Week 2 开发重? ### 1. 筛选风格选择?? **位置**: 创建项目表单 ```jsx