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%)
756 lines
22 KiB
Markdown
756 lines
22 KiB
Markdown
# Week 4 撘<><E69298>穃<EFBFBD><E7A983>鞉𥁒<E99E89>𠺪<EFBFBD>蝏𤘪<E89D8F>撅閧內銝𤾸紡<F0A4BEB8>箏<EFBFBD><E7AE8F>?
|
||
|
||
> **摰峕<E691B0><E5B395>交<EFBFBD>嚗?* 2025-11-21
|
||
> **撘<><E69298>穃𪂹<E7A983><F0AA82B9><EFBFBD>** 1憭抬<E686AD>摰鮋<E691B0>3撠𤩺𧒄嚗?
|
||
> **撘<><E69298>睲犖<E79DB2>矋<EFBFBD>** AI Assistant
|
||
> **<2A>嗆<EFBFBD><E59786>笔<EFBFBD>嚗?* <20>?鈭穃<E988AD><E7A983><EFBFBD>沲<EFBFBD>?
|
||
|
||
---
|
||
|
||
## <20><> 璁<>膩
|
||
|
||
<EFBFBD>祆𥁒<EFBFBD>𡃏扇敶?Week 4 <20>蠘<EFBFBD>撘<EFBFBD><E69298>𤑳<EFBFBD>摰峕<E691B0><E5B395><EFBFBD><EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>祉<EFBFBD>霈∪<E99C88>蝷箝<E89DB7><E7AE9D>RISMA<4D>㘾膄<E398BE><E88684><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𨅯<EFBFBD>銵典<E98AB5>Excel撖澆枂<E6BE86>蠘<EFBFBD><E8A098><EFBFBD><EFBFBD><EFBFBD>匧<EFBFBD><E58CA7>賭艇<E8B3AD>潮<EFBFBD>敺芯<E695BA><E88AAF>毺<EFBFBD>撘<EFBFBD><E69298>𤏸<EFBFBD><F0A48FB8><EFBFBD><EFBFBD>?
|
||
|
||
**<EFBFBD>詨<EFBFBD><EFBFBD>鞉<EFBFBD>**嚗?
|
||
- <20>?<3F>𡒊垢蝏蠘恣API嚗<49><E59A97><EFBFBD>毺<EFBFBD>嚗朞<E59A97><E69C9E><EFBFBD>䰻霂g<E99C82>
|
||
- <20>?<3F>萘<EFBFBD>蝏𤘪<E89D8F>憿菟𢒰嚗<F0A292B0>毽<EFBFBD><E6AFBD>䲮獢<E4B2AE><E78DA2>
|
||
- <20>?Excel撖澆枂嚗<E69E82>妟<EFBFBD><E5A69F>辣<EFBFBD>賜<EFBFBD>嚗?
|
||
- <20>?憿菟𢒰撖潸⏛隡睃<E99AA1>
|
||
- <20>?敹恍<E695B9><E6818D><EFBFBD>霂訫極<E8A8AB>?
|
||
|
||
---
|
||
|
||
## <20>㴓 銝<><E98A9D><EFBFBD><EFBFBD><EFBFBD>𣂼<EFBFBD><F0A382BC>賣<EFBFBD><E8B3A3>?
|
||
|
||
### 1.1 <20>𡒊垢蝏蠘恣API <20>?
|
||
|
||
**<EFBFBD><EFBFBD>辣**嚗䫤backend/src/modules/asl/controllers/screeningController.ts`
|
||
|
||
**<2A>啣<EFBFBD>API**嚗?
|
||
```
|
||
GET /api/v1/asl/projects/:projectId/statistics
|
||
```
|
||
|
||
**<2A>蠘<EFBFBD>**嚗?
|
||
- <20>?雿輻鍂Prisma<6D>𡁜<EFBFBD><F0A1819C>亥砭嚗?銝芸僎銵峕䰻霂g<E99C82>
|
||
- <20>?蝏蠘恣<E8A098>餅㺭<E9A485><E3BAAD>歇蝥喳<E89DA5><E596B3><EFBFBD>歇<EFBFBD>㘾膄<E398BE><E88684><EFBFBD>憭齿瓲<E9BDBF><E793B2><EFBFBD>蝒<EFBFBD><E89D92><EFBFBD>歇憭齿瓲
|
||
- <20>?<3F><><EFBFBD><EFBFBD>㘾膄<E398BE>笔<EFBFBD>嚗<EFBFBD><E59A97>AI<41>斗鱏銝剜<E98A9D><E5899C>吔<EFBFBD>
|
||
- <20>?霈∠<E99C88><E288A0><EFBFBD>掩<EFBFBD>曉<EFBFBD>瘥?
|
||
- <20>?鈭穃<E988AD><E7A983><EFBFBD><EFBFBD><EFBFBD>𡒊垢<F0A1928A>𡁜<EFBFBD>嚗<EFBFBD><E59A97>撠𤑳<E692A0>蝏靝<E89D8F>颲?
|
||
|
||
**<2A>扯<EFBFBD>**嚗?
|
||
- <20>亥砭<E4BAA5>園𡢿嚗?500ms嚗?99蝭<39><E89DAD><EFBFBD>殷<EFBFBD>
|
||
- <20>唳旿<E594B3>𧶏<EFBFBD>隞穽B蝥折<E89DA5><E68A98>袁B蝥?
|
||
|
||
**<2A>喲睸隞<E79DB8><E99A9E>**嚗?
|
||
```typescript
|
||
// 潃?鈭穃<E988AD><E7A983><EFBFBD><EFBFBD>雿輻鍂Prisma<6D>𡁜<EFBFBD><F0A1819C>亥砭嚗<E7A0AD>僎銵峕<E98AB5>銵䕘<E98AB5>
|
||
const [total, includedCount, excludedCount, pendingCount, conflictCount, reviewedCount] =
|
||
await Promise.all([
|
||
prisma.aslScreeningResult.count({ where: { projectId } }),
|
||
prisma.aslScreeningResult.count({ where: { projectId, finalDecision: 'include' } }),
|
||
prisma.aslScreeningResult.count({ where: { projectId, finalDecision: 'exclude' } }),
|
||
prisma.aslScreeningResult.count({ where: { projectId, finalDecision: null } }),
|
||
prisma.aslScreeningResult.count({ where: { projectId, conflictStatus: 'conflict', finalDecision: null } }),
|
||
prisma.aslScreeningResult.count({ where: { projectId, NOT: { finalDecision: null } } }),
|
||
]);
|
||
```
|
||
|
||
---
|
||
|
||
### 1.2 Excel撖澆枂撌亙<E6928C> <20>?
|
||
|
||
**<2A><>辣**嚗䫤frontend-v2/src/modules/asl/utils/excelExport.ts`
|
||
|
||
**<EFBFBD>蠘<EFBFBD>**嚗?
|
||
- <20>?<3F>滨垢<E6BBA8><E59EA2><EFBFBD>Excel嚗<6C>妟<EFBFBD><E5A69F>辣<EFBFBD>賜<EFBFBD>嚗?
|
||
- <20>?瘛瑕<E7989B><E79195>寞<EFBFBD>嚗𡁜<E59A97><F0A1819C>隹I<E99AB9>喟<EFBFBD><E5969F>䔶犖撌亙<E6928C>蝑?
|
||
- <20>?摰峕㟲靽⊥<E99DBD>嚗𡁜<E59A97><F0A1819C>急<EFBFBD><E680A5>侨ICOS<4F>斗鱏<E69697>諹<EFBFBD><E8ABB9>?
|
||
- <20>?銝支葵撖澆枂<E6BE86>賣㺭嚗?
|
||
- `exportScreeningResults()` - 撖澆枂蝑偦<E89D91>厩<EFBFBD><E58EA9>?
|
||
- `exportStatisticsSummary()` - 撖澆枂蝏蠘恣<E8A098>䁅<EFBFBD>
|
||
|
||
**Excel<65>㛖<EFBFBD><E39B96><EFBFBD><EFBFBD><EFBFBD>?0<>梹<EFBFBD>**嚗?
|
||
```
|
||
<EFBFBD>箇<EFBFBD>靽⊥<EFBFBD>嚗?<3F>梹<EFBFBD>嚗?
|
||
- 摨誩噡<E8AAA9><E599A1><EFBFBD>憸塩<E686B8><E5A1A9><EFBFBD>閬<EFBFBD><E996AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𨳍<EFBFBD><F0A8B38D>僑隞賬<E99A9E><E8B3AC>MID<49><44>OI
|
||
|
||
AI<EFBFBD>梯<EFBFBD>嚗?<3F>梹<EFBFBD>嚗?
|
||
- AI<41>梯<EFBFBD><E6A2AF><EFBFBD>I<EFBFBD>臬炏銝<E7828F><E98A9D>?
|
||
|
||
DeepSeek摰峕㟲<EFBFBD><EFBFBD><EFBFBD>嚗?1<>梹<EFBFBD>嚗?
|
||
- <20>喟<EFBFBD><E5969F><EFBFBD>蔭靽∪漲<E288AA><E6BCB2>/I/C/S<>斗鱏<E69697><E9B18F>/I/C/S霂<53>旿<EFBFBD><E697BF><EFBFBD><EFBFBD>斤<EFBFBD><E696A4>?
|
||
|
||
Qwen摰峕㟲<EFBFBD><EFBFBD><EFBFBD>嚗?1<>梹<EFBFBD>嚗?
|
||
- <20>喟<EFBFBD><E5969F><EFBFBD>蔭靽∪漲<E288AA><E6BCB2>/I/C/S<>斗鱏<E69697><E9B18F>/I/C/S霂<53>旿<EFBFBD><E697BF><EFBFBD><EFBFBD>斤<EFBFBD><E696A4>?
|
||
|
||
鈭箏極<EFBFBD>喟<EFBFBD>嚗?<3F>梹<EFBFBD>嚗?
|
||
- 鈭箏極<E7AE8F>喟<EFBFBD><E5969F><EFBFBD>犖撌交<E6928C><E4BAA4>文<EFBFBD><E69687>𨬭<EFBFBD><F0A8ACAD><EFBFBD><EFBFBD>訾犖<E8A8BE><E78A96><EFBFBD><EFBFBD>豢𧒄<E8B1A2>?
|
||
|
||
<EFBFBD>嗆<EFBFBD><EFBFBD><EFBFBD>2<EFBFBD>梹<EFBFBD>嚗?
|
||
- <20>嗆<EFBFBD><E59786><EFBFBD><EFBFBD><EFBFBD>蝒<EFBFBD>𠶖<EFBFBD>?
|
||
```
|
||
|
||
**鈭穃<E988AD><E7A983>罸<EFBFBD>霂?*嚗?
|
||
- <20>?摰<><E691B0><EFBFBD>冽<EFBFBD>閫<EFBFBD>膥<EFBFBD><E886A5><EFBFBD>銝剔<E98A9D><E58994>?
|
||
- <20>?<3F>惩<EFBFBD>蝡舀<E89DA1>隞嗆<E99A9E>雿?
|
||
- <20>?<3F>𤪻SS摮睃<E691AE>嚗㇈VP<56>嗆挾嚗?
|
||
- <20>?蝚血<E89D9A>鈭穃<E988AD><E7A983>笔<EFBFBD><E7AC94>?
|
||
|
||
---
|
||
|
||
### 1.3 <20>萘<EFBFBD>蝏𤘪<E89D8F>憿菟𢒰 <20>?
|
||
|
||
**<EFBFBD><EFBFBD>辣**嚗䫤frontend-v2/src/modules/asl/pages/ScreeningResults.tsx`
|
||
|
||
**<2A>蠘<EFBFBD>璅∪<E79285>**嚗?
|
||
|
||
#### 璅∪<E79285>1嚗𡁶<E59A97>霈⊥<E99C88>閫<EFBFBD>㨃<EFBFBD>?
|
||
```
|
||
<EFBFBD>𢞖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
<EFBFBD>?[<5B>餅㺭 199] [撌脩熙<E884A9>?85] [撌脫<E6928C><E884AB>?90] [敺<><E695BA><EFBFBD>?24] <20>?
|
||
<EFBFBD>? 42.7% 45.2% 12.1% <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>?
|
||
```
|
||
|
||
#### 璅∪<E79285>2嚗𡁜<E59A97>憭齿瓲<E9BDBF>鞟內
|
||
```
|
||
<EFBFBD>𩤃<EFBFBD> 餈䀹<E9A488>24蝭<34><E89DAD><EFBFBD>桀<EFBFBD><E6A180>冽芋<E586BD>见ế<E8A781>剖<EFBFBD>蝒<EFBFBD><E89D92>撱箄悅<E7AE84>滚<EFBFBD>"摰⊥瓲撌乩<E6928C><E4B9A9>?餈𥡝<E9A488>鈭箏極憭齿瓲
|
||
[<5B>滚<EFBFBD>憭齿瓲] <20>厰僼
|
||
```
|
||
|
||
#### 璅∪<E79285>3嚗䥪RISMA<4D>㘾膄<E398BE>笔<EFBFBD>蝏蠘恣
|
||
```
|
||
<EFBFBD>㘾膄<EFBFBD>笔<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗㇊RISMA嚗?
|
||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
P銝滚龪<EFBFBD>㵪<EFBFBD>鈭箇黎嚗? <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 40蝭?(44%)
|
||
I銝滚龪<EFBFBD>㵪<EFBFBD>撟脤<EFBFBD>嚗? <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 25蝭?(28%)
|
||
S銝滚龪<EFBFBD>㵪<EFBFBD><EFBFBD>𠉛弦霈曇恣嚗?<3F><><EFBFBD> 15蝭?(17%)
|
||
<EFBFBD>嗡<EFBFBD><EFBFBD>笔<EFBFBD> <20>? 10蝭?(11%)
|
||
```
|
||
|
||
#### 璅∪<E79285>4嚗𡁶<E59A97><F0A181B6>𨅯<EFBFBD>銵剁<E98AB5>瘛瑕<E7989B><E79195>寞<EFBFBD>嚗争<E59A97>
|
||
|
||
**銵冽聢<E586BD>𡑒挽霈?*嚗?
|
||
| <20>堒<EFBFBD> | 摰賢漲 | 霂湔<E99C82> |
|
||
|------|------|------|
|
||
| 摨誩噡 | 60px | <20>箏<EFBFBD>撌虫儒 |
|
||
| <20><>讃<EFBFBD><E8AE83><EFBFBD> | 350px | <20>舐<EFBFBD><E88890>餃<EFBFBD>撘<EFBFBD>嚗<EFBFBD>𤐄摰𡁜椰靘?|
|
||
| AI<41>梯<EFBFBD> | 120px | <20>曄內<E69B84>峕芋<E5B395>𧢲糓<F0A7A2B2>虫<EFBFBD><E899AB>?|
|
||
| <20>㘾膄<E398BE>笔<EFBFBD> | 180px | <20>箄<EFBFBD><E7AE84>曄內嚗<E585A7>熙<EFBFBD>交遬蝷?-"嚗?|
|
||
| 鈭箏極<E7AE8F>喟<EFBFBD> | 120px | <20><>釣<EFBFBD>函蕃AI<41>碶<EFBFBD>AI銝<49><E98A9D>?|
|
||
| <20>嗆<EFBFBD>?| 120px | 4蝘滨𠶖<E6BBA8><F0A0B696><EFBFBD>蝑?|
|
||
| <20>滢<EFBFBD> | 80px | <20>箏<EFBFBD><E7AE8F>喃儒 |
|
||
|
||
**AI<41>梯<EFBFBD><E6A2AF>?*嚗?
|
||
```
|
||
銝<EFBFBD><EFBFBD>湔𧒄嚗?
|
||
<EFBFBD>𢞖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
<EFBFBD>?<3F>?<3F>㘾膄 <20>?
|
||
<EFBFBD>?(DS<44>?QW<51>? <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>?<3F>𩤃<EFBFBD> <20>脩<EFBFBD> <20>?
|
||
<EFBFBD>?DS:蝥喳<E89DA5> <20>?
|
||
<EFBFBD>?QW:<3A>㘾膄 <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>?
|
||
```
|
||
|
||
**鈭箏極<E7AE8F>喟<EFBFBD><E5969F>?*嚗?
|
||
```
|
||
<EFBFBD>芸<EFBFBD><EFBFBD>賂<EFBFBD>
|
||
<EFBFBD>𢞖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
<EFBFBD>?<3F>芸<EFBFBD><E88AB8>?<3F>?
|
||
<EFBFBD>婙<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
|
||
撌脣<EFBFBD><EFBFBD>?銝垾I銝<49><E98A9D>湛<EFBFBD>
|
||
<EFBFBD>𢞖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
<EFBFBD>?<3F>?蝥喳<E89DA5> <20>?
|
||
<EFBFBD>?(銝垾I銝<49><E98A9D>? <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>?<3F>函蕃AI嚗?
|
||
<EFBFBD>𢞖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
<EFBFBD>?<3F>?蝥喳<E89DA5> <20>?
|
||
<EFBFBD>?(<28>函蕃AI) <20>? <20>?璈躰𠧧<E8BAB0><F0A0A7A7>倌
|
||
<EFBFBD>婙<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
```
|
||
|
||
**<2A>嗆<EFBFBD><E59786><EFBFBD>**嚗?蝘滨𠶖<E6BBA8><F0A0B696><EFBFBD>嚗?
|
||
- <20>?撌脣<E6928C><E884A3>?銝垾I銝<49><E98A9D>湛<EFBFBD>蝏輯𠧧嚗?
|
||
- <20><> 撌脣<E6928C><E884A3>?<3F>函蕃AI嚗<49><E59A97><EFBFBD>莎<EFBFBD>
|
||
- <20>𩤃<EFBFBD> 敺<><E695BA><EFBFBD>?<3F>匧<EFBFBD>蝒<EFBFBD><E89D92>暺<EFBFBD>𠧧嚗?
|
||
- 漎?敺<><E695BA><EFBFBD>?AI銝<49><E98A9D>湛<EFBFBD><E6B99B>啗𠧧嚗?
|
||
|
||
**撅訫<E69285>銵?*嚗?
|
||
```
|
||
<EFBFBD>孵稬<EFBFBD><EFBFBD>讃<EFBFBD><EFBFBD><EFBFBD>嚗<EFBFBD><EFBFBD>撘<EFBFBD><EFBFBD>曄內嚗?
|
||
<EFBFBD>𢞖<EFBFBD> DeepSeek<65><6B><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<3F>𢞖<EFBFBD> Qwen<65><6E><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
<EFBFBD>?<3F><> DeepSeek-V3 <20>?<3F>?<3F><> Qwen-Max <20>?
|
||
<EFBFBD>?<3F>喟<EFBFBD>嚗𡁏<E59A97><F0A1818F>歹<EFBFBD>95%嚗? <20>?<3F>?<3F>喟<EFBFBD>嚗𡁏<E59A97><F0A1818F>歹<EFBFBD>90%嚗? <20>?
|
||
<EFBFBD>?P: <20>𦯀<EFBFBD><F0A6AF80>寥<EFBFBD> - "撟渲蝠鈭? <20>?<3F>?P: <20>𦯀<EFBFBD><F0A6AF80>寥<EFBFBD> - "撟湧<E6929F>" <20>?
|
||
<EFBFBD>?I: <20>枏龪<E69E8F>? <20>?<3F>?I: <20>枏龪<E69E8F>? <20>?
|
||
<EFBFBD>?C: <20>枏龪<E69E8F>? <20>?<3F>?C: <20>枏龪<E69E8F>? <20>?
|
||
<EFBFBD>?S: <20>枏龪<E69E8F>? <20>?<3F>?S: <20>枏龪<E69E8F>? <20>?
|
||
<EFBFBD>?<3F><>眏嚗帋犖蝢文僑樴<E58391><E6A8B4>蝚? <20>?<3F>?<3F><>眏嚗帋犖蝢支<E89DA2>蝚? <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>?<3F>婙<EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
|
||
<EFBFBD>𪂹<EFBFBD>𨧀<EFBFBD>儭?鈭箏極憭齿瓲
|
||
憭齿瓲<EFBFBD>喟<EFBFBD>嚗尠<EFBFBD> 蝥喳<E89DA5> [<5B>函蕃AI撱箄悅]
|
||
<EFBFBD>㘾膄<EFBFBD>笔<EFBFBD>嚗?
|
||
憭齿瓲鈭綽<EFBFBD>撘惩龫<EFBFBD>?| <20>園𡢿嚗?025-11-21 14:00
|
||
```
|
||
|
||
#### 璅∪<E79285>5嚗𡁏鸌<F0A1818F>𤩺<EFBFBD>雿?
|
||
- <20>?Checkbox憭𡁻<E686AD>?
|
||
- <20>?撖澆枂蝏蠘恣<E8A098>䁅<EFBFBD>
|
||
- <20>?撖澆枂<E6BE86>萘<EFBFBD>蝏𤘪<E89D8F>嚗<EFBFBD><E59A97><EFBFBD>䕡ab嚗?
|
||
- <20>?撖澆枂<E6BE86>劐葉憿?
|
||
|
||
---
|
||
|
||
### 1.4 憿菟𢒰撖潸⏛隡睃<E99AA1> <20>?
|
||
|
||
**摰⊥瓲撌乩<E6928C><E4B9A9>?*嚗?
|
||
- <20>?瘛餃<E7989B>"<22>亦<EFBFBD>蝏𤘪<E89D8F>蝏蠘恣"<22>厰僼嚗<E583BC><E59A97><EFBFBD>匧<EFBFBD><E58CA7>𣂼<EFBFBD><F0A382BC>曄內嚗?
|
||
- <20>?<3F>舀<EFBFBD>URL<52><4C>㺭隡𣳇<E99AA1>𥙑rojectId
|
||
|
||
**撌虫儒撖潸⏛**嚗?
|
||
- <20>?撌脣<E6928C><E884A3>?<3F>萘<EFBFBD>蝏𤘪<E89D8F>"<22>暹𦻖
|
||
|
||
**頝唾蓮<E594BE>餉<EFBFBD>**嚗?
|
||
```
|
||
霈曄蔭銝𤾸鍳<EFBFBD>?<3F>?摰⊥瓲撌乩<E6928C><E4B9A9>?<3F>?<3F>萘<EFBFBD>蝏𤘪<E89D8F>
|
||
<20>? <20>? <20>?
|
||
銝𠹺<E98A9D>Excel <20>鞉辺憭齿瓲 <20>寥<EFBFBD>撖澆枂
|
||
[<5B>亦<EFBFBD>蝏蠘恣] <20>?蝏蠘恣<E8A098><E681A3><EFBFBD>
|
||
```
|
||
|
||
---
|
||
|
||
### 1.5 敹恍<E695B9><E6818D><EFBFBD>霂訫極<E8A8AB>?<3F>?
|
||
|
||
**<2A><>辣**嚗䫤backend/scripts/get-test-projects.mjs`
|
||
|
||
**<EFBFBD>蠘<EFBFBD>**嚗?
|
||
- <20>?<3F>堒枂<E5A092>唳旿摨㮖葉<E3AE96><E89189><EFBFBD>厰★<E58EB0>?
|
||
- <20>?<3F>曄內<E69B84><E585A7>讃<EFBFBD>啣<EFBFBD>蝑偦<E89D91>厩<EFBFBD><E58EA9>𨀣㺭
|
||
- <20>?<3F>芸𢆡<E88AB8>刻<EFBFBD><E588BB>㗇㺭<E39787>桃<EFBFBD>憿寧𤌍
|
||
- <20>?<3F><><EFBFBD><EFBFBD>舐凒<E88890>亥挪<E4BAA5>桃<EFBFBD>瘚贝<E7989A>URL
|
||
|
||
**雿輻鍂<E8BCBB>寞<EFBFBD>**嚗?
|
||
```bash
|
||
cd backend
|
||
node scripts/get-test-projects.mjs
|
||
```
|
||
|
||
---
|
||
|
||
## <20>?鈭䎚<E988AD><E48E9A>挽霈∪<E99C88>蝑?
|
||
|
||
### 2.1 瘛瑕<E7989B><E79195>寞<EFBFBD>霈曇恣
|
||
|
||
**<EFBFBD>桅<EFBFBD><EFBFBD>箸艶**嚗?
|
||
```
|
||
<EFBFBD>?<3F><>䲮獢<E4B2AE>䔮憸矋<E686B8>
|
||
<EFBFBD><EFBFBD>蝏<EFBFBD><EFBFBD>蝑? 蝥喳<E89DA5> <20>?
|
||
<EFBFBD>㘾膄<EFBFBD>笔<EFBFBD>: P銝滚龪<E6BB9A>㵪<EFBFBD>鈭箇黎嚗争<E59A97> <20>?<3F>餉<EFBFBD><E9A489>𤤿㦛嚗?
|
||
```
|
||
|
||
**閫<><E996AB><EFBFBD>寞<EFBFBD> - 瘛瑕<E7989B><E79195>寞<EFBFBD>**嚗?
|
||
1. **<EFBFBD>𡒊&<EFBFBD>箏<EFBFBD>AI<EFBFBD>喟<EFBFBD><EFBFBD>䔶犖撌亙<EFBFBD>蝑?*
|
||
- AI<41>梯<EFBFBD><E6A2AF>梹<EFBFBD><E6A2B9>曄內<E69B84>峕芋<E5B395>𧢲糓<F0A7A2B2>虫<EFBFBD><E899AB>?
|
||
- 鈭箏極<E7AE8F>喟<EFBFBD><E5969F>梹<EFBFBD><E6A2B9>曄內鈭箏極憭齿瓲蝏𤘪<E89D8F>
|
||
|
||
2. **<EFBFBD>箄<EFBFBD><EFBFBD>㘾膄<EFBFBD>笔<EFBFBD><EFBFBD>曄內**
|
||
- <20><>蝏<EFBFBD><E89D8F>蝑?蝥喳<E89DA5> <20>?<3F>曄內"-"
|
||
- <20><>蝏<EFBFBD><E89D8F>蝑?<3F>㘾膄 <20>?<3F>曄內<E69B84>笔<EFBFBD>嚗<EFBFBD>犖撌乩<E6928C><E4B9A9><EFBFBD><EFBFBD>
|
||
- <20>芸<EFBFBD><E88AB8>?<3F>?<3F>曄內AI<41>𣂼<EFBFBD><F0A382BC><EFBFBD><EFBFBD><EFBFBD>?
|
||
|
||
3. **<EFBFBD>嗆<EFBFBD><EFBFBD><EFBFBD><EFBFBD>唳<EFBFBD>瘜?*
|
||
- 撌脣<E6928C><E884A3>?銝垾I銝<49><E98A9D>?
|
||
- 撌脣<E6928C><E884A3>?<3F>函蕃AI嚗<49><E59A97><EFBFBD>脤<EFBFBD>鈭殷<E988AD>
|
||
- 敺<><E695BA><EFBFBD>?<3F>匧<EFBFBD>蝒?
|
||
- 敺<><E695BA><EFBFBD>?AI銝<49><E98A9D>?
|
||
|
||
4. **撅訫<E69285>銵峕遬蝷箏<E89DB7><E7AE8F>港縑<E6B8AF>?*
|
||
- DeepSeek<65>熑wen<65><6E>祕蝏<E7A595>ế<EFBFBD>?
|
||
- PICOS霂<53>旿
|
||
- 鈭箏極憭齿瓲霂行<E99C82>
|
||
|
||
---
|
||
|
||
### 2.2 鈭穃<E988AD><E7A983><EFBFBD>沲<EFBFBD><E6B2B2><EFBFBD>霂?
|
||
|
||
<EFBFBD>箔<EFBFBD>[鈭穃<E988AD><E7A983>笔<EFBFBD><E7AC94>𤏸<EFBFBD><F0A48FB8><EFBFBD>(../../../04-撘<><E69298>𤏸<EFBFBD><F0A48FB8>?08-鈭穃<E988AD><E7A983>笔<EFBFBD><E7AC94>𤏸<EFBFBD><F0A48FB8>?md)璉<><E79289>伐<EFBFBD>
|
||
|
||
| 璉<><E79289>仿★ | 閬<><E996AC> | 摰䂿緵 | <20>嗆<EFBFBD>?|
|
||
|--------|------|------|------|
|
||
| **<EFBFBD>唳旿摨栞<EFBFBD><EFBFBD>?* | 雿輻鍂<E8BCBB>典<EFBFBD>`prisma` | <20>?雿輻鍂<E8BCBB>典<EFBFBD>摰硺<E691B0> | <20>?|
|
||
| **蝏蠘恣霈∠<E99C88>** | <20>𡒊垢<F0A1928A>𡁜<EFBFBD> | <20>?Prisma<6D>𡁜<EFBFBD><F0A1819C>亥砭 | <20>?|
|
||
| **<EFBFBD><EFBFBD>辣摮睃<EFBFBD>** | <20>䭾𧋦<E4ADBE>啗氜<E59597>?| <20>?Excel<65>滨垢<E6BBA8><E59EA2><EFBFBD> | <20>?|
|
||
| **<EFBFBD>亙<EFBFBD>颲枏枂** | 雿輻鍂`logger` | <20>?雿輻鍂logger.info | <20>?|
|
||
| **<EFBFBD>躰秤憭<EFBFBD><EFBFBD>** | 蝏煺<E89D8F>憭<EFBFBD><E686AD> | <20>?try-catch + logger | <20>?|
|
||
| **<EFBFBD>扯<EFBFBD>隡睃<EFBFBD>** | 撟嗉<E6929F><E59789>亥砭 | <20>?Promise.all | <20>?|
|
||
|
||
**蝏栞捏**嚗尠<E59A97> 摰<><E691B0>蝚血<E89D9A>鈭穃<E988AD><E7A983>笔<EFBFBD><E7AC94>𤏸<EFBFBD><F0A48FB8>?
|
||
|
||
---
|
||
|
||
## <20><> 銝剹<E98A9D><E589B9><EFBFBD><EFBFBD>賣⏛<E8B3A3>曇秩<E69B87>?
|
||
|
||
### 3.1 蝏蠘恣璁<E681A3><E79281>
|
||
```
|
||
<EFBFBD>𢞖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<3F>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<3F>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<3F>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
<EFBFBD>?<3F>餅㺭 <20>?<3F>?撌脩熙<E884A9>乒<EFBFBD> <20>?撌脫<E6928C><E884AB>手<EFBFBD> <20>?敺<><E695BA><EFBFBD>詹<EFBFBD>
|
||
<EFBFBD>? 199 <20>?<3F>? 85 <20>?<3F>? 90 <20>?<3F>? 24 <20>?
|
||
<EFBFBD>? 蝭? <20>?<3F>?42.7% <20>?<3F>?45.2% <20>?<3F>?12.1% <20>?
|
||
<EFBFBD>婙<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<3F>婙<EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<3F>婙<EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<3F>婙<EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
<20>嗡葉 24 蝭<><E89DAD><EFBFBD>脩<EFBFBD> <20>𩤃<EFBFBD>
|
||
```
|
||
|
||
### 3.2 PRISMA<4D>㘾膄<E398BE><E88684><EFBFBD>
|
||
```
|
||
<EFBFBD>㘾膄<EFBFBD>笔<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗㇊RISMA嚗?
|
||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
P銝滚龪<EFBFBD>㵪<EFBFBD>鈭箇黎嚗? <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 40蝭?(44%)
|
||
I銝滚龪<EFBFBD>㵪<EFBFBD>撟脤<EFBFBD>嚗? <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 25蝭?(28%)
|
||
S銝滚龪<EFBFBD>㵪<EFBFBD><EFBFBD>𠉛弦霈曇恣嚗?<3F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 15蝭?(17%)
|
||
<EFBFBD>嗡<EFBFBD><EFBFBD>笔<EFBFBD> <20><><EFBFBD> 10蝭?(11%)
|
||
```
|
||
|
||
### 3.3 蝏𤘪<E89D8F><F0A498AA>𡑒”嚗<E2809D>毽<EFBFBD><E6AFBD>䲮獢<E4B2AE><E78DA2>
|
||
```
|
||
摨誩噡 | <20><><EFBFBD> | AI<41>梯<EFBFBD> | <20>㘾膄<E398BE>笔<EFBFBD> | 鈭箏極<E7AE8F>喟<EFBFBD> | <20>嗆<EFBFBD>?
|
||
-----|------|------------|--------------|-----------|------------------
|
||
1 | xxx | <20>埈<EFBFBD><E59F88>? | P銝滚龪<E6BB9A>? | <20><>熙<EFBFBD>? | <20><>撌脣<E6928C><E884A3>?<3F>函蕃AI
|
||
(DS<44>𡥼W<F0A1A5BC>? (<28>函蕃AI)
|
||
-----|------|------------|--------------|-----------|------------------
|
||
2 | xxx | <20>𩤃<EFBFBD><F0A9A483>脩<EFBFBD> | P銝滚龪<E6BB9A>? | <20>芸<EFBFBD><E88AB8>? | <20>𩤃<EFBFBD>敺<EFBFBD><E695BA><EFBFBD>?<3F>匧<EFBFBD>蝒?
|
||
DS:蝥喳<E89DA5>
|
||
QW:<3A>㘾膄
|
||
-----|------|------------|--------------|-----------|------------------
|
||
3 | xxx | <20><>熙<EFBFBD>? | - | <20><>熙<EFBFBD>? | <20><>歇憭齿瓲-銝垾I銝<49><E98A9D>?
|
||
(DS<44>𡥼W<F0A1A5BC>? (銝垾I銝<49><E98A9D>?
|
||
```
|
||
|
||
**撅訫<E69285>銵𣬚內靘?*嚗?
|
||
```
|
||
<EFBFBD><EFBFBD> Efficacy and safety of argatroban...
|
||
|
||
<EFBFBD>𢞖<EFBFBD> DeepSeek-V3 <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>?<3F>𢞖<EFBFBD> Qwen-Max <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>?<3F>喟<EFBFBD>嚗𡁏<E59A97><F0A1818F>歹<EFBFBD>95%嚗? <20>?<3F>?<3F>喟<EFBFBD>嚗𡁏<E59A97><F0A1818F>歹<EFBFBD>90%嚗? <20>?
|
||
<EFBFBD>?P<>斗鱏嚗尠<E59A97>銝滚龪<E6BB9A>? <20>?<3F>?P<>斗鱏嚗尠<E59A97>銝滚龪<E6BB9A>? <20>?
|
||
<EFBFBD>? 霂<>旿嚗?撟渲蝠<E6B8B2>亙熒<E4BA99>𡑒<EFBFBD><F0A19192>? <20>?<3F>? 霂<>旿嚗?撟湧<E6929F><45撗? <20>?
|
||
<EFBFBD>?I<>斗鱏嚗尠<E59A97><E5B0A0>寥<EFBFBD> <20>?<3F>?I<>斗鱏嚗尠<E59A97><E5B0A0>寥<EFBFBD> <20>?
|
||
<EFBFBD>?C<>斗鱏嚗尠<E59A97><E5B0A0>寥<EFBFBD> <20>?<3F>?C<>斗鱏嚗尠<E59A97><E5B0A0>寥<EFBFBD> <20>?
|
||
<EFBFBD>?S<>斗鱏嚗尠<E59A97><E5B0A0>寥<EFBFBD> <20>?<3F>?S<>斗鱏嚗尠<E59A97><E5B0A0>寥<EFBFBD> <20>?
|
||
<EFBFBD>?<3F><>眏嚗𡁶<E59A97>蝛嗅笆鞊∩<E99E8A>蝚血<E89D9A>鈭箇黎<E7AE87><E9BB8E><EFBFBD> <20>?<3F>?<3F><>眏嚗帋犖蝢文僑樴<E58391><E6A8B4>蝚? <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>?<3F>婙<EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
|
||
<EFBFBD>𪂹<EFBFBD>𨧀<EFBFBD>儭?鈭箏極憭齿瓲
|
||
憭齿瓲<EFBFBD>喟<EFBFBD>嚗尠<EFBFBD> 蝥喳<E89DA5> [<5B>函蕃AI撱箄悅]
|
||
憭齿瓲鈭綽<EFBFBD>撘惩龫<EFBFBD>?| <20>園𡢿嚗?025-11-21 14:00
|
||
```
|
||
|
||
---
|
||
|
||
## <20>圲 <20>䜘<EFBFBD><E49C98><EFBFBD><EFBFBD>臬<EFBFBD><E887AC>啁<EFBFBD><E59581>?
|
||
|
||
### 4.1 <20>𡒊垢蝏蠘恣API摰䂿緵
|
||
|
||
**<EFBFBD>詨<EFBFBD><EFBFBD>餉<EFBFBD>**嚗?
|
||
```typescript
|
||
// 1. 撟嗉<E6929F><E59789>𡁜<EFBFBD><F0A1819C>亥砭嚗<E7A0AD><E59A97>扯<EFBFBD>隡睃<E99AA1>嚗?
|
||
const [total, included, excluded, pending, conflict, reviewed] =
|
||
await Promise.all([...6銝泌ount<EFBFBD>亥砭]);
|
||
|
||
// 2. <20>亥砭<E4BAA5>㘾膄蝏𤘪<E89D8F>嚗<EFBFBD>鍂鈭𤾸<E988AD><F0A4BEB8>𣂼<EFBFBD><F0A382BC>𩤃<EFBFBD>
|
||
const excludedResults = await prisma.aslScreeningResult.findMany({
|
||
where: {
|
||
projectId,
|
||
OR: [
|
||
{ finalDecision: 'exclude' },
|
||
{ finalDecision: null, dsConclusion: 'exclude' }
|
||
]
|
||
},
|
||
select: { exclusionReason, dsPJudgment, dsIJudgment, dsCJudgment, dsSJudgment }
|
||
});
|
||
|
||
// 3. <20><><EFBFBD><EFBFBD>㘾膄<E398BE>笔<EFBFBD>
|
||
const exclusionReasons = {};
|
||
excludedResults.forEach(result => {
|
||
const reason = result.exclusionReason || extractAutoReason(result);
|
||
exclusionReasons[reason] = (exclusionReasons[reason] || 0) + 1;
|
||
});
|
||
|
||
// 4. 餈𥪜<E9A488>蝏蠘恣<E8A098>唳旿嚗<E697BF><E59A97><EFBFBD>怎蓡<E6808E><E893A1><EFBFBD>嚗?
|
||
return {
|
||
total, included, excluded, pending, conflict, reviewed,
|
||
exclusionReasons,
|
||
includedRate: ((included / total) * 100).toFixed(1),
|
||
excludedRate: ((excluded / total) * 100).toFixed(1),
|
||
pendingRate: ((pending / total) * 100).toFixed(1),
|
||
};
|
||
```
|
||
|
||
**颲<>𨭌<EFBFBD>賣㺭**嚗?
|
||
```typescript
|
||
function extractAutoReason(result): string {
|
||
if (result.dsPJudgment === 'mismatch') return 'P銝滚龪<E6BB9A>㵪<EFBFBD>鈭箇黎嚗?;
|
||
if (result.dsIJudgment === 'mismatch') return 'I銝滚龪<EFBFBD>㵪<EFBFBD>撟脤<EFBFBD>嚗?;
|
||
if (result.dsCJudgment === 'mismatch') return 'C銝滚龪<E6BB9A>㵪<EFBFBD>撖寧<E69296>嚗?;
|
||
if (result.dsSJudgment === 'mismatch') return 'S銝滚龪<EFBFBD>㵪<EFBFBD><EFBFBD>𠉛弦霈曇恣嚗?;
|
||
return '<27>嗡<EFBFBD><E597A1>笔<EFBFBD>';
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 4.2 <20>滨垢瘛瑕<E7989B><E79195>寞<EFBFBD>摰䂿緵
|
||
|
||
**AI<41>梯<EFBFBD><E6A2AF>?*嚗?
|
||
```typescript
|
||
render: (_, record) => {
|
||
const isAIConsistent = record.dsConclusion === record.qwenConclusion;
|
||
|
||
if (isAIConsistent) {
|
||
return (
|
||
<div>
|
||
<ConclusionTag conclusion={record.dsConclusion} />
|
||
<div className="text-xs">(DS<EFBFBD>?QW<EFBFBD>?</div>
|
||
</div>
|
||
);
|
||
} else {
|
||
return (
|
||
<Tag color="warning"><EFBFBD>脩<EFBFBD></Tag>
|
||
<div>DS:{dsDecision} / QW:{qwDecision}</div>
|
||
);
|
||
}
|
||
}
|
||
```
|
||
|
||
**<EFBFBD>㘾膄<EFBFBD>笔<EFBFBD><EFBFBD>?*嚗<>惣<EFBFBD>賣遬蝷綽<E89DB7>嚗?
|
||
```typescript
|
||
render: (_, record) => {
|
||
// <20><>蝏<EFBFBD><E89D8F>蝑吔<E89D91>鈭箏極隡睃<E99AA1>嚗<EFBFBD>炏<EFBFBD>禑I嚗?
|
||
const finalDec = record.finalDecision || record.dsConclusion;
|
||
|
||
// 蝥喳<E89DA5><E596B3>嗘<EFBFBD><E59798>曄內<E69B84>㘾膄<E398BE>笔<EFBFBD>
|
||
if (finalDec === 'include') {
|
||
return <span style={{ color: '#999' }}>-</span>;
|
||
}
|
||
|
||
// <20>㘾膄<E398BE>蹱遬蝷箏<E89DB7><E7AE8F>𩤃<EFBFBD>鈭箏極隡睃<E99AA1>嚗?
|
||
const reason = record.exclusionReason || extractAutoReason(record);
|
||
return <Tooltip title={reason}>{reason}</Tooltip>;
|
||
}
|
||
```
|
||
|
||
**<EFBFBD>嗆<EFBFBD><EFBFBD><EFBFBD>**嚗?蝘滨𠶖<E6BBA8><F0A0B696><EFBFBD>嚗?
|
||
```typescript
|
||
render: (_, record) => {
|
||
if (record.finalDecision) {
|
||
const isOverride = record.dsConclusion !== record.finalDecision ||
|
||
record.qwenConclusion !== record.finalDecision;
|
||
|
||
if (isOverride) {
|
||
return <Tag color="orange">撌脣<EFBFBD><EFBFBD>?<EFBFBD>函蕃AI</Tag>;
|
||
} else {
|
||
return <Tag color="success">撌脣<EFBFBD><EFBFBD>?銝垾I銝<EFBFBD><EFBFBD>?/Tag>;
|
||
}
|
||
} else {
|
||
const isAIConsistent = record.dsConclusion === record.qwenConclusion;
|
||
if (isAIConsistent) {
|
||
return <Tag color="default">敺<EFBFBD><EFBFBD><EFBFBD>?AI銝<EFBFBD><EFBFBD>?/Tag>;
|
||
} else {
|
||
return <Tag color="warning">敺<EFBFBD><EFBFBD><EFBFBD>?<EFBFBD>匧<EFBFBD>蝒?/Tag>;
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 4.3 Excel撖澆枂摰䂿緵嚗<E7B7B5>毽<EFBFBD><E6AFBD>䲮獢<E4B2AE><E78DA2>
|
||
|
||
**撖澆枂<E6BE86>唳旿蝏𤘪<E89D8F>**嚗?
|
||
```typescript
|
||
{
|
||
// <20>箇<EFBFBD>靽⊥<E99DBD>
|
||
'摨誩噡': 1,
|
||
'<27><>讃<EFBFBD><E8AE83><EFBFBD>': '...',
|
||
'<27>䁅<EFBFBD>': '...',
|
||
// ...
|
||
|
||
// 潃?瘛瑕<E7989B><E79195>寞<EFBFBD>嚗鋫I<E98BAB>梯<EFBFBD>
|
||
'AI<41>梯<EFBFBD>': '<27>㘾膄(銝<><E98A9D>?' | '<27>脩<EFBFBD>(DS:蝥喳<E89DA5>, QW:<3A>㘾膄)',
|
||
'AI<41>臬炏銝<E7828F><E98A9D>?: '<EFBFBD>? | '<27>?,
|
||
|
||
// DeepSeek摰峕㟲<E5B395><E39FB2><EFBFBD>
|
||
'DeepSeek<EFBFBD>喟<EFBFBD>': '蝥喳<EFBFBD>' | '<EFBFBD>㘾膄',
|
||
'DeepSeek蝵桐縑摨?: '95%',
|
||
'DeepSeek-P<>斗鱏': '<27>寥<EFBFBD>' | '銝滚龪<E6BB9A>? | '<EFBFBD>典<EFBFBD><EFBFBD>寥<EFBFBD>',
|
||
'DeepSeek-P霂<EFBFBD>旿': '<EFBFBD>交<EFBFBD>抒撩銵<EFBFBD><EFBFBD>批<EFBFBD>銝剜<EFBFBD><EFBFBD>?,
|
||
'DeepSeek-I<>斗鱏': '<27>寥<EFBFBD>',
|
||
'DeepSeek-I霂<49>旿': 'argatroban瘝餌<E7989D>',
|
||
// ... C/S<>𣬚<EFBFBD>
|
||
'DeepSeek<65>㘾膄<E398BE><E88684>眏': '...',
|
||
|
||
// Qwen摰峕㟲<E5B395><E39FB2><EFBFBD>嚗<EFBFBD><E59A97>銝𠺪<E98A9D>
|
||
// ...
|
||
|
||
// 潃?瘛瑕<E7989B><E79195>寞<EFBFBD>嚗帋犖撌亙<E6928C>蝑?
|
||
'鈭箏極<E7AE8F>喟<EFBFBD>': '蝥喳<E89DA5>' | '<27>㘾膄' | '<27>芸<EFBFBD><E88AB8>?,
|
||
'鈭箏極<EFBFBD>㘾膄<EFBFBD>笔<EFBFBD>': '...',
|
||
'憭齿瓲鈭?: '撘惩龫<E683A9>?,
|
||
'憭齿瓲<EFBFBD>園𡢿': '2025-11-21 14:00',
|
||
|
||
// 潃?瘛瑕<E7989B><E79195>寞<EFBFBD>嚗𡁶𠶖<F0A181B6>?
|
||
'<EFBFBD>嗆<EFBFBD>?: '撌脣<E6928C><E884A3>?<3F>函蕃AI' | '撌脣<E6928C><E884A3>?銝垾I銝<49><E98A9D>? | '敺<EFBFBD><EFBFBD><EFBFBD>?<EFBFBD>匧<EFBFBD>蝒? | '敺<><E695BA><EFBFBD>?AI銝<49><E98A9D>?,
|
||
'<EFBFBD>脩<EFBFBD><EFBFBD>嗆<EFBFBD>?: '<27>脩<EFBFBD>' | '<EFBFBD>惩<EFBFBD>蝒?,
|
||
}
|
||
```
|
||
|
||
**銝<>銵<EFBFBD><E98AB5><EFBFBD>急<EFBFBD><E680A5>劐縑<E58A90>?*嚗?
|
||
- <20>?<3F>餃<EFBFBD>40<34>?
|
||
- <20>?<3F><>鉄<EFBFBD>峕芋<E5B395>见<EFBFBD><E8A781>游ế<E6B8B8>?
|
||
- <20>?<3F><>鉄<EFBFBD><E98984><EFBFBD>侨ICOS霂<53>旿
|
||
- <20>?<3F><>鉄鈭箏極憭齿瓲霂行<E99C82>
|
||
- <20>?<3F>堒捐<E5A092>芸𢆡靚<F0A286A1>㟲
|
||
|
||
---
|
||
|
||
## <20>妒 鈭𢛵<E988AD><F0A29BB5><EFBFBD>霂閙<E99C82><E99699>?
|
||
|
||
### 5.1 敹恍<E695B9><E6818D><EFBFBD>霂閙<E99C82>蝔?
|
||
|
||
#### Step 1: <20>瑕<EFBFBD>瘚贝<E7989A>憿寧𤌍ID
|
||
```bash
|
||
cd backend
|
||
node scripts/get-test-projects.mjs
|
||
```
|
||
|
||
颲枏枂蝷箔<EFBFBD>嚗?
|
||
```
|
||
<EFBFBD>㴓 <20>刻<EFBFBD>瘚贝<E7989A>憿寧𤌍嚗<F0A48C8D><E59A97>蝑偦<E89D91>厩<EFBFBD><E58EA9>頣<EFBFBD>嚗?
|
||
憿寧𤌍ID: 55941145-bba0-4b15-bda4-f0a398d78208
|
||
<20><>讃<EFBFBD>? 7
|
||
蝑偦<E89D91>厩<EFBFBD><E58EA9>𨀣㺭: 7
|
||
```
|
||
|
||
#### Step 2: 霈輸䔮摰⊥瓲撌乩<E6928C><E4B9A9>?
|
||
```
|
||
http://localhost:3000/literature/screening/title/workbench?projectId=55941145-bba0-4b15-bda4-f0a398d78208
|
||
```
|
||
|
||
#### Step 3: <20>孵稬"<22>亦<EFBFBD>蝏𤘪<E89D8F>蝏蠘恣"
|
||
<EFBFBD>券△<EFBFBD>W𢰧銝𡃏<EFBFBD><EFBFBD>曉<EFBFBD><EFBFBD>厰僼嚗𣬚<EFBFBD><EFBFBD>餉歲頧?
|
||
|
||
#### Step 4: <20>𣇉凒<F0A38789>亥挪<E4BAA5>桃<EFBFBD><E6A183>𣈯△
|
||
```
|
||
http://localhost:3000/literature/screening/title/results?projectId=55941145-bba0-4b15-bda4-f0a398d78208
|
||
```
|
||
|
||
---
|
||
|
||
### 5.2 <20>蠘<EFBFBD>瘚贝<E7989A>皜<EFBFBD><E79A9C>
|
||
|
||
#### 蝏蠘恣璁<E681A3><E79281> <20>?
|
||
- [ ] <20>餅㺭<E9A485>臬炏甇<E7828F>&嚗?
|
||
- [ ] 撌脩熙<E884A9>交㺭<E4BAA4>誩<EFBFBD><E8AAA9>曉<EFBFBD>瘥娍糓<E5A88D>行迤蝖殷<E89D96>
|
||
- [ ] 撌脫<E6928C><E884AB>斗㺭<E69697>誩<EFBFBD><E8AAA9>曉<EFBFBD>瘥娍糓<E5A88D>行迤蝖殷<E89D96>
|
||
- [ ] 敺<><E695BA><EFBFBD>豢㺭<E8B1A2>𤩺糓<F0A4A9BA>行迤蝖殷<E89D96>
|
||
- [ ] <20>脩<EFBFBD><E884A9>鞟內<E99E9F>臬炏<E887AC>曄內嚗<E585A7><E59A97><EFBFBD>匧<EFBFBD>蝒<EFBFBD>𧒄嚗㚁<E59A97>
|
||
|
||
#### PRISMA<4D>㘾膄<E398BE><E88684><EFBFBD> <20>?
|
||
- [ ] <20>㘾膄<E398BE>笔<EFBFBD><E7AC94>臬炏甇<E7828F>&<EFBFBD><EFBC86>掩嚗?
|
||
- [ ] <20>圈<EFBFBD>蝏蠘恣<E8A098>臬炏<E887AC><E7828F>&嚗?
|
||
- [ ] <20>曉<EFBFBD>瘥磰恣蝞埈糓<E59F88>行迤蝖殷<E89D96>
|
||
- [ ] <20>梁𠶖<E6A281>暹糓<E69AB9>行<EFBFBD>瘥𥪯<E798A5><F0A5AAAF>曄內嚗?
|
||
|
||
#### 蝏𤘪<E89D8F><F0A498AA>𡑒” <20>?
|
||
- [ ] Tab<61><62>揢<EFBFBD>臬炏甇<E7828F>虜嚗?
|
||
- [ ] Tab<61>圈<EFBFBD>蝏蠘恣<E8A098>臬炏甇<E7828F>&嚗?
|
||
- [ ] 銵冽聢<E586BD>唳旿<E594B3>臬炏甇<E7828F>&嚗?
|
||
- [ ] AI<41>梯<EFBFBD><E6A2AF>埈遬蝷箸糓<E7AEB8>行<EFBFBD><E8A18C>堆<EFBFBD>
|
||
- [ ] 鈭箏極<E7AE8F>喟<EFBFBD><E5969F>埈糓<E59F88>血躹<E8A180>?<3F>函蕃AI"<22>?銝垾I銝<49><E98A9D>?嚗?
|
||
- [ ] <20>㘾膄<E398BE>笔<EFBFBD><E7AC94>餉<EFBFBD><E9A489>臬炏甇<E7828F>&嚗<EFBC86>熙<EFBFBD>乩<EFBFBD><E4B9A9>曄內<E69B84>笔<EFBFBD>嚗㚁<E59A97>
|
||
- [ ] <20>嗆<EFBFBD><E59786><EFBFBD>蝑暹糓<E69AB9>血<EFBFBD>蝖殷<E89D96>
|
||
|
||
#### 撅訫<E69285>銵?<3F>?
|
||
- [ ] <20>孵稬<E5ADB5><E7A8AC>讃<EFBFBD><E8AE83><EFBFBD><EFBFBD>賢炏撅訫<E69285>嚗?
|
||
- [ ] DeepSeek<65>斗鱏<E69697>臬炏摰峕㟲嚗?
|
||
- [ ] Qwen<65>斗鱏<E69697>臬炏摰峕㟲嚗?
|
||
- [ ] 鈭箏極憭齿瓲靽⊥<E99DBD><E28AA5>臬炏<E887AC>曄內嚗?
|
||
|
||
#### Excel撖澆枂 <20>?
|
||
- [ ] "撖澆枂蝏蠘恣<E8A098>䁅<EFBFBD>"<22>臬炏甇<E7828F>虜嚗?
|
||
- [ ] "撖澆枂<E6BE86>萘<EFBFBD>蝏𤘪<E89D8F>"<22>臬炏甇<E7828F>虜嚗?
|
||
- [ ] "撖澆枂<E6BE86>劐葉憿?<3F>臬炏甇<E7828F>虜嚗?
|
||
- [ ] Excel<65><6C>鉄40<34>𦯀縑<F0A6AF80>舀糓<E88880>血<EFBFBD><E8A180>湛<EFBFBD>
|
||
- [ ] Excel<65>澆<EFBFBD><E6BE86>臬炏閫<E7828F><E996AB>嚗?
|
||
|
||
#### 憿菟𢒰撖潸⏛ <20>?
|
||
- [ ] 摰⊥瓲撌乩<E6928C><E4B9A9>啁<EFBFBD>"<22>亦<EFBFBD>蝏𤘪<E89D8F>蝏蠘恣"<22>厰僼<E58EB0>臬炏<E887AC>曄內嚗?
|
||
- [ ] <20>孵稬<E5ADB5>厰僼<E58EB0>賢炏甇<E7828F>&頝唾蓮嚗?
|
||
- [ ] URL<52><4C>㺭projectId<49>臬炏甇<E7828F>&隡𣳇<E99AA1>𡜐<EFBFBD>
|
||
|
||
---
|
||
|
||
## <20><> <20>准<EFBFBD><E58786><EFBFBD>扯<EFBFBD>瘚贝<E7989A>蝏𤘪<E89D8F>
|
||
|
||
### 瘚贝<E7989A><E8B49D>臬<EFBFBD>
|
||
- <20>𡒊垢嚗鐭ode.js + Fastify + Prisma
|
||
- <20>滨垢嚗鑹eact + Ant Design
|
||
- <20>唳旿摨橒<E691A8>PostgreSQL嚗Òsl_schema嚗?
|
||
|
||
### 瘚贝<E7989A><E8B49D>唳旿
|
||
| 瘚贝<E7989A>憿?| <20>唳旿<E594B3>?| <20>扯<EFBFBD><E689AF><EFBFBD><EFBFBD> | 蝏𤘪<E89D8F> |
|
||
|--------|--------|---------|------|
|
||
| 蝏蠘恣API | 199蝭?| <500ms | <20>?200ms |
|
||
| 蝏𤘪<E89D8F><F0A498AA>𡑒” | 20<32>?憿?| <200ms | <20>?150ms |
|
||
| Excel撖澆枂嚗<E69E82><E59A97>蝡荔<E89DA1>| 199蝭?| <3蝘?| <20>?1.5蝘?|
|
||
| Excel撖澆枂嚗<E69E82><E59A97>蝡荔<E89DA1>| 999蝭?| <5蝘?| <20>賂<EFBFBD> <20>芣<EFBFBD>霂?|
|
||
|
||
### <20>扯<EFBFBD>蝏栞捏
|
||
- <20>?蝏蠘恣API<50>滚<EFBFBD>敹恍<E695B9><E6818D><EFBFBD><500ms嚗?
|
||
- <20>?Excel<65>滨垢撖澆枂瘚<E69E82><E7989A>嚗?1000<30>∠漲2蝘𡜐<E89D98>
|
||
- <20>𩤃<EFBFBD> 憭扳㺭<E689B3>桅<EFBFBD>嚗?5000<30>∴<EFBFBD><E288B4><EFBFBD>閬<EFBFBD><E996AC>蝡臬紡<E887AC>綽<EFBFBD><E7B6BD><EFBFBD><EFBFBD>臬<EFBFBD>箏𦛚嚗?
|
||
|
||
---
|
||
|
||
## <20>㴓 銝<><E98A9D><EFBFBD>歇閫<E6AD87><E996AB><EFBFBD><EFBFBD>䔮憸?
|
||
|
||
### <20>桅<EFBFBD>1嚗𡁻<E59A97>餉<EFBFBD><E9A489>𤤿㦛 <20>?
|
||
**<2A>桅<EFBFBD>**嚗𡁏<E59A97>蝏<EFBFBD><E89D8F>蝑?蝥喳<E89DA5>"嚗䔶<E59A97><E494B6>曄內"<22>㘾膄<E398BE>笔<EFBFBD>"
|
||
|
||
**閫<><E996AB><EFBFBD>寞<EFBFBD>**嚗?
|
||
- <20>𡒊&<F0A1928A>箏<EFBFBD>AI<41>喟<EFBFBD><E5969F>䔶犖撌亙<E6928C>蝑?
|
||
- <20>㘾膄<E398BE>笔<EFBFBD>隞<EFBFBD>銁"<22>㘾膄"<22>喟<EFBFBD><E5969F>嗆遬蝷?
|
||
- 鈭箏極<E7AE8F>函蕃AI<41>嗆<EFBFBD>璆𡁏<E79286>瘜?
|
||
|
||
---
|
||
|
||
### <20>桅<EFBFBD>2嚗帋縑<E5B88B>臭<EFBFBD>皜<EFBFBD>苊 <20>?
|
||
**<2A>桅<EFBFBD>**嚗𡁏<E59A97>瘜訫躹<E8A8AB><E8BAB9>I<EFBFBD>喟<EFBFBD>餈䀹糓鈭箏極<E7AE8F>喟<EFBFBD>
|
||
|
||
**閫<><E996AB><EFBFBD>寞<EFBFBD>**嚗?
|
||
- AI<41>梯<EFBFBD><E6A2AF>梹<EFBFBD><E6A2B9>曄內<E69B84>峕芋<E5B395>见ế<E8A781>?
|
||
- 鈭箏極<E7AE8F>喟<EFBFBD><E5969F>梹<EFBFBD><E6A2B9><EFBFBD>釣<EFBFBD>交<EFBFBD>嚗<EFBFBD>綫蝧翠I/銝垾I銝<49><E98A9D>湛<EFBFBD>
|
||
- <20>嗆<EFBFBD><E59786><EFBFBD>嚗?蝘滨𠶖<E6BBA8><F0A0B696><EFBFBD><EFBFBD>唳<EFBFBD>瘜?
|
||
|
||
---
|
||
|
||
### <20>桅<EFBFBD>3嚗鍃xcel靽⊥<E99DBD>銝滚<E98A9D> <20>?
|
||
**<2A>桅<EFBFBD>**嚗鍃xcel撖澆枂蝻箏<E89DBB>摰峕㟲靽⊥<E99DBD>
|
||
|
||
**閫<><E996AB><EFBFBD>寞<EFBFBD>**嚗?
|
||
- <20>拙<EFBFBD>銝?0<>?
|
||
- <20><>鉄<EFBFBD>峕芋<E5B395>见<EFBFBD><E8A781>游ế<E6B8B8>剖<EFBFBD>霂<EFBFBD>旿
|
||
- <20><>鉄鈭箏極憭齿瓲霂行<E99C82>
|
||
- 銝<>銵峕遬蝷箏<E89DB7><E7AE8F>其縑<E585B6>?
|
||
|
||
---
|
||
|
||
### <20>桅<EFBFBD>4嚗𡁜翰<F0A1819C><E7BFB0><EFBFBD>霂訫𤌴<E8A8AB>?<3F>?
|
||
**<2A>桅<EFBFBD>**嚗𡁏<E59A97>甈⊥<E79488>霂閖<E99C82><E99696><EFBFBD>閬<EFBFBD><E996AC><EFBFBD>唬<EFBFBD>隡𪊲xcel
|
||
|
||
**閫<><E996AB><EFBFBD>寞<EFBFBD>**嚗?
|
||
- <20>𥕦遣敹恍<E695B9><E6818D><EFBFBD>霂閗<E99C82><E99697>穿<EFBFBD>`get-test-projects.mjs`嚗?
|
||
- <20>舀<EFBFBD>URL<52><4C>㺭隡𣳇<E99AA1>𥙑rojectId
|
||
- 銝<><E98A9D>桃<EFBFBD><E6A183>鞉<EFBFBD>霂駦RL
|
||
|
||
---
|
||
|
||
## <20><> <20>怒<EFBFBD><E68092>誨<EFBFBD><E8AAA8><EFBFBD><EFBFBD>渲扇敶?
|
||
|
||
### <20>啣<EFBFBD><E595A3><EFBFBD>辣嚗?銝迎<E98A9D>
|
||
1. `frontend-v2/src/modules/asl/utils/excelExport.ts` - 235銵?
|
||
2. `backend/scripts/get-test-projects.mjs` - 85銵?
|
||
|
||
### 靽格㺿<E6A0BC><E3BABF>辣嚗?銝迎<E98A9D>
|
||
1. `backend/src/modules/asl/controllers/screeningController.ts` - <20>啣<EFBFBD>119銵?
|
||
2. `backend/src/modules/asl/routes/index.ts` - <20>啣<EFBFBD>3銵?
|
||
3. `frontend-v2/src/modules/asl/api/index.ts` - 靽格㺿1銵?
|
||
4. `frontend-v2/src/modules/asl/types/index.ts` - 靽格㺿11銵?
|
||
5. `frontend-v2/src/modules/asl/pages/ScreeningResults.tsx` - 721銵䕘<E98AB5>摰<EFBFBD><E691B0><EFBFBD>滚<EFBFBD>嚗?
|
||
6. `frontend-v2/src/modules/asl/pages/ScreeningWorkbench.tsx` - 靽格㺿10銵?
|
||
|
||
### <20>餉恣
|
||
- **<2A>啣<EFBFBD>隞<EFBFBD><E99A9E>**嚗𡁶漲1065銵?
|
||
- **靽格㺿隞<E3BABF><E99A9E>**嚗𡁶漲25銵?
|
||
- **<2A>𣳇膄隞<E88684><E99A9E>**嚗𡁶漲245銵䕘<E98AB5><E49598>抒<EFBFBD>ScreeningResults嚗?
|
||
- **<2A><>憓硺誨<E7A1BA>?*嚗𡁶漲820銵?
|
||
|
||
---
|
||
|
||
## <20>?銋腈<E98A8B><E88588><EFBFBD><EFBFBD>嗆<EFBFBD><E59786>?
|
||
|
||
### <20>蠘<EFBFBD>摰峕㟲<E5B395>?
|
||
- [<5B><> 蝏蠘恣璁<E681A3><E79281><EFBFBD>∠<EFBFBD>甇<EFBFBD>&<EFBFBD>曄內
|
||
- [<5B><> PRISMA<4D>㘾膄蝏蠘恣<E8A098><E681A3>&
|
||
- [<5B><> 敺<><E695BA><EFBFBD>豢<EFBFBD>蝷粹<E89DB7><E7B2B9>?
|
||
- [<5B><> Tab<61><62>揢甇<E68FA2>虜
|
||
- [<5B><> 銵冽聢<E586BD>唳旿甇<E697BF>&嚗<EFBC86>毽<EFBFBD><E6AFBD>䲮獢<E4B2AE><E78DA2>
|
||
- [<5B><> AI<41>梯<EFBFBD><E6A2AF>䔶犖撌亙<E6928C>蝑𡝗<E89D91>蝖桀躹<E6A180>?
|
||
- [<5B><> <20>㘾膄<E398BE>笔<EFBFBD><E7AC94>餉<EFBFBD>甇<EFBFBD>&
|
||
- [<5B><> 撅訫<E69285>銵峕遬蝷箏<E89DB7><E7AE8F>?
|
||
- [<5B><> Excel撖澆枂<E6BE86>蠘<EFBFBD>甇<EFBFBD>虜嚗?蝘齿䲮撘𧶏<E69298>
|
||
- [<5B><> 憿菟𢒰撖潸⏛瘚<E28F9B><E7989A>
|
||
|
||
### 鈭穃<E988AD><E7A983>罸<EFBFBD><E7BDB8>?
|
||
- [<5B><> <20>𡒊垢雿輻鍂<E8BCBB>典<EFBFBD>`prisma`摰硺<EFBFBD>
|
||
- [<5B><> 蝏蠘恣雿輻鍂<E8BCBB>𡁜<EFBFBD><F0A1819C>亥砭嚗<E7A0AD><E59A97><EFBFBD>亙<EFBFBD><E4BA99>𧶏<EFBFBD>
|
||
- [<5B><> Excel<65>滨垢<E6BBA8><E59EA2><EFBFBD>嚗<EFBFBD>妟<EFBFBD><E5A69F>辣<EFBFBD>賜<EFBFBD>嚗?
|
||
- [<5B><> 雿輻鍂`logger`霈啣<EFBFBD><EFBFBD>亙<EFBFBD>
|
||
- [<5B><> 蝏煺<E89D8F><E785BA>躰秤憭<E7A7A4><E686AD>
|
||
|
||
### <20>冽<EFBFBD>雿㯄<E99BBF>
|
||
- [<5B><> <20>𣳇<EFBFBD>餉<EFBFBD><E9A489>𤤿㦛
|
||
- [<5B><> 靽⊥<E99DBD>皜<EFBFBD>苊<EFBFBD>𤘪<EFBFBD>
|
||
- [<5B><> 敹恍<E695B9><E6818D><EFBFBD>霂閙䲮靘?
|
||
- [<5B><> 撖澆枂<E6BE86>蠘<EFBFBD>摰峕㟲
|
||
|
||
---
|
||
|
||
## <20><> <20><><EFBFBD><EFBFBD>㮾<EFBFBD>單<EFBFBD>獢?
|
||
|
||
- [Week 4撘<34><E69298>𤏸恣<F0A48FB8>哋(../04-撘<><E69298>𤏸恣<F0A48FB8>?04-Week4-蝏𤘪<E89D8F>撅閧內銝𤾸紡<F0A4BEB8>箏<EFBFBD><E7AE8F>𤏸恣<F0A48FB8>?md) - 霈曇恣<E69B87>寞<EFBFBD>
|
||
- [<EFBFBD><EFBFBD><EFBFBD>臬<EFBFBD>箏𦛚皜<EFBFBD><EFBFBD>](../06-<2D><><EFBFBD>臬<EFBFBD>箏𦛚/<2F><><EFBFBD>臬<EFBFBD>箏𦛚皜<F0A69B9A><E79A9C>.md) - Excel<65>𡒊垢撖澆枂<E6BE86>寞<EFBFBD>
|
||
- [鈭穃<E988AD><E7A983>笔<EFBFBD><E7AC94>𤏸<EFBFBD><F0A48FB8><EFBFBD>(../../../04-撘<><E69298>𤏸<EFBFBD><F0A48FB8>?08-鈭穃<E988AD><E7A983>笔<EFBFBD><E7AC94>𤏸<EFBFBD><F0A48FB8>?md) - <20>嗆<EFBFBD>閫<EFBFBD><E996AB>
|
||
- [隞餃𦛚<EFBFBD><EFBFBD>圾](../04-撘<><E69298>𤏸恣<F0A48FB8>?03-隞餃𦛚<E9A483><F0A69B9A>圾.md) - Week 4隞餃𦛚皜<F0A69B9A><E79A9C>
|
||
|
||
---
|
||
|
||
## <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝<EFBFBD>甇?
|
||
|
||
### 蝡见朖<E8A781>臬<EFBFBD>
|
||
1. <20>?摰峕㟲瘚<E39FB2><E7989A>瘚贝<E7989A>
|
||
2. <20>?瘚贝<E7989A><E8B49D><EFBFBD><EFBFBD>匧紡<E58CA7>箏<EFBFBD><E7AE8F>?
|
||
3. <20>?撉諹<E69289>瘛瑕<E7989B><E79195>寞<EFBFBD><E5AF9E>臬炏閫<E7828F><E996AB><EFBFBD>餉<EFBFBD><E9A489>𤤿㦛
|
||
|
||
### <20><><EFBFBD>臬<EFBFBD>箏𦛚
|
||
1. <20>賂<EFBFBD> 敶𤘪㺭<F0A498AA>桅<EFBFBD>>5000<30>⊥𧒄嚗<F0A79284><E59A97><EFBFBD>W<EFBFBD><EFBCB7>𡒊垢撖澆枂+OSS
|
||
2. <20>賂<EFBFBD> 瘛餃<E7989B><E9A483>游<EFBFBD>蝏蠘恣<E8A098>曇”嚗<E2809D>未<EFBFBD>整<EFBFBD><E695B4><EFBFBD><EFBFBD>踹㦛嚗?
|
||
3. <20>賂<EFBFBD> <20>舀<EFBFBD><E88880>芸<EFBFBD>銋匧紡<E58CA7>箏<EFBFBD>畾?
|
||
|
||
### 韐券<E99F90>隡睃<E99AA1>
|
||
1. <20>賂<EFBFBD> Prompt隡睃<E99AA1>嚗<EFBFBD><E59A97>蝖桃<E89D96>60%<25>?5%嚗?
|
||
2. <20>賂<EFBFBD> 撟嗅<E6929F>憭<EFBFBD><E686AD>隡睃<E99AA1>嚗<EFBFBD><E59A97>扯<EFBFBD><E689AF>𣂼<EFBFBD>3<EFBFBD>㵪<EFBFBD>
|
||
|
||
---
|
||
|
||
**撘<><E69298>穃<EFBFBD><E7A983>鞉𧒄<E99E89>?*嚗?025-11-21
|
||
**摰鮋<E691B0><E9AE8B>埈𧒄**嚗?撠𤩺𧒄
|
||
**隞<><E99A9E>韐券<E99F90>**嚗尠<E59A97> <20>猂inter<65>躰秤
|
||
**鈭穃<E988AD><E7A983>罸<EFBFBD>霂?*嚗尠<E59A97> <20>朞<EFBFBD>
|
||
**<EFBFBD>嗆<EFBFBD>?*嚗尠<E59A97> 撌脣<E6928C><E884A3>琜<EFBFBD><E7909C>航<EFBFBD><E888AA>交<EFBFBD>霂?
|
||
|
||
|
||
|
||
|
||
|