# ASL模块开发 - AI对接快速上下文

> **创建日期：** 2025-11-16  
> **适用对象：** 新的AI编程助手、新开发人员  
> **目的：** 5分钟快速了解项目状态，立即开始工作  
> **版本：** V1.0

---

## 📍 项目定位

**AIclinicalresearch** 是一个医学科研AI平台，当前正在开发 **ASL（AI智能文献）** 模块。

**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",       # 🚧 空Schema（Week 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智能文献PRD（1）-产品概览.md
│   ├── AI智能文献PRD（2）-初筛与复筛.md
│   └── AI智能文献PRD（3）-提取与分析模块.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分钟）
**任务ID：T1.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`

**Q6：API路由前缀是什么？**  
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 开始吧！**

