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%)
587 lines
16 KiB
Markdown
587 lines
16 KiB
Markdown
# ASL璅∪<E79285>撘<EFBFBD><E69298>?- <20>蚊I鈭斗𦻖<E69697><F0A6BB96>﹝
|
||
|
||
**<EFBFBD>交<EFBFBD>**: 2025-11-18
|
||
**敶枏<E695B6><E69E8F>嗆挾**: Week 2 - <20>滨垢UI撘<49><E69298>?
|
||
**<EFBFBD><EFBFBD>粉<EFBFBD>園𡢿**: 5<><35><EFBFBD>
|
||
|
||
---
|
||
|
||
## <20>㴓 憿寧𤌍璁<F0A48C8D>膩
|
||
|
||
### 餈蹱糓隞<E7B393>銋<EFBFBD>★<EFBFBD>殷<EFBFBD>
|
||
|
||
**AIclinicalresearch** - <20>餃郎銝游<E98A9D><E6B8B8>𠉛弦AI撟喳蝱
|
||
|
||
銝<EFBFBD>銝芾<EFBFBD><EFBFBD>硋龫摮衣<EFBFBD>蝛嗅<EFBFBD><EFBFBD>笔𦶢<EFBFBD>冽<EFBFBD><EFBFBD><EFBFBD>I颲<EFBFBD>𨭌撟喳蝱嚗<EFBFBD><EFBFBD><EFBFBD>?憭找<E686AD><E689BE>⊥芋<E28AA5>𨰜<EFBFBD>?*敶枏<E695B6>甇<EFBFBD>銁撘<E98A81><E69298>飊SL璅∪<E79285>**嚗㇁I<E38781>箄<EFBFBD><E7AE84><EFBFBD>讃蝑偦<E89D91>㚁<EFBFBD><E39A81>?
|
||
|
||
---
|
||
|
||
### 蝟餌<E89D9F><E9A48C>嗆<EFBFBD>嚗<EFBFBD><E59A97>撅<EFBFBD><E69285>
|
||
|
||
```
|
||
<EFBFBD>𢞖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
<EFBFBD>? 銝𡁜𦛚璅∪<E79285>撅?(Business Layer) <20>?
|
||
<EFBFBD>? - ASL (AI<41>箄<EFBFBD><E7AE84><EFBFBD>讃) <20>?敶枏<E695B6>撘<EFBFBD><E69298>睲葉 <20>?
|
||
<EFBFBD>? - AIA, PKB, DC, SSA, ST, RVW <20>?
|
||
<EFBFBD>婙<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
<20>?靘肽<E99D98>
|
||
<EFBFBD>𢞖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
<EFBFBD>? <20>賢<EFBFBD>撅?(Capability Layer) <20>?
|
||
<EFBFBD>? - LLM Gateway (5銝芣芋<E88AA3>见歇<E8A781><E6AD87><EFBFBD>) <20>? <20>?
|
||
<EFBFBD>? - Document Processing Engine <20>?
|
||
<EFBFBD>? - RAG Engine, ETL, Medical NLP <20>?
|
||
<EFBFBD>婙<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
<20>?靘肽<E99D98>
|
||
<EFBFBD>𢞖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
<EFBFBD>? 撟喳蝱<E596B3>箇<EFBFBD>霈暹鴌撅?(Platform Layer) <20>?
|
||
<EFBFBD>? 8銝芣瓲敹<E793B2>芋<EFBFBD>?- 撌脣<E6928C><E884A3>?<3F>? <20>?
|
||
<EFBFBD>? Storage, Logging, Caching, Jobs, etc. <20>?
|
||
<EFBFBD>婙<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
```
|
||
|
||
**<EFBFBD>喲睸<EFBFBD>寞<EFBFBD>?*:
|
||
- **Schema<6D>𠉛氖**: 10銝芰𡠺蝡閪ostgreSQL Schema
|
||
- **璅∪<E79285><E288AA>?*: 瘥譍葵銝𡁜𦛚璅∪<E79285><E288AA>祉<EFBFBD>撘<EFBFBD><E69298>㻫<EFBFBD><E3BBAB><EFBFBD>蝵脯<E89DB5><E884AF><EFBFBD><EFBFBD>?
|
||
- **鈭穃<E988AD><E7A983>?*: 隡睃<E99AA1>Alibaba Cloud SAE<41>函蔡
|
||
|
||
---
|
||
|
||
## <20><> 敶枏<E695B6><E69E8F>嗆<EFBFBD><E59786><EFBFBD>2025-11-18嚗?
|
||
|
||
### <20>?Week 1 撌脣<E6928C><E884A3>琜<EFBFBD><E7909C>𣂼<EFBFBD>4憭抬<E686AD>
|
||
|
||
**<EFBFBD>𡒊垢撘<EFBFBD><EFBFBD>?* (100%):
|
||
- <20>?<3F>唳旿摨廍chema霈曇恣嚗?銝芾”嚗蘏sl_schema嚗?
|
||
- <20>?<3F>𡒊垢API獢<49>沲嚗?0銝芣𦻖<E88AA3><F0A6BB96><EFBFBD>
|
||
- <20>?LLM<4C>峕芋<E5B395>讠<EFBFBD><E8AEA0>㗇<EFBFBD><E39787>?
|
||
- <20>?銝厩<E98A9D>蝑偦<E89D91>厰<EFBFBD><E58EB0>潘<EFBFBD>摰賣𠹭/<2F><><EFBFBD>/銝交聢嚗?
|
||
- <20>?JSON閫<4E><E996AB><EFBFBD>其耨憭㵪<E686AD><E3B5AA>舀<EFBFBD>銝剜<E98A9D>撘訫噡嚗?
|
||
- <20>?API瘚贝<E7989A>摰峕<E691B0>嚗?/7<>朞<EFBFBD>嚗?
|
||
|
||
**<EFBFBD>詨<EFBFBD><EFBFBD>鞉<EFBFBD>**:
|
||
1. **<EFBFBD>峕芋<EFBFBD>讠<EFBFBD><EFBFBD>?*: DeepSeek-V3 + Qwen-Max撟嗉<E6929F>
|
||
2. **銝厩<E98A9D>Prompt**: 摰賣𠹭/<2F><><EFBFBD>/銝交聢璅∪<E79285>
|
||
3. **<EFBFBD><EFBFBD>眏撅閧內**: 靽嘥<E99DBD>銝支葵璅∪<E79285><E288AA><EFBFBD><EFBFBD><EFBFBD>游ế<E6B8B8>剔<EFBFBD><E58994>?
|
||
4. **<EFBFBD>脩<EFBFBD>璉<EFBFBD>瘚?*: <20>芣<EFBFBD>瘚醶onclusion<6F>脩<EFBFBD>嚗䔶<E59A97>璉<EFBFBD>瘚閪ICO撌桀<E6928C>
|
||
|
||
---
|
||
|
||
### 漎?Week 2 敺<><E695BA>憪页<E686AA>敶枏<E695B6>隞餃𦛚嚗?
|
||
|
||
**<EFBFBD>滨垢UI撘<EFBFBD><EFBFBD>?* (0%):
|
||
- 漎?Day 1-2: 憿寧𤌍蝞∠<E89D9E><E288A0>屸𢒰
|
||
- 漎?Day 3-4: <20><>讃撖澆<E69296><E6BE86>屸𢒰
|
||
- 漎?Day 5: 蝑偦<E89D91>厩<EFBFBD><E58EA9>𨅯<EFBFBD>蝷?
|
||
|
||
---
|
||
|
||
## <20>圲 <20><><EFBFBD>舀<EFBFBD>
|
||
|
||
### <20>滨垢
|
||
- **獢<>沲**: React 18 + TypeScript
|
||
- **UI摨?*: Ant Design 5
|
||
- **頝舐眏**: React Router v6
|
||
- **<2A>嗆<EFBFBD>?*: React Query + Zustand
|
||
- **<2A>嗆<EFBFBD>**: Frontend-v2嚗<32>芋<EFBFBD>堒<EFBFBD>瘜典<E7989C>嚗?
|
||
|
||
### <20>𡒊垢
|
||
- **獢<>沲**: Fastify + TypeScript
|
||
- **ORM**: Prisma
|
||
- **<2A>唳旿摨?*: PostgreSQL (asl_schema)
|
||
- **LLM**: DeepSeek-V3, Qwen-Max, GPT-4o, Claude-4.5
|
||
|
||
### 撌脣<E6928C><E884A3>鞟<EFBFBD>撟喳蝱<E596B3>滚𦛚嚗<F0A69B9A>虾<EFBFBD>湔𦻖雿輻鍂嚗?
|
||
```typescript
|
||
import { logger } from '@/common/logging'; // <20>亙<EFBFBD>
|
||
import { storage } from '@/common/storage'; // 摮睃<E691AE>
|
||
import { cache } from '@/common/cache'; // 蝻枏<E89DBB>
|
||
import { jobQueue } from '@/common/jobs'; // 撘<>郊隞餃𦛚
|
||
import { prisma } from '@/config/database'; // <20>唳旿摨?
|
||
```
|
||
|
||
---
|
||
|
||
## <20><> <20>喲睸<E596B2>桀<EFBFBD>蝏𤘪<E89D8F>
|
||
|
||
### <20>滨垢嚗<E59EA2><E59A97>撘<EFBFBD><E69298>𡢅<EFBFBD>
|
||
```
|
||
frontend-v2/src/modules/asl/
|
||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> pages/ # 憿菟𢒰蝏<F0A292B0>辣
|
||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> ProjectList/ # 憿寧𤌍<E5AFA7>𡑒”憿?<3F>?Week 2 Day 1
|
||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> ProjectDetail/ # 憿寧𤌍霂行<E99C82>憿?<3F>?Week 2 Day 2
|
||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> LiteratureImport/ # <20><>讃撖澆<E69296>憿?<3F>?Week 2 Day 3-4
|
||
<EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD> ScreeningResults/ # 蝑偦<E89D91>厩<EFBFBD><E58EA9>𣈯△ <20>?Week 2 Day 5
|
||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> components/ # <20>𡁶鍂蝏<E98D82>辣
|
||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> hooks/ # <20>芸<EFBFBD>銋鵎ooks
|
||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> services/ # API靚<49>鍂
|
||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> types/ # TypeScript蝐餃<E89D90>
|
||
<EFBFBD>婙<EFBFBD><EFBFBD><EFBFBD> index.tsx # 璅∪<E79285><E288AA>亙藁
|
||
```
|
||
|
||
### <20>𡒊垢嚗<E59EA2>歇摰峕<E691B0>嚗争<E59A97>
|
||
```
|
||
backend/src/modules/asl/
|
||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> controllers/ # <20>批<EFBFBD><E689B9>?<3F>?
|
||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> services/ # 銝𡁜𦛚<F0A1819C>餉<EFBFBD> <20>?
|
||
<EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD> llmScreeningService.ts # <20>詨<EFBFBD>蝑偦<E89D91>㗇<EFBFBD><E39787>?
|
||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> routes/ # 頝舐眏 <20>?
|
||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> schemas/ # JSON Schema + Prompt<70><74><EFBFBD> <20>?
|
||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> types/ # 蝐餃<E89D90>摰帋<E691B0> <20>?
|
||
<EFBFBD>婙<EFBFBD><EFBFBD><EFBFBD> prompts/ # 銝厩<E98A9D>Prompt璅⊥踎 <20>?
|
||
<20>鎿<EFBFBD><E98EBF><EFBFBD> v1.1.0-lenient.txt # 摰賣𠹭璅∪<E79285>
|
||
<20>鎿<EFBFBD><E98EBF><EFBFBD> v1.1.0-standard.txt # <20><><EFBFBD>璅∪<E79285>
|
||
<20>婙<EFBFBD><E5A999><EFBFBD> v1.1.0-strict.txt # 銝交聢璅∪<E79285>
|
||
```
|
||
|
||
---
|
||
|
||
## <20><> <20>詨<EFBFBD><E8A9A8>蠘<EFBFBD>霂湔<E99C82>
|
||
|
||
### 1. <20>峕芋<E5B395>讠<EFBFBD><E8AEA0>㗇㦤<E39787>?
|
||
|
||
**撌乩<E6928C>瘚<EFBFBD><E7989A>**:
|
||
```
|
||
1. <20>冽<EFBFBD>銝𠹺<E98A9D><F0A0B9BA><EFBFBD>讃嚗𠄌xcel嚗?
|
||
2. 蝟餌<E89D9F>閫<EFBFBD><E996AB><EFBFBD><EFBFBD>讃嚗<E8AE83><E59A97>憸?<3F>䁅<EFBFBD>嚗?
|
||
3. 撟嗉<E6929F>靚<EFBFBD>鍂銝支葵LLM璅∪<E79285>嚗?
|
||
- DeepSeek-V3
|
||
- Qwen-Max
|
||
4. 銝支葵璅∪<E79285><E288AA>祉<EFBFBD><E7A589>斗鱏嚗ǎnclude/exclude嚗?
|
||
5. 蝟餌<E89D9F>璉<EFBFBD>瘚见<E7989A>蝒<EFBFBD><E89D92>conclusion<6F>臬炏銝<E7828F><E98A9D>湛<EFBFBD>
|
||
6. 餈𥪜<E9A488>蝏𤘪<E89D8F>嚗?
|
||
- 銝<><E98A9D>?<3F>?finalDecision = 璅∪<E79285>蝏栞捏
|
||
- <20>脩<EFBFBD> <20>?finalDecision = pending嚗<67><E59A97>鈭箏極憭齿瓲嚗?
|
||
```
|
||
|
||
**<EFBFBD>滩<EFBFBD>**: 靽嘥<E99DBD>銝支葵璅∪<E79285><E288AA>?*摰峕㟲<E5B395><E39FB2>眏**靘𤤿鍂<F0A4A4BF>瑟䰻<E7919F>?
|
||
|
||
---
|
||
|
||
### 2. 銝厩<E98A9D>蝑偦<E89D91>厰<EFBFBD><E58EB0>?
|
||
|
||
| 憌擧聢 | <20>寧<EFBFBD> | 雿輻鍂<E8BCBB>箸艶 |
|
||
|------|------|----------|
|
||
| **摰賣𠹭璅∪<E79285>** | 摰<>虾憭𡁶熙<F0A181B6>伐<EFBFBD>銝漤<E98A9D>餈?| <20>萘<EFBFBD><E89098>嗆挾 |
|
||
| **<EFBFBD><EFBFBD><EFBFBD>璅∪<EFBFBD>** | 撟唾﹛<E594BE><EFB99B>&<EFBFBD><EFBC86><EFBFBD><EFBFBD>砍<EFBFBD><E7A08D>?| 撣貉<E692A3>雿輻鍂 |
|
||
| **銝交聢璅∪<E79285>** | 摰<>虾<EFBFBD>蹱<EFBFBD>嚗䔶<E59A97>霂<EFBFBD>捶<EFBFBD>?| 蝎曄<E89D8E><E69B84>嗆挾 |
|
||
|
||
**摰䂿緵**: 撌脣銁<E884A3>𡒊垢摰䂿緵嚗<E7B7B5><E59A97>蝡舫<E89DA1>瘛餃<E7989B><E9A483>㗇𥋘<E39787>?
|
||
|
||
---
|
||
|
||
### 3. <20>唳旿璅∪<E79285>嚗Òsl_schema嚗?
|
||
|
||
**4銝芣瓲敹<E793B2>”**:
|
||
```sql
|
||
screening_projects -- 蝑偦<E89D91>厰★<E58EB0>殷<EFBFBD>摮婱ICOS<4F><53>熙<EFBFBD>埝<EFBFBD><E59F9D><EFBFBD><EFBFBD>
|
||
literatures -- <20><>讃<EFBFBD>∠𤌍嚗<F0A48C8D><E59A97>憸塩<E686B8><E5A1A9><EFBFBD>閬<EFBFBD><E996AC><EFBFBD>DF<44>暹𦻖嚗?
|
||
screening_results -- 蝑偦<E89D91>厩<EFBFBD><E58EA9>頣<EFBFBD>銝支葵璅∪<E79285><E288AA><EFBFBD>ế<EFBFBD>?<3F><>眏嚗?
|
||
screening_tasks -- 蝑偦<E89D91>劐遙<E58A90>∴<EFBFBD><E288B4>寥<EFBFBD>隞餃𦛚餈𥕦漲頝蠘葵嚗?
|
||
```
|
||
|
||
---
|
||
|
||
## <20>綫 UI<55>笔<EFBFBD><E7AC94><EFBFBD><EFBFBD>?
|
||
|
||
**雿滨蔭**: `docs/03-銝𡁜𦛚璅∪<E79285>/ASL-AI<41>箄<EFBFBD><E7AE84><EFBFBD>讃/03-UI霈曇恣/AI<41>箄<EFBFBD><E7AE84><EFBFBD>讃-<2D><><EFBFBD><EFBFBD>䁅<EFBFBD><E48185>萘<EFBFBD><E89098>笔<EFBFBD>.html`
|
||
|
||
**<EFBFBD>詨<EFBFBD>憿菟𢒰**:
|
||
1. **憿寧𤌍<E5AFA7>𡑒”** - <20>曄內<E69B84><E585A7><EFBFBD>厩<EFBFBD><E58EA9>厰★<E58EB0>?
|
||
2. **憿寧𤌍霂行<E99C82>** - PICOS<4F><53><EFBFBD><EFBFBD><EFBFBD>熙<EFBFBD>埝<EFBFBD><E59F9D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>桀<EFBFBD>銵?
|
||
3. **<EFBFBD><EFBFBD>讃撖澆<EFBFBD>** - Excel銝𠹺<E98A9D><F0A0B9BA><EFBFBD><EFBFBD>閫<EFBFBD><E996AB><EFBFBD>紡<EFBFBD>?
|
||
4. **蝑偦<E89D91>厩<EFBFBD><E58EA9>?* - <20>曄內蝑偦<E89D91>厩<EFBFBD><E58EA9>栶<EFBFBD><E6A0B6>舅銝芣芋<E88AA3>讠<EFBFBD><E8AEA0><EFBFBD>眏<EFBFBD><E79C8F><EFBFBD>蝒<EFBFBD><E89D92>霈?
|
||
|
||
---
|
||
|
||
## <20><> Week 2 撘<><E69298>睲遙<E79DB2>∴<EFBFBD>霂衣<E99C82>皜<EFBFBD><E79A9C>嚗?
|
||
|
||
### Day 1-2: 憿寧𤌍蝞∠<E89D9E><E288A0>屸𢒰
|
||
|
||
**隞餃𦛚**:
|
||
- [ ] <20>𥕦遣憿寧𤌍<E5AFA7>𡑒”憿蛛<E686BF>`/asl/projects`嚗?
|
||
- [ ] <20>𥕦遣憿寧𤌍<E5AFA7>厰僼 + <20>𥕦遣憿寧𤌍銵典<E98AB5>
|
||
- 憿寧𤌍<E5AFA7>滨妍
|
||
- PICOS<4F><53><EFBFBD>嚗?銝芸<E98A9D>畾蛛<E795BE>
|
||
- 蝥喳<E89DA5><E596B3><EFBFBD><EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>砍<EFBFBD>嚗?
|
||
- <20>㘾膄<E398BE><E88684><EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>砍<EFBFBD>嚗?
|
||
- **蝑偦<E89D91>厰<EFBFBD><E58EB0>潮<EFBFBD>㗇𥋘**嚗㇌adio: 摰賣𠹭/<2F><><EFBFBD>/銝交聢嚗争<E59A97>
|
||
- [ ] 憿寧𤌍<E5AFA7>𡑒”撅閧內嚗㇍able嚗?
|
||
- [ ] 憿寧𤌍霂行<E99C82>憿蛛<E686BF>`/asl/projects/:id`嚗?
|
||
|
||
**API<50>亙藁**嚗<>歇摰峕<E691B0>嚗?
|
||
- `POST /api/v1/asl/projects` - <20>𥕦遣憿寧𤌍
|
||
- `GET /api/v1/asl/projects` - <20>瑕<EFBFBD>憿寧𤌍<E5AFA7>𡑒”
|
||
- `GET /api/v1/asl/projects/:id` - <20>瑕<EFBFBD>憿寧𤌍霂行<E99C82>
|
||
|
||
---
|
||
|
||
### Day 3-4: <20><>讃撖澆<E69296><E6BE86>屸𢒰
|
||
|
||
**隞餃𦛚**:
|
||
- [ ] <20><>讃撖澆<E69296>憿蛛<E686BF>`/asl/projects/:id/import`嚗?
|
||
- [ ] Excel<65><6C>辣銝𠹺<E98A9D>嚗㇄ragger嚗?
|
||
- [ ] <20><>讃憸<E8AE83><E686B8>嚗㇍able嚗?
|
||
- [ ] <20>澆<EFBFBD>撉諹<E69289><E8ABB9>鞟內
|
||
- [ ] 蝖株恕撖澆<E69296><E6BE86>厰僼
|
||
- [ ] 撖澆<E69296>餈𥕦漲<F0A595A6>鞟內
|
||
|
||
**API<50>亙藁**嚗<>歇摰峕<E691B0>嚗?
|
||
- `POST /api/v1/asl/projects/:id/literatures/import-json` - 撖澆<E69296><E6BE86><EFBFBD>讃
|
||
- `GET /api/v1/asl/projects/:id/literatures` - <20>瑕<EFBFBD><E79195><EFBFBD>讃<EFBFBD>𡑒”
|
||
|
||
**Excel<65>澆<EFBFBD>**:
|
||
```
|
||
敹<EFBFBD>◆摮埈挾: title, abstract
|
||
<EFBFBD>舫<EFBFBD>匧<EFBFBD>畾? pmid, authors, journal, publicationYear, doi
|
||
```
|
||
|
||
---
|
||
|
||
### Day 5: 蝑偦<E89D91>厩<EFBFBD><E58EA9>𨅯<EFBFBD>蝷?潃?**<2A>滨<EFBFBD>**
|
||
|
||
**隞餃𦛚**:
|
||
- [ ] 蝑偦<E89D91>厩<EFBFBD><E58EA9>𨅯<EFBFBD>銵券△嚗Ǒ/asl/projects/:id/results`嚗?
|
||
- [ ] 蝏𤘪<E89D8F>蝑偦<E89D91>㚁<EFBFBD><E39A81>券<EFBFBD>/蝥喳<E89DA5>/<2F>㘾膄/敺<><E695BA><EFBFBD>賂<EFBFBD>
|
||
- [ ] 蝏𤘪<E89D8F>霂行<E99C82>撘寧<E69298> 潃?**<2A>喲睸**
|
||
- <20><>讃靽⊥<E99DBD>嚗<EFBFBD><E59A97>憸塩<E686B8><E5A1A9><EFBFBD>閬<EFBFBD><E996AC>
|
||
- <20><>蝏<EFBFBD><E89D8F>蝑吔<E89D91>include/exclude/pending嚗?
|
||
- **銝支葵璅∪<E79285><E288AA><EFBFBD><EFBFBD><EFBFBD>渡<EFBFBD><E6B8A1>?*嚗?
|
||
- DeepSeek-V3嚗𡁶<E59A97>霈?+ <20><>眏 + 蝵桐縑摨?
|
||
- Qwen-Max嚗𡁶<E59A97>霈?+ <20><>眏 + 蝵桐縑摨?
|
||
- <20>脩<EFBFBD><E884A9>鞟內嚗<E585A7><E59A97><EFBFBD>靝舅銝芣芋<E88AA3>衤<EFBFBD>銝<EFBFBD><E98A9D>湛<EFBFBD>
|
||
- 鈭箏極憭齿瓲<E9BDBF>厰僼
|
||
|
||
**API<50>亙藁**嚗<>歇摰峕<E691B0>嚗?
|
||
- `GET /api/v1/asl/projects/:id/results` - <20>瑕<EFBFBD>蝑偦<E89D91>厩<EFBFBD><E58EA9>?
|
||
|
||
**<EFBFBD>滚<EFBFBD><EFBFBD>澆<EFBFBD>**:
|
||
```typescript
|
||
{
|
||
literatureId: string;
|
||
title: string;
|
||
abstract: string;
|
||
finalDecision: 'include' | 'exclude' | 'pending';
|
||
|
||
// 潃?銝支葵璅∪<E79285><E288AA><EFBFBD>祕蝏<E7A595><E89D8F><EFBFBD>?
|
||
model1Result: {
|
||
modelName: 'DeepSeek-V3';
|
||
conclusion: 'exclude';
|
||
confidence: 0.92;
|
||
reason: '摰峕㟲<E5B395><E39FB2><EFBFBD><EFBFBD>斤<EFBFBD><E696A4>?..'; // <20>?<3F>滨垢<E6BBA8><E59EA2><EFBFBD>曄內
|
||
judgment: { P: 'match', I: 'match', C: 'mismatch', S: 'match' };
|
||
},
|
||
model2Result: {
|
||
modelName: 'Qwen-Max';
|
||
conclusion: 'include';
|
||
confidence: 0.85;
|
||
reason: '摰峕㟲<E5B395><E39FB2>熙<EFBFBD>亦<EFBFBD><E4BAA6>?..'; // <20>?<3F>滨垢<E6BBA8><E59EA2><EFBFBD>曄內
|
||
judgment: { ... };
|
||
},
|
||
|
||
hasConflict: true; // 銝支葵璅∪<E79285>銝滢<E98A9D><E6BBA2>?
|
||
conflictFields: ['conclusion'];
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## <20>𤣳 Week 2 撘<><E69298>煾<EFBFBD><E785BE>?
|
||
|
||
### 1. 蝑偦<E89D91>厰<EFBFBD><E58EB0>潮<EFBFBD>㗇𥋘<E39787>?潃?
|
||
|
||
**雿滨蔭**: <20>𥕦遣憿寧𤌍銵典<E98AB5>
|
||
|
||
```jsx
|
||
<Form.Item label="蝑偦<E89D91>厰<EFBFBD><E58EB0>? name="screeningStyle">
|
||
<Radio.Group defaultValue="standard">
|
||
<Radio.Button value="lenient">
|
||
<EFBFBD><EFBFBD> 摰賣𠹭璅∪<EFBFBD>
|
||
<Tooltip title="<22>萘<EFBFBD><E89098>刻<EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>臬<EFBFBD>蝥喳<E89DA5>">
|
||
<QuestionCircleOutlined />
|
||
</Tooltip>
|
||
</Radio.Button>
|
||
<Radio.Button value="standard">
|
||
<EFBFBD>吔<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>璅∪<EFBFBD>
|
||
</Radio.Button>
|
||
<Radio.Button value="strict">
|
||
<EFBFBD><EFBFBD> 銝交聢璅∪<EFBFBD>
|
||
</Radio.Button>
|
||
</Radio.Group>
|
||
</Form.Item>
|
||
```
|
||
|
||
---
|
||
|
||
### 2. 銝支葵璅∪<E79285><E288AA><EFBFBD>眏撅閧內 潃鐥<E6BD83>潃?**<2A><><EFBFBD>滩<EFBFBD>**
|
||
|
||
**雿滨蔭**: 蝑偦<E89D91>厩<EFBFBD><E58EA9>𡏭祕<F0A18FAD><E7A595>撕蝒?
|
||
|
||
```jsx
|
||
<Modal title="蝑偦<E89D91>㕑祕<E39591>? width={1000}>
|
||
{/* <20><>蝏<EFBFBD><E89D8F>蝑?*/}
|
||
<Alert type={finalDecision === 'pending' ? 'warning' : 'success'}>
|
||
<strong><3E><>蝏<EFBFBD><E89D8F>蝑?</strong> {finalDecision}
|
||
</Alert>
|
||
|
||
{/* <20>脩<EFBFBD><E884A9>鞟內 */}
|
||
{hasConflict && (
|
||
<Alert type="warning" showIcon style={{marginTop: 16}}>
|
||
<EFBFBD>𩤃<EFBFBD> 銝支葵璅∪<EFBFBD><EFBFBD>斗鱏銝滢<EFBFBD><EFBFBD>湛<EFBFBD>撱箄悅鈭箏極憭齿瓲
|
||
</Alert>
|
||
)}
|
||
|
||
<Divider />
|
||
|
||
{/* 潃?銝支葵璅∪<E79285><E288AA><EFBFBD>祕蝏<E7A595><E89D8F><EFBFBD>頣<EFBFBD>撟嗆<E6929F><E59786>曄內嚗?/}
|
||
<Row gutter={16}>
|
||
<Col span={12}>
|
||
<Card title="<22><> DeepSeek-V3" size="small">
|
||
<Descriptions column={1} size="small">
|
||
<Descriptions.Item label="蝏栞捏">
|
||
<Tag color={model1.conclusion === 'include' ? 'green' : 'red'}>
|
||
{model1.conclusion}
|
||
</Tag>
|
||
</Descriptions.Item>
|
||
<Descriptions.Item label="蝵桐縑摨?>
|
||
{(model1.confidence * 100).toFixed(0)}%
|
||
</Descriptions.Item>
|
||
</Descriptions>
|
||
|
||
<Divider style={{margin: '12px 0'}} />
|
||
|
||
<div>
|
||
<strong><3E>斗鱏<E69697><E9B18F>眏:</strong>
|
||
<p style={{marginTop: 8, whiteSpace: 'pre-wrap'}}>
|
||
{model1.reason} {/* 潃?<3F>曄內摰峕㟲<E5B395><E39FB2>眏 */}
|
||
</p>
|
||
</div>
|
||
|
||
<Divider style={{margin: '12px 0'}} />
|
||
|
||
<Collapse ghost size="small">
|
||
<Panel header="PICO蝏游漲霂行<E99C82>" key="1">
|
||
<Descriptions column={2} size="small">
|
||
<Descriptions.Item label="P">{model1.judgment.P}</Descriptions.Item>
|
||
<Descriptions.Item label="I">{model1.judgment.I}</Descriptions.Item>
|
||
<Descriptions.Item label="C">{model1.judgment.C}</Descriptions.Item>
|
||
<Descriptions.Item label="S">{model1.judgment.S}</Descriptions.Item>
|
||
</Descriptions>
|
||
</Panel>
|
||
</Collapse>
|
||
</Card>
|
||
</Col>
|
||
|
||
<Col span={12}>
|
||
<Card title="<22><> Qwen-Max" size="small">
|
||
{/* <20>䔶<EFBFBD>嚗峕遬蝷榦odel2<6C><32><EFBFBD><EFBFBD>?*/}
|
||
</Card>
|
||
</Col>
|
||
</Row>
|
||
|
||
{/* 鈭箏極憭齿瓲<E9BDBF>厰僼 */}
|
||
<div style={{marginTop: 16, textAlign: 'center'}}>
|
||
<Button type="primary" onClick={handleManualReview}>
|
||
鈭箏極憭齿瓲甇斗<EFBFBD><EFBFBD>?
|
||
</Button>
|
||
</div>
|
||
</Modal>
|
||
```
|
||
|
||
**銝箔<E98A9D>銋<EFBFBD><E98A8B>銋<EFBFBD><E98A8B>閬<EFBFBD><E996AC>**
|
||
- <20>冽<EFBFBD><E586BD><EFBFBD>閬<EFBFBD><E996AC><EFBFBD>蚊I<E89A8A><49><EFBFBD>肽<EFBFBD><E882BD><EFBFBD>蝔?
|
||
- 敶㮖舅銝芣芋<E88AA3>见<EFBFBD>蝒<EFBFBD>𧒄嚗𣬚鍂<F0A3AC9A>琿<EFBFBD>閬<EFBFBD>笆瘥𠉛<E798A5><F0A0899B>望䔉<E69C9B>𡁜<EFBFBD>蝑?
|
||
- <20>喃蝙鈭箇掩銝枏振銋笔虾<E7AC94>賜塳<E8B39C>辷<EFBFBD><E8BEB7><EFBFBD>眏撣桀𨭌撉諹<E69289>
|
||
|
||
---
|
||
|
||
## <20><> <20>滩<EFBFBD><E6BBA9><EFBFBD>﹝蝝W<E89D9D>
|
||
|
||
### 敹<>粉<EFBFBD><E7B289>﹝嚗<EFB99D><E59A97><EFBFBD>穃<EFBFBD>嚗?
|
||
1. **隞餃𦛚<E9A483><F0A69B9A>圾**: `docs/03-銝𡁜𦛚璅∪<E79285>/ASL-AI<41>箄<EFBFBD><E7AE84><EFBFBD>讃/04-撘<><E69298>𤏸恣<F0A48FB8>?03-隞餃𦛚<E9A483><F0A69B9A>圾.md`
|
||
- Week 2霂衣<E99C82>隞餃𦛚皜<F0A69B9A><E79A9C>
|
||
|
||
2. **UI<55>笔<EFBFBD>**: `docs/03-銝𡁜𦛚璅∪<E79285>/ASL-AI<41>箄<EFBFBD><E7AE84><EFBFBD>讃/03-UI霈曇恣/AI<41>箄<EFBFBD><E7AE84><EFBFBD>讃-<2D><><EFBFBD><EFBFBD>䁅<EFBFBD><E48185>萘<EFBFBD><E89098>笔<EFBFBD>.html`
|
||
- <20>屸𢒰<E5B1B8><F0A292B0><EFBFBD>?
|
||
|
||
3. **API霈曇恣**: `docs/03-銝𡁜𦛚璅∪<E79285>/ASL-AI<41>箄<EFBFBD><E7AE84><EFBFBD>讃/02-<2D><><EFBFBD>航挽霈?02-API霈曇恣閫<E681A3><E996AB>.md`
|
||
- API<50>亙藁<E4BA99><E89781>﹝
|
||
|
||
### <20><><EFBFBD><EFBFBD><EFBFBD>獢<EFBFBD><E78DA2><EFBFBD><EFBFBD>閬<EFBFBD>𧒄<EFBFBD>仿<EFBFBD>嚗?
|
||
1. **蝟餌<E89D9F><E9A48C>嗆<EFBFBD>**: `docs/00-蝟餌<E89D9F><E9A48C>颱<EFBFBD>霈曇恣/00-蝟餌<E89D9F>敶枏<E695B6><E69E8F>嗆<EFBFBD><E59786><EFBFBD>撘<EFBFBD><E69298>烐<EFBFBD><E78390>?md`
|
||
2. **<EFBFBD>滨垢璅∪<EFBFBD><EFBFBD>?*: `docs/00-蝟餌<E89D9F><E9A48C>颱<EFBFBD>霈曇恣/<2F>滚<EFBFBD>蝡舀芋<E88880>堒<EFBFBD><E5A092>嗆<EFBFBD>霈曇恣-V2.md`
|
||
3. **<EFBFBD>唳旿摨栞挽霈?*: `docs/03-銝𡁜𦛚璅∪<E79285>/ASL-AI<41>箄<EFBFBD><E7AE84><EFBFBD>讃/02-<2D><><EFBFBD>航挽霈?01-<2D>唳旿摨栞挽霈?md`
|
||
|
||
---
|
||
|
||
## <20><> 敹恍<E695B9>笔鍳<E7AC94>?
|
||
|
||
### 1. <20>臬𢆡<E887AC>𡒊垢嚗<E59EA2>歇摰峕<E691B0>嚗?
|
||
```bash
|
||
cd backend
|
||
npm run dev
|
||
# <20>𡒊垢餈鞱<E9A488><E99EB1>?http://localhost:3001
|
||
# API<50>滨<EFBFBD>: /api/v1/asl
|
||
```
|
||
|
||
### 2. <20>臬𢆡<E887AC>滨垢嚗<E59EA2><E59A97>撘<EFBFBD><E69298>𡢅<EFBFBD>
|
||
```bash
|
||
cd frontend-v2
|
||
npm run dev
|
||
# <20>滨垢餈鞱<E9A488><E99EB1>?http://localhost:5173
|
||
```
|
||
|
||
### 3. 瘚贝<E7989A>API
|
||
```bash
|
||
# <20>亙熒璉<E78692><E79289>?
|
||
curl http://localhost:3001/api/v1/asl/health
|
||
|
||
# <20>瑕<EFBFBD>憿寧𤌍<E5AFA7>𡑒”
|
||
curl http://localhost:3001/api/v1/asl/projects
|
||
```
|
||
|
||
---
|
||
|
||
## <20>𩤃<EFBFBD> <20>滩<EFBFBD>瘜冽<E7989C>鈭钅★
|
||
|
||
### 1. 銝湔𧒄瘚贝<E7989A>璅∪<E79285>
|
||
**JWT霈方<E99C88><E696B9><EFBFBD>𧒄蝏閗<E89D8F>**嚗䔶蝙<E494B6>券<EFBFBD>霈斗<E99C88>霂閧鍂<E996A7>瘀<EFBFBD>
|
||
```typescript
|
||
const userId = requestBody.userId || 'asl-test-user-001';
|
||
```
|
||
|
||
**<EFBFBD>煺漣<EFBFBD>臬<EFBFBD><EFBFBD><EFBFBD>閬?*: 摰䂿緵<E482BF>笔<EFBFBD><E7AC94><EFBFBD>WT霈方<E99C88>
|
||
|
||
---
|
||
|
||
### 2. 蝑偦<E89D91>厰<EFBFBD><E58EB0>澆<EFBFBD><E6BE86>?
|
||
<EFBFBD>𥕦遣憿寧𤌍<EFBFBD>塚<EFBFBD>霈啣<EFBFBD>隡𣳇<EFBFBD>垍<EFBFBD><EFBFBD>厰<EFBFBD><EFBFBD>潘<EFBFBD>
|
||
```typescript
|
||
const projectData = {
|
||
projectName: '...',
|
||
picoCriteria: { ... },
|
||
inclusionCriteria: '...',
|
||
exclusionCriteria: '...',
|
||
screeningConfig: {
|
||
style: 'lenient', // <20>?蝑偦<E89D91>厰<EFBFBD><E58EB0>?
|
||
models: ['deepseek-chat', 'qwen-max']
|
||
}
|
||
};
|
||
```
|
||
|
||
---
|
||
|
||
### 3. 銝支葵璅∪<E79285><E288AA><EFBFBD>眏<EFBFBD>舀瓲敹<E793B2><E695B9><EFBFBD>?
|
||
**敹<>◆<EFBFBD>典<EFBFBD>蝡舀遬蝷?*嚗䔶<E59A97><E494B6>賜<EFBFBD><E8B39C>伐<EFBFBD>
|
||
|
||
餈蹱糓<EFBFBD>冽<EFBFBD><EFBFBD><EFBFBD><EFBFBD>滩<EFBFBD><EFBFBD><EFBFBD><EFBFBD>瘙<EFBFBD><EFBFBD>撣桀𨭌隞碶賑<EFBFBD><EFBFBD>圾AI<EFBFBD><EFBFBD>ế<EFBFBD>剝<EFBFBD>餉<EFBFBD><EFBFBD>?
|
||
|
||
---
|
||
|
||
## <20>㴓 Week 2 <20>𣂼<EFBFBD><F0A382BC><EFBFBD><EFBFBD>
|
||
|
||
### <20>蠘<EFBFBD>摰峕㟲<E5B395>?
|
||
- [ ] <20>冽<EFBFBD><E586BD>臭誑<E887AD>𥕦遣憿寧𤌍嚗<F0A48C8D><E59A97><EFBFBD>促ICOS<4F>𣬚<EFBFBD><F0A3AC9A>厰<EFBFBD><E58EB0>潮<EFBFBD>㗇𥋘嚗?
|
||
- [ ] <20>冽<EFBFBD><E586BD>臭誑銝𠹺<E98A9D>Excel<65><6C>辣撖澆<E69296><E6BE86><EFBFBD>讃
|
||
- [ ] <20>冽<EFBFBD><E586BD>臭誑<E887AD>亦<EFBFBD>蝑偦<E89D91>厩<EFBFBD><E58EA9>𨅯<EFBFBD>銵?
|
||
- [ ] <20>冽<EFBFBD><E586BD>臭誑<E887AD>亦<EFBFBD>**銝支葵璅∪<E79285><E288AA><EFBFBD>祕蝏<E7A595><E89D8F><EFBFBD>?* 潃?
|
||
- [ ] <20>冽<EFBFBD><E586BD>臭誑霂<E8AA91><E99C82><EFBFBD>脩<EFBFBD><E884A9><EFBFBD><EFBFBD><EFBFBD>?
|
||
|
||
### <20>屸𢒰韐券<E99F90>
|
||
- [ ] UI蝚血<E89D9A>Ant Design閫<6E><E996AB>
|
||
- [ ] <20>滚<EFBFBD>撘誩<E69298>撅<EFBFBD>嚗<EFBFBD><E59A97><EFBFBD><EFBFBD>銝滚<E98A9D>撅誩<E69285>嚗?
|
||
- [ ] <20>㰘蝸<E3B098>嗆<EFBFBD><E59786><EFBFBD>蝷?
|
||
- [ ] <20>躰秤憭<E7A7A4><E686AD><EFBFBD>见末
|
||
|
||
### 隞<><E99A9E>韐券<E99F90>
|
||
- [ ] TypeScript蝐餃<E89D90>摰峕㟲
|
||
- [ ] 蝏<>辣<EFBFBD>諹提皜<E68F90>苊
|
||
- [ ] API靚<49>鍂撠<E98D82><E692A0>憟?
|
||
- [ ] 隞<><E99A9E>蝚血<E89D9A>ESLint閫<74><E996AB>
|
||
|
||
---
|
||
|
||
## <20>働 撘<><E69298>穃遣霈?
|
||
|
||
### 1. <20><><EFBFBD>獢<EFBFBD>沲嚗<E6B2B2><E59A97>憛怠<E6869B>摰?
|
||
```
|
||
Day 1: <20>剖遣憿菟𢒰獢<F0A292B0>沲 + 頝舐眏
|
||
Day 2: 摰䂿緵銵典<E98AB5><E585B8><EFBFBD><EFBFBD>銵?
|
||
Day 3-4: <20><>讃撖澆<E69296><E6BE86>蠘<EFBFBD>
|
||
Day 5: 蝑偦<E89D91>厩<EFBFBD><E58EA9>𨅯<EFBFBD>蝷綽<E89DB7><E7B6BD>滨<EFBFBD>嚗?
|
||
```
|
||
|
||
### 2. 蝏<>辣憭滨鍂
|
||
```
|
||
- ProjectForm.tsx嚗<78><E59A97>撱?蝻𤥁<E89DBB>憿寧𤌍銵典<E98AB5>嚗?
|
||
- LiteratureTable.tsx嚗<78><E59A97><EFBFBD>桀<EFBFBD>銵刻”<E588BB>潘<EFBFBD>
|
||
- ScreeningResultCard.tsx嚗<78><E59A97><EFBFBD>厩<EFBFBD><E58EA9>𨅯㨃<F0A885AF><E3A883><EFBFBD>
|
||
- ModelComparisonPanel.tsx嚗<78>芋<EFBFBD>见笆瘥娪𢒰<E5A8AA>選<EFBFBD>潃?
|
||
```
|
||
|
||
### 3. <20>嗆<EFBFBD><E59786>恣<EFBFBD>?
|
||
```typescript
|
||
// 雿輻鍂React Query蝞∠<E89D9E><E288A0>滚𦛚蝡舐𠶖<E88890>?
|
||
const { data: projects } = useQuery(['projects'], fetchProjects);
|
||
|
||
// 雿輻鍂Zustand蝞∠<E89D9E>摰X<E691B0>蝡舐𠶖<E88890>?
|
||
const useAslStore = create((set) => ({
|
||
currentProject: null,
|
||
setCurrentProject: (project) => set({ currentProject: project }),
|
||
}));
|
||
```
|
||
|
||
---
|
||
|
||
## <20><> <20>𡒊賒霈∪<E99C88>
|
||
|
||
### Week 3-4: MVP摰峕<E691B0>
|
||
- <20>寥<EFBFBD>蝑偦<E89D91>?
|
||
- 蝏𤘪<E89D8F>撖澆枂
|
||
- 瘚贝<E7989A>銝羓瑪
|
||
|
||
### Week 5-7: Phase 2嚗<32>虾<EFBFBD>㚁<EFBFBD>
|
||
- <20>箄<EFBFBD>Prompt<70><74><EFBFBD>璅∪<E79285>
|
||
- <20>冽<EFBFBD><E586BD>芸<EFBFBD>銋侨ICOS
|
||
- AI<41><49><EFBFBD>颲寧<E9A2B2><E5AFA7><EFBFBD><EFBFBD>
|
||
|
||
**霂西<E99C82>**: `docs/03-銝𡁜𦛚璅∪<E79285>/ASL-AI<41>箄<EFBFBD><E7AE84><EFBFBD>讃/02-<2D><><EFBFBD>航挽霈?07-<2D>箄<EFBFBD>Prompt<70><74><EFBFBD>璅∪<E79285>撘<EFBFBD><E69298>𤏸恣<F0A48FB8>?md`
|
||
|
||
---
|
||
|
||
## <20><> <20>喲睸<E596B2>𠉛頂靽⊥<E99DBD>
|
||
|
||
- **憿寧𤌍<E5AFA7><F0A48C8D>﹝**: `AIclinicalresearch/docs/`
|
||
- **隞<><E99A9E>隞枏<E99A9E>**: `AIclinicalresearch/`
|
||
- **<2A>滨垢隞<E59EA2><E99A9E>**: `frontend-v2/src/modules/asl/`
|
||
- **<2A>𡒊垢隞<E59EA2><E99A9E>**: `backend/src/modules/asl/`
|
||
|
||
---
|
||
|
||
## <20>?鈭斗𦻖璉<F0A6BB96><E79289>交<EFBFBD><E4BAA4>?
|
||
|
||
<EFBFBD>蚊I摨磰砲蝖株恕<EFBFBD><EFBFBD>圾嚗?
|
||
- [ ] 憿寧𤌍<E5AFA7>臭<EFBFBD>銋<EFBFBD><E98A8B><EFBFBD>餃郎<E9A483><E9838E>讃AI蝑偦<E89D91>㚁<EFBFBD>
|
||
- [ ] 敶枏<E695B6><E69E8F>嗆<EFBFBD><E59786><EFBFBD>Week 1摰峕<E691B0>嚗𡦀eek 2敺<32><E695BA>憪页<E686AA>
|
||
- [ ] <20><><EFBFBD>舀<EFBFBD>嚗㇌eact + Ant Design + Fastify + Prisma嚗?
|
||
- [ ] Week 2隞餃𦛚嚗?銝芷△<E88AB7>g<EFBFBD>憿寧𤌍蝞∠<E89D9E><E288A0><EFBFBD><EFBFBD><EFBFBD>桀紡<E6A180>乓<EFBFBD><E4B993><EFBFBD><EFBFBD>𨅯<EFBFBD>蝷綽<E89DB7>
|
||
- [ ] <20>詨<EFBFBD><E8A9A8>蠘<EFBFBD>嚗<EFBFBD><E59A97>璅∪<E79285>蝑偦<E89D91>剹<EFBFBD><E589B9><EFBFBD>蝘漤<E89D98><E6BCA4>潦<EFBFBD><E6BDA6>遬蝷箇<E89DB7><E7AE87>梧<EFBFBD>
|
||
- [ ] <20>滨<EFBFBD>隞餃𦛚嚗<F0A69B9A>遬蝷箔舅銝芣芋<E88AA3>讠<EFBFBD>摰峕㟲<E5B395><E39FB2>眏嚗争<E59A97>
|
||
|
||
---
|
||
|
||
**蟡脲鰵AI撘<49><E69298>煾◇<E785BE>抬<EFBFBD>** <20><>
|
||
|
||
**<EFBFBD><EFBFBD>﹝<EFBFBD><EFBFBD>𧋦**: v1.0
|
||
**<EFBFBD>𥕦遣<EFBFBD>交<EFBFBD>**: 2025-11-18
|
||
**蝏湔擪鈭?*: Previous AI Assistant
|
||
**<EFBFBD>券<EFBFBD>?*: <20>蚊I敹恍<E695B9>煺<EFBFBD><E785BA>𧢲<EFBFBD><F0A7A2B2>?
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|