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

418 lines
13 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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.
# ASL模块开发 - AI对接快速上下文
> **创建日期:** 2025-11-16
> **适用对象:** 新的AI编程助手、新开发人员
> **目的:** 5分钟快速了解项目状态立即开始工作
> **版本:** V1.0
---
## 📍 项目定位
**AIclinicalresearch** 是一个医学科研AI平台当前正在开发 **ASLAI智能文献** 模块。
**ASL模块功能**AI驱动的医学文献筛选和数据提取系统类似Cochrane系统评价流程
---
## ✅ 当前状态2025-11-16
### 已完成的基础工作
| 工作项 | 状态 | 完成时间 |
|--------|------|---------|
| 数据库Schema隔离10个Schema | ✅ 完成 | Week 1 (11月初) |
| Frontend-v2架构顶部导航+模块注册) | ✅ 完成 | Week 2 Day 6-7 |
| Backend增量演进legacy/common/modules | ✅ 完成 | Week 2 Day 8-9 |
| ASL开发计划文档3个 | ✅ 完成 | 2025-11-16 |
| **ASL模块代码** | 🚧 未开始 | 待Week 3 |
### 架构现状
```
Frontend-v2 Backend混合 Database隔离
↓ ↓ ↓
顶部导航 + 6模块 legacy/ + common/ 10个独立Schema
ASL占位 + modules/asl/ asl_schema空
✅ 架构已就绪 ✅ LLM可复用 🚧 表结构待定义
✅ 路由框架完成 ✅ 工具可复用 🚧 Prisma模型待添加
```
---
## 🎯 下一步任务
### MVP阶段4周标题摘要初筛
**交付目标**
- Excel文献导入 → AI双模型筛选DeepSeek+Qwen3 → 人工复核 → 导出结果
- 准确率 ≥ 85%
- 成本 ≤ ¥50/1000篇
**开发顺序**
```
Week 1: Prisma Schema设计4张表 + 后端API框架 + 路由注册
Week 2: LLM筛选核心双模型并行 + JSON Schema + 冲突检测)
Week 3: 前端模块开发3个页面 + 审核工作台)
Week 4: 集成测试与验收(准确率测试 + 性能测试)
```
---
## 📚 必读文档5个按顺序
### 1⃣ 理解架构(必读)
**`docs/00-系统总体设计/前后端模块化架构设计-V2.md`**
- 📍 位置第51-519行
- 🎯 重点:「📸 当前架构真实状态2025-11-14」章节
- ⏱️ 阅读时间10分钟
- 📌 关键信息:
- Frontend-v2 目录结构(`framework/` + `modules/`
- Backend 目录结构(`legacy/` + `common/` + `modules/`
- 10个Schema列表
- API路由规范`/api/v1/asl/*`
### 2⃣ 理解数据库(必读)
**`docs/09-架构实施/01-Schema隔离架构设计10个.md`**
- 🎯 重点asl_schema 当前为空Schema需在Week 3 Day 1定义表结构
- ⏱️ 阅读时间5分钟
- 📌 关键信息:
- 10个Schema名称和用途
- asl_schema 占位说明
- Prisma multiSchema配置
### 3⃣ 执行任务清单(核心)
**`docs/03-业务模块/ASL-AI智能文献/04-开发计划/03-任务分解.md`**
- 🎯 重点80+个详细任务每个有ID、耗时、验收标准
- ⏱️ 阅读时间15分钟
- 📌 关键信息:
- 第一个任务T1.1.1 - 设计Prisma Schema
- Week 1-4 每天的任务清单
- 每个任务的验收标准
### 4⃣ 技术实现细节(参考)
**`docs/03-业务模块/ASL-AI智能文献/04-开发计划/02-标题摘要初筛开发计划.md`**
- 🎯 重点Week 1 Day 1 包含完整的Prisma Schema代码可直接复制
- ⏱️ 阅读时间20分钟
- 📌 关键信息:
- 完整的Prisma Schema定义4个模型
- LLM筛选服务代码示例
- 提示词模板示例
### 5⃣ 质量保障策略(重要)
**`docs/03-业务模块/ASL-AI智能文献/02-技术设计/06-质量保障与可追溯策略.md`**
- 🎯 重点双模型验证、JSON Schema、置信度评分、自动分流规则
- ⏱️ 阅读时间10分钟
---
## 🚀 立即行动(第一步)
### Step 1: 设计数据库Schema
```bash
# 1. 打开文件
code backend/prisma/schema.prisma
# 2. 添加4个模型参考 02-标题摘要初筛开发计划.md Week 1 Day 1
# - AslScreeningProject
# - AslLiterature
# - AslScreeningResult
# - AslScreeningTask
# 注意:每个模型必须添加 @@schema("asl_schema")
# 3. 在User模型中添加关联
# aslProjects AslScreeningProject[] @relation("AslProjects")
# 4. 运行迁移
cd backend
npx prisma migrate dev --name add_asl_screening_tables
npx prisma generate
```
### Step 2: 创建后端目录
```bash
cd backend/src/modules
mkdir -p asl/{routes,controllers,services,schemas,types,utils}
```
### Step 3: 注册路由
`backend/src/index.ts` 中添加:
```typescript
import { aslRoutes } from './modules/asl/routes/index.js'
await app.register(aslRoutes, { prefix: '/api/v1/asl' })
```
---
## 📋 关键架构路径
### Frontend-v2真实
```
frontend-v2/src/
├── framework/
│ ├── layout/
│ │ ├── MainLayout.tsx # ✅ 顶部导航布局
│ │ └── TopNavigation.tsx # ✅ 6个模块导航
│ └── modules/
│ └── moduleRegistry.ts # ✅ 模块注册中心
└── modules/asl/
├── index.tsx # 🚧 需移除 placeholder: true
└── routes.tsx # 🚧 待创建
```
### Backend真实
```
backend/src/
├── common/ # ✅ 可复用
│ ├── llm/adapters/
│ │ ├── LLMFactory.ts # ✅ 调用DeepSeek+Qwen3
│ │ ├── DeepSeekAdapter.ts
│ │ └── QwenAdapter.ts
│ └── utils/
│ └── jsonParser.js # ✅ JSON解析工具
├── legacy/ # ✅ 现有业务(不动)
│ ├── routes/ # 7个路由文件
│ └── services/
└── modules/ # 🚧 新模块开发区
└── asl/ # 🚧 空目录(待创建)
├── routes/index.ts # 注册到 /api/v1/asl
├── controllers/
├── services/
│ └── llmScreeningService.ts # 复用common/llm
└── schemas/
```
### Database真实
```prisma
// backend/prisma/schema.prisma
datasource db {
provider = "postgresql"
schemas = [
"platform_schema", # ✅ users表
"aia_schema", # ✅ 5张表AI问答
"pkb_schema", # ✅ 5张表知识库
"asl_schema", # 🚧 空SchemaWeek 3定义4张表
// ...其他6个预留Schema
]
}
```
---
## 🎯 MVP验收标准
### 功能
- [ ] Excel上传 → 解析 → 导入
- [ ] AI双模型筛选DeepSeek + Qwen3
- [ ] 冲突检测和标记
- [ ] 人工复核界面
- [ ] 结果导出
### 质量指标
- [ ] 准确率 ≥ 85%
- [ ] 双模型一致率 ≥ 80%
- [ ] JSON Schema验证通过率 ≥ 95%
- [ ] 人工复核队列 ≤ 20%
### 性能指标
- [ ] 100篇文献筛选 ≤ 10分钟
- [ ] Excel上传响应 ≤ 3秒
---
## 🔑 技术要点速查
### 复用现有能力
```typescript
// ✅ LLM调用已实现
import { LLMFactory } from '../../../common/llm/adapters/LLMFactory.js'
const llm = LLMFactory.createLLM('deepseek') // 或 'qwen'
// ✅ JSON解析已实现
import { parseJSON } from '../../../common/utils/jsonParser.js'
const result = parseJSON(llmOutput)
// ✅ 数据库操作Prisma
import { prisma } from '../../../config/database.js'
await prisma.aslScreeningProject.create({ data: {...} })
```
### 前端模块注册
```typescript
// frontend-v2/src/modules/asl/index.tsx
const ASLModule: ModuleDefinition = {
id: 'literature-platform',
name: 'AI智能文献',
path: '/literature',
placeholder: false, // ← 改为 false
requiredVersion: 'advanced',
component: lazy(() => import('./routes')),
}
```
### 后端路由注册
```typescript
// backend/src/index.ts
import { aslRoutes } from './modules/asl/routes/index.js'
await app.register(aslRoutes, { prefix: '/api/v1/asl' })
```
---
## ⚠️ 常见陷阱
| 陷阱 | 正确做法 |
|------|---------|
| ❌ 创建新架构 | ✅ 在 Frontend-v2 和 Backend/modules/ 下开发 |
| ❌ 表放在 public schema | ✅ 必须使用 `@@schema("asl_schema")` |
| ❌ 重新实现LLM调用 | ✅ 复用 `common/llm/adapters/LLMFactory.ts` |
| ❌ 不更新moduleRegistry | ✅ 必须在 `moduleRegistry.ts` 注册 |
| ❌ 忽略编码规范 | ✅ 参考 `docs/04-开发规范/06-Git提交规范.md` |
---
## 📞 关键文件路径速查
### 开发计划文档
```
docs/03-业务模块/ASL-AI智能文献/04-开发计划/
├── 01-开发里程碑.md ⭐ MVP/V1.0/V2.0三阶段路线图
├── 02-标题摘要初筛开发计划.md ⭐⭐ 包含完整代码示例
└── 03-任务分解.md ⭐⭐⭐ 80+个详细任务清单(立即执行)
```
### 架构设计文档
```
docs/00-系统总体设计/
└── 前后端模块化架构设计-V2.md ⭐ 第51-519行当前架构真实状态
docs/09-架构实施/
└── 01-Schema隔离架构设计10个.md ⭐ 10个Schema全景
```
### 技术设计文档
```
docs/03-业务模块/ASL-AI智能文献/02-技术设计/
├── 06-质量保障与可追溯策略.md 双模型、JSON Schema、分流规则
└── 07-文献处理技术选型.md Excel、PDF、Unpaywall API
```
### 需求与原型
```
docs/03-业务模块/ASL-AI智能文献/
├── 01-需求分析/
│ ├── AI智能文献PRD1-产品概览.md
│ ├── AI智能文献PRD2-初筛与复筛.md
│ └── AI智能文献PRD3-提取与分析模块.md
└── 03-UI设计/
├── AI智能文献-标题摘要初筛原型.html # 原型图
└── AI智能文献-全文复筛.html
```
---
## 🔥 立即开始3步走
### 第1步阅读核心文档20分钟
1. 打开 `前后端模块化架构设计-V2.md`阅读第51-519行
2. 打开 `03-任务分解.md`了解80+个任务清单
3. 打开 `02-标题摘要初筛开发计划.md`查看Week 1 Day 1的Prisma Schema代码
### 第2步执行第一个任务30分钟
**任务IDT1.1.1** - 设计Prisma Schema
1. 打开 `backend/prisma/schema.prisma`
2. 复制 `02-标题摘要初筛开发计划.md` 中Week 1 Day 1的完整Prisma代码
3. 添加4个模型AslScreeningProject、AslLiterature、AslScreeningResult、AslScreeningTask
4. 运行迁移:`cd backend && npx prisma migrate dev --name add_asl_screening_tables`
5. 生成Client`npx prisma generate`
### 第3步创建后端目录10分钟
```bash
cd backend/src/modules
mkdir -p asl/{routes,controllers,services,schemas,types,utils}
```
---
## 💡 快速问答
**Q1前端是左侧导航还是顶部导航**
A✅ 顶部导航Frontend-v2使用TopNavigation.tsx显示6个模块
**Q2后端代码放在哪里**
A`backend/src/modules/asl/`(新模块标准位置)
**Q3数据库表放在哪个Schema**
A✅ 必须使用 `@@schema("asl_schema")`不能放在public
**Q4如何调用LLM**
A✅ 复用 `common/llm/adapters/LLMFactory.ts`已支持DeepSeek和Qwen3
**Q5如何注册前端模块**
A✅ 更新 `frontend-v2/src/modules/asl/index.tsx`,移除 `placeholder: true`
**Q6API路由前缀是什么**
A`/api/v1/asl/*`(在 `backend/src/index.ts` 中注册)
**Q7第一个任务是什么**
A✅ T1.1.1 - 在 `backend/prisma/schema.prisma` 中定义4个模型
---
## 📊 技术栈速查
| 层级 | 技术 | 版本 |
|------|------|------|
| 前端 | React + TypeScript + Ant Design | 19 + 5.x |
| 后端 | Node.js + Fastify + Prisma | 20 + 4.x + 6.17.0 |
| 数据库 | PostgreSQL | 15.x |
| LLM | DeepSeek-V3 + Qwen3-72B | via CloseAI |
---
## 🎬 工作流
```
1. 阅读 → 2. 设计Prisma Schema → 3. 创建后端目录 → 4. 实现API → 5. 前端开发 → 6. 测试
(20min) (2hr) (30min) (2天) (1周) (1周)
参考03-任务分解.md 中的详细清单
```
---
## 📌 最后提醒
1. **不要从零开始**Frontend-v2和Backend架构已完成直接在此基础上开发
2. **复用common层**LLM、JSON解析、文档提取都可复用
3. **遵循Schema隔离**所有ASL表必须在 `asl_schema`
4. **参考任务清单**`03-任务分解.md` 有80+个任务,逐个执行
5. **代码在文档中**`02-标题摘要初筛开发计划.md` 包含完整代码示例,可直接复制
---
## 📞 求助指南
遇到问题时,优先查看:
1. 架构问题 → `前后端模块化架构设计-V2.md`
2. 数据库问题 → `Schema隔离架构设计10个.md`
3. 任务不清楚 → `03-任务分解.md`
4. 代码不会写 → `02-标题摘要初筛开发计划.md`(有示例)
5. 质量不达标 → `06-质量保障与可追溯策略.md`
---
**文档路径**`AIclinicalresearch/docs/03-业务模块/ASL-AI智能文献/[AI对接] ASL模块快速上下文.md`
**下次更新**ASL模块MVP开发完成后
**维护者**AI助手 + 开发团队
---
**🎉 祝开发顺利!从 T1.1.1 开始吧!**