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%)
36 KiB
ASL 模å<C2A1>—任务分解(To-do Listï¼?
*文档版本� V3.2
*创建日期� 2025-11-16
*适用阶段ï¼? MVPï¼ˆæ ‡é¢˜æ‘˜è¦<C3A8>åˆ<C3A5>ç›ï¼‰
*预计周期ï¼? 4 å‘? 最å<EFBFBD>Žæ›´æ–°ï¼š 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>‘è§„èŒ? 详细规范:云原生开å<EFBFBD>‘规范
æ ¸å¿ƒè¦<EFBFBD>求
| è¦<EFBFBD>求 | 说明 |
|---|---|
| âœ?*å˜å‚¨æŠ½è±¡å±? | 使用 StorageFactory,支æŒ<EFBFBD>本åœ?OSS切æ<E280A1>¢ |
| âœ?内å˜è§£æž<EFBFBD> | Excel导入使用 xlsx.read(buffer),ä¸<EFBFBD>è<EFBFBD>½ç›˜ |
| âœ?异æ¥ä»»åŠ¡ | LLMç›é€‰å¿…须异æ¥å¤„ç<EFBFBD>†ï¼ˆ> 10秒) |
| âœ?环境å<EFBFBD>˜é‡<EFBFBD> | 所有é…<EFBFBD>置从 .env 读å<C2BB>– |
| âœ?**æ•°æ<C2B0>®åº“è¿žæŽ¥æ± ** | 使用全局 prisma 实例 |
| âœ?OSSå—æ®µé¢„ç•™ | pdfUrl, pdfOssKey, pdfFileSize |
æ¯<EFBFBD>日检查清å<EFBFBD>?
æ<EFBFBD><EFBFBD>交代ç <EFBFBD>å‰<EFBFBD>必须确认:
- 是å<EFBFBD>¦ä½¿ç”¨å˜å‚¨æŠ½è±¡å±‚?
- 是å<EFBFBD>¦é<EFBFBD>¿å…<EFBFBD>文件è<EFBFBD>½ç›˜ï¼?- [ ] 是å<C2AF>¦ä½¿ç”¨å…¨å±€ prisma 实例ï¼?- [ ] 是å<C2AF>¦æ‰€æœ‰é…<C3A9>置都从环境å<C692>˜é‡<C3A9>读å<C2BB>–?
- 长时间任务是å<EFBFBD>¦å¼‚æ¥å¤„ç<EFBFBD>†ï¼Ÿ
🗓ï¸?Week 1: æ•°æ<C2B0>®åº“Schema与å<C5BD>Žç«¯API框架(Day 1-5)✅ 已完æˆ?
完æˆ<EFBFBD>日期: 2025-11-18
实际耗时: 1天(æ<CB86><C3A6>å‰<C3A5>4天)
完æˆ<EFBFBD>报告: Week 1完æˆ<C3A6>报告
API测试: ASL-API测试报告
Day 1: Prisma Schema 设计 �
æ•°æ<EFBFBD>®åº“ä»»åŠ?
-
[✅] 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访问URLpdfOssKey String? @map("pdf_oss_key")- OSSå˜å‚¨KeypdfFileSize Int? @map("pdf_file_size")- 文件大å°<C3A5>(å—节)- 说明:MVP阶段预留,V1.0阶段使用
- 预计耗时ï¼? å°<C3A5>æ—¶
- 负责人:å<EFBFBD>Žç«¯å¼€å<EFBFBD>? - å<>‚考:
02-æ ‡é¢˜æ‘˜è¦<C3A8>åˆ<C3A5>ç›å¼€å<E282AC>‘计åˆ?mdWeek 1 Day 1
- 新增4个模型:
-
[✅] T1.1.2 åœ?User æ¨¡åž‹ä¸æ·»åŠ å…³è<C2B3>? ```prisma // backend/prisma/schema.prisma - Useræ¨¡åž‹æ·»åŠ aslProjects AslScreeningProject[] @relation("AslProjects")
- 实际耗时ï¼? 分钟 - 完æˆ<C3A6>人:AI Assistant -
[✅] T1.1.3 è¿<C3A8>行 Prisma è¿<C3A8>ç§»
cd backend npx tsx scripts/create-asl-tables.ts # 手动SQL创建- 实际耗时�0 分钟
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T1.1.4 生æˆ<C3A6> Prisma Client
npx prisma generate- 实际耗时� 分钟
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T1.1.5 验è¯<C3A8>æ•°æ<C2B0>®åº“表创建
- 使用脚本验è¯<EFBFBD>æ•°æ<EFBFBD>®åº? - 检æŸ?asl_schema 下的4个表 âœ? - 检查索引和外键 âœ? - 实际耗时ï¼? 分钟
- 完æˆ<EFBFBD>人: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%测试通过
完æˆ<EFBFBD>报告:平å<EFBFBD>°åŸºç¡€è®¾æ–½å®žæ–½å®Œæˆ<EFBFBD>报告
**使用指å<E280A1>—**:backend/src/common/README.md
å¹³å<EFBFBD>°å·²æ<EFBFBD><EFBFBD>供的8ä¸ªæ ¸å¿ƒæ¨¡å<EFBFBD>—(ASL模å<EFBFBD>—æ— éœ€å®žçŽ°ï¼?
**å¹³å<C2B3>°åŸºç¡€è®¾æ–½å·²å®Œæˆ<C3A6>(2025-11-17ï¼?*ï¼?
| # | æœ<EFBFBD>务 | 路径 | 使用方å¼<EFBFBD> | 说明 |
|---|---|---|---|---|
| 1 | å˜å‚¨æœ<EFBFBD>务 | common/storage/ |
import { storage } from '@/common/storage' |
æ–‡ä»¶ä¸Šä¼ ä¸‹è½½ï¼ˆæœ¬åœ?OSS切æ<E280A1>¢ï¼? |
| 2 | 日志系统 | common/logging/ |
import { logger } from '@/common/logging' |
结构化JSON日志 |
| 3 | ç¼“å˜æœ<EFBFBD>务 | common/cache/ |
import { cache } from '@/common/cache' |
内å˜/Redisç¼“å˜ |
| 4 | 异æ¥ä»»åŠ¡ | common/jobs/ |
import { jobQueue } from '@/common/jobs' |
长时间任务处ç<EFBFBD>? |
| 5 | å<EFBFBD>¥åº·æ£€æŸ? | common/health/ |
import { registerHealthRoutes } from '@/common/health' |
SAEå<EFBFBD>¥åº·æ£€æŸ? |
| 6 | ç›‘æŽ§æŒ‡æ ‡ | common/monitoring/ |
import { Metrics } from '@/common/monitoring' |
性能监控和告è? |
| 7 | æ•°æ<EFBFBD>®åº“è¿žæŽ¥æ± | config/database.ts |
import { prisma } from '@/config/database' |
全局Prisma实例 |
| 8 | 环境é…<EFBFBD>ç½® | config/env.ts |
import { env } from '@/config/env' |
统一é…<EFBFBD>置管ç<EFBFBD>† |
**示例代ç <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}
- 预计耗时� 分钟
- 负责人:å<EFBFBD>Žç«¯å¼€å<EFBFBD>?
- T1.2.2 创建路由文件
routes/index.ts- 路由注册- 实现å<EFBFBD> ä½<EFBFBD>函数(返å›?04或空数组ï¼? - 预计耗时ï¼?0 分钟
- 负责人:å<EFBFBD>Žç«¯å¼€å<EFBFBD>?
- T1.2.3 创建控制器文� -
controllers/projectController.ts- 项目控制å™? -controllers/literatureController.ts- 文献控制å™? -controllers/screeningController.ts- ç›é€‰æŽ§åˆ¶å™¨- 创建å<EFBFBD> ä½<EFBFBD>函数(æ¯<EFBFBD>个控制器5-7个函数)
- 预计耗时ï¼? å°<C3A5>æ—¶
- 负责人:å<EFBFBD>Žç«¯å¼€å<EFBFBD>?
- T1.2.4 创建æœ<C3A6>务层文ä»? -
services/projectService.ts- 项目业务逻辑services/literatureService.ts- 文献业务逻辑services/llmScreeningService.ts- LLMç›é€‰æœ<C3A6>åŠ? - 预计耗时ï¼?0 分钟- 负责人:å<EFBFBD>Žç«¯å¼€å<EFBFBD>?
- [✅] T1.2.5 创建类型定义文件
// types/screening.types.ts export interface Literature { ... } export interface ScreeningResult { ... } export interface Protocol { ... }- 预计耗时�0 分钟
- 负责人:å<EFBFBD>Žç«¯å¼€å<EFBFBD>? 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路由 �
å<EFBFBD>Žç«¯ä»»åŠ¡
-
[✅] T1.3.1 实现
routes/index.ts- 注册所有API路由
- å<EFBFBD>‚è€?
legacy/routes/的风æ ? - 预计耗时ï¼? å°<C3A5>æ—¶ - 负责人:å<EFBFBD>Žç«¯å¼€å<EFBFBD>? - å<>‚考:
02-æ ‡é¢˜æ‘˜è¦<C3A8>åˆ<C3A5>ç›å¼€å<E282AC>‘计åˆ?mdWeek 1 Day 2
-
[✅] T1.3.2 �
src/index.ts䏿³¨å†ŒASL路由import { aslRoutes } from './modules/asl/routes/index.js' await app.register(aslRoutes, { prefix: '/api/v1/asl' }) console.log('âœ?ASL 路由已注册到 /api/v1/asl/*')- 预计耗时ï¼?0 分钟
- 负责人:å<EFBFBD>Žç«¯å¼€å<EFBFBD>?
-
[✅] T1.3.3 测试路由å<C2B1>¯è®¿é—®æ€? ```bash
å<EFBFBD>¯åЍå<EFBFBD>Žç«¯æœ<EFBFBD>务
cd backend && npm run dev
测试å<EFBFBD>¥åº·æ£€æŸ? 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 �
å<EFBFBD>Žç«¯ä»»åŠ¡
- [✅] T1.4.1 实现
projectService.tscreateProject(userId, data)- 创建项目listProjects(userId)- 获å<C2B7>–项目列表getProject(projectId)- 获å<C2B7>–项目详情- 使用 Prisma Client æ“<C3A6>作 asl_schema
- 预计耗时ï¼? å°<C3A5>æ—¶
- 负责人:å<EFBFBD>Žç«¯å¼€å<EFBFBD>?
- [✅] T1.4.2 实现
projectController.tscreateProject- 控制å™? -listProjects- 控制å™? -getProject- 控制å™? - 请求验è¯<C3A8>ã€<C3A3>å“<C3A5>åº”æ ¼å¼<C3A5>化- 预计耗时ï¼?.5 å°<C3A5>æ—¶
- 负责人:å<EFBFBD>Žç«¯å¼€å<EFBFBD>?
- [✅] T1.4.3 实现
literatureService.tsimportBatch(projectId, literatures)- 批é‡<C3A9>导入listLiteratures(projectId, page, pageSize)- 分页查询- 去é‡<EFBFBD>逻辑(基于DOIå’Œæ ‡é¢˜ï¼‰
- 预计耗时ï¼? å°<C3A5>æ—¶
- 负责人:å<EFBFBD>Žç«¯å¼€å<EFBFBD>?
- [✅] T1.4.4 实现
literatureController.tsimportLiteratures- 导入控制å™? -listLiteratures- 列表控制å™? - Excelæ•°æ<C2B0>®éªŒè¯<C3A8>- 预计耗时ï¼?.5 å°<C3A5>æ—¶
- 负责人:å<EFBFBD>Žç«¯å¼€å<EFBFBD>?
- [✅] T1.4.5 API测试(完整测试脚本)
- 创建 Postman 测试集å<E280A0>ˆ
- 测试所有已实现的API
- 预计耗时ï¼? å°<C3A5>æ—¶
- 负责人:å<EFBFBD>Žç«¯å¼€å<EFBFBD>? Day 4-5 éªŒæ”¶æ ‡å‡† ✅:
- âœ?项目管ç<C2A1>†APIå<49>¯è°ƒç”¨ï¼ˆ5个接å<C2A5>£ï¼‰
- âœ?文献导入APIå<49>¯è°ƒç”¨ï¼ˆ4个接å<C2A5>£ï¼‰
- âœ?æ•°æ<C2B0>®æ£ç¡®ä¿<C3A4>å˜åˆ?asl_schema
- �所有测试通过�/7 - 100%�
🗓ï¸?Week 2: LLMç›é€‰æ ¸å¿ƒï¼ˆDay 6-10)✅ 已完æˆ?
完æˆ<EFBFBD>日期: 2025-11-21
实际耗时: 3�
完æˆ<EFBFBD>报告: Prompt设计与测试完æˆ<EFBFBD>报告
**实际准确çŽ?*: 60%(目æ ?5%,需优化ï¼?
Day 6: JSON Schema 与æ<C5BD><C3A6>示è¯<C3A8>设计 âœ?
å<EFBFBD>Žç«¯ä»»åŠ¡
-
[✅] T2.1.1 定义 JSON Schema
- 文件:
backend/src/modules/asl/schemas/screening.schema.ts - 定义输出结构(decision, reason, confidence, picoï¼? - 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
- 文件:
-
[✅] T2.1.2 安装验è¯<C3A8>åº? ```bash cd backend npm install ajv
- 实际耗时ï¼? 分钟 - 完æˆ<C3A6>人:AI Assistant -
[✅] T2.1.3 编写 Schema 验è¯<C3A8>函数
- 使用
Ajv验è¯<C3A8> - 错误信æ<EFBFBD>¯æ ¼å¼<EFBFBD>åŒ? - 实际耗时ï¼?0 分钟
- 完æˆ<EFBFBD>人:AI Assistant
- 使用
-
[✅] T2.1.4 设计æ<C2A1><C3A6>示è¯<C3A8>模æ<C2A1>?v1.0.0
- 文件:
backend/prompts/asl/screening/v1.0.0-mvp.txt - 包å<EFBFBD>«ï¼šPICOæ ‡å‡†ã€<EFBFBD>çº³æŽ’æ ‡å‡†ã€<EFBFBD>è¾“å‡ºæ ¼å¼? - 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant + 用户
- 文件:
-
[✅] T2.1.5 人工测试æ<E280A2><C3A6>示è¯? - 手动调用 LLM(使ç”?10 ç¯‡æ ·æœ¬ï¼‰
- 评估输出质é‡<EFBFBD>
- è¿ä»£ä¼˜åŒ–æ<EFBFBD><EFBFBD>示è¯? - 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant + 用户
Day 6 éªŒæ”¶æ ‡å‡† ✅:
- âœ?JSON Schema 定义完æˆ<C3A6>
- âš ï¸<EFBFBD> æ<><C3A6>示è¯<C3A8>人工测试准确率 60%(目æ ?0%,需å<E282AC>Žç»ä¼˜åŒ–ï¼?
Day 7: LLM æœ<C3A6>务å°<C3A5>装 âœ?
å<EFBFBD>Žç«¯ä»»åŠ¡
-
[✅] T2.2.1 创建
llmScreeningService.ts- 实际耗时�0 分钟
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T2.2.2 实现
callModel方法- 调用
LLMFactory.createLLM()(å¤<EFBFBD>ç”?common/llmï¼? - 设置å<C2AE>‚数(temperature: 0ï¼? - 错误处ç<E2809E>† - 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
- 调用
-
[✅] T2.2.3 实现
parseModelOutput方法- JSON è§£æž<C3A6>(使ç”?
common/utils/jsonParser.jsï¼? - Schema 验è¯<C3A8> - æ ¼å¼<EFBFBD>化为
ModelDecision - 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
- JSON è§£æž<C3A6>(使ç”?
-
[✅] T2.2.4 实现
compareDecisions方法- 对比两个模型çš?PICO 判æ–
- 识别冲çª<EFBFBD>å—æ®µï¼ˆä»…结论ä¸<EFBFBD>一致)
- 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T2.2.5 实现
shouldReview方法- 自动分æµ<EFBFBD>规则
- 置信度阈值(< 0.7� - 实际耗时�0 分钟
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T2.2.6 实现
dualModelScreening方法- 并行调用两个模型(
Promise.allï¼? - 汇总结æž? - 实际耗时ï¼? å°<C3A5>æ—¶ - 完æˆ<EFBFBD>人:AI Assistant
- 并行调用两个模型(
-
[✅] T2.2.7 å<>•元测试
- 测试 JSON è§£æž<C3A6>
- 测试冲çª<EFBFBD>检æµ? - 测试分æµ<C3A6>规则
- 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
Day 7 éªŒæ”¶æ ‡å‡† ✅:
- âœ?å<>¯æˆ<C3A6>功调ç”?DeepSeek å’?Qwen3
- âœ?JSON Schema 验è¯<C3A8>通过çŽ?100%
- âœ?冲çª<C3A7>检测准确(仅结论ä¸<C3A4>一致)
Day 8: 批é‡<C3A9>ç›é€‰ä»»åŠ¡ç®¡ç<C2A1>?âœ?
å<EFBFBD>Žç«¯ä»»åŠ¡
-
[✅] T2.3.1 实现
batchScreening方法- 串行处ç<EFBFBD>†ï¼ˆé<EFBFBD>¿å…<EFBFBD>APIé™<EFBFBD>æµ<EFBFBD>ï¼? - 进度计算
- 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T2.3.2 实现任务创建
screeningService.startScreeningTask- åˆ<EFBFBD>始化任务记录(AslScreeningTask表)
- 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T2.3.3 实现任务状æ€<C3A6>æ›´æ–? -
screeningService.processLiteraturesInBackground- æ›´æ–° processedItems, deepseekProcessed, qwenProcessed ç? - 实际耗时ï¼?.5 å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T2.3.4 实现结果ä¿<C3A4>å˜
- å<EFBFBD>•篇ä¿<EFBFBD>å˜åˆ?
AslScreeningResultè¡? - 冲çª<C3A7>检测(仅结论ä¸<C3A4>一致) - 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
- å<EFBFBD>•篇ä¿<EFBFBD>å˜åˆ?
-
[✅] T2.3.5 错误处ç<E2809E>†å’Œé‡<C3A9>è¯? - å<>•篇失败ä¸<C3A4>å½±å“<C3A5>æ•´ä½? - 记录错误信æ<C2A1>¯
- 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
Day 8 éªŒæ”¶æ ‡å‡† ✅:
- âœ?å<>¯æ‰¹é‡<C3A9>处ç<E2809E>?199 篇文献(串行ï¼?- âœ?任务状æ€<C3A6>æ£ç¡®è®°å½?- âœ?结果æ£ç¡®ä¿<C3A4>å˜åˆ°æ•°æ<C2B0>®åº“
- âœ?进度实时更新(æ¯<C3A6>1æ<31>¡ï¼‰
Day 9: ç›é€?API å¼€å<E282AC>?âœ?
å<EFBFBD>Žç«¯ä»»åŠ¡
-
[✅] T2.4.1 实现å<C2B0>¯åЍç›é€?API
- 自动在文献导入å<EFBFBD>Žå<EFBFBD>¯åŠ¨ï¼ˆ
literatureController.importLiteraturesï¼? - 创建任务 - **â?云原生è¦<C3A8>æ±?*ï¼šå¼‚æ¥æ‰§è¡Œç›é€‰ï¼ˆç«‹å<E280B9>³è¿”回taskId,å<C592>Žå<C5BD>°å¤„ç<E2809E>†ï¼‰
- é<EFBFBD>¿å…<EFBFBD>请求超时(SAE默认30ç§’è¶…æ—¶é™<EFBFBD>制)
- 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
- 自动在文献导入å<EFBFBD>Žå<EFBFBD>¯åŠ¨ï¼ˆ
-
[✅] T2.4.2 实现进度查询 API
GET /api/v1/asl/projects/:projectId/screening-task- 返回实时进度(总数ã€<EFBFBD>已处ç<EFBFBD>†ã€<EFBFBD>æˆ<EFBFBD>功ã€<EFBFBD>冲çª<EFBFBD>ã€<EFBFBD>失败ã€<EFBFBD>DS处ç<EFBFBD>†æ•°ã€<EFBFBD>Qwen处ç<EFBFBD>†æ•°ï¼‰
- 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T2.4.3 实现结果查询 API
GET /api/v1/asl/projects/:projectId/screening-results- 支æŒ<EFBFBD>过滤(all, conflict, included, excluded, reviewedï¼? - 分页(å<CB86>Žç«¯åˆ†é¡µï¼‰
- 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T2.4.4 å®žçŽ°æ›´æ–°å†³ç– API
POST /api/v1/asl/screening-results/:resultId/review- 人工å¤<EFBFBD>æ ¸æ<EFBFBD><EFBFBD>交
- 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T2.4.5 Postman 测试
- 创建测试集å<EFBFBD>ˆ
- 测试å<EFBFBD>„ç§<EFBFBD>场景
- 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
Day 9 éªŒæ”¶æ ‡å‡† ✅:
- âœ?API 调用æˆ<C3A6>功
- âœ?任务å<C2A1>¯å¼‚æ¥æ‰§è¡?- âœ?进度查询实时准确ï¼?秒轮询)
Day 10: å<>Žç«¯é›†æˆ<C3A6>测试 âœ?
å<EFBFBD>Žç«¯ä»»åŠ¡
-
[✅] T2.5.1 端到端测试(199篇文献)
- 导入文献 â†?自动å<C2A8>¯åЍç›é€?â†?查询结果
- 实际耗时ï¼? å°<C3A5>时执行 + 1å°<C3A5>时分æž<C3A6>
- 完æˆ<EFBFBD>人:AI Assistant + 用户
-
[✅] T2.5.2 性能测试
- 测试 199 篇文献ç›é€‰æ—¶é—? - 实际:约33-66分钟(串行处ç<E2809E>†ï¼‰
- 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant + 用户
-
[✅] T2.5.3 è´¨é‡<C3A9>评估
- è®¡ç®—å‡†ç¡®çŽ‡ï¼ˆå¯¹æ¯”é‡‘æ ‡å‡†ï¼‰
- 计算å<EFBFBD>Œæ¨¡åž‹ä¸€è‡´çއ
- 计算冲çª<EFBFBD>çŽ? - 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant + 用户
- 结果:准确率60%, 一致率70-100%, JSON验è¯<C3A8>çŽ?00%
-
[✅] T2.5.4 ä¿®å¤<C3A5> Bug
- ä¿®å¤<EFBFBD>å—æ®µæ˜ 射问题(PICOSã€<EFBFBD>模型å<EFBFBD><EFBFBD>称)
- ä¿®å¤<EFBFBD>列表顺åº<EFBFBD>问题
- ä¿®å¤<EFBFBD>进度显示问题
- 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
*Week 2 æ€»éªŒæ”¶æ ‡å‡? âš ï¸<C3AF> éƒ¨åˆ†è¾¾æ ‡ï¼?- âœ?å<>¯æˆ<C3A6>功ç›é€?199 篇文çŒ?- âš ï¸<C3AF> 准确çŽ?60%(目æ ?5%,需Prompt优化ï¼?- âœ?å<>Œæ¨¡åž‹ä¸€è‡´çއ 70-100%
- âš ï¸<EFBFBD> 性能ï¼?99篇约33-66分钟(串行处ç<E2809E>†ï¼Œå<C592>¯ä¼˜åŒ–为并å<C2B6>‘ï¼?- âœ?JSON Schema验è¯<C3A8>çŽ?00%
🗓ï¸?Week 3: å‰<C3A5>端模å<C2A1>—å¼€å<E282AC>‘(Day 11-15)✅ 已完æˆ?
完æˆ<EFBFBD>日期: 2025-11-21
实际耗时: 2�
完æˆ<EFBFBD>报告: Week2-Day2完æˆ<C3A6>报告
说明: Week 3任务实际在Week 2完æˆ<C3A6>
Day 11: å‰<C3A5>端模å<C2A1>—结构创建 âœ?
å‰<EFBFBD>端任务
-
[✅] T3.1.1 更新
modules/asl/index.tsx- 创建左侧导航布局(ASLLayoutï¼? - 7个主模å<C2A1>—ï¼Œæ ‡é¢˜æ‘˜è¦<C3A8>åˆ<C3A5>ç›å<E280BA>«3个å<C3A5>页é<C2B5>¢
- 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人: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 分钟 - 完æˆ<EFBFBD>人:AI Assistant
- 直接�
-
[✅] T3.1.4 创建3个主页é<C2B5>¢
pages/TitleScreeningSettings.tsx- 设置与å<C5BD>¯åŠ? -pages/ScreeningWorkbench.tsx- å®¡æ ¸å·¥ä½œå<C593>? -pages/ScreeningResults.tsx- åˆ<C3A5>ç›ç»“果(å<CB86> ä½<C3A4>)- 实际耗时ï¼?0 分钟
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T3.1.5 测试路由
- å<EFBFBD>¯åЍå‰<EFBFBD>端:
cd frontend-v2 && npm run dev - 访问
http://localhost:3001/literature - 确认顶部导航显示"AI智能文献"
- 实际耗时�0 分钟
- 完æˆ<EFBFBD>人:AI Assistant + 用户
- å<EFBFBD>¯åЍå‰<EFBFBD>端:
Day 11 éªŒæ”¶æ ‡å‡† ✅:
- �顶部导航显示"AI智能文献"
- âœ?左侧导航显示7个模å<C2A1>?- âœ?点击å<C2BB>Žè¿›å…?设置与å<C5BD>¯åŠ?页é<C2B5>¢
Day 12: Excel ä¸Šä¼ åŠŸèƒ½ âœ?
å‰<EFBFBD>端任务
-
[✅] T3.2.1 安装ä¾<C3A4>èµ–
cd frontend-v2 npm install xlsx- 实际耗时� 分钟
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T3.2.2 创建 Excelä¸Šä¼ ç»„ä»¶
- 集æˆ<EFBFBD>åœ?
TitleScreeningSettings.tsxä¸? - 文件选择(antd Upload.Draggerï¼? - 文件类型验è¯<C3A8>ï¼?xls, .xlsxï¼? - 实际耗时ï¼? å°<C3A5>æ—¶ - 完æˆ<EFBFBD>人:AI Assistant
- 集æˆ<EFBFBD>åœ?
-
[✅] T3.2.3 实现 Excel è§£æž<C3A6>逻辑
- 使用
xlsx库解æž? - **â?云原生è¦<C3A8>æ±?*:内å˜è§£æž?xlsx.read(buffer),ç¦<EFBFBD>æ¢è<EFBFBD>½ç›? - å—æ®µæ˜ 射(Title/title â†?title,支æŒ<C3A6>ä¸è‹±æ–‡ï¼? - æ•°æ<C2B0>®éªŒè¯<C3A8>(titleå’Œabstractå¿…å¡«ï¼? - 文件:utils/excelUtils.ts - 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
- 使用
-
[✅] T3.2.4 实现去é‡<C3A9>逻辑
- 基于 DOI 去é‡<C3A9>(优先)
- åŸºäºŽæ ‡é¢˜åŽ»é‡<EFBFBD>ï¼ˆæ ‡å‡†åŒ–ï¼ŒåŽ»ç©ºæ ¼/æ ‡ç‚¹ï¼? - 去é‡<C3A9>统计展示
- 文件:
utils/excelUtils.ts - 实际耗时ï¼?.5 å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T3.2.5 å®žçŽ°æ–‡çŒ®é¢„è§ˆè¡¨æ ¼
- 使用
Ant Design Table - 显示:åº<EFBFBD>å<EFBFBD>·ã€<EFBFBD>æ ‡é¢˜ã€<EFBFBD>摘è¦<EFBFBD>ã€<EFBFBD>作者ã€<EFBFBD>年份ã€<EFBFBD>期刊ã€<EFBFBD>PMIDã€<EFBFBD>DOI
- 固定列宽ã€<EFBFBD>Tooltip显示全文
- æ— åˆ†é¡µï¼ˆå†…å˜ä¸ï¼‰
- 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
- 使用
-
[✅] T3.2.6 实现Excel模æ<C2A1>¿ä¸‹è½½
- 生æˆ<EFBFBD>包å<EFBFBD>«å—段说明的Excel模æ<EFBFBD>¿
- 两个Sheet:文献列表ã€<EFBFBD>å—æ®µè¯´æ˜? - 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
Day 12 éªŒæ”¶æ ‡å‡† ✅:
- âœ?å<>¯æˆ<C3A6>功上ä¼?Excel 文件
- âœ?è§£æž<C3A6>å<EFBFBD>Žæ•°æ<C2B0>®æ£ç¡®å±•ç¤?- âœ?去é‡<C3A9>功能æ£å¸¸ï¼ˆDOIä¼˜å…ˆï¼Œæ ‡é¢˜è¾…åŠ©ï¼‰
- âœ?Excel模æ<C2A1>¿ä¸‹è½½æ£å¸¸
Day 13: API 客户端å°<C3A5>è£?âœ?
å‰<EFBFBD>端任务
-
[✅] T3.3.1 创建 API 客户� -
api/index.ts- 使用
fetch+ 统一错误处ç<E2809E>† - 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
- 使用
-
[✅] T3.3.2 实现项目 API
createProject(data)listProjects()getProject(id)- 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T3.3.3 实现文献 API
importLiteratures(projectId, literatures)- 实际耗时�0 分钟
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T3.3.4 实现ç›é€?API
getScreeningTask(projectId)- 获å<C2B7>–任务进度getScreeningResultsList(projectId, params)- 获å<C2B7>–结果列表getScreeningResultDetail(resultId)- 获å<C2B7>–结果详情reviewScreeningResult(resultId, data)- 人工å¤<C3A5>æ ¸- 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T3.3.5 å‰<C3A5>å<EFBFBD>Žç«¯è<C2AF>”è°? - 测试所有API调用
- 错误处ç<EFBFBD>†ï¼ˆç»Ÿä¸€messageæ<EFBFBD><EFBFBD>示ï¼? - Loading 状æ€? - 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant + 用户
Day 13 éªŒæ”¶æ ‡å‡† ✅:
- âœ?API 客户端å<C2AF>¯æ£å¸¸è°ƒç”¨å<C2A8>Žç«¯
- âœ?ä¸Šä¼ Excelå<6C>Žæ•°æ<C2B0>®ä¿<C3A4>å˜åˆ°æ•°æ<C2B0>®åº?- âœ?自动å<C2A8>¯åЍç›é€‰ä»»åŠ?
Day 14-15: å®¡æ ¸å·¥ä½œå<C593>°ï¼ˆæ ¸å¿ƒUI)✅
å‰<EFBFBD>端任务
-
[✅] T3.4.1 实现
ScreeningWorkbench页é<C2B5>¢- 任务进度显示(轮è¯?ç§?次)
- å<EFBFBD>Œè¡Œè¡¨æ ¼ç»“构(使用
rowSpanï¼? - 实际耗时ï¼? å°<C3A5>æ—¶ - 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T3.4.2 实现表头
- åº<EFBFBD>å<EFBFBD>·ã€<EFBFBD>æ–‡çŒ®æ ‡é¢˜ã€<EFBFBD>结论ã€<EFBFBD>æ“<EFBFBD>作ã€<EFBFBD>模型ã€<EFBFBD>Pã€<EFBFBD>Iã€<EFBFBD>Cã€<EFBFBD>S
- 压缩列宽ã€<EFBFBD>模型å<EFBFBD><EFBFBD>缩写(DS/Qwï¼? - 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T3.4.3 实现主行(å<CB86>Œè¡Œï¼‰
- ç‚¹å‡»æ ‡é¢˜å±•å¼€/æ”¶èµ·è¯<C3A8>æ<EFBFBD>®
- æ–‡çŒ®æ ‡é¢˜ã€<EFBFBD>DSå’ŒQwençš„PICO判æ–(å<EFBFBD>•å—æ¯<EFBFBD>ï¼? - 冲çª<C3A7>状æ€<C3A6>(红色背景ï¼? - 结论Tag(纳å…?排除ï¼? - 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T3.4.4 实现展开è¡? - 显示DSå’ŒQwen的详细PICOS判æ–ã€<C3A3>è¯<C3A8>æ<EFBFBD>®ã€<C3A3>ç<EFBFBD>†ç”? - 两æ <C3A6>布局(左DS,å<C592>³Qwenï¼? - 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T3.4.5 实现冲çª<C3A7>高亮
- 冲çª<EFBFBD>行背景色浅红(仅结论ä¸<EFBFBD>一致)
- 冲çª<EFBFBD>Tag显示
- 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T3.4.6 实现å¤<C3A5>æ ¸Drawer
- 使用
Ant Design Drawerï¼?000px宽) - 左侧70%:文献详情ã€<C3A3>模型判æ–ã€<C3A3>è¯<C3A8>æ<EFBFBD>? - å<>³ä¾§30%:人工å¤<C3A5>æ ¸è¡¨å<C2A8>•(stickyï¼? - 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
- 使用
-
[✅] T3.4.7 实现ç›é€‰Tab
- 全部ã€<EFBFBD>冲çª<EFBFBD>ã€<EFBFBD>已纳入ã€<EFBFBD>已排除ã€<EFBFBD>å·²å¤<EFBFBD>æ ¸
- 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T3.4.8 实现分页
- å<EFBFBD>Žç«¯åˆ†é¡µï¼?0æ<30>?页)
- 实际耗时�0 分钟
- 完æˆ<EFBFBD>人:AI Assistant
Day 14-15 éªŒæ”¶æ ‡å‡† ✅:
- âœ?å®¡æ ¸å·¥ä½œå<C593>°å®Œæ•´å<C2B4>¯ç”?- âœ?è¡¨æ ¼å<C2BC>¯æ£ç¡®å±•示ç›é€‰ç»“果(å<CB86>Œè¡Œï¼?- âœ?冲çª<C3A7>项高亮显示(红色背景ï¼?- âœ?å¤<C3A5>æ ¸Drawerå<72>¯å¼¹å‡ºå¹¶æ<C2B6><C3A6>交
- �进度实时更新�秒轮询)
- âœ?列表顺åº<C3A5>与Excelä¸Šä¼ ä¸€è‡?
🗓ï¸?Week 4: 结果展示与集æˆ<C3A6>测试(Day 16-20)✅ 已完æˆ?
完æˆ<EFBFBD>日期: 2025-11-21
实际耗时: 1天(3å°<C3A5>æ—¶ï¼?
完æˆ<EFBFBD>报告: Week4完æˆ<EFBFBD>报告
架构验è¯<EFBFBD>: âœ?完全符å<C2A6>ˆäº‘原生开å<E282AC>‘è§„èŒ?
Day 16: 结果统计与展��
å‰<EFBFBD>端任务
-
[✅] T4.1.1 实现统计概览å<CB86>¡ç‰‡
- 4个å<EFBFBD>¡ç‰‡ï¼ˆæ€»æ•°ã€<EFBFBD>纳入ã€<EFBFBD>排除ã€<EFBFBD>å¾…å¤<EFBFBD>æ ¸ï¼? - 使用
Ant Design Statistic - 实际耗时�0 分钟
- 完æˆ<EFBFBD>人:AI Assistant
- 4个å<EFBFBD>¡ç‰‡ï¼ˆæ€»æ•°ã€<EFBFBD>纳入ã€<EFBFBD>排除ã€<EFBFBD>å¾…å¤<EFBFBD>æ ¸ï¼? - 使用
-
[✅] T4.1.2 实现 PRISMA å¼<C3A5>排除总结
- æŒ‰æŽ’é™¤åŽŸå› åˆ†ç»„ç»Ÿè®¡ï¼ˆå<EFBFBD>Žç«¯è<EFBFBD>šå<EFBFBD>ˆï¼? - 柱状图展示(Progress组件ï¼? - 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T4.1.3 实现结果列表 Tab é¡? - 全部ã€<C3A3>已纳入ã€<C3A3>已排除ã€<C3A3>å¾…å¤<C3A5>æ ¸ Tab
- Tabæ•°é‡<EFBFBD>动æ€<EFBFBD>显ç¤? - 实际耗时ï¼?0 分钟
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T4.1.4 å®žçŽ°ç»“æžœè¡¨æ ¼ï¼ˆæ··å<C2B7>ˆæ–¹æ¡ˆï¼‰
- 列:åº<EFBFBD>å<EFBFBD>·ã€<EFBFBD>æ ‡é¢˜ã€<EFBFBD>AI共识ã€<EFBFBD>æŽ’é™¤åŽŸå› ã€<EFBFBD>人工最终决ç–ã€<EFBFBD>状æ€<EFBFBD>ã€<EFBFBD>æ“<EFBFBD>ä½? - å<>¯ç‚¹å‡»æ ‡é¢˜å±•开查看å<E280B9>Œæ¨¡åž‹è¯¦ç»†åˆ¤æ–? - 总宽åº?70pxï¼ˆæ— éœ€æ¨ªå<C2AA>‘滚动ï¼? - 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T4.1.5 实现å<C2B0>Žç«¯ç»Ÿè®¡API
- GET /projects/:projectId/statistics
- Prisma并行è<EFBFBD>šå<EFBFBD>ˆæŸ¥è¯¢
- 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
Day 16 éªŒæ”¶æ ‡å‡† ✅:
- âœ?统计数æ<C2B0>®æ£ç¡®å±•示
- �PRISMA 排除总结清晰
- âœ?结果列表å<C2A8>¯æ£å¸¸æŸ¥çœ?- âœ?æ··å<C2B7>ˆæ–¹æ¡ˆè§£å†³é€»è¾‘矛盾
- âœ?云原生架构验è¯<C3A8>通过
Day 17: Excel 导出功能
å<EFBFBD>Žç«¯ä»»åŠ¡
- T4.2.1 å<>Žç«¯å®žçŽ°å¯¼å‡ºé€»è¾‘
- 使用
exceljsåº? - 生æˆ<C3A6> Excel 文件 - 预计耗时ï¼? å°<C3A5>æ—¶
- 负责人:å<EFBFBD>Žç«¯å¼€å<EFBFBD>?
- 使用
- T4.2.2 实现导出 API
GET /api/v1/asl/projects/:id/screening/results/export- 支æŒ<EFBFBD>过滤å<EFBFBD>‚数(导出全éƒ?仅纳å…?仅排除)
- 预计耗时ï¼?.5 å°<C3A5>æ—¶
- 负责人:å<EFBFBD>Žç«¯å¼€å<EFBFBD>?
å‰<EFBFBD>端任务
-
T4.2.3 å‰<C3A5>端实现导出按钮
- 调用导出 API
- 下载文件
- 预计耗时ï¼? å°<C3A5>æ—¶
- 负责人:å‰<EFBFBD>端开å<EFBFBD>?
-
[✅] T4.2.1 创建Excel导出工具
- 文件:
utils/excelExport.ts - 使用
xlsx库(å‰<C3A5>端生æˆ<C3A6>,零文件è<C2B6>½ç›˜ï¼? - 实际耗时ï¼?.5 å°<C3A5>æ—¶ - 完æˆ<EFBFBD>人:AI Assistant
- 文件:
-
[✅] T4.2.2 实现导出功能
- 导出统计摘è¦<EFBFBD>ï¼?个Sheetï¼? - 导出åˆ<C3A5>ç›ç»“果(当å‰<C3A5>Tabï¼? - 导出选ä¸é¡? - 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T4.2.3 Excelæ ¼å¼<C3A5>优化(混å<C2B7>ˆæ–¹æ¡ˆï¼‰
- å…?0列完整信æ<C2A1>? - 包å<E280A6>«AI共识ã€<C3A3>å<EFBFBD>Œæ¨¡åž‹è¯¦ç»†åˆ¤æ–ã€<C3A3>人工决ç? - 一行显示全部信æ<C2A1>? - 自动设置列宽
- 实际耗时�0 分钟
- 完æˆ<EFBFBD>人:AI Assistant
Day 17 éªŒæ”¶æ ‡å‡† ✅:
- âœ?å<>¯æˆ<C3A6>功导å‡?Excelï¼?ç§<C3A7>æ–¹å¼<C3A5>)
- âœ?å¯¼å‡ºæ ¼å¼<C3A5>规范ï¼?0列)
- âœ?æ•°æ<C2B0>®å®Œæ•´å‡†ç¡®
- âœ?云原生:å‰<C3A5>端生æˆ<C3A6>,零文件è<C2B6>½ç›˜
Day 18: 完整æµ<C3A6>程测试 âœ?
集æˆ<EFBFBD>测试任务
-
[✅] T4.3.1 端到端完整æµ<C3A6>程测è¯? - ä¸Šä¼ â†?ç›é€?â†?å¤<C3A5>æ ¸ â†?统计 â†?导出
- 使用真实çš?7 篇测试数æ<C2B0>? - 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant + 用户
-
[✅] T4.3.2 UI/UX优化
- ä¿®å¤<EFBFBD>逻辑矛盾(纳入ä¸<EFBFBD>æ˜¾ç¤ºæŽ’é™¤åŽŸå› ï¼? - 实现混å<C2B7>ˆæ–¹æ¡ˆï¼ˆAI共识+人工决ç–ï¼? - ä¼˜åŒ–è¡¨æ ¼å®½åº¦ï¼?70pxï¼Œæ— éœ€æ»šåŠ¨ï¼? - 实际耗时ï¼? å°<C3A5>æ—¶
- 完æˆ<EFBFBD>人:AI Assistant + 用户
-
[✅] T4.3.3 性能测试
- 统计API�500ms�99篇)
- Excel导出�3秒(199篇)
- 实际耗时�0 分钟
- 完æˆ<EFBFBD>人:AI Assistant
-
[✅] T4.3.4 创建快速测试工� -
scripts/get-test-projects.mjs- 自动推è<EFBFBD><EFBFBD>有数æ<EFBFBD>®çš„项目
- 生æˆ<EFBFBD>测试URL
- 实际耗时�0 分钟
- 完æˆ<EFBFBD>人:AI Assistant
Day 18 éªŒæ”¶æ ‡å‡† ✅:
- âœ?完整æµ<C3A6>ç¨‹æ— é˜»å¡?- âœ?æ··å<C2B7>ˆæ–¹æ¡ˆè§£å†³é—®é¢˜
- âœ?æ€§èƒ½è¾¾æ ‡
- âœ?符å<C2A6>ˆäº‘原生规èŒ?
Day 19: è´¨é‡<C3A9>验收
è´¨é‡<EFBFBD>验收任务
-
T4.4.1 准确率测è¯? - ä½¿ç”¨é‡‘æ ‡å‡†æ•°æ<C2B0>®é›†ï¼?99 篇)
- 计算准确率ã€<EFBFBD>å<EFBFBD>¬å›žçއã€<EFBFBD>F1
- ç›®æ ‡ï¼šå‡†ç¡®çŽ‡ â‰?85%
- 预计耗时ï¼? å°<C3A5>æ—¶
- 负责人:AI工程å¸?+ 医å¦ä¸“å®¶
-
T4.4.2 å<>Œæ¨¡åž‹ä¸€è‡´æ€§æµ‹è¯? - 计算一致率
- ç›®æ ‡ï¼šâ‰¥ 80%
- 预计耗时ï¼? å°<C3A5>æ—¶
- 负责人:AI工程�
-
T4.4.3 JSON Schema 验è¯<C3A8>率测è¯? - 统计验è¯<C3A8>通过çŽ? - ç›®æ ‡ï¼šâ‰¥ 95%
- 预计耗时�0 分钟
- 负责人:å<EFBFBD>Žç«¯å¼€å<EFBFBD>?
-
T4.4.4 人工å¤<C3A5>æ ¸é˜Ÿåˆ—æµ‹è¯•
- 统计需人工å¤<EFBFBD>æ ¸çš„æ¯”ä¾? - ç›®æ ‡ï¼šâ‰¤ 20%
- 预计耗时�0 分钟
- 负责人:AI工程�
-
T4.4.5 æ ¹æ<C2B9>®æµ‹è¯•结果优化
- 调整æ<EFBFBD><EFBFBD>示è¯? - 调整分æµ<C3A6>阈å€? - 预计耗时ï¼? å°<C3A5>æ—¶
- 负责人:AI工程å¸? **Day 19 éªŒæ”¶æ ‡å‡†**ï¼?- âœ?准确çŽ?â‰?85%
-
âœ?å<>Œæ¨¡åž‹ä¸€è‡´çއ â‰?80%
-
âœ?JSON Schema 验è¯<C3A8>通过çŽ?â‰?95%
-
âœ?人工å¤<C3A5>æ ¸é˜Ÿåˆ— â‰?20%
Day 20: 文档与交�
文档任务
-
T4.5.1 编写用户手册
- 功能介ç»<EFBFBD>
- æ“<EFBFBD>作æ¥éª¤
- 常è§<EFBFBD>问题
- 预计耗时ï¼? å°<C3A5>æ—¶
- 负责人:产å“<EFBFBD>ç»<EFBFBD>ç<EFBFBD>†
-
T4.5.2 编写技术文� - 架构设计
- API 文档
- æ•°æ<EFBFBD>®åº“设è®? - 预计耗时ï¼? å°<C3A5>æ—¶
- 负责人:å<EFBFBD>Žç«¯å¼€å<EFBFBD>?
-
T4.5.3 编写测试报告
- 测试用例
- 测试结果
- è´¨é‡<EFBFBD>æŒ‡æ ‡
- 预计耗时ï¼? å°<C3A5>æ—¶
- 负责人:测试
-
T4.5.4 代ç <C3A7>审查
- 代ç <EFBFBD>规范检æŸ? - 安全性检æŸ? - 性能检æŸ? - 预计耗时ï¼? å°<C3A5>æ—¶
- 负责人:技�Leader
-
T4.5.5 准备演示环境
- 部署到测试环å¢? - 准备演示数æ<C2B0>®
- 预计耗时ï¼? å°<C3A5>æ—¶
- 负责人:è¿<EFBFBD>ç»´
**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决ç–+äººå·¥å†³ç–æ˜Žç¡®åŒºåˆ†ï¼?
è´¨é‡<EFBFBD>æŒ‡æ ‡
- [âš ï¸<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 ç§?
架构验è¯<EFBFBD>
- [✅] 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ï¼?
å‰<EFBFBD>ç½®æ<EFBFBD>¡ä»¶: MVP阶段(Week 1-4)完æˆ? **å¼€å<E282AC>‘周æœ?: 3å‘? **优先çº?: P1(高级功能)
详细设计: 智能Prompt生æˆ<EFBFBD>模å<EFBFBD>—å¼€å<EFBFBD>‘计划
æ ¸å¿ƒç›®æ ‡
解决问题: 消除AI与人类对边界情况的ç<E2809E>†è§£å·®å¼? æ ¸å¿ƒæµ<EFBFBD>程:
用户输入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 | 优化+上线 | �| - | - |
---
## 📚 相关文档
- [å¼€å<E282AC>‘里程碑](./01-å¼€å<E282AC>‘里程碑.md)
- [æ ‡é¢˜æ‘˜è¦<C3A8>åˆ<C3A5>ç›å¼€å<E282AC>‘计划](./02-æ ‡é¢˜æ‘˜è¦<C3A8>åˆ<C3A5>ç›å¼€å<E282AC>‘计åˆ?md)
- [è´¨é‡<C3A9>ä¿<C3A4>éšœç–ç•¥](../02-技术设è®?06-è´¨é‡<C3A9>ä¿<C3A4>障与å<C5BD>¯è¿½æº¯ç–ç•¥.md)
- [技术选型](../02-技术设è®?07-文献处ç<E2809E>†æŠ€æœ¯é€‰åž‹.md)
- [API 设计规范](../02-技术设�02-API设计规范.md)
- [智能Prompt生æˆ<C3A6>模å<C2A1>—](../02-技术设è®?07-智能Prompt生æˆ<C3A6>模å<C2A1>—å¼€å<E282AC>‘计åˆ?md) â?**新增**
- [å‰<C3A5>å<EFBFBD>Žç«¯æ¨¡å<C2A1>—化架构设计-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>符