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%)
415 lines
19 KiB
Markdown
415 lines
19 KiB
Markdown
# ASL 妯″潡寮€鍙戦噷绋嬬<E7BB8B>
|
||
|
||
> **鏂囨。鐗堟湰锛?* V3.0
|
||
> **鍒涘缓鏃ユ湡锛?* 2025-11-16
|
||
> **缁存姢鑰咃細** AI鏅鸿兘鏂囩尞寮€鍙戝洟闃?
|
||
> **鏈€鍚庢洿鏂帮細** 2025-11-16
|
||
> **猸?閲嶈<E996B2>锛氬熀浜庣湡瀹炴灦鏋勶紙Frontend-v2 + Backend澧為噺婕旇繘锛?*
|
||
|
||
---
|
||
|
||
## 馃搵 鏂囨。姒傝堪
|
||
|
||
鏈<EFBFBD>枃妗e畾涔?ASL锛圓I鏅鸿兘鏂囩尞锛夋ā鍧楃殑瀹屾暣寮€鍙戦噷绋嬬<E7BB8B>锛岄噰鐢?**MVP 鈫?V1.0 鈫?V2.0** 涓夐樁娈垫笎杩涘紡婕旇繘绛栫暐銆?
|
||
**鏋舵瀯鍓嶆彁锛?*
|
||
- 鉁?Frontend-v2 鍏ㄦ柊鏋舵瀯锛堥《閮ㄥ<E996AE>鑸?+ 妯″潡娉ㄥ唽锛? Week 2 Day 6-7 宸插畬鎴?- 鉁?Backend 澧為噺婕旇繘鏋舵瀯锛坙egacy/ + common/ + modules/锛? Week 2 Day 8-9 宸插畬鎴?- 鉁?鏁版嵁搴?10涓猄chema闅旂<E99785> - Week 1 宸插畬鎴?- 馃毀 ASL 妯″潡鍗犱綅灏辩华锛岀瓑寰?Week 3 寮€鍙?
|
||
---
|
||
|
||
## 馃彈锔?褰撳墠鏋舵瀯鍩虹<E98DA9>锛堝凡瀹屾垚锛?
|
||
### Frontend-v2 鐪熷疄鏋舵瀯
|
||
```
|
||
frontend-v2/src/
|
||
鈹溾攢鈹€ framework/ # 鉁?宸插疄鐜帮紙Week 2 Day 6-7锛?鈹? 鈹溾攢鈹€ layout/
|
||
鈹? 鈹? 鈹溾攢鈹€ MainLayout.tsx # 鉁?涓诲竷灞€锛堥《閮ㄥ<E996AE>鑸<EFBFBD>級
|
||
鈹? 鈹? 鈹斺攢鈹€ TopNavigation.tsx # 鉁?椤堕儴瀵艰埅鏍忥紙6涓<36>ā鍧楋級
|
||
鈹? 鈹溾攢鈹€ modules/
|
||
鈹? 鈹? 鈹溾攢鈹€ moduleRegistry.ts # 鉁?妯″潡娉ㄥ唽涓<E594BD>績
|
||
鈹? 鈹? 鈹溾攢鈹€ ErrorBoundary.tsx # 鉁?閿欒<E996BF>杈圭晫
|
||
鈹? 鈹? 鈹斺攢鈹€ types.ts # 鉁?妯″潡绫诲瀷瀹氫箟
|
||
鈹? 鈹溾攢鈹€ router/
|
||
鈹? 鈹? 鈹斺攢鈹€ RouteGuard.tsx # 鉁?璺<>敱瀹堝崼
|
||
鈹? 鈹斺攢鈹€ permission/
|
||
鈹? 鈹溾攢鈹€ PermissionContext.tsx # 鉁?鏉冮檺鎺у埗
|
||
鈹? 鈹斺攢鈹€ usePermission.ts # 鉁?鏉冮檺Hook
|
||
鈹?鈹斺攢鈹€ modules/ # 馃摝 涓氬姟妯″潡
|
||
鈹溾攢鈹€ asl/ # 馃毀 ASL妯″潡锛堝崰浣嶏紝Week 3寮€鍙戯級
|
||
鈹? 鈹斺攢鈹€ index.tsx # 鉁?鍗犱綅椤甸潰
|
||
鈹溾攢鈹€ aia/ # 鉁?AI闂<49>瓟锛堝崰浣嶏級
|
||
鈹溾攢鈹€ pkb/ # 鉁?鐭ヨ瘑搴擄紙鍗犱綅锛? 鈹溾攢鈹€ dc/ # 鉁?鏁版嵁娓呮礂锛堝崰浣嶏級
|
||
鈹溾攢鈹€ ssa/ # 鉁?缁熻<E7BC81>鍒嗘瀽锛堝崰浣嶏級
|
||
鈹斺攢鈹€ st/ # 鉁?缁熻<E7BC81>宸ュ叿锛堝崰浣嶏級
|
||
```
|
||
|
||
### Backend 鐪熷疄鏋舵瀯
|
||
```
|
||
backend/src/
|
||
鈹溾攢鈹€ legacy/ # 鉁?鐜版湁涓氬姟锛圵eek 2 Day 8-9瀹屾垚杩佺Щ锛?鈹? 鈹溾攢鈹€ routes/ # 7涓<37>矾鐢辨枃浠?鈹? 鈹? 鈹溾攢鈹€ projects.ts # AIA: 椤圭洰璺<E6B4B0>敱
|
||
鈹? 鈹? 鈹溾攢鈹€ agents.ts # AIA: 鏅鸿兘浣撹矾鐢?鈹? 鈹? 鈹溾攢鈹€ conversations.ts # AIA: 瀵硅瘽璺<E798BD>敱
|
||
鈹? 鈹? 鈹溾攢鈹€ chatRoutes.ts # AIA: 閫氱敤瀵硅瘽
|
||
鈹? 鈹? 鈹溾攢鈹€ knowledgeBases.ts # PKB: 鐭ヨ瘑搴撹矾鐢?鈹? 鈹? 鈹溾攢鈹€ batchRoutes.ts # PKB: 鎵瑰<E98EB5>鐞嗚矾鐢?鈹? 鈹? 鈹斺攢鈹€ reviewRoutes.ts # RVW: 绋夸欢瀹℃煡璺<E785A1>敱
|
||
鈹? 鈹溾攢鈹€ controllers/ # 鎺у埗鍣?鈹? 鈹斺攢鈹€ services/ # 鏈嶅姟
|
||
鈹?鈹溾攢鈹€ common/ # 鉁?閫氱敤鑳藉姏灞傦紙宸插疄鐜帮級
|
||
鈹? 鈹溾攢鈹€ llm/adapters/ # LLM閫傞厤鍣?鈹? 鈹? 鈹溾攢鈹€ DeepSeekAdapter.ts # 鉁?DeepSeek-V3
|
||
鈹? 鈹? 鈹溾攢鈹€ QwenAdapter.ts # 鉁?Qwen3-72B
|
||
鈹? 鈹? 鈹斺攢鈹€ LLMFactory.ts # 鉁?宸ュ巶绫?鈹? 鈹溾攢鈹€ rag/
|
||
鈹? 鈹? 鈹斺攢鈹€ DifyClient.ts # 鉁?RAG瀹㈡埛绔?鈹? 鈹溾攢鈹€ document/
|
||
鈹? 鈹? 鈹斺攢鈹€ ExtractionClient.ts # 鉁?鏂囨。鎻愬彇瀹㈡埛绔?鈹? 鈹溾攢鈹€ middleware/
|
||
鈹? 鈹? 鈹斺攢鈹€ validateProject.ts # 鉁?楠岃瘉涓<E79889>棿浠?鈹? 鈹斺攢鈹€ utils/
|
||
鈹? 鈹斺攢鈹€ jsonParser.ts # 鉁?JSON瑙f瀽宸ュ叿
|
||
鈹?鈹斺攢鈹€ modules/ # 馃専 鏂版ā鍧楀紑鍙戝尯
|
||
鈹斺攢鈹€ asl/ # 馃毀 ASL妯″潡锛堢┖鐩<E29496>綍锛學eek 3寮€鍙戯級
|
||
鈹斺攢鈹€ 锛堝緟鍒涘缓锛?```
|
||
|
||
### Database Schema锛堝凡闅旂<E99785>锛?```
|
||
PostgreSQL 15 + Prisma 6.17.0
|
||
|
||
鉁?platform_schema - 鐢ㄦ埛琛<E59F9B>紙users锛?鉁?aia_schema - AI闂<49>瓟锛坧rojects, conversations, messages绛夛級
|
||
鉁?pkb_schema - 鐭ヨ瘑搴擄紙knowledge_bases, documents, batch_tasks绛夛級
|
||
馃毀 asl_schema - AI鏅鸿兘鏂囩尞锛圵eek 3 瀹氫箟琛ㄧ粨鏋勶級
|
||
馃搵 common_schema - 閫氱敤鑳藉姏灞傦紙棰勭暀锛?馃搵 dc_schema - 鏁版嵁娓呮礂锛堥<E9949B>鐣欙級
|
||
馃搵 rvw_schema - 绋夸欢瀹℃煡锛堥<E9949B>鐣欙級
|
||
馃搵 admin_schema - 杩愯惀绠$悊锛堥<E9949B>鐣欙級
|
||
馃搵 ssa_schema - 缁熻<E7BC81>鍒嗘瀽锛堥<E9949B>鐣欙級
|
||
馃搵 st_schema - 缁熻<E7BC81>宸ュ叿锛堥<E9949B>鐣欙級
|
||
```
|
||
|
||
---
|
||
|
||
## 馃幆 鎬讳綋鎴樼暐
|
||
|
||
```
|
||
鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? ASL 涓夐樁娈垫紨杩涜矾绾垮浘 鈹?鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? MVP (4鍛? V1.0 (6鍛? V2.0 (8鍛? 鈹?鈹? 鈹溾攢 鍩虹<E98DA9>鍙<EFBFBD>敤 鈹溾攢 楂樿川閲? 鈹溾攢 鍖诲<E98D96>绾? 鈹?鈹? 鈹溾攢 蹇<>€熼獙璇? 鈹溾攢 鏅鸿兘浼樺寲 鈹溾攢 鑷<>姩瀹¤<E780B9> 鈹?鈹? 鈹溾攢 鎴愭湰浼樺厛 鈹溾攢 璐ㄩ噺鎻愬崌 鈹溾攢 瀹屾暣杩芥函 鈹?鈹? 鈹斺攢 浜哄伐澶嶆牳 鈹斺攢 瑙勫垯楠岃瘉 鈹斺攢 HITL鏅鸿兘鍒嗘祦 鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?
|
||
鏍稿績璁捐<EFBFBD>鍘熷垯锛? 1. 鏋舵瀯鍏堣<E98D8F>锛氬湪宸插畬鎴愮殑 Frontend-v2 鍜?Backend 鏋舵瀯鍩虹<E98DA9>涓婂紑鍙? 2. 鍒嗘<E98D92>瀹炴柦锛氭瘡闃舵<E99783>浜や粯鍙<E7B2AF>敤鍔熻兘
|
||
3. 璐ㄩ噺鍙<E599BA>帶锛氬噯纭<E599AF>巼浠?5% 鈫?90% 鈫?95%
|
||
4. 鎴愭湰鍙<E6B9B0>帶锛氫紭鍏堜娇鐢―eepSeek+Qwen3锛屽彲鍒囨崲楂樼<E6A582>妯″瀷
|
||
```
|
||
|
||
---
|
||
|
||
## 馃搳 涓夐樁娈甸噷绋嬬<E7BB8B>瀵规瘮
|
||
|
||
| 缁村害 | MVP (4鍛? | V1.0 (6鍛? | V2.0 (8鍛? |
|
||
|------|----------|-----------|-----------|
|
||
| **浜や粯鑼冨洿** | 鏍囬<E98F8D>鎽樿<E98EBD>鍒濈瓫 | + 鍏ㄦ枃澶嶇瓫 + PDF鎻愬彇 | + 鏁版嵁鎻愬彇 + 璐ㄩ噺瀹¤<E780B9> |
|
||
| **鍑嗙‘鐜囩洰鏍?* | 鈮?85% | 鈮?90% | 鈮?95% |
|
||
| **妯″瀷缁勫悎** | DeepSeek + Qwen3 | 鎴愭湰浼樺寲绛栫暐 | 涓夋ā鍨嬩徊瑁?|
|
||
| **璐ㄩ噺鎺у埗** | 鍙屾ā鍨嬮獙璇?+ JSON Schema | + Few-shot + 瑙勫垯寮曟搸 | + HITL + 鑷<>姩瀹¤<E780B9> |
|
||
| **鍙<>拷婧<E68BB7>€?* | 鍩烘湰鏃ュ織 | 瀹屾暣璇佹嵁閾?| 瀹¤<E780B9>绾ц<E7BBBE>褰?|
|
||
| **鍓嶇<E98D93>** | 鍩虹<E98DA9>宸ヤ綔鍙帮紙Frontend-v2锛?| 浼樺寲浜や簰 | 瀹屾暣UI |
|
||
| **鍚庣<E98D9A>** | modules/asl/鏍稿績鍔熻兘 | + PDF鏈嶅姟闆嗘垚 | + 楂樼骇璐ㄩ噺淇濋殰 |
|
||
| **鎴愭湰/1000绡?* | 楼5 | 楼21 | 楼24 + 浠茶<E6B5A0> |
|
||
|
||
---
|
||
|
||
## 馃殌 MVP 闃舵<E99783>锛堢<E9949B> 1-4 鍛<>級
|
||
|
||
### 闃舵<E99783>鐩<EFBFBD>爣
|
||
|
||
**浜や粯鏍囧噯**锛?- 鉁?鏍囬<E98F8D>鎽樿<E98EBD>鍒濈瓫鍔熻兘瀹屾暣鍙<E69AA3>敤
|
||
- 鉁?Excel 瀵煎叆銆丄I 鍙屾ā鍨嬬瓫閫夈€佷汉宸ュ<E5AEB8>鏍?- 鉁?鍑嗙‘鐜?鈮?85%
|
||
- 鉁?鎴愭湰鎺у埗锛氣墹 楼50/1000 绡?- 鉁?鍓嶇<E98D93>闆嗘垚鍒?Frontend-v2 椤堕儴瀵艰埅
|
||
- 鉁?鍚庣<E98D9A> API 娉ㄥ唽鍒?/api/v1/asl/*
|
||
|
||
### 閲岀▼纰戝垝鍒?
|
||
#### **M1.1 - 鏁版嵁搴揝chema璁捐<E79281>**锛圵eek 1, Day 1锛?
|
||
**浠诲姟**锛?- [ ] 璁捐<E79281> asl_schema 琛ㄧ粨鏋勶紙4寮犳牳蹇冭〃锛? - `asl_screening_projects`锛堢瓫閫夐」鐩<EFBFBD>〃锛? - `asl_literatures`锛堟枃鐚<EFBFBD>潯鐩<EFBFBD>〃锛? - `asl_screening_results`锛堢瓫閫夌粨鏋滆〃锛? - `asl_screening_tasks`锛堢瓫閫変换鍔¤〃锛?- [ ] 鍦?`backend/prisma/schema.prisma` 涓<>坊鍔犳ā鍨嬪畾涔? - 浣跨敤 `@@schema("asl_schema")` 鎸囧畾Schema
|
||
- 瀹氫箟澶栭敭鍏崇郴锛堝紩鐢?`platform_schema.users`锛? - **娣诲姞 OSS 鐩稿叧瀛楁<E7809B>**锛堟敮鎸佷簯鍘熺敓閮ㄧ讲锛夛細
|
||
- `pdfUrl` - PDF璁块棶URL
|
||
- `pdfOssKey` - OSS瀛樺偍Key
|
||
- `pdfFileSize` - 鏂囦欢澶у皬
|
||
- [ ] 杩愯<E69DA9> Prisma 杩佺Щ
|
||
```bash
|
||
cd backend
|
||
npx prisma migrate dev --name add_asl_tables
|
||
npx prisma generate
|
||
```
|
||
|
||
**浜や粯鐗?*锛?- 鉁?asl_schema 琛ㄥ垱寤哄畬鎴?- 鉁?Prisma Client 鐢熸垚鎴愬姛
|
||
- 鉁?鏁版嵁搴撹縼绉绘垚鍔?- 鉁?OSS 瀛楁<E7809B>棰勭暀瀹屾垚
|
||
|
||
---
|
||
|
||
#### **M1.2 - 鍚庣<E98D9A>API鎼<49>缓**锛圵eek 1, Day 2-3锛?
|
||
> **猸?鍓嶇疆鏉′欢锛?025-11-17 鏇存柊锛?*锛氬钩鍙板熀纭€璁炬柦宸插畬鎴愬疄鏂?鉁?
|
||
> **瀹屾垚鐘舵€?*锛?涓<>牳蹇冩ā鍧楋紝100%娴嬭瘯閫氳繃
|
||
> **瀹屾垚鎶ュ憡**锛歔骞冲彴鍩虹<E98DA9>璁炬柦瀹炴柦瀹屾垚鎶ュ憡](../../../08-椤圭洰绠$悊/03-姣忓懆璁″垝/2025-11-17-骞冲彴鍩虹<E98DA9>璁炬柦瀹炴柦瀹屾垚鎶ュ憡.md)
|
||
> **浣跨敤鎸囧崡**锛歔backend/src/common/README.md](../../../../backend/src/common/README.md)
|
||
|
||
**骞冲彴宸叉彁渚涚殑8涓<38>牳蹇冩ā鍧楋紙鏃犻渶ASL妯″潡瀹炵幇锛?*锛?
|
||
| # | 妯″潡 | 璺<>緞 | 浣跨敤鏂瑰紡 | 璇存槑 |
|
||
|---|------|------|---------|------|
|
||
| 1 | **瀛樺偍鏈嶅姟** | `common/storage/` | `import { storage } from '@/common/storage'` | 鏂囦欢涓婁紶涓嬭浇锛堟湰鍦?OSS鍒囨崲锛?|
|
||
| 2 | **鏃ュ織绯荤粺** | `common/logging/` | `import { logger } from '@/common/logging'` | 缁撴瀯鍖朖SON鏃ュ織 |
|
||
| 3 | **缂撳瓨鏈嶅姟** | `common/cache/` | `import { cache } from '@/common/cache'` | 鍐呭瓨/Redis缂撳瓨 |
|
||
| 4 | **寮傛<E5AFAE>浠诲姟** | `common/jobs/` | `import { jobQueue } from '@/common/jobs'` | 闀挎椂闂翠换鍔″<E98D94>鐞?|
|
||
| 5 | **鍋ュ悍妫€鏌?* | `common/health/` | `import { registerHealthRoutes } from '@/common/health'` | SAE鍋ュ悍妫€鏌?|
|
||
| 6 | **鐩戞帶鎸囨爣** | `common/monitoring/` | `import { Metrics } from '@/common/monitoring'` | 鎬ц兘鐩戞帶鍜屽憡璀?|
|
||
| 7 | **鏁版嵁搴撹繛鎺ユ睜** | `config/database.ts` | `import { prisma } from '@/config/database'` | 鍏ㄥ眬Prisma瀹炰緥 |
|
||
| 8 | **鐜<><E9909C>閰嶇疆** | `config/env.ts` | `import { env } from '@/config/env'` | 缁熶竴閰嶇疆绠$悊 |
|
||
|
||
**浠诲姟**锛?- [ ] 鍒涘缓 `backend/src/modules/asl/` 鐩<>綍缁撴瀯
|
||
```
|
||
modules/asl/
|
||
鈹溾攢鈹€ routes/
|
||
鈹? 鈹斺攢鈹€ index.ts # 璺<>敱娉ㄥ唽
|
||
鈹溾攢鈹€ controllers/
|
||
鈹? 鈹溾攢鈹€ projectController.ts # 椤圭洰鎺у埗鍣? 鈹? 鈹溾攢鈹€ literatureController.ts # 鏂囩尞鎺у埗鍣? 鈹? 鈹斺攢鈹€ screeningController.ts # 绛涢€夋帶鍒跺櫒
|
||
鈹溾攢鈹€ services/
|
||
鈹? 鈹溾攢鈹€ projectService.ts # 椤圭洰涓氬姟閫昏緫
|
||
鈹? 鈹溾攢鈹€ literatureService.ts # 鏂囩尞涓氬姟閫昏緫
|
||
鈹? 鈹斺攢鈹€ llmScreeningService.ts # LLM绛涢€夋湇鍔? 鈹溾攢鈹€ schemas/
|
||
鈹? 鈹斺攢鈹€ screening.schema.ts # JSON Schema瀹氫箟
|
||
鈹斺攢鈹€ types/
|
||
鈹斺攢鈹€ screening.types.ts # TypeScript绫诲瀷
|
||
```
|
||
- [ ] 鍦?`backend/src/index.ts` 涓<>敞鍐孉SL璺<4C>敱
|
||
```typescript
|
||
import { aslRoutes } from './modules/asl/routes/index.js'
|
||
await app.register(aslRoutes, { prefix: '/api/v1/asl' })
|
||
```
|
||
- [ ] 瀹炵幇鏍稿績API锛堝弬鑰?API璁捐<E79281>瑙勮寖鏂囨。锛? - `POST /api/v1/asl/projects` - 鍒涘缓椤圭洰
|
||
- `POST /api/v1/asl/projects/:id/literatures/import` - 瀵煎叆鏂囩尞
|
||
- `POST /api/v1/asl/projects/:id/screening/start` - 鍚<>姩绛涢€? - `GET /api/v1/asl/projects/:id/screening/results` - 鑾峰彇缁撴灉
|
||
- [ ] **閰嶇疆鐜<E79686><E9909C>鍙橀噺**
|
||
```bash
|
||
# .env.development锛堟湰鍦板紑鍙戯級
|
||
STORAGE_TYPE=local
|
||
|
||
# .env.production锛堢敓浜х幆澧冿紝SAE閰嶇疆锛? STORAGE_TYPE=oss
|
||
OSS_REGION=oss-cn-hangzhou
|
||
OSS_BUCKET=aiclinical-prod
|
||
```
|
||
|
||
**浜や粯鐗?*锛?- 鉁?ASL鍚庣<E98D9A>鐩<EFBFBD>綍缁撴瀯瀹屾暣
|
||
- 鉁?API璺<49>敱娉ㄥ唽鎴愬姛
|
||
- 鉁?鏍稿績API鍙<49>皟鐢<E79A9F>紙Postman娴嬭瘯閫氳繃锛?- 鉁?姝e父浣跨敤骞冲彴鏈嶅姟锛坰torage/logger/cache/jobQueue/prisma绛?涓<>ā鍧楋級
|
||
|
||
---
|
||
|
||
#### **M1.3 - LLM绛涢€夋牳蹇?*锛圵eek 2, Day 1-2锛?
|
||
**浠诲姟**锛?- [ ] 瀹炵幇鍙屾ā鍨嬪苟琛岃皟鐢ㄩ€昏緫
|
||
- 澶嶇敤 `common/llm/adapters/LLMFactory.ts`
|
||
- 璋冪敤 DeepSeek-V3 + Qwen3-72B
|
||
- [ ] 瀹氫箟JSON Schema锛圥ICO鍒ゆ柇缁撴瀯锛?- [ ] 璁捐<E79281>鎻愮ず璇嶆ā鏉匡紙v1.0.0锛? - 瀛樻斁鍦?`backend/prompts/asl/screening/v1.0.0-basic.txt`
|
||
- [ ] 瀹炵幇鍐茬獊妫€娴嬬畻娉?- [ ] 瀹炵幇鑷<E5B987>姩鍒嗘祦瑙勫垯锛堢疆淇″害 < 0.7 鈫?浜哄伐澶嶆牳锛?
|
||
**浜や粯鐗?*锛?- 鉁?鍙屾ā鍨嬪彲鎴愬姛璋冪敤
|
||
- 鉁?JSON Schema楠岃瘉閫氳繃鐜?> 95%
|
||
- 鉁?鍐茬獊妫€娴嬪噯纭?
|
||
---
|
||
|
||
#### **M1.4 - 鍓嶇<E98D93>妯″潡寮€鍙?*锛圵eek 2-3锛?
|
||
**浠诲姟**锛?- [ ] 鏇存柊 `frontend-v2/src/modules/asl/index.tsx`
|
||
```typescript
|
||
// 绉婚櫎鍗犱綅鏍囪<E98F8D>锛屽疄鐜扮湡瀹炴ā鍧? const ASLModule: ModuleDefinition = {
|
||
id: 'literature-platform',
|
||
name: 'AI鏅鸿兘鏂囩尞',
|
||
path: '/literature',
|
||
icon: FileSearchOutlined,
|
||
component: lazy(() => import('./routes')),
|
||
placeholder: false, // 鈫?鏀逛负 false
|
||
requiredVersion: 'advanced',
|
||
}
|
||
```
|
||
- [ ] 鍒涘缓 `frontend-v2/src/modules/asl/` 瀛愮洰褰? ```
|
||
asl/
|
||
鈹溾攢鈹€ index.tsx # 妯″潡瀹氫箟
|
||
鈹溾攢鈹€ routes.tsx # 璺<>敱閰嶇疆
|
||
鈹溾攢鈹€ pages/
|
||
鈹? 鈹溾攢鈹€ ProjectList.tsx # 椤圭洰鍒楄〃
|
||
鈹? 鈹溾攢鈹€ ScreeningSettings.tsx # 璁剧疆涓庡惎鍔? 鈹? 鈹溾攢鈹€ ScreeningWorkbench.tsx # 瀹℃牳宸ヤ綔鍙? 鈹? 鈹斺攢鈹€ ScreeningResults.tsx # 鍒濈瓫缁撴灉
|
||
鈹溾攢鈹€ components/
|
||
鈹? 鈹溾攢鈹€ ExcelUploader.tsx # Excel涓婁紶
|
||
鈹? 鈹溾攢鈹€ ScreeningTable.tsx # 绛涢€夎〃鏍? 鈹? 鈹溾攢鈹€ DualModelModal.tsx # 鍙岃<E98D99>鍥炬ā鎬佹<E98EAC>
|
||
鈹? 鈹斺攢鈹€ ResultsExport.tsx # 缁撴灉瀵煎嚭
|
||
鈹溾攢鈹€ api/
|
||
鈹? 鈹溾攢鈹€ projectApi.ts # 椤圭洰API
|
||
鈹? 鈹溾攢鈹€ screeningApi.ts # 绛涢€堿PI
|
||
鈹? 鈹斺攢鈹€ index.ts
|
||
鈹溾攢鈹€ hooks/
|
||
鈹? 鈹溾攢鈹€ useScreening.ts # 绛涢€塇ook
|
||
鈹? 鈹斺攢鈹€ useLiterature.ts # 鏂囩尞Hook
|
||
鈹斺攢鈹€ types/
|
||
鈹斺攢鈹€ screening.ts # 绫诲瀷瀹氫箟
|
||
```
|
||
- [ ] 瀹炵幇Excel涓婁紶鍔熻兘锛堜娇鐢?`xlsx` 搴擄級
|
||
- [ ] 瀹炵幇瀹℃牳宸ヤ綔鍙帮紙琛ㄦ牸鍖栧竷灞€锛屽弬鑰冨師鍨嬪浘锛?- [ ] 瀹炵幇鍙岃<E98D99>鍥惧師鏂囧<E98F82>鏌ユā鎬佹<E98EAC>
|
||
- [ ] 瀹炵幇缁撴灉灞曠ず鍜屽<E98D9C>鍑?
|
||
**浜や粯鐗?*锛?- 鉁?ASL妯″潡鍦ㄩ《閮ㄥ<E996AE>鑸<EFBFBD>樉绀哄苟鍙<E88B9F>偣鍑?- 鉁?鍓嶇<E98D93>3涓<33>富瑕侀〉闈㈠畬鏁?- 鉁?鍓嶅悗绔<E68297>仈璋冩垚鍔?
|
||
---
|
||
|
||
#### **M1.5 - 闆嗘垚娴嬭瘯涓庨獙鏀?*锛圵eek 4锛?
|
||
**浠诲姟**锛?- [ ] 绔<>埌绔<E59F8C>畬鏁存祦绋嬫祴璇? - 涓婁紶 199绡囨枃鐚?Excel 鈫?绛涢€?鈫?澶嶆牳 鈫?瀵煎嚭
|
||
- [ ] 鍑嗙‘鐜囨祴璇曪紙浣跨敤閲戞爣鍑嗘暟鎹<E69A9F>泦锛? - 鐩<>爣锛氣墺 85%
|
||
- [ ] 鎬ц兘娴嬭瘯
|
||
- 100绡囨枃鐚<E69E83>瓫閫?鈮?10鍒嗛挓
|
||
- [ ] 淇<><E6B787>Bug鍜屼紭鍖?
|
||
**浜や粯鐗?*锛?- 鉁?鍑嗙‘鐜?鈮?85%
|
||
- 鉁?鍙屾ā鍨嬩竴鑷寸巼 鈮?80%
|
||
- 鉁?JSON Schema楠岃瘉閫氳繃鐜?鈮?95%
|
||
- 鉁?浜哄伐澶嶆牳闃熷垪 鈮?20%
|
||
|
||
---
|
||
|
||
## 馃搱 V1.0 闃舵<E99783>锛堢<E9949B> 5-10 鍛<>級
|
||
|
||
### 闃舵<E99783>鐩<EFBFBD>爣
|
||
|
||
**浜や粯鏍囧噯**锛?- 鉁?鏂板<E98F82>鍏ㄦ枃澶嶇瓫鍔熻兘
|
||
- 鉁?PDF 鎻愬彇闆嗘垚锛圢ougat + PyMuPDF锛?- 鉁?Unpaywall API 闆嗘垚锛堣嚜鍔ㄤ笅杞藉叏鏂囷級
|
||
- 鉁?Few-shot 绀轰緥搴?- 鉁?瑙勫垯寮曟搸楠岃瘉
|
||
- 鉁?鍑嗙‘鐜?鈮?90%
|
||
|
||
### 閲岀▼纰戝垝鍒?
|
||
#### **M2.1 - PDF 鎻愬彇鏈嶅姟闆嗘垚**锛圵eek 5锛?
|
||
**浠诲姟**锛?- [ ] 灏佽<E7818F> `ExtractionClient`锛堝凡鏈?`common/document/ExtractionClient.ts`锛岄渶浼樺寲锛?- [ ] 瀹炵幇鑷<E5B987>姩璇<E5A7A9>█妫€娴嬪拰绛栫暐閫夋嫨
|
||
- [ ] Python 寰<>湇鍔′紭鍖栵紙`extraction_service/`锛? - 浼樺寲 Nougat 璋冪敤鎬ц兘
|
||
- 娣诲姞瓒呮椂鍜岄敊璇<E6958A><E79287>鐞?- [ ] 瀹炵幇 PDF 璐ㄩ噺璇勪及閫昏緫
|
||
|
||
**浜や粯鐗?*锛?- 鉁?鍙<>垚鍔熸彁鍙栬嫳鏂囧尰瀛<E5B0B0>DF锛?0-30椤碉級
|
||
- 鉁?鎻愬彇鍑嗙‘鐜?> 90%
|
||
|
||
---
|
||
|
||
#### **M2.2 - Unpaywall API 闆嗘垚**锛圵eek 5锛?
|
||
**浠诲姟**锛?- [ ] 鍒涘缓 `backend/src/common/literature/UnpaywallClient.ts`
|
||
- [ ] 瀹炵幇鎵归噺鏌ヨ<E98F8C> DOI 鍙<>笅杞芥€?- [ ] 瀹炵幇 PDF 涓嬭浇鍔熻兘
|
||
- [ ] 鏂囦欢瀛樺偍绠$悊
|
||
|
||
**浜や粯鐗?*锛?- 鉁?鐢ㄦ埛鍙<E59F9B>竴閿<E7ABB4><E996BF>鏌?100 绡囨枃鐚<E69E83>殑鍙<E6AE91>笅杞芥€?- 鉁?鍙<>嚜鍔ㄤ笅杞?OA 鍏ㄦ枃
|
||
|
||
---
|
||
|
||
#### **M2.3 - 鍏ㄦ枃澶嶇瓫鍔熻兘**锛圵eek 6-7锛?
|
||
**浠诲姟**锛?- [ ] 鎵╁睍鏁版嵁搴撹〃锛坄asl_full_text_screening_results`锛?- [ ] 鍚庣<E98D9A>鍏ㄦ枃澶嶇瓫API
|
||
- [ ] 鍓嶇<E98D93>鍏ㄦ枃瀹℃牳宸ヤ綔鍙帮紙澶嶇敤缁勪欢 + PDF鏌ョ湅鍣<E6B985>級
|
||
|
||
**浜や粯鐗?*锛?- 鉁?鐢ㄦ埛鍙<E59F9B><E98D99>鍒濈瓫绾冲叆鏂囩尞杩涜<E69DA9>鍏ㄦ枃澶嶇瓫
|
||
- 鉁?鏀<>寔 PDF 鍦ㄧ嚎鏌ョ湅鍜屾爣娉?
|
||
---
|
||
|
||
#### **M2.4 - 璐ㄩ噺澧炲己鍔熻兘**锛圵eek 8-10锛?
|
||
**浠诲姟**锛?- [ ] 浜哄伐鏍囨敞 20-30 涓?Few-shot 绀轰緥
|
||
- [ ] 瀹氫箟楠岃瘉瑙勫垯锛堟牱鏈<E789B1>噺銆丳鍊笺€佸繀濉<E7B980>瓧娈碉級
|
||
- [ ] 瀹炵幇鎴愭湰浼樺寲绛栫暐锛堝揩閫熷垵绛?+ 楂樹环鍊煎<E98D8A>鏍革級
|
||
- [ ] 瀹屽杽璇佹嵁閾捐<E996BE>褰?
|
||
**浜や粯鐗?*锛?- 鉁?Few-shot 绀轰緥搴?鈮?20 涓?- 鉁?瑙勫垯寮曟搸瑕嗙洊鐜?鈮?80%
|
||
- 鉁?璇佹嵁閾惧畬鏁存€?100%
|
||
- 鉁?鍑嗙‘鐜?鈮?90%
|
||
|
||
---
|
||
|
||
## 馃弳 V2.0 闃舵<E99783>锛堢<E9949B> 11-18 鍛<>級
|
||
|
||
### 闃舵<E99783>鐩<EFBFBD>爣
|
||
|
||
**浜や粯鏍囧噯**锛?- 鉁?鏂板<E98F82>鍏ㄦ枃鏁版嵁鎻愬彇鍔熻兘
|
||
- 鉁?涓夋ā鍨嬪叡璇嗕徊瑁?- 鉁?HITL 鏅鸿兘鍒嗘祦
|
||
- 鉁?鎻愮ず璇嶇増鏈<E5A297><E98F88>鐞?- 鉁?鑷<>姩璐ㄩ噺瀹¤<E780B9>
|
||
- 鉁?鍑嗙‘鐜?鈮?95%锛堝尰瀛︾骇锛?
|
||
### 閲岀▼纰戝垝鍒?
|
||
#### **M3.1 - 鍏ㄦ枃鏁版嵁鎻愬彇妯″潡**锛圵eek 11-13锛?
|
||
**浠诲姟**锛?- [ ] 鎵╁睍鏁版嵁搴撹〃锛坄asl_extraction_results`, `asl_extraction_revisions`锛?- [ ] 鍚庣<E98D9A>鍒嗘<E98D92>鎻愬彇閫昏緫
|
||
- [ ] 鍓嶇<E98D93>琛ㄦ牸鍖栨暟鎹<E69A9F><E98EB9>鏌ュ彴锛堟枃鐚<E69E83>楀彉閲忕煩闃碉級
|
||
|
||
**浜や粯鐗?*锛?- 鉁?鐢ㄦ埛鍙<E59F9B>厤缃<E58EA4>彁鍙栧彉閲忔竻鍗?- 鉁?鎵归噺鎻愬彇 50 绡囨枃鐚<E69E83>殑缁撴瀯鍖栨暟鎹?- 鉁?鎻愬彇鍑嗙‘鐜?鈮?92%
|
||
|
||
---
|
||
|
||
#### **M3.2 - 鍖诲<E98D96>绾ц川閲忎繚闅?*锛圵eek 14-16锛?
|
||
**浠诲姟**锛?- [ ] 涓夋ā鍨嬩徊瑁侊紙鍐茬獊 鈫?鍚<>敤 Claude-4.5锛?- [ ] HITL 鏅鸿兘鍒嗘祦锛堜紭鍏堢骇璇勫垎锛?- [ ] 鎻愮ず璇嶇増鏈<E5A297><E98F88>鐞嗭紙Git + 璇<>箟鍖栫増鏈<E5A297>級
|
||
- [ ] 鑷<>姩璐ㄩ噺瀹¤<E780B9>绯荤粺
|
||
|
||
**浜や粯鐗?*锛?- 鉁?涓夋ā鍨嬩徊瑁佹垚鍔熺巼 > 95%
|
||
- 鉁?HITL 鍒嗘祦鍑嗙‘鐜?> 85%
|
||
- 鉁?鎻愮ず璇嶇増鏈<E5A297><E98F88>鐞嗙郴缁熶笂绾?- 鉁?鑷<>姩璐ㄩ噺瀹¤<E780B9>姣忓懆杩愯<E69DA9>
|
||
|
||
---
|
||
|
||
#### **M3.3 - 楂樼骇鍔熻兘涓庝紭鍖?*锛圵eek 17-18锛?
|
||
**浠诲姟**锛?- [ ] Chain of Thought (CoT) 鎺ㄧ悊
|
||
- [ ] 鍔ㄦ€佺ず渚嬮€夋嫨锛堣<E9949B>涔夌浉浼煎害锛?- [ ] 鎵瑰<E98EB5>鐞嗘€ц兘浼樺寲锛圔ull + Redis锛?- [ ] 鐢ㄦ埛浣撻獙浼樺寲锛堝疄鏃惰繘搴︺€丳DF鏍囨敞銆佸揩鎹烽敭锛?
|
||
**浜や粯鐗?*锛?- 鉁?绯荤粺绋冲畾鎬ф祴璇曢€氳繃
|
||
- 鉁?鎬ц兘娴嬭瘯锛?000 绡囨枃鐚?< 30 鍒嗛挓
|
||
- 鉁?鐢ㄦ埛楠屾敹娴嬭瘯閫氳繃
|
||
- 鉁?鍑嗙‘鐜?鈮?95%
|
||
|
||
---
|
||
|
||
## 馃搵 浜や粯鐗╂<E99097>鏌ユ竻鍗?
|
||
### MVP 闃舵<E99783>
|
||
|
||
- [ ] **鏁版嵁搴?*
|
||
- [ ] asl_schema 4寮犺〃鍒涘缓
|
||
- [ ] Prisma 杩佺Щ鎴愬姛
|
||
|
||
- [ ] **鍚庣<E98D9A>**
|
||
- [ ] `modules/asl/` 鐩<>綍缁撴瀯瀹屾暣
|
||
- [ ] API 璺<>敱娉ㄥ唽鍒?`/api/v1/asl/*`
|
||
- [ ] LLM绛涢€夋湇鍔″彲鐢?
|
||
- [ ] **鍓嶇<E98D93>**
|
||
- [ ] ASL妯″潡娉ㄥ唽鍒?`moduleRegistry.ts`
|
||
- [ ] 椤堕儴瀵艰埅鏄剧ず"AI鏅鸿兘鏂囩尞"
|
||
- [ ] 3涓<33>富椤甸潰瀹屾暣
|
||
|
||
- [ ] **娴嬭瘯**
|
||
- [ ] 鍑嗙‘鐜囨祴璇?鈮?85%
|
||
- [ ] 绔<>埌绔<E59F8C>祴璇曢€氳繃
|
||
|
||
### V1.0 闃舵<E99783>
|
||
|
||
- [ ] **鏂板<E98F82>鍔熻兘**
|
||
- [ ] PDF 鎻愬彇鏈嶅姟
|
||
- [ ] Unpaywall API 闆嗘垚
|
||
- [ ] 鍏ㄦ枃澶嶇瓫
|
||
- [ ] Few-shot 绀轰緥搴?
|
||
- [ ] **娴嬭瘯**
|
||
- [ ] 鍑嗙‘鐜?鈮?90%
|
||
|
||
### V2.0 闃舵<E99783>
|
||
|
||
- [ ] **鏂板<E98F82>鍔熻兘**
|
||
- [ ] 鍏ㄦ枃鏁版嵁鎻愬彇
|
||
- [ ] 涓夋ā鍨嬩徊瑁? - [ ] HITL 鏅鸿兘鍒嗘祦
|
||
- [ ] 鑷<>姩璐ㄩ噺瀹¤<E780B9>
|
||
|
||
- [ ] **娴嬭瘯**
|
||
- [ ] 鍑嗙‘鐜?鈮?95%
|
||
- [ ] 鍖诲<E98D96>涓撳<E6B693>楠岃瘉
|
||
|
||
---
|
||
|
||
## 馃搳 鍏抽敭鎸囨爣璺熻釜
|
||
|
||
### 璐ㄩ噺鎸囨爣
|
||
|
||
| 鎸囨爣 | MVP 鐩<>爣 | V1.0 鐩<>爣 | V2.0 鐩<>爣 |
|
||
|------|---------|----------|----------|
|
||
| 鎻愬彇鍑嗙‘鐜?| 鈮?85% | 鈮?90% | 鈮?95% |
|
||
| 鍙屾ā鍨嬩竴鑷寸巼 | 鈮?80% | 鈮?85% | 鈮?90% |
|
||
| JSON Schema 楠岃瘉閫氳繃鐜?| 鈮?95% | 鈮?98% | 鈮?99% |
|
||
| 浜哄伐澶嶆牳闃熷垪鍗犳瘮 | 鈮?20% | 鈮?15% | 鈮?10% |
|
||
|
||
### 鎴愭湰鎸囨爣
|
||
|
||
| 鍦烘櫙 | MVP | V1.0 | V2.0 |
|
||
|------|-----|------|------|
|
||
| 鏍囬<E98F8D>鎽樿<E98EBD>绛涢€夛紙1000绡囷級 | 楼5 | 楼21 | 楼24 |
|
||
| 鍏ㄦ枃澶嶇瓫锛?00绡囷級 | - | 楼30 | 楼35 |
|
||
| 鏁版嵁鎻愬彇锛?0绡囷級 | - | 楼60 | 楼80 |
|
||
|
||
---
|
||
|
||
## 馃摎 鐩稿叧鏂囨。
|
||
|
||
- [璐ㄩ噺淇濋殰涓庡彲杩芥函绛栫暐](../02-鎶€鏈<E282AC><E98F88>璁?06-璐ㄩ噺淇濋殰涓庡彲杩芥函绛栫暐.md)
|
||
- [鏂囩尞澶勭悊鎶€鏈<EFBFBD>€夊瀷](../02-鎶€鏈<E282AC><E98F88>璁?07-鏂囩尞澶勭悊鎶€鏈<E282AC>€夊瀷.md)
|
||
- [鏁版嵁搴撹<E690B4>璁<EFBFBD>(../02-鎶€鏈<E282AC><E98F88>璁?01-鏁版嵁搴撹<E690B4>璁?md)
|
||
- [API 璁捐<E79281>瑙勮寖](../02-鎶€鏈<E282AC><E98F88>璁?02-API璁捐<E79281>瑙勮寖.md)
|
||
- [鍓嶅悗绔<EFBFBD>ā鍧楀寲鏋舵瀯璁捐<EFBFBD>-V2](../../../00-绯荤粺鎬讳綋璁捐<E79281>/鍓嶅悗绔<E68297>ā鍧楀寲鏋舵瀯璁捐<E79281>-V2.md)
|
||
- [Schema闅旂<EFBFBD>鏋舵瀯璁捐<EFBFBD>](../../../09-鏋舵瀯瀹炴柦/01-Schema闅旂<E99785>鏋舵瀯璁捐<E79281>锛?0涓<30>級.md)
|
||
|
||
---
|
||
|
||
**鏇存柊鏃ュ織**锛?- 2025-11-18: V3.1 鏇存柊锛岃ˉ鍏呭钩鍙板熀纭€璁炬柦瀹屾垚鐘舵€侊紙8涓<38>牳蹇冩ā鍧楋級
|
||
- 2025-11-16: V3.0 閲嶅啓锛屽熀浜庣湡瀹炴灦鏋勶紙Frontend-v2 + Backend澧為噺婕旇繘 + 10涓猄chema锛?- 2025-11-16: V2.0 閲嶅啓锛屽熀浜庝笁闃舵<E99783>璺<EFBFBD>嚎鍥捐<E98DA5>缁嗚<E7BC81>鍒掗噷绋嬬<E7BB8B>
|
||
- 2025-10-29: V1.0 鍒涘缓锛屽垵濮嬬増鏈? |