Major Changes: - Add StreamingService with OpenAI Compatible format - Upgrade Chat component V2 with Ant Design X integration - Implement AIA module with 12 intelligent agents - Update API routes to unified /api/v1 prefix - Update system documentation Backend (~1300 lines): - common/streaming: OpenAI Compatible adapter - modules/aia: 12 agents, conversation service, streaming integration - Update route versions (RVW, PKB to v1) Frontend (~3500 lines): - modules/aia: AgentHub + ChatWorkspace (100% prototype restoration) - shared/Chat: AIStreamChat, ThinkingBlock, useAIStream Hook - Update API endpoints to v1 Documentation: - AIA module status guide - Universal capabilities catalog - System overview updates - All module documentation sync Tested: Stream response verified, authentication working Status: AIA V2.0 core completed (85%)
970 lines
36 KiB
Markdown
970 lines
36 KiB
Markdown
# ASL 模å<C2A1>—任务分解(To-do Listï¼?
|
||
> **文档版本�* V3.2
|
||
> **创建日期�* 2025-11-16
|
||
> **适用阶段ï¼?* MVPï¼ˆæ ‡é¢˜æ‘˜è¦<C3A8>åˆ<C3A5>ç›ï¼‰
|
||
> **预计周期�* 4 �
|
||
> **最å<E282AC>Žæ›´æ–°ï¼š** 2025-11-21
|
||
> **â?é‡<C3A9>è¦<C3A8>:基于真实架构(Frontend-v2 + Backend + asl_schemaï¼?*
|
||
> **📊 MVPæ ¸å¿ƒåŠŸèƒ½è¿›åº¦ï¼?* âœ?100% 完æˆ<C3A6>(Week 1-3 æ<><C3A6>å‰<C3A5>完æˆ<C3A6>ï¼?
|
||
> **📊 è´¨é‡<C3A9>优化进度ï¼?* 🔄 60% 完æˆ<C3A6>(准确率60%,目æ ?5%ï¼?
|
||
---
|
||
|
||
## 📋 使用说明
|
||
|
||
本文档是 **ASL æ ‡é¢˜æ‘˜è¦<C3A8>åˆ<C3A5>ç›æ¨¡å<C2A1>—** 的详细任务分解清å<E280A6>•,基于 **真实的架构基础**ï¼?- âœ?Frontend-v2(顶部导èˆ?+ 模å<C2A1>—注册ï¼? Week 2 已完æˆ?- âœ?Backend 增é‡<C3A9>演进(legacy/ + common/ + modules/ï¼? Week 2 已完æˆ?- âœ?æ•°æ<C2B0>®åº?10个Schema隔离 - Week 1 已完æˆ?
|
||
**任务状æ€<C3A6>æ ‡è®?*ï¼?- `[ ]` - å¾…å¼€å§?- `[🔄]` - 进行ä¸?- `[✅]` - 已完æˆ?- `[â<>Œ]` - å·²å<C2B2>–æ¶?跳过
|
||
|
||
---
|
||
|
||
## 🌥ï¸?云原生开å<E282AC>‘è¦<C3A8>求(2025-11-16 新增ï¼?
|
||
> **â?é‡<C3A9>è¦<C3A8>æ<EFBFBD><C3A6>醒**:所有任务必须é<C2BB>µå¾ªäº‘原生开å<E282AC>‘è§„èŒ?
|
||
> **详细规范**:[云原生开å<E282AC>‘规范](../../../04-å¼€å<E282AC>‘è§„èŒ?08-云原生开å<E282AC>‘è§„èŒ?md)
|
||
|
||
### æ ¸å¿ƒè¦<C3A8>求
|
||
|
||
| è¦<C3A8>求 | 说明 |
|
||
|------|------|
|
||
| âœ?**å˜å‚¨æŠ½è±¡å±?* | 使用 `StorageFactory`,支æŒ<EFBFBD>本åœ?OSS切æ<E280A1>¢ |
|
||
| âœ?**内å˜è§£æž<C3A6>** | Excel导入使用 `xlsx.read(buffer)`,ä¸<EFBFBD>è<EFBFBD>½ç›˜ |
|
||
| âœ?**异æ¥ä»»åŠ¡** | LLMç›é€‰å¿…须异æ¥å¤„ç<E2809E>†ï¼ˆ> 10秒) |
|
||
| âœ?**环境å<C692>˜é‡<C3A9>** | 所有é…<C3A9>置从 `.env` 读å<C2BB>– |
|
||
| âœ?**æ•°æ<C2B0>®åº“è¿žæŽ¥æ± ** | 使用全局 `prisma` 实例 |
|
||
| âœ?**OSSå—æ®µé¢„ç•™** | `pdfUrl`, `pdfOssKey`, `pdfFileSize` |
|
||
|
||
### æ¯<C3A6>日检查清å<E280A6>?
|
||
æ<EFBFBD><EFBFBD>交代ç <EFBFBD>å‰<EFBFBD>必须确认:
|
||
- [ ] 是å<C2AF>¦ä½¿ç”¨å˜å‚¨æŠ½è±¡å±‚?
|
||
- [ ] 是å<C2AF>¦é<C2A6>¿å…<C3A5>文件è<C2B6>½ç›˜ï¼?- [ ] 是å<C2AF>¦ä½¿ç”¨å…¨å±€ prisma 实例ï¼?- [ ] 是å<C2AF>¦æ‰€æœ‰é…<C3A9>置都从环境å<C692>˜é‡<C3A9>读å<C2BB>–?
|
||
- [ ] 长时间任务是å<C2AF>¦å¼‚æ¥å¤„ç<E2809E>†ï¼Ÿ
|
||
|
||
---
|
||
|
||
## 🗓ï¸?Week 1: æ•°æ<C2B0>®åº“Schema与å<C5BD>Žç«¯API框架(Day 1-5)✅ 已完æˆ?
|
||
**完æˆ<C3A6>日期**: 2025-11-18
|
||
**实际耗时**: 1天(æ<CB86><C3A6>å‰<C3A5>4天)
|
||
**完æˆ<C3A6>报告**: [Week 1完æˆ<C3A6>报告](../05-å¼€å<E282AC>‘è®°å½?2025-11-18-Week1完æˆ<C3A6>报告.md)
|
||
**API测试**: [ASL-API测试报告](../../../../backend/ASL-API-测试报告.md)
|
||
|
||
### Day 1: Prisma Schema 设计 �
|
||
#### æ•°æ<C2B0>®åº“ä»»åŠ?
|
||
- [✅] **T1.1.1** 设计 asl_schema 表结� - 文件:`backend/prisma/schema.prisma`
|
||
- 新增4个模型:
|
||
- `AslScreeningProject`(ç›é€‰é¡¹ç›®è¡¨ï¼? - `AslLiterature`(文献æ<EFBFBD>¡ç›®è¡¨ï¼? - `AslScreeningResult`(ç›é€‰ç»“果表ï¼? - `AslScreeningTask`(ç›é€‰ä»»åŠ¡è¡¨ï¼? - 使用 `@@schema("asl_schema")` 指定Schema
|
||
- **â?新增è¦<C3A8>求(云原生ï¼?*:在 `AslLiterature` 䏿·»åŠ?OSS å—æ®µ
|
||
- `pdfUrl String? @map("pdf_url")` - PDF访问URL
|
||
- `pdfOssKey String? @map("pdf_oss_key")` - OSSå˜å‚¨Key
|
||
- `pdfFileSize Int? @map("pdf_file_size")` - 文件大å°<C3A5>(å—节)
|
||
- 说明:MVP阶段预留,V1.0阶段使用
|
||
- 预计耗时ï¼? å°<C3A5>æ—¶
|
||
- 负责人:å<C5A1>Žç«¯å¼€å<E282AC>? - å<>‚考:`02-æ ‡é¢˜æ‘˜è¦<C3A8>åˆ<C3A5>ç›å¼€å<E282AC>‘计åˆ?md` Week 1 Day 1
|
||
|
||
- [✅] **T1.1.2** åœ?User æ¨¡åž‹ä¸æ·»åŠ å…³è<C2B3>? ```prisma
|
||
// backend/prisma/schema.prisma - User模型添åŠ
|
||
aslProjects AslScreeningProject[] @relation("AslProjects")
|
||
```
|
||
- 实际耗时� 分钟
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T1.1.3** è¿<C3A8>行 Prisma è¿<C3A8>ç§»
|
||
```bash
|
||
cd backend
|
||
npx tsx scripts/create-asl-tables.ts # 手动SQL创建
|
||
```
|
||
- 实际耗时�0 分钟
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T1.1.4** 生æˆ<C3A6> Prisma Client
|
||
```bash
|
||
npx prisma generate
|
||
```
|
||
- 实际耗时� 分钟
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T1.1.5** 验è¯<C3A8>æ•°æ<C2B0>®åº“表创建
|
||
- 使用脚本验è¯<C3A8>æ•°æ<C2B0>®åº? - 检æŸ?asl_schema 下的4个表 âœ? - 检查索引和外键 âœ? - 实际耗时ï¼? 分钟
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
**Day 1 éªŒæ”¶æ ‡å‡†** ✅:
|
||
- âœ?asl_schema 4å¼ è¡¨åˆ›å»ºæˆ<C3A6>功
|
||
- âœ?Prisma Client 生æˆ<C3A6>æ— é”™è¯?- âœ?å<>¯æŸ¥è¯?asl_schema è¡?
|
||
---
|
||
|
||
### Day 2: å<>Žç«¯ç›®å½•结构创建 âœ?
|
||
> **â?å‰<C3A5>ç½®æ<C2AE>¡ä»¶ï¼?025-11-17 æ›´æ–°ï¼?*:平å<C2B3>°åŸºç¡€è®¾æ–½å·²å®Œæˆ<C3A6>实æ–?âœ?
|
||
> **完æˆ<C3A6>状æ€?*ï¼?ä¸ªæ ¸å¿ƒæ¨¡å<C2A1>—,100%测试通过
|
||
> **完æˆ<C3A6>报告**:[å¹³å<C2B3>°åŸºç¡€è®¾æ–½å®žæ–½å®Œæˆ<C3A6>报告](../../../08-项目管ç<C2A1>†/03-æ¯<C3A6>周计划/2025-11-17-å¹³å<C2B3>°åŸºç¡€è®¾æ–½å®žæ–½å®Œæˆ<C3A6>报告.md)
|
||
> **使用指å<E280A1>—**:[backend/src/common/README.md](../../../../backend/src/common/README.md)
|
||
|
||
#### å¹³å<C2B3>°å·²æ<C2B2><C3A6>供的8ä¸ªæ ¸å¿ƒæ¨¡å<C2A1>—(ASL模å<C2A1>—æ— éœ€å®žçŽ°ï¼?
|
||
**å¹³å<C2B3>°åŸºç¡€è®¾æ–½å·²å®Œæˆ<C3A6>(2025-11-17ï¼?*ï¼?
|
||
| # | æœ<C3A6>务 | 路径 | 使用方å¼<C3A5> | 说明 |
|
||
|---|------|------|---------|------|
|
||
| 1 | å˜å‚¨æœ<C3A6>务 | `common/storage/` | `import { storage } from '@/common/storage'` | æ–‡ä»¶ä¸Šä¼ ä¸‹è½½ï¼ˆæœ¬åœ?OSS切æ<E280A1>¢ï¼?|
|
||
| 2 | 日志系统 | `common/logging/` | `import { logger } from '@/common/logging'` | 结构化JSON日志 |
|
||
| 3 | ç¼“å˜æœ<C3A6>务 | `common/cache/` | `import { cache } from '@/common/cache'` | 内å˜/Redisç¼“å˜ |
|
||
| 4 | 异æ¥ä»»åŠ¡ | `common/jobs/` | `import { jobQueue } from '@/common/jobs'` | 长时间任务处ç<E2809E>?|
|
||
| 5 | å<>¥åº·æ£€æŸ?| `common/health/` | `import { registerHealthRoutes } from '@/common/health'` | SAEå<45>¥åº·æ£€æŸ?|
|
||
| 6 | ç›‘æŽ§æŒ‡æ ‡ | `common/monitoring/` | `import { Metrics } from '@/common/monitoring'` | 性能监控和告è?|
|
||
| 7 | æ•°æ<C2B0>®åº“è¿žæŽ¥æ± | `config/database.ts` | `import { prisma } from '@/config/database'` | 全局Prisma实例 |
|
||
| 8 | 环境é…<C3A9>ç½® | `config/env.ts` | `import { env } from '@/config/env'` | 统一é…<C3A9>置管ç<C2A1>† |
|
||
|
||
**示例代ç <C3A7>**ï¼?```typescript
|
||
// ASL模å<C2A1>—直接使用平å<C2B3>°æœ<C3A6>务
|
||
import { storage, logger, cache, jobQueue } from '@/common'
|
||
import { prisma } from '@/config/database'
|
||
import { Metrics } from '@/common/monitoring'
|
||
|
||
// ä¸Šä¼ æ–‡ä»¶
|
||
const url = await storage.upload('asl/literature/123.pdf', pdfBuffer)
|
||
|
||
// 记录日志
|
||
logger.info('Literature uploaded', { projectId, url })
|
||
|
||
// ç¼“å˜æ•°æ<C2B0>®
|
||
await cache.set(`project:${projectId}`, data, 3600)
|
||
|
||
// 创建异æ¥ä»»åŠ¡
|
||
const job = await jobQueue.push('asl:screening', { projectId })
|
||
|
||
// è®°å½•ç›‘æŽ§æŒ‡æ ‡
|
||
Metrics.recordAPIResponseTime('POST', '/api/v1/asl/screening', 200, 150)
|
||
```
|
||
|
||
**âš ï¸<C3AF> ç¦<C3A7>æ¢çš„æ“<C3A6>作(必须é<C2BB>µå®ˆï¼?*ï¼?
|
||
| ç¦<C3A7>æ¢æ“<C3A6>作 | æ£ç¡®å<C2AE>𿳕 | åŽŸå› |
|
||
|---------|---------|------|
|
||
| `fs.writeFileSync()` | 使用 `storage.upload()` | Serverless容器é‡<C3A9>å<EFBFBD>¯ä¸¢å¤±æ–‡ä»¶ |
|
||
| `new PrismaClient()` | 使用全局 `prisma` 实例 | é<>¿å…<C3A5>连接数暴增(已é…<C3A9>ç½®è¿žæŽ¥æ± ï¼?|
|
||
| 硬编ç <C3A7>é…<C3A9>ç½?| 使用 `process.env` æˆ?`env` | é…<C3A9>置管ç<C2A1>†æ··ä¹± |
|
||
| å<>Œæ¥å¤„ç<E2809E>†LLM批é‡<C3A9>任务 | 使用 `jobQueue.push()` | é<>¿å…<C3A5>Serverlessè¶…æ—¶ |
|
||
| 直接使用 `console.log()` | 使用 `logger.info()` | æ—¥å¿—æ ¼å¼<C3A5>æ ‡å‡†åŒ?|
|
||
| 自己实现缓å˜é€»è¾‘ | 使用 `cache.set()` / `cache.get()` | å¹³å<C2B3>°å·²æ<C2B2><C3A6>供分布å¼<C3A5>ç¼“å˜ |
|
||
|
||
---
|
||
|
||
#### å<>Žç«¯ä»»åŠ¡
|
||
|
||
- [✅] **T1.2.1** 创建 ASL 模å<C2A1>—目录结构
|
||
```bash
|
||
cd backend/src/modules
|
||
mkdir -p asl/{routes,controllers,services,schemas,types,utils}
|
||
```
|
||
- 预计耗时� 分钟
|
||
- 负责人:å<C5A1>Žç«¯å¼€å<E282AC>?
|
||
- [ ] **T1.2.2** 创建路由文件
|
||
- `routes/index.ts` - 路由注册
|
||
- 实现å<C2B0> ä½<C3A4>函数(返å›?04或空数组ï¼? - 预计耗时ï¼?0 分钟
|
||
- 负责人:å<C5A1>Žç«¯å¼€å<E282AC>?
|
||
- [ ] **T1.2.3** 创建控制器文ä»? - `controllers/projectController.ts` - 项目控制å™? - `controllers/literatureController.ts` - 文献控制å™? - `controllers/screeningController.ts` - ç›é€‰æŽ§åˆ¶å™¨
|
||
- 创建å<C2BA> ä½<C3A4>函数(æ¯<C3A6>个控制器5-7个函数)
|
||
- 预计耗时ï¼? å°<C3A5>æ—¶
|
||
- 负责人:å<C5A1>Žç«¯å¼€å<E282AC>?
|
||
- [ ] **T1.2.4** 创建æœ<C3A6>务层文ä»? - `services/projectService.ts` - 项目业务逻辑
|
||
- `services/literatureService.ts` - 文献业务逻辑
|
||
- `services/llmScreeningService.ts` - LLMç›é€‰æœ<C3A6>åŠ? - 预计耗时ï¼?0 分钟
|
||
- 负责人:å<C5A1>Žç«¯å¼€å<E282AC>?
|
||
- [✅] **T1.2.5** 创建类型定义文件
|
||
```typescript
|
||
// types/screening.types.ts
|
||
export interface Literature { ... }
|
||
export interface ScreeningResult { ... }
|
||
export interface Protocol { ... }
|
||
```
|
||
- 预计耗时�0 分钟
|
||
- 负责人:å<C5A1>Žç«¯å¼€å<E282AC>?
|
||
**Day 2 éªŒæ”¶æ ‡å‡†** ✅:
|
||
- âœ?ASL 模å<C2A1>—目录结构完整ï¼?个å<C3A5>目录ï¼?个文件)
|
||
- âœ?所有å<E280B0> ä½<C3A4>文件创建完æˆ?- âœ?**å<>¯æ£å¸¸ä½¿ç”¨å¹³å<C2B3>°æœ<C3A6>务(8ä¸ªæ ¸å¿ƒæ¨¡å<C2A1>—)**ï¼? - âœ?`import { storage } from '@/common/storage'` å<>¯ç”¨
|
||
- âœ?`import { logger } from '@/common/logging'` å<>¯ç”¨
|
||
- âœ?`import { cache } from '@/common/cache'` å<>¯ç”¨
|
||
- âœ?`import { jobQueue } from '@/common/jobs'` å<>¯ç”¨
|
||
- âœ?`import { prisma } from '@/config/database'` å<>¯ç”¨
|
||
- âœ?`import { Metrics } from '@/common/monitoring'` å<>¯ç”¨
|
||
|
||
---
|
||
|
||
### Day 3: 注册ASL路由 �
|
||
#### å<>Žç«¯ä»»åŠ¡
|
||
|
||
- [✅] **T1.3.1** 实现 `routes/index.ts`
|
||
- 注册所有API路由
|
||
- å<>‚è€?`legacy/routes/` 的风æ ? - 预计耗时ï¼? å°<C3A5>æ—¶
|
||
- 负责人:å<C5A1>Žç«¯å¼€å<E282AC>? - å<>‚考:`02-æ ‡é¢˜æ‘˜è¦<C3A8>åˆ<C3A5>ç›å¼€å<E282AC>‘计åˆ?md` Week 1 Day 2
|
||
|
||
- [✅] **T1.3.2** åœ?`src/index.ts` 䏿³¨å†ŒASL路由
|
||
```typescript
|
||
import { aslRoutes } from './modules/asl/routes/index.js'
|
||
await app.register(aslRoutes, { prefix: '/api/v1/asl' })
|
||
console.log('�ASL 路由已注册到 /api/v1/asl/*')
|
||
```
|
||
- 预计耗时�0 分钟
|
||
- 负责人:å<C5A1>Žç«¯å¼€å<E282AC>?
|
||
- [✅] **T1.3.3** 测试路由å<C2B1>¯è®¿é—®æ€? ```bash
|
||
# å<>¯åЍå<C2A8>Žç«¯æœ<C3A6>务
|
||
cd backend && npm run dev
|
||
# 测试å<E280A2>¥åº·æ£€æŸ? curl http://localhost:3001/api/v1/asl/projects
|
||
```
|
||
- 预计耗时�0 分钟
|
||
- 负责人:å<C5A1>Žç«¯å¼€å<E282AC>?
|
||
**Day 3 éªŒæ”¶æ ‡å‡†** ✅:
|
||
- âœ?å<>Žç«¯æœ<C3A6>务æ£å¸¸å<C2B8>¯åЍ
|
||
- âœ?ASL路由注册æˆ<C3A6>功ï¼?api/v1/aslï¼?- âœ?APIå<49>¯è®¿é—®ï¼ˆ10个端点)
|
||
|
||
---
|
||
|
||
### Day 4-5: 实现基础API �
|
||
#### å<>Žç«¯ä»»åŠ¡
|
||
|
||
- [✅] **T1.4.1** 实现 `projectService.ts`
|
||
- `createProject(userId, data)` - 创建项目
|
||
- `listProjects(userId)` - 获å<C2B7>–项目列表
|
||
- `getProject(projectId)` - 获å<C2B7>–项目详情
|
||
- 使用 Prisma Client æ“<C3A6>作 asl_schema
|
||
- 预计耗时ï¼? å°<C3A5>æ—¶
|
||
- 负责人:å<C5A1>Žç«¯å¼€å<E282AC>?
|
||
- [✅] **T1.4.2** 实现 `projectController.ts`
|
||
- `createProject` - 控制å™? - `listProjects` - 控制å™? - `getProject` - 控制å™? - 请求验è¯<C3A8>ã€<C3A3>å“<C3A5>åº”æ ¼å¼<C3A5>化
|
||
- 预计耗时ï¼?.5 å°<C3A5>æ—¶
|
||
- 负责人:å<C5A1>Žç«¯å¼€å<E282AC>?
|
||
- [✅] **T1.4.3** 实现 `literatureService.ts`
|
||
- `importBatch(projectId, literatures)` - 批é‡<C3A9>导入
|
||
- `listLiteratures(projectId, page, pageSize)` - 分页查询
|
||
- 去é‡<C3A9>逻辑(基于DOIå’Œæ ‡é¢˜ï¼‰
|
||
- 预计耗时ï¼? å°<C3A5>æ—¶
|
||
- 负责人:å<C5A1>Žç«¯å¼€å<E282AC>?
|
||
- [✅] **T1.4.4** 实现 `literatureController.ts`
|
||
- `importLiteratures` - 导入控制å™? - `listLiteratures` - 列表控制å™? - Excelæ•°æ<C2B0>®éªŒè¯<C3A8>
|
||
- 预计耗时ï¼?.5 å°<C3A5>æ—¶
|
||
- 负责人:å<C5A1>Žç«¯å¼€å<E282AC>?
|
||
- [✅] **T1.4.5** API测试(完整测试脚本)
|
||
- 创建 Postman 测试集å<E280A0>ˆ
|
||
- 测试所有已实现的API
|
||
- 预计耗时ï¼? å°<C3A5>æ—¶
|
||
- 负责人:å<C5A1>Žç«¯å¼€å<E282AC>?
|
||
**Day 4-5 éªŒæ”¶æ ‡å‡†** ✅:
|
||
- âœ?项目管ç<C2A1>†APIå<49>¯è°ƒç”¨ï¼ˆ5个接å<C2A5>£ï¼‰
|
||
- âœ?文献导入APIå<49>¯è°ƒç”¨ï¼ˆ4个接å<C2A5>£ï¼‰
|
||
- âœ?æ•°æ<C2B0>®æ£ç¡®ä¿<C3A4>å˜åˆ?asl_schema
|
||
- �所有测试通过�/7 - 100%�
|
||
---
|
||
|
||
## 🗓ï¸?Week 2: LLMç›é€‰æ ¸å¿ƒï¼ˆDay 6-10)✅ 已完æˆ?
|
||
**完æˆ<C3A6>日期**: 2025-11-21
|
||
**实际耗时**: 3�
|
||
**完æˆ<C3A6>报告**: [Prompt设计与测试完æˆ<C3A6>报告](../05-å¼€å<E282AC>‘è®°å½?2025-11-18-Prompt设计与测试完æˆ<C3A6>报å‘?md)
|
||
**实际准确çŽ?*: 60%(目æ ?5%,需优化ï¼?
|
||
### Day 6: JSON Schema 与æ<C5BD><C3A6>示è¯<C3A8>设计 âœ?
|
||
#### å<>Žç«¯ä»»åŠ¡
|
||
|
||
- [✅] **T2.1.1** 定义 JSON Schema
|
||
- 文件:`backend/src/modules/asl/schemas/screening.schema.ts`
|
||
- 定义输出结构(decision, reason, confidence, picoï¼? - 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T2.1.2** 安装验è¯<C3A8>åº? ```bash
|
||
cd backend
|
||
npm install ajv
|
||
```
|
||
- 实际耗时� 分钟
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T2.1.3** 编写 Schema 验è¯<C3A8>函数
|
||
- 使用 `Ajv` 验è¯<C3A8>
|
||
- 错误信æ<C2A1>¯æ ¼å¼<C3A5>åŒ? - 实际耗时ï¼?0 分钟
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T2.1.4** 设计æ<C2A1><C3A6>示è¯<C3A8>模æ<C2A1>?v1.0.0
|
||
- 文件:`backend/prompts/asl/screening/v1.0.0-mvp.txt`
|
||
- 包å<E280A6>«ï¼šPICOæ ‡å‡†ã€<C3A3>çº³æŽ’æ ‡å‡†ã€<C3A3>è¾“å‡ºæ ¼å¼? - 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant + 用户
|
||
|
||
- [✅] **T2.1.5** 人工测试æ<E280A2><C3A6>示è¯? - 手动调用 LLM(使ç”?10 ç¯‡æ ·æœ¬ï¼‰
|
||
- 评估输出质é‡<C3A9>
|
||
- è¿ä»£ä¼˜åŒ–æ<E28093><C3A6>示è¯? - 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant + 用户
|
||
|
||
**Day 6 éªŒæ”¶æ ‡å‡†** ✅:
|
||
- âœ?JSON Schema 定义完æˆ<C3A6>
|
||
- âš ï¸<C3AF> æ<><C3A6>示è¯<C3A8>人工测试准确率 60%(目æ ?0%,需å<E282AC>Žç»ä¼˜åŒ–ï¼?
|
||
---
|
||
|
||
### Day 7: LLM æœ<C3A6>务å°<C3A5>装 âœ?
|
||
#### å<>Žç«¯ä»»åŠ¡
|
||
|
||
- [✅] **T2.2.1** 创建 `llmScreeningService.ts`
|
||
- 实际耗时�0 分钟
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T2.2.2** 实现 `callModel` 方法
|
||
- 调用 `LLMFactory.createLLM()`(å¤<C3A5>ç”?common/llmï¼? - 设置å<C2AE>‚数(temperature: 0ï¼? - 错误处ç<E2809E>†
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T2.2.3** 实现 `parseModelOutput` 方法
|
||
- JSON è§£æž<C3A6>(使ç”?`common/utils/jsonParser.js`ï¼? - Schema 验è¯<C3A8>
|
||
- æ ¼å¼<C3A5>化为 `ModelDecision`
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T2.2.4** 实现 `compareDecisions` 方法
|
||
- 对比两个模型çš?PICO 判æ–
|
||
- 识别冲çª<C3A7>å—æ®µï¼ˆä»…结论ä¸<C3A4>一致)
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T2.2.5** 实现 `shouldReview` 方法
|
||
- 自动分æµ<C3A6>规则
|
||
- 置信度阈值(< 0.7� - 实际耗时�0 分钟
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T2.2.6** 实现 `dualModelScreening` 方法
|
||
- 并行调用两个模型(`Promise.all`ï¼? - 汇总结æž? - 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T2.2.7** å<>•元测试
|
||
- 测试 JSON è§£æž<C3A6>
|
||
- 测试冲çª<C3A7>检æµ? - 测试分æµ<C3A6>规则
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
**Day 7 éªŒæ”¶æ ‡å‡†** ✅:
|
||
- âœ?å<>¯æˆ<C3A6>功调ç”?DeepSeek å’?Qwen3
|
||
- âœ?JSON Schema 验è¯<C3A8>通过çŽ?100%
|
||
- âœ?冲çª<C3A7>检测准确(仅结论ä¸<C3A4>一致)
|
||
|
||
---
|
||
|
||
### Day 8: 批é‡<C3A9>ç›é€‰ä»»åŠ¡ç®¡ç<C2A1>?âœ?
|
||
#### å<>Žç«¯ä»»åŠ¡
|
||
|
||
- [✅] **T2.3.1** 实现 `batchScreening` 方法
|
||
- 串行处ç<E2809E>†ï¼ˆé<CB86>¿å…<C3A5>APIé™<C3A9>æµ<C3A6>ï¼? - 进度计算
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T2.3.2** 实现任务创建
|
||
- `screeningService.startScreeningTask`
|
||
- åˆ<C3A5>始化任务记录(AslScreeningTask表)
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T2.3.3** 实现任务状æ€<C3A6>æ›´æ–? - `screeningService.processLiteraturesInBackground`
|
||
- æ›´æ–° processedItems, deepseekProcessed, qwenProcessed ç? - 实际耗时ï¼?.5 å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T2.3.4** 实现结果ä¿<C3A4>å˜
|
||
- å<>•篇ä¿<C3A4>å˜åˆ?`AslScreeningResult` è¡? - 冲çª<C3A7>检测(仅结论ä¸<C3A4>一致)
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T2.3.5** 错误处ç<E2809E>†å’Œé‡<C3A9>è¯? - å<>•篇失败ä¸<C3A4>å½±å“<C3A5>æ•´ä½? - 记录错误信æ<C2A1>¯
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
**Day 8 éªŒæ”¶æ ‡å‡†** ✅:
|
||
- âœ?å<>¯æ‰¹é‡<C3A9>处ç<E2809E>?199 篇文献(串行ï¼?- âœ?任务状æ€<C3A6>æ£ç¡®è®°å½?- âœ?结果æ£ç¡®ä¿<C3A4>å˜åˆ°æ•°æ<C2B0>®åº“
|
||
- âœ?进度实时更新(æ¯<C3A6>1æ<31>¡ï¼‰
|
||
|
||
---
|
||
|
||
### Day 9: ç›é€?API å¼€å<E282AC>?âœ?
|
||
#### å<>Žç«¯ä»»åŠ¡
|
||
|
||
- [✅] **T2.4.1** 实现å<C2B0>¯åЍç›é€?API
|
||
- 自动在文献导入å<C2A5>Žå<C5BD>¯åŠ¨ï¼ˆ`literatureController.importLiteratures`ï¼? - 创建任务
|
||
- **â?云原生è¦<C3A8>æ±?*ï¼šå¼‚æ¥æ‰§è¡Œç›é€‰ï¼ˆç«‹å<E280B9>³è¿”回taskId,å<C592>Žå<C5BD>°å¤„ç<E2809E>†ï¼‰
|
||
- é<>¿å…<C3A5>请求超时(SAE默认30ç§’è¶…æ—¶é™<C3A9>制)
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T2.4.2** 实现进度查询 API
|
||
- `GET /api/v1/asl/projects/:projectId/screening-task`
|
||
- 返回实时进度(总数ã€<C3A3>已处ç<E2809E>†ã€<C3A3>æˆ<C3A6>功ã€<C3A3>冲çª<C3A7>ã€<C3A3>失败ã€<C3A3>DS处ç<E2809E>†æ•°ã€<C3A3>Qwen处ç<E2809E>†æ•°ï¼‰
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T2.4.3** 实现结果查询 API
|
||
- `GET /api/v1/asl/projects/:projectId/screening-results`
|
||
- 支æŒ<C3A6>过滤(all, conflict, included, excluded, reviewedï¼? - 分页(å<CB86>Žç«¯åˆ†é¡µï¼‰
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T2.4.4** å®žçŽ°æ›´æ–°å†³ç– API
|
||
- `POST /api/v1/asl/screening-results/:resultId/review`
|
||
- 人工å¤<C3A5>æ ¸æ<C2B8><C3A6>交
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T2.4.5** Postman 测试
|
||
- 创建测试集å<E280A0>ˆ
|
||
- 测试å<E280A2>„ç§<C3A7>场景
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
**Day 9 éªŒæ”¶æ ‡å‡†** ✅:
|
||
- âœ?API 调用æˆ<C3A6>功
|
||
- âœ?任务å<C2A1>¯å¼‚æ¥æ‰§è¡?- âœ?进度查询实时准确ï¼?秒轮询)
|
||
|
||
---
|
||
|
||
### Day 10: å<>Žç«¯é›†æˆ<C3A6>测试 âœ?
|
||
#### å<>Žç«¯ä»»åŠ¡
|
||
|
||
- [✅] **T2.5.1** 端到端测试(199篇文献)
|
||
- 导入文献 â†?自动å<C2A8>¯åЍç›é€?â†?查询结果
|
||
- 实际耗时ï¼? å°<C3A5>时执行 + 1å°<C3A5>时分æž<C3A6>
|
||
- 完æˆ<C3A6>人:AI Assistant + 用户
|
||
|
||
- [✅] **T2.5.2** 性能测试
|
||
- 测试 199 篇文献ç›é€‰æ—¶é—? - 实际:约33-66分钟(串行处ç<E2809E>†ï¼‰
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant + 用户
|
||
|
||
- [✅] **T2.5.3** è´¨é‡<C3A9>评估
|
||
- è®¡ç®—å‡†ç¡®çŽ‡ï¼ˆå¯¹æ¯”é‡‘æ ‡å‡†ï¼‰
|
||
- 计算å<E28094>Œæ¨¡åž‹ä¸€è‡´çއ
|
||
- 计算冲çª<C3A7>çŽ? - 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant + 用户
|
||
- **结果**:准确率60%, 一致率70-100%, JSON验è¯<C3A8>çŽ?00%
|
||
|
||
- [✅] **T2.5.4** ä¿®å¤<C3A5> Bug
|
||
- ä¿®å¤<C3A5>å—æ®µæ˜ 射问题(PICOSã€<C3A3>模型å<E280B9><C3A5>称)
|
||
- ä¿®å¤<C3A5>列表顺åº<C3A5>问题
|
||
- ä¿®å¤<C3A5>进度显示问题
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
**Week 2 æ€»éªŒæ”¶æ ‡å‡?* âš ï¸<C3AF> éƒ¨åˆ†è¾¾æ ‡ï¼?- âœ?å<>¯æˆ<C3A6>功ç›é€?199 篇文çŒ?- âš ï¸<C3AF> 准确çŽ?60%(目æ ?5%,需Prompt优化ï¼?- âœ?å<>Œæ¨¡åž‹ä¸€è‡´çއ 70-100%
|
||
- âš ï¸<C3AF> 性能ï¼?99篇约33-66分钟(串行处ç<E2809E>†ï¼Œå<C592>¯ä¼˜åŒ–为并å<C2B6>‘ï¼?- âœ?JSON Schema验è¯<C3A8>çŽ?00%
|
||
|
||
---
|
||
|
||
## 🗓ï¸?Week 3: å‰<C3A5>端模å<C2A1>—å¼€å<E282AC>‘(Day 11-15)✅ 已完æˆ?
|
||
**完æˆ<C3A6>日期**: 2025-11-21
|
||
**实际耗时**: 2�
|
||
**完æˆ<C3A6>报告**: [Week2-Day2完æˆ<C3A6>报告](../05-å¼€å<E282AC>‘è®°å½?2025-11-19-Week2-Day2完æˆ<C3A6>报告.md)
|
||
**说明**: Week 3任务实际在Week 2完æˆ<C3A6>
|
||
|
||
### Day 11: å‰<C3A5>端模å<C2A1>—结构创建 âœ?
|
||
#### å‰<C3A5>端任务
|
||
|
||
- [✅] **T3.1.1** 更新 `modules/asl/index.tsx`
|
||
- 创建左侧导航布局(ASLLayoutï¼? - 7个主模å<C2A1>—ï¼Œæ ‡é¢˜æ‘˜è¦<C3A8>åˆ<C3A5>ç›å<E280BA>«3个å<C3A5>页é<C2B5>¢
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T3.1.2** 创建 ASL å<C3A5>ç›®å½? ```bash
|
||
cd frontend-v2/src/modules/asl
|
||
mkdir pages components api hooks types utils
|
||
```
|
||
- 实际耗时� 分钟
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T3.1.3** 创建路由é…<C3A9>ç½®
|
||
- 直接åœ?`index.tsx` ä¸ä½¿ç”?`<Route>` 定义
|
||
- 使用 `lazy()` æ‡’åŠ è½? - 实际耗时ï¼?0 分钟
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T3.1.4** 创建3个主页é<C2B5>¢
|
||
- `pages/TitleScreeningSettings.tsx` - 设置与å<C5BD>¯åŠ? - `pages/ScreeningWorkbench.tsx` - å®¡æ ¸å·¥ä½œå<C593>? - `pages/ScreeningResults.tsx` - åˆ<C3A5>ç›ç»“果(å<CB86> ä½<C3A4>)
|
||
- 实际耗时�0 分钟
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T3.1.5** 测试路由
|
||
- å<>¯åЍå‰<C3A5>端:`cd frontend-v2 && npm run dev`
|
||
- 访问 `http://localhost:3001/literature`
|
||
- 确认顶部导航显示"AI智能文献"
|
||
- 实际耗时�0 分钟
|
||
- 完æˆ<C3A6>人:AI Assistant + 用户
|
||
|
||
**Day 11 éªŒæ”¶æ ‡å‡†** ✅:
|
||
- �顶部导航显示"AI智能文献"
|
||
- âœ?左侧导航显示7个模å<C2A1>?- âœ?点击å<C2BB>Žè¿›å…?设置与å<C5BD>¯åŠ?页é<C2B5>¢
|
||
|
||
---
|
||
|
||
### Day 12: Excel ä¸Šä¼ åŠŸèƒ½ âœ?
|
||
#### å‰<C3A5>端任务
|
||
|
||
- [✅] **T3.2.1** 安装ä¾<C3A4>èµ–
|
||
```bash
|
||
cd frontend-v2
|
||
npm install xlsx
|
||
```
|
||
- 实际耗时� 分钟
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T3.2.2** 创建 Excelä¸Šä¼ ç»„ä»¶
|
||
- 集æˆ<C3A6>åœ?`TitleScreeningSettings.tsx` ä¸? - 文件选择(`antd Upload.Dragger`ï¼? - 文件类型验è¯<C3A8>ï¼?xls, .xlsxï¼? - 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T3.2.3** 实现 Excel è§£æž<C3A6>逻辑
|
||
- 使用 `xlsx` 库解æž? - **â?云原生è¦<C3A8>æ±?*:内å˜è§£æž?`xlsx.read(buffer)`,ç¦<C3A7>æ¢è<C2A2>½ç›? - å—æ®µæ˜ 射(Title/title â†?title,支æŒ<C3A6>ä¸è‹±æ–‡ï¼? - æ•°æ<C2B0>®éªŒè¯<C3A8>(titleå’Œabstractå¿…å¡«ï¼? - 文件:`utils/excelUtils.ts`
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T3.2.4** 实现去é‡<C3A9>逻辑
|
||
- 基于 DOI 去é‡<C3A9>(优先)
|
||
- åŸºäºŽæ ‡é¢˜åŽ»é‡<C3A9>ï¼ˆæ ‡å‡†åŒ–ï¼ŒåŽ»ç©ºæ ¼/æ ‡ç‚¹ï¼? - 去é‡<C3A9>统计展示
|
||
- 文件:`utils/excelUtils.ts`
|
||
- 实际耗时ï¼?.5 å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T3.2.5** å®žçŽ°æ–‡çŒ®é¢„è§ˆè¡¨æ ¼
|
||
- 使用 `Ant Design Table`
|
||
- 显示:åº<C3A5>å<EFBFBD>·ã€<C3A3>æ ‡é¢˜ã€<C3A3>摘è¦<C3A8>ã€<C3A3>作者ã€<C3A3>年份ã€<C3A3>期刊ã€<C3A3>PMIDã€<C3A3>DOI
|
||
- 固定列宽ã€<C3A3>Tooltip显示全文
|
||
- æ— åˆ†é¡µï¼ˆå†…å˜ä¸ï¼‰
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T3.2.6** 实现Excel模æ<C2A1>¿ä¸‹è½½
|
||
- 生æˆ<C3A6>包å<E280A6>«å—段说明的Excel模æ<C2A1>¿
|
||
- 两个Sheet:文献列表ã€<C3A3>å—æ®µè¯´æ˜? - 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
**Day 12 éªŒæ”¶æ ‡å‡†** ✅:
|
||
- âœ?å<>¯æˆ<C3A6>功上ä¼?Excel 文件
|
||
- âœ?è§£æž<C3A6>å<EFBFBD>Žæ•°æ<C2B0>®æ£ç¡®å±•ç¤?- âœ?去é‡<C3A9>功能æ£å¸¸ï¼ˆDOIä¼˜å…ˆï¼Œæ ‡é¢˜è¾…åŠ©ï¼‰
|
||
- âœ?Excel模æ<C2A1>¿ä¸‹è½½æ£å¸¸
|
||
|
||
---
|
||
|
||
### Day 13: API 客户端å°<C3A5>è£?âœ?
|
||
#### å‰<C3A5>端任务
|
||
|
||
- [✅] **T3.3.1** 创建 API 客户� - `api/index.ts`
|
||
- 使用 `fetch` + 统一错误处ç<E2809E>†
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T3.3.2** 实现项目 API
|
||
- `createProject(data)`
|
||
- `listProjects()`
|
||
- `getProject(id)`
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T3.3.3** 实现文献 API
|
||
- `importLiteratures(projectId, literatures)`
|
||
- 实际耗时�0 分钟
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T3.3.4** 实现ç›é€?API
|
||
- `getScreeningTask(projectId)` - 获å<C2B7>–任务进度
|
||
- `getScreeningResultsList(projectId, params)` - 获å<C2B7>–结果列表
|
||
- `getScreeningResultDetail(resultId)` - 获å<C2B7>–结果详情
|
||
- `reviewScreeningResult(resultId, data)` - 人工å¤<C3A5>æ ¸
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T3.3.5** å‰<C3A5>å<EFBFBD>Žç«¯è<C2AF>”è°? - 测试所有API调用
|
||
- 错误处ç<E2809E>†ï¼ˆç»Ÿä¸€messageæ<65><C3A6>示ï¼? - Loading 状æ€? - 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant + 用户
|
||
|
||
**Day 13 éªŒæ”¶æ ‡å‡†** ✅:
|
||
- âœ?API 客户端å<C2AF>¯æ£å¸¸è°ƒç”¨å<C2A8>Žç«¯
|
||
- âœ?ä¸Šä¼ Excelå<6C>Žæ•°æ<C2B0>®ä¿<C3A4>å˜åˆ°æ•°æ<C2B0>®åº?- âœ?自动å<C2A8>¯åЍç›é€‰ä»»åŠ?
|
||
---
|
||
|
||
### Day 14-15: å®¡æ ¸å·¥ä½œå<C593>°ï¼ˆæ ¸å¿ƒUI)✅
|
||
|
||
#### å‰<C3A5>端任务
|
||
|
||
- [✅] **T3.4.1** 实现 `ScreeningWorkbench` 页é<C2B5>¢
|
||
- 任务进度显示(轮��次)
|
||
- å<>Œè¡Œè¡¨æ ¼ç»“构(使用`rowSpan`ï¼? - 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T3.4.2** 实现表头
|
||
- åº<C3A5>å<EFBFBD>·ã€<C3A3>æ–‡çŒ®æ ‡é¢˜ã€<C3A3>结论ã€<C3A3>æ“<C3A6>作ã€<C3A3>模型ã€<C3A3>Pã€<C3A3>Iã€<C3A3>Cã€<C3A3>S
|
||
- 压缩列宽ã€<C3A3>模型å<E280B9><C3A5>缩写(DS/Qwï¼? - 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T3.4.3** 实现主行(å<CB86>Œè¡Œï¼‰
|
||
- ç‚¹å‡»æ ‡é¢˜å±•å¼€/æ”¶èµ·è¯<C3A8>æ<EFBFBD>®
|
||
- æ–‡çŒ®æ ‡é¢˜ã€<C3A3>DSå’ŒQwençš„PICO判æ–(å<CB86>•å—æ¯<C3A6>ï¼? - 冲çª<C3A7>状æ€<C3A6>(红色背景ï¼? - 结论Tag(纳å…?排除ï¼? - 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T3.4.4** 实现展开è¡? - 显示DSå’ŒQwen的详细PICOS判æ–ã€<C3A3>è¯<C3A8>æ<EFBFBD>®ã€<C3A3>ç<EFBFBD>†ç”? - 两æ <C3A6>布局(左DS,å<C592>³Qwenï¼? - 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T3.4.5** 实现冲çª<C3A7>高亮
|
||
- 冲çª<C3A7>行背景色浅红(仅结论ä¸<C3A4>一致)
|
||
- 冲çª<C3A7>Tag显示
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T3.4.6** 实现å¤<C3A5>æ ¸Drawer
|
||
- 使用 `Ant Design Drawer`�000px宽)
|
||
- 左侧70%:文献详情ã€<C3A3>模型判æ–ã€<C3A3>è¯<C3A8>æ<EFBFBD>? - å<>³ä¾§30%:人工å¤<C3A5>æ ¸è¡¨å<C2A8>•(stickyï¼? - 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T3.4.7** 实现ç›é€‰Tab
|
||
- 全部ã€<C3A3>冲çª<C3A7>ã€<C3A3>已纳入ã€<C3A3>已排除ã€<C3A3>å·²å¤<C3A5>æ ¸
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T3.4.8** 实现分页
|
||
- å<>Žç«¯åˆ†é¡µï¼?0æ<30>?页)
|
||
- 实际耗时�0 分钟
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
**Day 14-15 éªŒæ”¶æ ‡å‡†** ✅:
|
||
- âœ?å®¡æ ¸å·¥ä½œå<C593>°å®Œæ•´å<C2B4>¯ç”?- âœ?è¡¨æ ¼å<C2BC>¯æ£ç¡®å±•示ç›é€‰ç»“果(å<CB86>Œè¡Œï¼?- âœ?冲çª<C3A7>项高亮显示(红色背景ï¼?- âœ?å¤<C3A5>æ ¸Drawerå<72>¯å¼¹å‡ºå¹¶æ<C2B6><C3A6>交
|
||
- �进度实时更新�秒轮询)
|
||
- âœ?列表顺åº<C3A5>与Excelä¸Šä¼ ä¸€è‡?
|
||
---
|
||
|
||
## 🗓ï¸?Week 4: 结果展示与集æˆ<C3A6>测试(Day 16-20)✅ 已完æˆ?
|
||
**完æˆ<C3A6>日期**: 2025-11-21
|
||
**实际耗时**: 1天(3å°<C3A5>æ—¶ï¼?
|
||
**完æˆ<C3A6>报告**: [Week4完æˆ<C3A6>报告](../05-å¼€å<E282AC>‘è®°å½?2025-11-21-Week4完æˆ<C3A6>报告.md)
|
||
**架构验è¯<C3A8>**: âœ?完全符å<C2A6>ˆäº‘原生开å<E282AC>‘è§„èŒ?
|
||
### Day 16: 结果统计与展��
|
||
#### å‰<C3A5>端任务
|
||
|
||
- [✅] **T4.1.1** 实现统计概览å<CB86>¡ç‰‡
|
||
- 4个å<C2AA>¡ç‰‡ï¼ˆæ€»æ•°ã€<C3A3>纳入ã€<C3A3>排除ã€<C3A3>å¾…å¤<C3A5>æ ¸ï¼? - 使用 `Ant Design Statistic`
|
||
- 实际耗时�0 分钟
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T4.1.2** 实现 PRISMA å¼<C3A5>排除总结
|
||
- æŒ‰æŽ’é™¤åŽŸå› åˆ†ç»„ç»Ÿè®¡ï¼ˆå<CB86>Žç«¯è<C2AF>šå<C5A1>ˆï¼? - 柱状图展示(Progress组件ï¼? - 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T4.1.3** 实现结果列表 Tab é¡? - 全部ã€<C3A3>已纳入ã€<C3A3>已排除ã€<C3A3>å¾…å¤<C3A5>æ ¸ Tab
|
||
- Tabæ•°é‡<C3A9>动æ€<C3A6>显ç¤? - 实际耗时ï¼?0 分钟
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T4.1.4** å®žçŽ°ç»“æžœè¡¨æ ¼ï¼ˆæ··å<C2B7>ˆæ–¹æ¡ˆï¼‰
|
||
- 列:åº<C3A5>å<EFBFBD>·ã€<C3A3>æ ‡é¢˜ã€<C3A3>AI共识ã€<C3A3>æŽ’é™¤åŽŸå› ã€<C3A3>人工最终决ç–ã€<C3A3>状æ€<C3A6>ã€<C3A3>æ“<C3A6>ä½? - å<>¯ç‚¹å‡»æ ‡é¢˜å±•开查看å<E280B9>Œæ¨¡åž‹è¯¦ç»†åˆ¤æ–? - 总宽åº?70pxï¼ˆæ— éœ€æ¨ªå<C2AA>‘滚动ï¼? - 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T4.1.5** 实现å<C2B0>Žç«¯ç»Ÿè®¡API
|
||
- GET /projects/:projectId/statistics
|
||
- Prisma并行è<C592>šå<C5A1>ˆæŸ¥è¯¢
|
||
- 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
**Day 16 éªŒæ”¶æ ‡å‡†** ✅:
|
||
- âœ?统计数æ<C2B0>®æ£ç¡®å±•示
|
||
- �PRISMA 排除总结清晰
|
||
- âœ?结果列表å<C2A8>¯æ£å¸¸æŸ¥çœ?- âœ?æ··å<C2B7>ˆæ–¹æ¡ˆè§£å†³é€»è¾‘矛盾
|
||
- âœ?云原生架构验è¯<C3A8>通过
|
||
|
||
---
|
||
|
||
### Day 17: Excel 导出功能
|
||
|
||
#### å<>Žç«¯ä»»åŠ¡
|
||
|
||
- [ ] **T4.2.1** å<>Žç«¯å®žçŽ°å¯¼å‡ºé€»è¾‘
|
||
- 使用 `exceljs` åº? - 生æˆ<C3A6> Excel 文件
|
||
- 预计耗时ï¼? å°<C3A5>æ—¶
|
||
- 负责人:å<C5A1>Žç«¯å¼€å<E282AC>?
|
||
- [ ] **T4.2.2** 实现导出 API
|
||
- `GET /api/v1/asl/projects/:id/screening/results/export`
|
||
- 支æŒ<C3A6>过滤å<C2A4>‚数(导出全éƒ?仅纳å…?仅排除)
|
||
- 预计耗时ï¼?.5 å°<C3A5>æ—¶
|
||
- 负责人:å<C5A1>Žç«¯å¼€å<E282AC>?
|
||
#### å‰<C3A5>端任务
|
||
|
||
- [ ] **T4.2.3** å‰<C3A5>端实现导出按钮
|
||
- 调用导出 API
|
||
- 下载文件
|
||
- 预计耗时ï¼? å°<C3A5>æ—¶
|
||
- 负责人:å‰<C3A5>端开å<E282AC>?
|
||
- [✅] **T4.2.1** 创建Excel导出工具
|
||
- 文件:`utils/excelExport.ts`
|
||
- 使用 `xlsx` 库(å‰<C3A5>端生æˆ<C3A6>,零文件è<C2B6>½ç›˜ï¼? - 实际耗时ï¼?.5 å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T4.2.2** 实现导出功能
|
||
- 导出统计摘è¦<C3A8>ï¼?个Sheetï¼? - 导出åˆ<C3A5>ç›ç»“果(当å‰<C3A5>Tabï¼? - 导出选ä¸é¡? - 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T4.2.3** Excelæ ¼å¼<C3A5>优化(混å<C2B7>ˆæ–¹æ¡ˆï¼‰
|
||
- å…?0列完整信æ<C2A1>? - 包å<E280A6>«AI共识ã€<C3A3>å<EFBFBD>Œæ¨¡åž‹è¯¦ç»†åˆ¤æ–ã€<C3A3>人工决ç? - 一行显示全部信æ<C2A1>? - 自动设置列宽
|
||
- 实际耗时�0 分钟
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
**Day 17 éªŒæ”¶æ ‡å‡†** ✅:
|
||
- âœ?å<>¯æˆ<C3A6>功导å‡?Excelï¼?ç§<C3A7>æ–¹å¼<C3A5>)
|
||
- âœ?å¯¼å‡ºæ ¼å¼<C3A5>规范ï¼?0列)
|
||
- âœ?æ•°æ<C2B0>®å®Œæ•´å‡†ç¡®
|
||
- âœ?云原生:å‰<C3A5>端生æˆ<C3A6>,零文件è<C2B6>½ç›˜
|
||
|
||
---
|
||
|
||
### Day 18: 完整æµ<C3A6>程测试 âœ?
|
||
#### 集æˆ<C3A6>测试任务
|
||
|
||
- [✅] **T4.3.1** 端到端完整æµ<C3A6>程测è¯? - ä¸Šä¼ â†?ç›é€?â†?å¤<C3A5>æ ¸ â†?统计 â†?导出
|
||
- 使用真实çš?7 篇测试数æ<C2B0>? - 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant + 用户
|
||
|
||
- [✅] **T4.3.2** UI/UX优化
|
||
- ä¿®å¤<C3A5>逻辑矛盾(纳入ä¸<C3A4>æ˜¾ç¤ºæŽ’é™¤åŽŸå› ï¼? - 实现混å<C2B7>ˆæ–¹æ¡ˆï¼ˆAI共识+人工决ç–ï¼? - ä¼˜åŒ–è¡¨æ ¼å®½åº¦ï¼?70pxï¼Œæ— éœ€æ»šåŠ¨ï¼? - 实际耗时ï¼? å°<C3A5>æ—¶
|
||
- 完æˆ<C3A6>人:AI Assistant + 用户
|
||
|
||
- [✅] **T4.3.3** 性能测试
|
||
- 统计API�500ms�99篇)
|
||
- Excel导出�3秒(199篇)
|
||
- 实际耗时�0 分钟
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
- [✅] **T4.3.4** 创建快速测试工� - `scripts/get-test-projects.mjs`
|
||
- 自动推è<C2A8><C3A8>有数æ<C2B0>®çš„项目
|
||
- 生æˆ<C3A6>测试URL
|
||
- 实际耗时�0 分钟
|
||
- 完æˆ<C3A6>人:AI Assistant
|
||
|
||
**Day 18 éªŒæ”¶æ ‡å‡†** ✅:
|
||
- âœ?完整æµ<C3A6>ç¨‹æ— é˜»å¡?- âœ?æ··å<C2B7>ˆæ–¹æ¡ˆè§£å†³é—®é¢˜
|
||
- âœ?æ€§èƒ½è¾¾æ ‡
|
||
- âœ?符å<C2A6>ˆäº‘原生规èŒ?
|
||
---
|
||
|
||
### Day 19: è´¨é‡<C3A9>验收
|
||
|
||
#### è´¨é‡<C3A9>验收任务
|
||
|
||
- [ ] **T4.4.1** 准确率测è¯? - ä½¿ç”¨é‡‘æ ‡å‡†æ•°æ<C2B0>®é›†ï¼?99 篇)
|
||
- 计算准确率ã€<C3A3>å<EFBFBD>¬å›žçއã€<C3A3>F1
|
||
- ç›®æ ‡ï¼šå‡†ç¡®çŽ‡ â‰?85%
|
||
- 预计耗时ï¼? å°<C3A5>æ—¶
|
||
- 负责人:AI工程å¸?+ 医å¦ä¸“å®¶
|
||
|
||
- [ ] **T4.4.2** å<>Œæ¨¡åž‹ä¸€è‡´æ€§æµ‹è¯? - 计算一致率
|
||
- ç›®æ ‡ï¼šâ‰¥ 80%
|
||
- 预计耗时ï¼? å°<C3A5>æ—¶
|
||
- 负责人:AI工程�
|
||
- [ ] **T4.4.3** JSON Schema 验è¯<C3A8>率测è¯? - 统计验è¯<C3A8>通过çŽ? - ç›®æ ‡ï¼šâ‰¥ 95%
|
||
- 预计耗时�0 分钟
|
||
- 负责人:å<C5A1>Žç«¯å¼€å<E282AC>?
|
||
- [ ] **T4.4.4** 人工å¤<C3A5>æ ¸é˜Ÿåˆ—æµ‹è¯•
|
||
- 统计需人工å¤<C3A5>æ ¸çš„æ¯”ä¾? - ç›®æ ‡ï¼šâ‰¤ 20%
|
||
- 预计耗时�0 分钟
|
||
- 负责人:AI工程�
|
||
- [ ] **T4.4.5** æ ¹æ<C2B9>®æµ‹è¯•结果优化
|
||
- 调整æ<C2B4><C3A6>示è¯? - 调整分æµ<C3A6>阈å€? - 预计耗时ï¼? å°<C3A5>æ—¶
|
||
- 负责人:AI工程�
|
||
**Day 19 éªŒæ”¶æ ‡å‡†**ï¼?- âœ?准确çŽ?â‰?85%
|
||
- âœ?å<>Œæ¨¡åž‹ä¸€è‡´çއ â‰?80%
|
||
- âœ?JSON Schema 验è¯<C3A8>通过çŽ?â‰?95%
|
||
- âœ?人工å¤<C3A5>æ ¸é˜Ÿåˆ— â‰?20%
|
||
|
||
---
|
||
|
||
### Day 20: 文档与交�
|
||
#### 文档任务
|
||
|
||
- [ ] **T4.5.1** 编写用户手册
|
||
- 功能介ç»<C3A7>
|
||
- æ“<C3A6>作æ¥éª¤
|
||
- 常è§<C3A8>问题
|
||
- 预计耗时ï¼? å°<C3A5>æ—¶
|
||
- 负责人:产å“<C3A5>ç»<C3A7>ç<EFBFBD>†
|
||
|
||
- [ ] **T4.5.2** 编写技术文� - 架构设计
|
||
- API 文档
|
||
- æ•°æ<C2B0>®åº“设è®? - 预计耗时ï¼? å°<C3A5>æ—¶
|
||
- 负责人:å<C5A1>Žç«¯å¼€å<E282AC>?
|
||
- [ ] **T4.5.3** 编写测试报告
|
||
- 测试用例
|
||
- 测试结果
|
||
- è´¨é‡<C3A9>æŒ‡æ ‡
|
||
- 预计耗时ï¼? å°<C3A5>æ—¶
|
||
- 负责人:测试
|
||
|
||
- [ ] **T4.5.4** 代ç <C3A7>审查
|
||
- 代ç <C3A7>规范检æŸ? - 安全性检æŸ? - 性能检æŸ? - 预计耗时ï¼? å°<C3A5>æ—¶
|
||
- 负责人:技�Leader
|
||
|
||
- [ ] **T4.5.5** 准备演示环境
|
||
- 部署到测试环å¢? - 准备演示数æ<C2B0>®
|
||
- 预计耗时ï¼? å°<C3A5>æ—¶
|
||
- 负责人:è¿<C3A8>ç»´
|
||
|
||
**Day 20 éªŒæ”¶æ ‡å‡†**ï¼?- âœ?文档完整
|
||
- âœ?代ç <C3A7>è´¨é‡<C3A9>å<EFBFBD>ˆæ ¼
|
||
- �测试报告完整
|
||
- �演示环境就绪
|
||
|
||
---
|
||
|
||
## 📊 总体验收清å<E280A6>•ï¼?025-11-21 æ›´æ–°ï¼?
|
||
### 功能完整性(MVPæ ¸å¿ƒï¼?
|
||
- [✅] 用户å<C2B7>¯ä¸Šä¼?Excel 文件
|
||
- [✅] Excel æ ¼å¼<C3A5>验è¯<C3A8>æ£å¸¸ï¼ˆä¸è‹±æ–‡è¡¨å¤´ï¼?- [✅] 文献去é‡<C3A9>功能æ£å¸¸ï¼ˆDOIä¼˜å…ˆï¼Œæ ‡é¢˜è¾…åŠ©ï¼‰
|
||
- [✅] AI å<>Œæ¨¡åž‹ç›é€‰å<E280B0>¯è¿<C3A8>行(DeepSeek + Qwenï¼?- [✅] 冲çª<C3A7>è‡ªåŠ¨æ£€æµ‹å’Œæ ‡è®°ï¼ˆä»…ç»“è®ºä¸<C3A4>一致)
|
||
- [✅] 人工å¤<C3A5>æ ¸ç•Œé<C592>¢å®Œæ•´ï¼ˆDetailReviewDrawerï¼?- [✅] 批é‡<C3A9>选择功能æ£å¸¸ï¼ˆCheckbox多选)
|
||
- [✅] 结果统计æ£ç¡®å±•示(统计概è§?PRISMA排除分æž<C3A6>ï¼?- [✅] Excel 导出功能æ£å¸¸ï¼?ç§<C3A7>导出方å¼<C3A5>)
|
||
- [✅] ASL模å<C2A1>—在顶部导航显示并å<C2B6>¯ç‚¹å‡?- [✅] æ··å<C2B7>ˆæ–¹æ¡ˆè§£å†³é€»è¾‘矛盾(AI决ç–+äººå·¥å†³ç–æ˜Žç¡®åŒºåˆ†ï¼?
|
||
### è´¨é‡<C3A9>æŒ‡æ ‡
|
||
|
||
- [âš ï¸<C3AF>] 准确çŽ?60%ï¼?*ç›®æ ‡85%,需Prompt优化**ï¼?- [✅] å<>Œæ¨¡åž‹ä¸€è‡´çއ 70-100%
|
||
- [✅] JSON Schema 验è¯<C3A8>通过çŽ?100%
|
||
- [âš ï¸<C3AF>] 人工å¤<C3A5>æ ¸é˜Ÿåˆ— 20-30%ï¼ˆç›®æ ‡â‰¤20%ï¼?
|
||
### æ€§èƒ½æŒ‡æ ‡
|
||
|
||
- [âš ï¸<C3AF>] 199 篇文献ç›é€?33-66 分钟(串行,**å<>¯ä¼˜åŒ–为3-5å¹¶å<C2B6>‘**ï¼?- [✅] Excel ä¸Šä¼ å“<C3A5>应 < 1 秒(内å˜è§£æž<C3A6>ï¼?- [✅] 页é<C2B5>¢åŠ è½½ < 2 ç§?
|
||
### 架构验è¯<C3A8>
|
||
|
||
- [✅] ASL模å<C2A1>—æ£ç¡®æ³¨å†Œï¼ˆå·¦ä¾§å¯¼èˆªï¼‰
|
||
- [✅] å<>Žç«¯è·¯ç”±æ³¨å†Œåˆ?/api/v1/asl/*
|
||
- [✅] æ•°æ<C2B0>®ä¿<C3A4>å˜åˆ?asl_schema
|
||
- [✅] å¤<C3A5>用 common/llm æˆ<C3A6>功(LLMFactoryï¼?- [✅] Prisma Client æ£å¸¸å·¥ä½œï¼ˆå…¨å±€å®žä¾‹ï¼?- [✅] 云原生è¦<C3A8>求:内å˜è§£æž<C3A6>Excel
|
||
- [✅] 云原生è¦<C3A8>求:异æ¥å¤„ç<E2809E>†ç›é€‰ä»»åŠ?
|
||
---
|
||
|
||
---
|
||
|
||
## 🚀 Phase 2: 智能Prompt生æˆ<C3A6>模å<C2A1>—(Week 5-7ï¼?
|
||
> **å‰<C3A5>ç½®æ<C2AE>¡ä»¶**: MVP阶段(Week 1-4)完æˆ?
|
||
> **å¼€å<E282AC>‘周æœ?*: 3å‘?
|
||
> **优先�*: P1(高级功能)
|
||
> **详细设计**: [智能Prompt生æˆ<C3A6>模å<C2A1>—å¼€å<E282AC>‘计划](../02-技术设è®?07-智能Prompt生æˆ<C3A6>模å<C2A1>—å¼€å<E282AC>‘计åˆ?md)
|
||
|
||
### æ ¸å¿ƒç›®æ ‡
|
||
|
||
**解决问题**: 消除AI与人类对边界情况的ç<E2809E>†è§£å·®å¼?
|
||
**æ ¸å¿ƒæµ<C3A6>程**:
|
||
```
|
||
用户输入PICOS â†?AI分æž<C3A6>边界情况 â†?用户确认 â†?生æˆ<C3A6>自定义Prompt â†?ç›é€?```
|
||
|
||
---
|
||
|
||
### 🗓ï¸?Week 5: å<>Žç«¯å¼€å<E282AC>‘(Day 21-25ï¼?
|
||
#### Day 21-22: PICOS分æž<C3A6>æœ<C3A6>务
|
||
|
||
- [ ] **T5.1.1** 创建Prompté…<C3A9>置数æ<C2B0>®è¡? - 文件:`backend/prisma/schema.prisma`
|
||
- 新增模型:`PromptConfiguration`
|
||
- 预计耗时ï¼?å°<C3A5>æ—¶
|
||
|
||
- [ ] **T5.1.2** 实现PICOS分æž<C3A6>æœ<C3A6>务
|
||
- 文件:`backend/src/modules/asl/services/picosAnalyzer.ts`
|
||
- 功能:调用LLM分æž<C3A6>PICOS,生æˆ<C3A6>边界问é¢? - 预计耗时ï¼?å¤?
|
||
- [ ] **T5.1.3** API: 分æž<C3A6>PICOS
|
||
- 路由:`POST /api/v1/asl/prompt/analyze`
|
||
- 预计耗时ï¼?å°<C3A5>æ—¶
|
||
|
||
#### Day 23: Prompt生æˆ<C3A6>æœ<C3A6>务
|
||
|
||
- [ ] **T5.2.1** 实现Prompt生æˆ<C3A6>逻辑
|
||
- 文件:`backend/src/modules/asl/services/promptGenerator.ts`
|
||
- 预计耗时��
|
||
- [ ] **T5.2.2** API: 确认边界规则并生æˆ<C3A6>Prompt
|
||
- 路由:`POST /api/v1/asl/prompt/confirm-rules`
|
||
- 预计耗时ï¼?å°<C3A5>æ—¶
|
||
|
||
#### Day 24: Promptä¿<C3A4>å˜ä¸Žä½¿ç”?
|
||
- [ ] **T5.3.1** API: ä¿<C3A4>å˜æœ€ç»ˆPrompt
|
||
- 路由:`POST /api/v1/asl/prompt/save`
|
||
- 预计耗时ï¼?å°<C3A5>æ—¶
|
||
|
||
- [ ] **T5.3.2** 修改ç›é€‰æœ<C3A6>务支æŒ<C3A6>自定义Prompt
|
||
- 新增å<C5BE>‚数:`customPromptOverride?: string`
|
||
- 预计耗时ï¼?å°<C3A5>æ—¶
|
||
|
||
#### Day 25: 测试与优�
|
||
- [ ] **T5.4.1** å<>•元测试
|
||
- 预计耗时ï¼?å°<C3A5>æ—¶
|
||
|
||
- [ ] **T5.4.2** 集æˆ<C3A6>测试
|
||
- 预计耗时ï¼?å°<C3A5>æ—¶
|
||
|
||
---
|
||
|
||
### 🗓ï¸?Week 6: å‰<C3A5>端开å<E282AC>‘(Day 26-30ï¼?
|
||
#### Day 26: PICOS输入界é<C592>¢
|
||
|
||
- [ ] **T6.1.1** 创建PICOSé…<C3A9>置页é<C2B5>¢
|
||
- 路径:`/asl/projects/:id/prompt-config`
|
||
- 预计耗时ï¼?å°<C3A5>æ—¶
|
||
|
||
- [ ] **T6.1.2** PICOS输入表å<C2A8>•组件
|
||
- 7ä¸ªè¾“å…¥å—æ®? - 预计耗时ï¼?å°<C3A5>æ—¶
|
||
|
||
#### Day 27-28: 用户确认界é<C592>¢
|
||
|
||
- [ ] **T6.2.1** AIç<49>†è§£å±•示组件
|
||
- 显示必须纳入/排除的è¦<C3A8>ç´? - 预计耗时ï¼?å¤?
|
||
- [ ] **T6.2.2** 边界问题确认组件
|
||
- é€<C3A9>个确认边界问题
|
||
- 预计耗时��
|
||
#### Day 29: Prompt编辑�
|
||
- [ ] **T6.3.1** Prompt预览与编辑组ä»? - 支æŒ<C3A6>用户编辑和ä¿<C3A4>å? - 预计耗时ï¼?å¤?
|
||
#### Day 30: 集æˆ<C3A6>与测è¯?
|
||
- [ ] **T6.4.1** 完整æµ<C3A6>程集æˆ<C3A6>
|
||
- 预计耗时ï¼?å°<C3A5>æ—¶
|
||
|
||
- [ ] **T6.4.2** UI/UX优化
|
||
- 预计耗时ï¼?å°<C3A5>æ—¶
|
||
|
||
---
|
||
|
||
### 🗓�Week 7: 优化与上线(Day 31-35�
|
||
#### Day 31-32: 功能完善
|
||
|
||
- [ ] **T7.1.1** Prompt模æ<C2A1>¿ç®¡ç<C2A1>†
|
||
- 预计耗时��
|
||
- [ ] **T7.1.2** 在ç›é€‰ä»»åŠ¡ä¸ä½¿ç”¨è‡ªå®šä¹‰Prompt
|
||
- 预计耗时ï¼?å°<C3A5>æ—¶
|
||
|
||
#### Day 33: 测试
|
||
|
||
- [ ] **T7.2.1** 端到端测� - 预计耗时��
|
||
#### Day 34-35: 优化与上�
|
||
- [ ] **T7.3.1** 性能优化
|
||
- 预计耗时ï¼?å°<C3A5>æ—¶
|
||
|
||
- [ ] **T7.3.2** 用户文档
|
||
- 预计耗时ï¼?å°<C3A5>æ—¶
|
||
|
||
- [ ] **T7.3.3** 上线部署
|
||
- 预计耗时ï¼?å°<C3A5>æ—¶
|
||
|
||
---
|
||
|
||
### Phase 2 éªŒæ”¶æ ‡å‡†
|
||
|
||
- [ ] 用户å<C2B7>¯ä»¥è¾“å…¥PICOSå’Œçº³æŽ’æ ‡å‡?- [ ] AIå<49>¯ä»¥åˆ†æž<C3A6>并生æˆ?-8个边界问é¢?- [ ] 用户å<C2B7>¯ä»¥ç¡®è®¤æ¯<C3A6>个边界问题的处ç<E2809E>†æ–¹å¼?- [ ] 系统å<C5B8>¯ä»¥è‡ªåŠ¨ç”Ÿæˆ<C3A6>自定义Prompt
|
||
- [ ] 用户å<C2B7>¯ä»¥ç¼–辑生æˆ<C3A6>çš„Prompt
|
||
- [ ] ç›é€‰ä»»åŠ¡å<C2A1>¯ä»¥ä½¿ç”¨è‡ªå®šä¹‰Prompt
|
||
- [ ] Prompt生æˆ<C3A6>准确çŽ?â‰?90%
|
||
|
||
---
|
||
|
||
## 📊 完整进度跟踪�025-11-21 更新�
|
||
| 阶段 | Week | 任务 | 状æ€?| 完æˆ<C3A6>æ—¶é—´ | 备注 |
|
||
|------|------|------|------|----------|------|
|
||
| **MVP** | Week 1 | æ•°æ<C2B0>®åº?å<>Žç«¯API | âœ?| 2025-11-18 | æ<><C3A6>å‰<C3A5>4天完æˆ?|
|
||
| **MVP** | Week 2 | LLMç›é€‰æ ¸å¿?| âœ?| 2025-11-21 | 准确çŽ?0%,需优化 |
|
||
| **MVP** | Week 3 | å‰<C3A5>端UI(设ç½?工作å<C593>°ï¼‰ | âœ?| 2025-11-21 | 实际在Week 2完æˆ<C3A6> |
|
||
| **MVP** | Week 4 | 结果展示+导出 | âœ?| 2025-11-21 | **æ··å<C2B7>ˆæ–¹æ¡ˆï¼Œäº‘原生架构** |
|
||
| **MVP优化** | - | **Prompt优化** | 🔄 | - | **下一æ¥ï¼šæ<C5A1><C3A6>å<EFBFBD>‡è‡?5%** |
|
||
| **MVP优化** | - | å¹¶å<C2B6>‘处ç<E2809E>†ä¼˜åŒ– | â<>¸ï¸<C3AF> | - | 3-5å¹¶å<C2B6>‘,æ<C592><C3A6>å<EFBFBD>‡æ€§èƒ½ |
|
||
| **Phase 2** | Week 5 | 智能Promptå<74>Žç«¯ | â¬?| - | å¾…MVPè´¨é‡<C3A9>è¾¾æ ‡å<E280A1>Žå¼€å§?|
|
||
| **Phase 2** | Week 6 | 智能Promptå‰<C3A5>端 | â¬?| - | - |
|
||
| **Phase 2** | Week 7 | 优化+上线 | �| - | - |
|
||
|
||
---
|
||
|
||
## 📚 相关文档
|
||
|
||
- [å¼€å<EFBFBD>‘里程碑](./01-å¼€å<E282AC>‘里程碑.md)
|
||
- [æ ‡é¢˜æ‘˜è¦<EFBFBD>åˆ<EFBFBD>ç›å¼€å<EFBFBD>‘计划](./02-æ ‡é¢˜æ‘˜è¦<C3A8>åˆ<C3A5>ç›å¼€å<E282AC>‘计åˆ?md)
|
||
- [è´¨é‡<EFBFBD>ä¿<EFBFBD>éšœç–ç•¥](../02-技术设è®?06-è´¨é‡<C3A9>ä¿<C3A4>障与å<C5BD>¯è¿½æº¯ç–ç•¥.md)
|
||
- [技术选型](../02-技术设è®?07-文献处ç<E2809E>†æŠ€æœ¯é€‰åž‹.md)
|
||
- [API 设计规范](../02-技术设�02-API设计规范.md)
|
||
- [智能Prompt生æˆ<EFBFBD>模å<EFBFBD>—](../02-技术设è®?07-智能Prompt生æˆ<C3A6>模å<C2A1>—å¼€å<E282AC>‘计åˆ?md) â?**新增**
|
||
- [å‰<EFBFBD>å<EFBFBD>Žç«¯æ¨¡å<EFBFBD>—化架构设计-V2](../../../00-系统总体设计/å‰<C3A5>å<EFBFBD>Žç«¯æ¨¡å<C2A1>—化架构设计-V2.md)
|
||
- [Schema隔离架构设计](../../../09-架构实施/01-Schema隔离架构设计�0个).md)
|
||
|
||
---
|
||
|
||
**更新日志**ï¼?- 2025-11-21: V3.3 更新,Week 4功能完æˆ<C3A6>(结果展ç¤?Excel导出,混å<C2B7>ˆæ–¹æ¡ˆè§£å†³é€»è¾‘矛盾ï¼?- 2025-11-21: V3.2 更新,å<C592><C3A5>æ˜ MVPæ ¸å¿ƒåŠŸèƒ½å®Œæˆ<C3A6>状æ€<C3A6>(Week 1-3已完æˆ<C3A6>,准确çŽ?0%需优化ï¼?- 2025-11-18: V4.0 更新,整å<C2B4>ˆæ™ºèƒ½Prompt生æˆ<C3A6>模å<C2A1>—(Phase 2: Week 5-7ï¼?- 2025-11-18: V3.1 更新,补充平å<C2B3>°åŸºç¡€è®¾æ–½å®Œæˆ<C3A6>状æ€<C3A6>(8ä¸ªæ ¸å¿ƒæ¨¡å<C2A1>—,ç¦<C3A7>æ¢æ“<C3A6>作清å<E280A6>•ï¼?- 2025-11-16: V3.0 完全é‡<C3A9>写,基于真实架构(Frontend-v2 + Backend + asl_schema),详细到æ¯<C3A6>个任åŠ?- 2025-11-16: V2.0 完全é‡<C3A9>写,详细到æ¯<C3A6>个任务(预计耗时ã€<C3A3>负责人ã€<C3A3>éªŒæ”¶æ ‡å‡†ï¼‰
|
||
- 2025-10-29: V1.0 创建,åˆ<C3A5>å§‹å<E280B9> ä½<C3A4>符
|