Files
AIclinicalresearch/docs/03-业务模块/ASL-AI智能文献/06-技术债务/技术债务清单.md
HaHafeng 1b53ab9d52 feat(aia): Complete AIA V2.0 with universal streaming capabilities
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%)
2026-01-14 19:15:01 +08:00

1027 lines
32 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AI<41><EFBFBD><E7AE84><EFBFBD>讃璅<E79285> - <20><><EFBFBD><EFBFBD>箏𦛚皜<F0A69B9A><E79A9C>
> **<2A><><EFBFBD><EFB99D>𧋦嚗?* v1.2
> **<2A>𥕦遣<F0A595A6><EFBFBD>嚗?* 2025-11-21
> **蝏湔擪<E6B994><E693AA><EFBFBD>** AI<41><EFBFBD><E7AE84><EFBFBD>讃撘<E8AE83><E69298>穃𣪧<E7A983>?
> **<2A><><EFBFBD>擧凒<E693A7><EFBFBD>** 2025-11-23
> **<2A><><EFBFBD><EFBFBD>嚗?* 霈啣<E99C88>MVP摰峕<E691B0><E5B395>𡡞<EFBFBD><EFBFBD><E996AC><EFBFBD>𣇉<EFBFBD><F0A38789><EFBFBD><EFBFBD>舫䔮憸?
---
## <20><> <20><>﹝霂湔<E99C82>
<EFBFBD><EFBFBD><EFBFBD>扇敶𧭈I<EFBFBD><EFBFBD><EFBFBD><EFBFBD>讃璅<EFBFBD><EFBFBD>決VP撘<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𣂼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝滚蔣<EFBFBD>齿瓲敹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>舫䔮憸塩<EFBFBD><EFBFBD><EFBFBD>鈭偦䔮憸睃<EFBFBD><EFBFBD>決VP蝔喳<EFBFBD>餈鞱<EFBFBD><EFBFBD>𠬍<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鞉郊閫<EFBFBD><EFBFBD><EFBFBD>?
**敶枏<E695B6>MVP<56><EFBFBD>?*嚗?- <20>?<3F><EFBFBD><E8A9A8><EFBFBD>摰峕㟲嚗<E39FB2><E59A97>隡罱<E99AA1>蝑偦<E89D91><EFBFBD>憭齿瓲嚗?- <20>?<3F>峕芋<E5B395><EFBFBD><E8AEA0>匧虾<E58CA7><EFBFBD>DeepSeek + Qwen嚗?- <20>?<3F><EFBFBD>蝡航<E89DA1><EFBFBD><E99D9A><EFBFBD>
- <20>𩤃<EFBFBD> <20><><EFBFBD>?0%嚗䔶<E59A97>鈭𡒊𤌍<F0A1928A>?5%
- <20>𩤃<EFBFBD> <20><EFBFBD><EFBFBD><E9A2B2>嚗?99蝭<39>漲33-66<36><36><EFBFBD>
---
## <20>𣞁 隡睃<E99AA1>蝥?嚗朞捶<E69C9E><EFBFBD><E8AD8D><EFBFBD><E59094><EFBFBD><EFBFBD><EFBC86><EFBFBD>
### <20><EFBFBD><E6A185>讛膩
**敶枏<E695B6><E69E8F><EFBFBD>?*嚗?- <20><><EFBFBD><EFBC86><EFBFBD>60%
- <20><EFBFBD>嚗尠竉85%
- 撌株<E6928C>嚗?5%
**敶勗<E695B6><E58B97><EFBFBD>凒**嚗?- <20>湔𦻖敶勗<E695B6><E58B97><EFBFBD>撖農I蝑偦<E89D91><EFBFBD><E58EA9>𦦵<EFBFBD>靽∩遙摨?- 憓𧼮<E68693>鈭箏極憭齿瓲撌乩<E6928C><E4B9A9>?- <20><EFBFBD>撖潸稲瞍讐<E79E8D><E8AE90>𤥁秤蝑?
**<EFBFBD>寞𧋦<EFBFBD><EFBFBD>**嚗<>抅鈭?025-11-18瘚贝<E7989A><E8B49D><EFBFBD>嚗㚁<E59A97>
1. **Prompt銝滚<E98A9D><EFBFBD>苊**嚗鋫I撖?颲寧<E9A2B2><E5AFA7><EFBFBD><EFBFBD>"<22><><EFBFBD><EFBFBD><E996AB>鈭箇掩銝滢<E98A9D><E6BBA2>?2. **蝻箏<E89DBB>Few-shot蝷箔<E89DB7>**嚗𡁏芋<F0A1818F>𧢲瓷<F0A7A2B2><EFBFBD><E58CA7><EFBFBD><EFBFBD>靘页<E99D98><E9A1B5>曆誑<E69B86>𦠜𨘥<F0A6A09C><F0A898A5><EFBFBD>
3. **PICOS<4F><53><EFBFBD>璅∠<E79285>**嚗𡁶鍂<F0A181B6><EFBFBD><E79181><EFBFBD><E4BAA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E888AA><EFBFBD>銝齿<E98A9D>
4. **<EFBFBD><EFBFBD><EFBFBD>瘚衤<EFBFBD><EFBFBD>𤩺<EFBFBD>**嚗𡁜蘨璉<E898A8>瘚讠<E7989A>霈箔<E99C88><EFBFBD><E98A9D><EFBFBD>敹賜裦鈭<E8A3A6>蔭靽<E288AA>釶ICO撌桀<E6928C>
---
### 隡睃<E99AA1><E79D83><EFBFBD>1嚗鎄ew-shot蝷箔<E89DB7>
**<EFBFBD><EFBFBD>**嚗𡁜銁Prompt銝剜溶<E5899C>?-5銝芷<E98A9D>韐券<E99F90>蝷箔<E89DB7>
**摰墧鴌甇仿炊**嚗?
#### Step 1: 霈曇恣蝷箔<E89DB7>蝏𤘪<E89D8F>
```
瘥譍葵蝷箔<EFBFBD><EFBFBD><EFBFBD>鉄嚗?1. <20><><EFBFBD><E8AE83><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E996AC>蝎曄<E89D8E><E69B84><EFBFBD><EFBFBD>
2. PICOS<4F><53><EFBFBD>
3. 蝥喳<E89DA5>/<2F>㘾膄<E398BE><E88684><EFBFBD>
4. 甇<><EFBFBD><EFBC86>ế<EFBFBD><EFBFBD><E58994><EFBFBD>include/exclude嚗?5. 霂衣<E99C82><E8A1A3><EFBFBD><EFBFBD><E7B6AB><EFBFBD>蝔?```
#### Step 2: <20>㗇𥋘蝷箔<E89DB7>蝐餃<E89D90>
```
蝷箔<EFBFBD>1嚗𡁏<EFBFBD>蝖桀<EFBFBD>蝥喳<EFBFBD> - 摰𣬚<E691B0><F0A3AC9A><EFBFBD><E5AFA5><EFBFBD><EFBFBD>侨ICOS
蝷箔<EFBFBD>2嚗𡁏<EFBFBD>蝖桀<EFBFBD><EFBFBD>㘾膄 - 鈭箇黎銝滚龪<E6BB9A>?蝷箔<E89DB7>3嚗𡁏<E59A97>蝖桀<E89D96><E6A180>㘾膄 - <20>𠉛弦霈曇恣銝滨泵
蝷箔<EFBFBD>4嚗朞器<EFBFBD><EFBFBD><EFBFBD>?- <20><EFBFBD><E585B8><EFBFBD>嚗䔶<E59A97>摨𠉛熙<F0A0899B>?蝷箔<E89DB7>5嚗朞器<E69C9E><EFBFBD><E5B395>?- <20>衤撮<E8A1A4><EFBFBD>嚗䔶<E59A97>摨娍<E691A8><E5A88D>?```
#### Step 3: 蝻硋<E89DBB>蝷箔<E89DB7>
```
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>摰墧<EFBFBD>霂閙<EFBFBD>靘衤葉<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>憭梯揖獢<EFBFBD><EFBFBD>
蝖桐<EFBFBD>蝷箔<EFBFBD><EFBFBD><EFBFBD>撣貉<EFBFBD><EFBFBD><EFBFBD>ế<EFBFBD>剖㦤<EFBFBD>?```
#### Step 4: <20><><EFBFBD><EFBFBD>訐rompt
```
雿滨蔭嚗颹ackend/prompts/asl/screening/v1.1.0-fewshot.txt
<EFBFBD><EFBFBD>嚗?---
## 蝷箔<E89DB7>1嚗𡁏<E59A97>蝖桃熙<E6A183>?<3F><EFBFBD><E99E89><EFBFBD>𡢅<EFBFBD>...
<EFBFBD>辥ICOS<EFBFBD>𡢅<EFBFBD>...
<EFBFBD>𣂼ế<EFBFBD><EFBFBD>𡢅<EFBFBD>include
<EFBFBD>𣂼<EFBFBD><EFBFBD>𨬭<EFBFBD>𡢅<EFBFBD>...
---
```
**憸<><EFBFBD>𣂼<EFBFBD>**嚗𡁜<E59A97>蝖桃<E89D96> +10-15%嚗?0% <20>?70-75%嚗?
**憸<><EFBFBD>埈𧒄**嚗?憭?
---
### 隡睃<E99AA1><E79D83><EFBFBD>2嚗䥪ICOS<4F><53><EFBFBD><EFBFBD>𡒊<F0A1928A>?
**<2A><EFBFBD>**嚗𡁜葬<F0A1819C>呸I<E591B8><EFBFBD>蝖桃<E89D96><EFBFBD><EFBFBD><EFBFBD>PICOS<4F><53><EFBFBD>
**摰墧鴌甇仿炊**嚗?
#### Step 1: 憓𧼮撩PICOS颲枏<E9A2B2>
```typescript
// 敶枏<E695B6>颲枏<E9A2B2>
picoCriteria: {
P: "2<><EFBFBD>撠輻<E692A0><E8BCBB>𣂷犖<F0A382B7><E78A96><EFBFBD>?,
I: "SGLT2<54><EFBFBD><E7A983>?,
...
}
// 隡睃<E99AA1><E79D83><EFBFBD><E88898>?picoCriteria: {
P: {
description: "2<><EFBFBD>撠輻<E692A0><E8BCBB>𣂷犖<F0A382B7><E78A96><EFBFBD>?,
keywords: ["2<><EFBFBD>撠輻<E692A0>", "<22>𣂷犖", "T2DM"],
mustInclude: ["蝟硋倏<E7A18B>?],
mustExclude: ["1<>?, "<22>輻咱", "<22><EFBFBD>撟?]
},
...
}
```
#### Step 2: <20>沌rompt銝剜<E98A9D>蝖株<E89D96>瘙?```
<EFBFBD>沌rompt銝剜溶<EFBFBD>𩤃<EFBFBD>
- <20>𡒊<F0A1928A><EFBFBD><E88AAF>喲睸霂滚<E99C82>憿餃枂<E9A483>?- <20>𡒊<F0A1928A><EFBFBD><E88AAF>喲睸霂滢<E99C82><E6BBA2>賢枂<E8B3A2>?- <20><EFBFBD><E585B8><EFBFBD><E5AFA5><EFBFBD>ế<EFBFBD><EFBFBD><E5899C><EFBFBD><EFBFBD>憒?<3F><EFBFBD><E585B8><EFBFBD>"<22>誩㭠<E8AAA9><E3ADA0><EFBFBD><EFBFBD><E98A8B>
```
#### Step 3: 靚<><EFBFBD>滨垢銵典<E98AB5>
```
<EFBFBD>汽itleScreeningSettings.tsx銝哨<E98A9D>
- 銝箸<E98A9D>銝枉ICO摮埈挾瘛餃<E7989B>"<22>喲睸霂齿<E99C82><E9BDBF>?<3F><EFBFBD>
- 瘛餃<E7989B>"敹<><EFBFBD><E29786>鉄"<22>?敹<><EFBFBD>㘾膄"<22><><EFBFBD>蝥折<E89DA5>厰★
- <20>𣂷<EFBFBD><F0A382B7><EFBFBD><EFBFBD>璅⊥踎
```
**憸<><EFBFBD>𣂼<EFBFBD>**嚗𡁜<E59A97>蝖桃<E89D96> +5-10%嚗?5% <20>?80-85%嚗?
**憸<><EFBFBD>埈𧒄**嚗?憭?
---
### 隡睃<E99AA1><E79D83><EFBFBD>3嚗𡁶蔭靽<E288AA><E6BCB2><EFBFBD><EFBFBD>隡?
**<2A><EFBFBD>**嚗𡁏<E59A97>擃䀹芋<E480B9>见ế<E8A781><EFBFBD>蝵桐縑摨佗<E691A8><E4BD97><EFBFBD>銝滨摰𡁏<E691B0>?
**摰墧鴌甇仿炊**嚗?
#### Step 1: <20><><EFBFBD>蝵桐縑摨血<E691A8>撣?```sql
-- <20>亥砭蝵桐縑摨血<E691A8>撣?SELECT
ROUND(ds_confidence * 10) / 10 as confidence_range,
COUNT(*) as count
FROM asl_schema.screening_results
GROUP BY confidence_range
ORDER BY confidence_range;
```
#### Step 2: 靚<>㟲Prompt閬<74><E996AC>
```
<EFBFBD>沌rompt銝剜<EFBFBD>蝖殷<EFBFBD>
- 隞<><EFBFBD><E98A8B><EFBFBD><EFBFBD>摨磰砲蝏坔枂擃条蔭靽漲嚗?.8-1.0嚗?- 隞<><EFBFBD><E98A8B><EFBFBD><EFBFBD>摨磰砲蝏坔枂銝剔蔭靽漲嚗?.5-0.8嚗?- 隞<><EFBFBD><E98A8B><EFBFBD><EFBFBD>摨磰砲蝏坔枂雿𡒊蔭靽漲嚗?-0.5嚗?- 雿𦒘<E99BBF>0.7<EFBFBD><EFBFBD><EFBFBD><EFBFBD>霈唬蛹"<22><><EFBFBD>犖撌亙<E6928C><E4BA99>?
```
#### Step 3: 隡睃<E99AA1><E79D83><EFBFBD><EFBFBD>瘚?```typescript
// 敶枏<E695B6>嚗𡁜蘨璉<E898A8>瘚讠<E7989A>霈箔<E99C88><EFBFBD><E98A9D>?hasConflict = (dsConclusion !== qwenConclusion);
// 隡睃<E99AA1>嚗𡁜<E59A97><F0A1819C>删蔭靽漲撌桀<E6928C><EFBFBD>瘚?hasConflict =
(dsConclusion !== qwenConclusion) || // 蝏栞捏銝滢<E98A9D><E6BBA2>? (Math.abs(dsConfidence - qwenConfidence) > 0.3) || // 蝵桐縑摨血榆撘<E6A686>
(dsJudgments.P !== qwenJudgments.P && important.includes('P')); // <20>喲睸PICO銝滢<E98A9D><E6BBA2>?```
**憸<><EFBFBD>𣂼<EFBFBD>**嚗𡁜<E59A97><EFBFBD><E89D92>瘚见<E7989A>蝖桃<E89D96> +10%嚗<><E59A97>撠烐<E692A0><EFBFBD>
**憸<><EFBFBD>埈𧒄**嚗?.5憭?
---
### 隡睃<E99AA1><E79D83><EFBFBD>4嚗𡁏<E59A97>霂蓥<E99C82>餈凋誨
**<2A><EFBFBD>**嚗𡁏<E59A97>蝏剜<E89D8F>霂訫<E99C82>隡睃<E99AA1>嚗𣬚凒<F0A3AC9A><EFBFBD>蝖桃<E89D96><E6A183>?5%
**摰墧鴌甇仿炊**嚗?
#### Step 1: 雿輻鍂<E8BCBB><EFBFBD>瘚贝<E7989A><E8B49D>𡁏𧋦
```bash
cd backend
npm run test:llm
# <20>𣇉凒<F0A38789><EFBFBD>銵?npx ts-node scripts/test-llm-screening.ts
```
#### Step 2: <20><><EFBFBD>憭梯揖獢<E68F96><E78DA2>
```
撖嫣<EFBFBD>瘥譍葵憭梯揖獢<EFBFBD><EFBFBD>嚗?1. 霈啣<E99C88>AI<41><49>ế<EFBFBD><EFBFBD><E58994>?2. 霈啣<E99C88><EFBFBD>蝑娍<E89D91>
3. <20><><EFBFBD>撌桀<E6928C><E6A180><EFBFBD>
4. 靚<>㟲Prompt<70>𣇉內靘?```
#### Step 3: A/B瘚贝<E7989A>
```
瘚贝<EFBFBD>銝滚<EFBFBD><EFBFBD><EFBFBD>𧋦<EFBFBD><EFBFBD>rompt嚗?- v1.0.0-mvp嚗<70><E59A97><EFBFBD><EFBFBD>60%嚗?- v1.1.0-fewshot嚗?Few-shot嚗?- v1.2.0-picos-enhanced嚗?PICOS<4F>𡒊<F0A1928A><EFBFBD>
- v1.3.0-confidence嚗?蝵桐縑摨虫<E691A8><E899AB><EFBFBD>
```
#### Step 4: 霈啣<E99C88>瘚贝<E7989A>蝏𤘪<E89D8F>
```
<EFBFBD>𥕦遣瘚贝<EFBFBD><EFBFBD><EFBFBD>嚗?- <20><><EFBFBD><EFBC86><EFBFBD><EFBFBD>𡝗𤩅蝥?- <20><><EFBFBD><EFBFBD>砍笆瘥?- 憭梯揖獢<E68F96><E78DA2><EFBFBD><EFBFBD><EFBFBD>
- <20><><EFBFBD><EFBFBD><EFBFBD><E99E9F>?```
**憸<><EFBFBD>埈𧒄**嚗?-2憭抬<E686AD>餈凋誨嚗?
---
### 韐券<E99F90>隡睃<E99AA1><E79D83>餉恣
**憸<><EFBFBD>𣂼<EFBFBD>**嚗?0% <20>?85-90%
**憸<><EFBFBD><EFBFBD>埈𧒄**嚗?-5憭?
**韐蠘提鈭?*嚗鋫I撌亦<E6928C>撣?+ <20>餃郎銝枏振
**撉峕𤣰<E5B395><F0A4A3B0><EFBFBD>**嚗?- <20>?<3F><><EFBFBD>?<3F>?85%
- <20>?<3F>峕芋<E5B395><EFBFBD><E8A1A4><EFBFBD> <20>?80%
- <20>?鈭箏極憭齿瓲<E9BDBF><EFBFBD> <20>?20%
- <20>?蝵桐縑摨血<E691A8><EFBFBD><E692A3><EFBFBD><EFBFBD><EFBFBD>擃条蔭靽<E288AA>?0%+嚗?
---
## <20>椬 隡睃<E99AA1>蝥?嚗𡁏<E59A97><EFBFBD>隡睃<E99AA1><EFBFBD><EFBFBD><EFBFBD><E7A983><EFBFBD><EFBFBD>
### <20><EFBFBD><E6A185>讛膩
**敶枏<E695B6><E69E8F><EFBFBD>?*嚗?- 憭<><E686AD><EFBFBD><EFBFBD>嚗帋葡銵䕘<E98AB5><EFBFBD><EFBFBD>𦻖銝<F0A6BB96><EFBFBD><E89DAD>
- 憭<><E686AD><EFBFBD>笔漲嚗?0-20蝘?蝭<><E89DAD>DeepSeek + Qwen撟嗉<E6929F>嚗?- <20><EFBFBD>埈𧒄嚗?99蝭<39>漲33-66<36><36><EFBFBD>
**<2A><EFBFBD>**嚗?- 憭<><E686AD><EFBFBD><EFBFBD>嚗?-5撟嗅<E6929F>
- <20><EFBFBD>埈𧒄嚗?99蝭<39>漲10-20<32><30><EFBFBD><EFBFBD><E59A97><EFBFBD>?<3F><EFBFBD>
**敶勗<E695B6><E58B97><EFBFBD>凒**嚗?- <20><EFBFBD>雿㯄<E99BBF><EFBFBD><E59A97><EFBFBD>𧒄<EFBFBD>湧鵭嚗?- 鈭烐<E988AD><E78390><EFBFBD><E28AA5>穿<EFBFBD><E7A9BF>踵𧒄<E8B8B5><EFBFBD><E6B8B8><EFBFBD>皞琜<E79A9E>
---
### 隡睃<E99AA1><E79D83><EFBFBD>嚗𡁜僎<F0A1819C><EFBFBD><E7A983>?
**摰墧鴌甇仿炊**嚗?
#### Step 1: 摰㕑<E691B0>撟嗅<E6929F><E59785><EFBFBD>摨?```bash
cd backend
npm install p-limit
```
#### Step 2: 靽格㺿蝑偦<E89D91><EFBFBD><E39787>?```typescript
// <20><>辣嚗颹ackend/src/modules/asl/services/screeningService.ts
import pLimit from 'p-limit';
// <20>?processLiteraturesInBackground 銝凋耨<E5878B>?
// <20>?敶枏<E695B6>嚗帋葡銵<E891A1><E98AB5><EFBFBD>?for (const literature of literatures) {
await llmScreeningService.dualModelScreening(...);
}
// <20>?隡睃<E99AA1><E79D83>𠬍<EFBFBD>撟嗅<E6929F><EFBFBD><E686AD>
const concurrency = 3; // 3銝芸僎<E88AB8>?const limit = pLimit(concurrency);
const tasks = literatures.map((literature, index) =>
limit(async () => {
try {
console.log(`\n<><6E><>憪见<E686AA><E8A781><EFBFBD><EFBFBD><EFBFBD>?${index + 1}/${literatures.length}`);
// 靚<>鍂LLM蝑偦<E89D91>? const screeningResult = await llmScreeningService.dualModelScreening(...);
// 靽嘥<E99DBD>蝏𤘪<E89D8F>
await prisma.aslScreeningResult.create({ data: screeningResult });
// <20>湔鰵餈𥕦漲
await updateTaskProgress(...);
console.log(`<EFBFBD>?<3F><>讃 ${index + 1}/${literatures.length} 憭<><E686AD><EFBFBD>𣂼<EFBFBD>`);
} catch (error) {
console.error(`<EFBFBD>?<3F><>讃 ${index + 1}/${literatures.length} 憭<><E686AD>憭梯揖:`, error);
// 蝏抒賒憭<E8B392><E686AD><EFBFBD><EFBFBD><E597A1><EFBFBD>
}
})
);
await Promise.all(tasks);
```
#### Step 3: 瘛餃<E7989B>餈𥕦漲<F0A595A6>湔鰵隡睃<E99AA1>
```typescript
// 敶枏<E695B6><E69E8F><EFBFBD>嚗𡁻<E59A97>撟嗅<E6929F>銝钅<E98A9D><EFBFBD><EFBFBD>唳㺭<E594B3><EFBFBD>
// 閫<><E996AB><EFBFBD><EFBFBD>嚗𡁏鸌<F0A1818F>𤩺凒<F0A4A9BA><EFBFBD>雿輻鍂<E8BCBB><E98D82><EFBFBD>霈⊥㺭<E28AA5>?
let processedCount = 0;
let successCount = 0;
let conflictCount = 0;
let failedCount = 0;
// 瘥?蝭<><E89DAD>瘥?0蝘埝凒<E59F9D><EFBFBD>甈⊥㺭<E28AA5><EFBFBD>
const updateInterval = setInterval(async () => {
await prisma.aslScreeningTask.update({
where: { id: taskId },
data: {
processedItems: processedCount,
successItems: successCount,
conflictItems: conflictCount,
failedItems: failedCount,
}
});
}, 10000); // 10蝘埝凒<E59F9D><EFBFBD>甈?
// 憭<><E686AD>摰峕<E691B0><E5B395><EFBFBD><E693A7>?clearInterval(updateInterval);
```
#### Step 4: 瘛餃<E7989B><E9A483><EFBFBD>靽脲擪
```typescript
// <20>脫迫API<50><EFBFBD>
const API_RATE_LIMITS = {
'deepseek-chat': { rpm: 30, tpm: 100000 }, // 瘥誩<E798A5><E8AAA9>?0甈? 'qwen-max': { rpm: 60, tpm: 200000 },
};
// <20><EFBFBD><E586BD><EFBFBD><EFBFBD>游僎<E6B8B8>烐㺭
function calculateOptimalConcurrency(model: string): number {
const limit = API_RATE_LIMITS[model];
// 靽嘥<E99DBD>隡啗恣嚗帋蝙<E5B88B><EFBFBD><E588B8><EFBFBD>50%
return Math.floor(limit.rpm / 20); // DeepSeek: 1-2, Qwen: 3
}
const concurrency = Math.min(
calculateOptimalConcurrency('deepseek-chat'),
calculateOptimalConcurrency('qwen-max')
); // <20>𡝗<EFBFBD>撠誩<E692A0><EFBFBD>蝥?
```
#### Step 5: 瘛餃<E7989B><E9A483>躰秤<E8BAB0><EFBFBD>
```typescript
async function processWithRetry(
literature: any,
maxRetries: number = 2
): Promise<any> {
for (let attempt = 1; attempt <= maxRetries; attempt++) {
try {
return await llmScreeningService.dualModelScreening(...);
} catch (error) {
console.error(`<EFBFBD>?撠肽<E692A0> ${attempt}/${maxRetries} 憭梯揖:`, error);
if (attempt === maxRetries) throw error;
// 蝑匧<E89D91><E58CA7>𡡞<EFBFBD>霂𤏪<E99C82><F0A48FAA><EFBFBD><EFBFBD><E3BAAD><EFBFBD><EFBFBD>
await new Promise(resolve => setTimeout(resolve, 1000 * attempt));
}
}
}
```
**憸<><EFBFBD>𣂼<EFBFBD>**嚗?- 憭<><E686AD><EFBFBD>笔漲嚗?<3F>齿<EFBFBD><E9BDBF>?- 199蝭<39><E89DAD><EFBFBD><EFBFBD>33-66<36><36><EFBFBD> <20>?10-20<32><30><EFBFBD>
- <20><EFBFBD>雿㯄<E99BBF>嚗𡁏遬<F0A1818F>埈㺿<E59F88>?
**憸<><EFBFBD>埈𧒄**嚗?.5-1憭?
**韐蠘提鈭?*嚗𡁜<E59A97>蝡臬<E89DA1><E887AC>?
**撉峕𤣰<E5B395><F0A4A3B0><EFBFBD>**嚗?- <20>?199蝭<39><E89DAD><EFBFBD><EFBFBD><E6A183>?<3F>?20<32><30><EFBFBD>
- <20>?API靚<49>鍂銝滩圻<E6BBA9><EFBFBD>瘚?- <20>?<3F>躰秤<E8BAB0><E7A7A4><EFBFBD>憓𧼮<E68693>
- <20>?餈𥕦漲<F0A595A6>曄內甇<E585A7>
---
## <20>叚 隡睃<E99AA1>蝥?嚗𡁶鍂<F0A181B6><EFBFBD>撉䔶<E69289><E494B6>?
### <20><EFBFBD><EFBFBD><E79A9C>
#### 1. 瘚讛<E7989A><E8AE9B><EFBFBD><EFBFBD>霅血<E99C85>
```
[Violation]'setTimeout' handler took 72ms
```
**<2A><EFBFBD><E6A185><EFBFBD>**嚗?- React蝏<74>辣皜脫<E79A9C><E884AB>埈𧒄
- 銵冽聢<E586BD>唳旿<E594B3>誩之
**閫<><E996AB><EFBFBD><EFBFBD>**嚗?- 雿輻鍂<E8BCBB>𡁏<EFBFBD>皛𡁜𢆡嚗Ǒreact-window`嚗?- 隡睃<E99AA1>銵冽聢皜脫<E79A9C><EFBFBD><E59A97>撠睲<E692A0><EFBFBD><E695B9><EFBFBD><EFBFBD>e-render嚗?- 雿輻鍂`useMemo`蝻枏<EFBFBD>霈∠<EFBFBD>蝏𤘪<EFBFBD>
**憸<><EFBFBD>埈𧒄**嚗?.5憭?
---
#### 2. <20>牐摯霈<E99C88>雿蹱𧒄<E8B9B1>?
**<2A><EFBFBD>**嚗𡁶鍂<F0A181B6><EFBFBD><E7919A>仿<EFBFBD>餈㗛<E9A488><EFBFBD><E996AC>憭帋<E686AD>
**閫<><E996AB><EFBFBD><EFBFBD>**嚗?```typescript
// 霈∠<E99C88><EFBFBD><EFBFBD>園𡢿
const avgTimePerLit = (Date.now() - task.startedAt) / task.processedItems;
const remainingLits = task.totalItems - task.processedItems;
const estimatedTimeRemaining = avgTimePerLit * remainingLits;
// <20>曄內
<div>
<><EFBFBD><EFBFBD><E68B90>園𡢿: {formatDuration(estimatedTimeRemaining)}
</div>
```
**憸<><EFBFBD>埈𧒄**嚗?.5憭?
---
#### 3. <20><EFBFBD><E683A9><EFBFBD><E6BB9A><EFBFBD><EFBFBD><EFBFBD>格遬蝷?
**<2A><EFBFBD>**嚗𡁶鍂<F0A181B6><EFBFBD><E7919A>仿<EFBFBD>AI甇<49>銁憭<E98A81><E686AD><EFBFBD><EFBFBD><E88AB0><EFBFBD>
**閫<><E996AB><EFBFBD><EFBFBD>**嚗?```typescript
// <20>?screeningService.ts 銝?await prisma.aslScreeningTask.update({
where: { id: taskId },
data: {
currentLiteratureTitle: literature.title, // <20><EFBFBD>摮埈挾
currentLiteratureId: literature.id,
}
});
// <20>滨垢<E6BBA8>曄內
<div>
敶枏<E695B6><EFBFBD><E686AD>: {task.currentLiteratureTitle}
</div>
```
**憸<><EFBFBD>埈𧒄**嚗?.5憭?
---
#### 4. 銵冽聢撠誩<E692A0>撟閖<E6929F><E99696><EFBFBD>
**<2A><EFBFBD>**嚗𡁜<E59A97>撅誩<E69285>銝𡃏”<F0A1838F><EFBFBD>摰賢漲銝漤<E98A9D><E6BCA4><EFBFBD>
**閫<><E996AB><EFBFBD><EFBFBD>**嚗?- 雿輻鍂<E8BCBB><EFBFBD>撘誩<E69298><EFBFBD>
- 瘛餃<E7989B>"蝝批<E89D9D><E79285>"<22><>
- 蝘餃𢆡蝡臭蝙<E887AD>典㨃<E585B8><E3A883><EFBFBD><EFBFBD><EFBFBD>𤜯銵冽聢
**憸<><EFBFBD>埈𧒄**嚗?憭?
---
## <20>鰊 隡睃<E99AA1>蝥?嚗鍃xcel撖澆枂隡睃<E99AA1>
### <20><EFBFBD><E6A185>讛膩
**敶枏<E695B6><E69E8F><EFBFBD>?*嚗?- 撖澆枂<E6BE86><EFBFBD>嚗𡁜<E59A97>蝡舐<E89DA1><E88890><EFBFBD>`xlsx`摨橒<E691A8>
- <20><><EFBFBD>唳旿<E594B3>𧶏<EFBFBD><5000<30>?- <20><><EFBFBD><EFBFBD>笔漲嚗?1000<30>∠漲2-3蝘?
**<2A><EFBFBD><E6A0BC><EFBFBD>?*嚗<><E59A97><EFBFBD>唳旿<E594B3>?5000<30><EFBFBD><E28AA5><EFBFBD><EFBFBD><E996AC><EFBFBD><EFBFBD>聢撘𤩺𧒄嚗㚁<E59A97>
- 撖澆枂<E6BE86><EFBFBD>嚗𡁜<E59A97>蝡舐<E89DA1><E88890>?+ OSS摮睃<E691AE>
- <20><><EFBFBD>唳旿<E594B3>𧶏<EFBFBD><F0A7B68F>𣳇<EFBFBD><F0A3B387>?- <20><EFBFBD>憭齿<E686AD><E9BDBF><EFBFBD>嚗𡁜<E59A97>Sheet<65><74>㦛銵具<E98AB5><E585B7>甅撘誩<E69298><E8AAA9>?
**閫血<E996AB><E8A180>∩辣**嚗?- <20>閙活撖澆枂<E6BE86>唳旿<E594B3>?>5000<30>?- <20><><EFBFBD><E996AC><EFBFBD><EFBFBD>xcel<65><EFBFBD><EFBFBD><E59A97>Sheet<65><74>㦛銵函<E98AB5>嚗?- <20><EFBFBD><E586BD><EFBFBD><E6BCA4>滨垢撖澆枂<E6BE86>⊿▼
---
### 隡睃<E99AA1><E79D83><EFBFBD>嚗𡁜<E59A97>蝡臬紡<E887AC>?OSS摮睃<E691AE>
**摰墧鴌甇仿炊**嚗?
#### Step 1: <20>𡒊垢摰㕑<E691B0>Excel<65><6C><EFBFBD>摨?```bash
cd backend
npm install exceljs
```
#### Step 2: 摰䂿緵<E482BF>𡒊垢撖澆枂<E6BE86>滚𦛚
```typescript
// backend/src/modules/asl/services/exportService.ts
import ExcelJS from 'exceljs';
import { storage } from '@/common/storage';
import { logger } from '@/common/logging';
export async function exportScreeningResults(projectId: string, filter: string) {
// 1. <20>亥砭<E4BAA5>唳旿
const results = await prisma.aslScreeningResult.findMany({
where: buildWhereClause(projectId, filter),
include: { literature: true },
});
// 2. <20><><EFBFBD>Excel嚗<6C><E59A97>摮䀝葉嚗? const workbook = new ExcelJS.Workbook();
const worksheet = workbook.addWorksheet('蝑偦<E89D91><EFBFBD><E58EA9>?);
// 霈曄蔭銵典仍
worksheet.columns = [
{ header: '摨誩噡', key: 'index', width: 6 },
{ header: '<27><><EFBFBD><E8AE83><EFBFBD>', key: 'title', width: 50 },
// ... <20><EFBFBD><E6B8B8>? ];
// 憛怠<E6869B><E680A0>唳旿
results.forEach((result, idx) => {
worksheet.addRow({
index: idx + 1,
title: result.literature.title,
// ... <20><EFBFBD>摮埈挾
});
});
// 3. 頧砌蛹Buffer
const buffer = await workbook.xlsx.writeBuffer();
// 4. 潃?銝𠹺<E98A9D><F0A0B9BA>記SS嚗<53><EFBFBD>典像<E585B8><EFBFBD><E595A3><EFBFBD><E586BD><EFBFBD>
const key = `asl/exports/${projectId}/${Date.now()}.xlsx`;
const url = await storage.upload(key, Buffer.from(buffer));
// 5. 霈啣<E99C88><E595A3><EFBFBD>
logger.info('Excel exported', { projectId, recordCount: results.length, url });
return {
url,
filename: `screening-results-${Date.now()}.xlsx`,
recordCount: results.length,
};
}
```
#### Step 3: 摰䂿緵撖澆枂API
```typescript
// backend/src/modules/asl/controllers/exportController.ts
export async function exportResults(
request: FastifyRequest<{
Params: { projectId: string };
Querystring: { filter?: string };
}>,
reply: FastifyReply
) {
try {
const { projectId } = request.params;
const filter = request.query.filter || 'all';
// 撖澆枂撟嗡<E6929F>隡惩<E99AA1>OSS
const result = await exportService.exportScreeningResults(projectId, filter);
return reply.send({
success: true,
data: result,
});
} catch (error) {
logger.error('Export failed', { error });
return reply.status(500).send({
success: false,
error: '撖澆枂憭梯揖',
});
}
}
```
#### Step 4: <20>滨垢靚<E59EA2>
```typescript
// <20>滨垢
const handleExportLarge = async () => {
try {
message.loading('甇<><EFBFBD><E98A81><EFBFBD>Excel嚗諹窈蝔滚<E89D94>?..', 0);
// 靚<><EFBFBD>𡒊垢撖澆枂API
const { data } = await aslApi.exportResults(projectId, { filter: 'all' });
message.destroy();
message.success(`<EFBFBD>𣂼<EFBFBD>撖澆枂 ${data.recordCount} <20>∟扇敶𧄧);
// <20><EFBFBD>OSS URL銝贝蝸
window.open(data.url, '_blank');
} catch (error) {
message.destroy();
message.error('撖澆枂憭梯揖');
}
};
```
#### Step 5: OSS<53><53>辣皜<E8BEA3><E79A9C><EFBFBD><EFBFBD><EFBFBD>
```typescript
// 摰𡁏𧒄隞餃𦛚嚗𡁏<E59A97><F0A1818F>?憭拙<E686AD><E68B99><EFBFBD><EFBFBD><EFBFBD>隞?import { jobQueue } from '@/common/jobs';
jobQueue.schedule('cleanup-exports', '0 2 * * *', async () => {
const sevenDaysAgo = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000);
// <20>堒枂撟嗅<E6929F><E59785><EFBFBD><E696B9><EFBFBD><EFBFBD>隞? const files = await storage.list('asl/exports/');
for (const file of files) {
if (file.lastModified < sevenDaysAgo) {
await storage.delete(file.key);
}
}
logger.info('Cleaned up old export files');
});
```
**憸<><EFBFBD>𣂼<EFBFBD>**嚗?- <20><EFBFBD><E88880>𣳇<EFBFBD><F0A3B387>唳旿<E594B3>?- <20><EFBFBD>憭齿<E686AD><E9BDBF><EFBFBD><EFBFBD><E59A97>Sheet<65><74>㦛銵具<E98AB5><E585B7>甅撘𧶏<E69298>
- 銝滚<E98A9D><E6BB9A><EFBFBD>蝡航<E89DA1>皞?
**憸<><EFBFBD>埈𧒄**嚗?-2憭?
**韐蠘提鈭?*嚗𡁜<E59A97>蝡臬<E89DA1><E887AC>?
**撉峕𤣰<E5B395><F0A4A3B0><EFBFBD>**嚗?- <20>?<3F>臬紡<E887AC>?5000<30>⊥㺭<E28AA5>?- <20>?<3F><>辣銝𠹺<E98A9D><F0A0B9BA>記SS
- <20>?<3F>滨垢<E6BBA8><EFBFBD>URL銝贝蝸
- <20>?蝚血<E89D9A>鈭穃<E988AD><E7A983><EFBFBD><E8A098><EFBFBD><EFBFBD>雿輻鍂撟喳蝱摮睃<E691AE><E79D83>滚𦛚嚗?
---
## <20>㩞 隡睃<E99AA1>蝥?嚗𡁏沲<F0A1818F><E6B2B2><EFBFBD><EFBFBD><EFBFBD>鈭穃<E988AD><E7A983><EFBFBD><EFBFBD>
### <20><EFBFBD><EFBFBD><E79A9C>
#### 1. 撘<>郊隞餃𦛚<E9A483>芯蝙<E88AAF><EFBFBD><E586BD><EFBFBD><E888AB>?
**敶枏<E695B6><E69E8F><EFBFBD>?*嚗?- 蝑偦<E89D91>劐遙<E58A90><E288AA>𤾸蝱蝥輻<E89DA5>銝剜<E98A9D>銵?- <20>滚𦛚<E6BB9A>滚鍳隡帋腺憭曹遙<E69BB9>?
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?*嚗?- 雿輻鍂Bull<6C><EFBFBD>嚗㇌edis嚗?- 隞餃𦛚<E9A483><F0A69B9A><EFBFBD><EFBFBD>?- <20><EFBFBD><E88880><EFBFBD><EFBFBD>撘誩<E69298><E8AAA9>?
**閫<><E996AB><EFBFBD><EFBFBD>**嚗?```typescript
// 雿輻鍂撟喳蝱<E596B3>𣂷<EFBFBD><F0A382B7><EFBFBD>obQueue
import { jobQueue } from '@/common/jobs';
// <20>𥕦遣隞餃𦛚
await jobQueue.push('asl:screening', {
projectId,
literatures,
config,
});
// Worker憭<72><E686AD>
jobQueue.process('asl:screening', async (job) => {
await screeningService.processLiteratures(job.data);
});
```
**憸<><EFBFBD>埈𧒄**嚗?-2憭?
---
#### 2. <20>䭾鱏<E4ADBE>寧賒隡?
**<2A><EFBFBD>**嚗帋遙<E5B88B>∩葉<E288A9><EFBFBD><E58996><EFBFBD><EFBFBD><E996AC><EFBFBD><EFBFBD>憪?
**閫<><E996AB><EFBFBD><EFBFBD>**嚗?```typescript
// 璉<><E79289>交糓<E4BAA4><EFBFBD><E8A18C><EFBFBD><E88AB8><EFBFBD>隞餃𦛚
const existingTask = await prisma.aslScreeningTask.findFirst({
where: {
projectId,
status: 'running',
}
});
if (existingTask) {
// <20><EFBFBD>隞餃𦛚
const processedLiteratureIds = await getProcessedLiteratureIds(existingTask.id);
const remainingLiteratures = literatures.filter(
lit => !processedLiteratureIds.includes(lit.id)
);
await resumeTask(existingTask.id, remainingLiteratures);
} else {
// <20>𥕦遣<F0A595A6>唬遙<E594AC>? await startNewTask(projectId, literatures);
}
```
**憸<><EFBFBD>埈𧒄**嚗?憭?
---
#### 3. <20><EFBFBD><E4ADBE>祆綉<E7A586>?
**<2A><EFBFBD>**嚗𡁏<E59A97>瘜閙綉<E99699>詛PI靚<49><EFBFBD>鞉𧋦
**閫<><E996AB><EFBFBD><EFBFBD>**嚗?```typescript
// 瘛餃<E7989B><E9A483>鞉𧋦隡啁<E99AA1>
interface CostEstimate {
totalTokens: number;
estimatedCost: number; // USD
processingTime: number; // seconds
}
function estimateCost(literatures: Literature[]): CostEstimate {
const avgTokensPerLit = 1500; // <20><><EFBFBD>+<2B><EFBFBD>蝥?500 tokens
const totalTokens = literatures.length * avgTokensPerLit * 2; // 2銝芣芋<E88AA3>?
const deepseekCost = (totalTokens / 1000) * 0.001; // $0.001/1K tokens
const qwenCost = (totalTokens / 1000) * 0.002; // $0.002/1K tokens
return {
totalTokens,
estimatedCost: deepseekCost + qwenCost,
processingTime: literatures.length * 15, // 15蝘?蝭? };
}
// <20>滨垢<E6BBA8>曄內
const estimate = estimateCost(literatures);
<Alert>
<>恣瘨<E681A3><E798A8>? {estimate.totalTokens} tokens
<>恣韐寧鍂: ${estimate.estimatedCost.toFixed(2)}
<><EFBFBD>園𡢿: {formatDuration(estimate.processingTime)}
</Alert>
```
**憸<><EFBFBD>埈𧒄**嚗?.5憭?
---
## <20><> <20><><EFBFBD><EFBFBD>箏𦛚隡睃<E99AA1>蝥抒畆<E68A92>?
| <20>箏𦛚憿?| 敶勗<E695B6><E58B97><EFBFBD>凒 | 蝝扯翰<E689AF>?| 憸<><EFBFBD>埈𧒄 | ROI | 隡睃<E99AA1>蝥?|
|--------|---------|--------|---------|-----|--------|
| **Prompt隡睃<E99AA1>** | <20><EFBFBD>韐券<E99F90> | 擃?| 4-5憭?| 擃?| P1 <20>𣞁 |
| **撟嗅<E6929F><EFBFBD><E686AD>** | <20><EFBFBD>雿㯄<E99BBF> | 銝?| 0.5-1憭?| 擃?| P2 <20>椬 |
| **隡啗恣<E59597><EFBFBD><E68B90>園𡢿** | <20><EFBFBD>雿㯄<E99BBF> | 銝?| 0.5憭?| 銝?| P3 <20>叚 |
| **敶枏<E695B6><E69E8F><EFBFBD><EFBFBD>曄內** | <20><EFBFBD>雿㯄<E99BBF> | 雿?| 0.5憭?| 銝?| P3 <20>叚 |
| **瘚讛<E7989A><E8AE9B><EFBFBD><EFBFBD>** | <20><EFBFBD>雿㯄<E99BBF> | 雿?| 0.5憭?| 雿?| P4 <20>㩞 |
| **瘨<><E798A8><EFBFBD><EFBFBD>** | <20><EFBFBD>蝔喳<E89D94><E596B3>?| 雿?| 1-2憭?| 銝?| P4 <20>㩞 |
| **<2A><EFBFBD>蝏凋<E89D8F>** | <20><EFBFBD>雿㯄<E99BBF> | 雿?| 1憭?| 銝?| P4 <20>㩞 |
| **<2A>鞉𧋦<E99E89><EFBFBD>** | 餈鞱𨯫 | 雿?| 0.5憭?| 雿?| P4 <20>㩞 |
| **撠誩<E692A0>撟閖<E6929F><E99696><EFBFBD>** | <20><EFBFBD>雿㯄<E99BBF> | 雿?| 1憭?| 雿?| P4 <20>㩞 |
---
## <20><>儭?撱箄悅<E7AE84><E68285><EFBFBD>喲◇摨?
### <20>嗆挾1嚗朞捶<E69C9E><EFBFBD><E8AD8D><EFBFBD><EFBFBD>◆嚗?```
<EFBFBD>園𡢿嚗?<3F>?隞餃𦛚嚗? 1. Few-shot蝷箔<E89DB7>霈曇恣嚗?憭抬<E686AD>
2. PICOS<4F><53><EFBFBD><EFBFBD>𡒊<F0A1928A><EFBFBD>2憭抬<E686AD>
3. 蝵桐縑摨虫<E691A8><E899AB><EFBFBD>0.5憭抬<EFBFBD>
4. 瘚贝<E7989A>餈凋誨嚗?-2憭抬<E686AD>
<EFBFBD><EFBFBD>嚗𡁜<EFBFBD>蝖桃<EFBFBD> 60% <20>?85%
```
### <20>嗆挾2嚗𡁏<E59A97><EFBFBD>隡睃<E99AA1><EFBFBD><EFBFBD><EFBFBD>
```
<EFBFBD>園𡢿嚗?-2憭?隞餃𦛚嚗? 1. 撟嗅<E6929F><EFBFBD><E686AD>嚗?.5-1憭抬<E686AD>
2. 餈𥕦漲隡睃<E99AA1>嚗?.5憭抬<EFBFBD>
<EFBFBD><EFBFBD>嚗?99蝭?33-66<36><36><EFBFBD> <20>?10-20<32><30><EFBFBD>
```
### <20>嗆挾3嚗帋<E59A97>撉䔶<E69289><E494B6><EFBFBD><E59094><EFBFBD><EFBFBD>
```
<EFBFBD>園𡢿嚗?-3憭?隞餃𦛚嚗? 1. 隡啗恣<E59597><EFBFBD><E68B90>園𡢿嚗?.5憭抬<EFBFBD>
2. 敶枏<E695B6><E69E8F><EFBFBD><EFBFBD>曄內嚗?.5憭抬<EFBFBD>
3. 瘚讛<E7989A><E8AE9B><EFBFBD><EFBFBD>嚗?.5憭抬<EFBFBD>
4. 撠誩<E692A0>撟閖<E6929F><E99696><EFBFBD>嚗?憭抬<E686AD>
<EFBFBD><EFBFBD>嚗𡁏<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>撉?```
### <20>嗆挾4嚗𡁏沲<F0A1818F><E6B2B2><EFBFBD><EFBFBD><EFBFBD><E59094><EFBFBD>嚗?```
<EFBFBD>園𡢿嚗?-4憭?隞餃𦛚嚗? 1. 瘨<><E798A8><EFBFBD><EFBFBD><E7AC94><EFBFBD><EFBFBD>嚗?-2憭抬<E686AD>
2. <20><EFBFBD>蝏凋<E89D8F>嚗?憭抬<E686AD>
3. <20>鞉𧋦<E99E89><EFBFBD>嚗?.5憭抬<EFBFBD>
<EFBFBD><EFBFBD>嚗𡁶<EFBFBD>鈭抒㴓憓<EFBFBD>停蝏?```
---
## <20><> <20><EFBFBD>霈啣<E99C88>
### 2025-11-21嚗𡁏綫餈蠘捶<E8A098><EFBFBD><E8AD8D><EFBFBD>隡睃<E99AA1>摰峕<E691B0>Week 4<><EFBFBD>
**<2A><EFBFBD>鈭?*嚗𡁶鍂<F0A181B6>?
**<2A><EFBFBD><E5969F><EFBFBD>捆**嚗?- 撠<>rompt隡睃<E99AA1><E79D83><EFBFBD><EFBFBD><EFBFBD><E7A983><EFBFBD><EFBFBD>隡睃<E99AA1>隞餃𦛚霈啣<E99C88>銝箸<E98A9D><E7AEB8><EFBFBD>箏𦛚
- 隡睃<E99AA1>摰峕<E691B0>Week 4<><EFBFBD><EFBFBD><E59A97><EFBFBD>𨅯<EFBFBD>蝷箝<E89DB7><E7AE9D><EFBFBD><E99C88><EFBD9E><EFBFBD><EFBFBD>
- 敺<>eek 4摰峕<E691B0><E5B395>𠬍<EFBFBD><F0A0AC8D>齿覔<E9BDBF><EFBFBD><E6A180><EFBFBD><EFBFBD><EFBFBD><E996AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>箏𦛚
**<2A><>眏**嚗?1. MVP<56><EFBFBD><E8A9A8><EFBFBD>撌脣虾<E884A3><EFBFBD><E58981>臭誑<E887AD><E8AA91><EFBFBD><EFBFBD>𣂼<EFBFBD><F0A382BC>賡𡡒<E8B3A1>?2. 蝏蠘恣<E8A098><E681A3><EFBFBD><EFBFBD><E7AE8F>賣糓<E8B3A3><EFBFBD>撘粹<E69298>瘙?3. 韐券<E99F90>隡睃<E99AA1><E79D83>臭誑<E887AD><EFBFBD><E585B8><EFBFBD><E8B3A2><EFBFBD>餈凋誨
**<2A>𡒊賒霈<E99C88>**嚗?- Week 4<><EFBFBD>摰峕<E691B0><E5B395><EFBFBD>隡?- <20>寞旿<E5AF9E><EFBFBD><E586BD><EFBFBD><E6BCA4><EFBFBD>隡睃<E99AA1>隡睃<E99AA1>蝥?
---
---
## <20><> 隡睃<E99AA1>蝥?嚗𡁜<E59A97><F0A1819C><EFBFBD><EFBFBD>蝑𥟇<E89D91><F0A59F87><EFBFBD>箏𦛚嚗𠃊EW嚗?
> **<2A>湔鰵<E6B994><EFBFBD>**嚗?025-11-22
> **敶枏<E695B6><E69E8F><EFBFBD>?*嚗鋽ay 1-3撌脣<E6928C><E884A3><EFBFBD><E7909C>𡁶鍂<F0A181B6><EFBFBD><EFBFBD>瓲敹<E793B2><E695B9>
### <20>箏𦛚1嚗鐭ougat韐券<E99F90><EFBFBD>瘚𧢲㦤<F0A7A2B2>嗥撩憭?
**<2A><EFBFBD><E6A185>讛膩**嚗?- 敶枏<E695B6>Nougat<61>𣂼<EFBFBD><F0A382BC>𠬍<EFBFBD>韐券<E99F90><EFBFBD><E99C82>銝槁undefined`
- 撖潸稲<E6BDB8><E7A8B2><EFBFBD>侨DF<44><EFBFBD>蝥批<E89DA5>PyMuPDF嚗峕<E59A97>瘜訫<E7989C><E8A8AB><EFBFBD><EFBFBD>沐ougat<61><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>隡睃飵
**敶勗<E695B6>**嚗?- <20><EFBFBD><E4ADBE><EFBFBD>Markdown<77><EFBFBD><E6BE86><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- Section-Aware Prompt蝑𣇉裦<F0A38789><E8A3A6><EFBFBD><EFBFBD>𤘪<EFBFBD><F0A498AA>?- <20><EFBFBD>敶勗<E695B6><E58B97><EFBFBD><EFBFBD><EFBC86><EFBFBD>蝏𤘪<E89D8F><F0A498AA>碶縑<E7A2B6>臭腺憭梧<E686AD>
**<EFBFBD>寞𧋦<EFBFBD><EFBFBD>**嚗?- Python extraction_service餈𥪜<E9A488><F0A5AA9C><EFBFBD>ougat蝏𤘪<E89D8F>蝻箏<E89DBB>`quality`摮埈挾
- <20>𤥁捶<F0A4A581><EFBFBD><E8AE9B><EFBFBD><EFBFBD><EFBFBD><E9A489><EFBFBD><E88AB8>?
**閫<><E996AB><EFBFBD><EFBFBD>**嚗?1. 璉<><E79289>匝extraction_service/services/pdf_processor.py`<60><>ougat憭<74><E686AD><EFBFBD><EFBFBD>
2. 摰䂿緵韐券<E99F90><EFBFBD><E99C82><EFBFBD><EFBFBD><EFBFBD>抅鈭舘<E988AD><E88898>怎蔭靽<E288AA><E6BCB2>arkdown摰峕㟲<E5B395><EFBFBD>嚗?3. 瘚贝<E7989A>撟嗉<E6929F>隡䁅捶<E48185><EFBFBD><E8AAAF>?
**隡睃<E99AA1>蝥?*嚗帋葉
**憸<><EFBFBD>埈𧒄**嚗𡁜<E59A97>憭?
**憌𡡞埯**嚗帋<E59A97>
---
### <20>箏𦛚2嚗鐝VP<56><EFBFBD><E88AB8><EFBFBD><E8B3A2><EFBFBD><EFBFBD><EFBFBD><E99C82>Full-text Validation嚗?
**<2A><EFBFBD><E6A185>讛膩**嚗?- 韐券<E99F90>靽嗪<E99DBD>蝑𣇉裦銝剛挽霈∩<E99C88>"<22><><EFBFBD>𣂼<EFBFBD> + <20><EFBFBD>撉諹<E69289>"
- MVP<56><50>鍂"銝<>甈⊥<E79488><EFBFBD><E689B9><EFBFBD><EFBFBD><EFBFBD>?蝑𣇉裦嚗諹歲餈<E6ADB2><E9A488><EFBFBD><EFBFBD>撉諹<E69289>甇仿炊
**敶勗<E695B6>**嚗?- <20><EFBFBD>摮睃銁"Lost in the Middle"<22>啗情撖潸稲<E6BDB8><E7A8B2><EFBFBD>瞍?- <20>喲睸摮埈挾<E59F88><E68CBE><EFBFBD>蝖桃<E89D96><E6A183><EFBFBD><E888AA>芾噢<E88ABE>?2%<25><EFBFBD>
**撱箄悅**嚗?1. MVP銝羓瑪<E7BE93>𠬍<EFBFBD><F0A0AC8D><EFBFBD><E59C92><EFBFBD><EFBFBD><EFBC86><EFBFBD>?2. 憒<><E68692><EFBFBD>喲睸摮埈挾<E59F88><E68CBE><EFBFBD>?90%嚗<><E59A97><EFBFBD><EFBFBD><E8B3A2><EFBFBD><EFBFBD>霂?3. 隡睃<E99AA1><E79D83><EFBFBD>笆3銝芣瓲敹<E793B2><E695B9>畾蛛<E795BE><E89B9B>𤩺㦤<F0A4A9BA>𡝗䲮瘜𨰻<E7989C><F0A8B0BB>𤩅瘜𨰻<E7989C><F0A8B0BB><EFBFBD><EFBFBD>𨅯<EFBFBD><F0A885AF><EFBFBD><EFBFBD>
**隡睃<E99AA1>蝥?*嚗帋<E59A97><EFBFBD><E59A97>MVP瘚贝<E7989A>撉諹<E69289>嚗?
**憸<><EFBFBD>埈𧒄**嚗?憭?
**<2A>∩辣閫血<E996AB>**嚗𡁜<E59A97><F0A1819C><EFBFBD>畾萄<E795BE>蝖桃<E89D96><90%
---
### <20>箏𦛚3嚗鋴ochrane<6E><65><EFBFBD><EFBFBD><EFBFBD>頧踝<E9A0A7>MVP蝞<50><E89D9E><EFBFBD>
**<2A><EFBFBD><E6A185>讛膩**嚗?- MVP銝箔<E98A9D><E7AE94><EFBFBD>Prompt<70>踹漲<E8B8B9><EFBFBD><E5B395>穿<EFBFBD><E7A9BF><EFBFBD>頧瘠ochrane RoB 2.0<EFBFBD><EFBFBD><EFBFBD>
- <20><EFBFBD>敶勗<E695B6>"韐券<E99F90><EFBFBD>摯"摮埈挾<E59F88><E68CBE>ế<EFBFBD><EFBFBD>蝖格<E89D96>?
**敶勗<E695B6>**嚗?- 韐券<E99F90><EFBFBD>摯摮埈挾<E59F88><EFBFBD>銝滚<E98A9D>銝亥馬
- 蝻箏<E89DBB>蝏煺<E89D8F><E785BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E69697>?
**撱箄悅**嚗?1. MVP瘚贝<E7989A><E8B49D><EFBFBD>隡啣<E99AA1>蝖桃<E89D96>
2. 憒<><E68692>"韐券<E99F90><EFBFBD>摯"摮埈挾<E59F88><E68CBE><EFBFBD>?85%嚗屸<E59A97><E5B1B8><EFBFBD>頧瘠ochrane<6E><65><EFBFBD>
3. <20><EFBFBD><E69C9E>滨蔭撘<E894AD><E69298><EFBFBD>瘣餅綉<E9A485><EFBFBD>PromptBuilder撌脫𣈲<E884AB><F0A388B2><EFBFBD>
**隡睃<E99AA1>蝥?*嚗帋<E59A97><EFBFBD><E59A97>MVP瘚贝<E7989A>撉諹<E69289>嚗?
**憸<><EFBFBD>埈𧒄**嚗𡁜<E59A97>憭抬<E686AD>撌脫<E6928C><EFBFBD><E99A9E>嚗䔶<E59A97><E494B6><EFBFBD><EFBFBD>滨蔭嚗?
**<2A>∩辣閫血<E996AB>**嚗朞捶<E69C9E><EFBFBD>隡啣<E99AA1>畾萄<E795BE>蝖桃<E89D96><85%
---
### <20>箏𦛚4嚗鎄ew-shot Examples鋡怎宏<E6808E>?
**<2A><EFBFBD><E6A185>讛膩**嚗?- 銝箔<E98A9D>隡睃<E99AA1>Prompt<70>踹漲嚗<E6BCB2><E59A97>74KB<4B>滩秐52KB嚗㚁<E59A97>蝘駁膄鈭<E88684>ew-shot examples
- <20><EFBFBD>敶勗<E695B6><E79285>撖?Lost in the Middle"<22>箸艶<E7AEB8><E889B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
**敶勗<E695B6>**嚗?- 璅<E79285>蝻箏<E89DBB><E7AE8F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>靘页<E99D98><E9A1B5>笆憭齿<E686AD><E9BDBF>箸艶<E7AEB8>嗅虾<E59785>質”<E8B3AA><EFBFBD>蝔喳<E89D94>
**撱箄悅**嚗?1. MVP瘚贝<E7989A><E8B49D>𤾸<EFBFBD><F0A4BEB8>𣂼仃韐交<E99F90>靘?2. 憒<><E68692><EFBFBD>𤑳緵<F0A491B3><EFBFBD><E79285><E288AA><EFBFBD>仃韐交<E99F90>靘页<E99D98><EFBFBD><EFBFBD>臬銁銝剝𡢿雿滨蔭嚗㚁<E59A97><E39A81>齿鰵瘛餃<E7989B>Few-shot
3. <20><>鍂蝎曄<E89D8E><E69B84>㇅ew-shot嚗?-2銝芣瓲敹<E793B2><E695B9>靘页<E99D98><E9A1B5><EFBFBD><E5B1B8><EFBFBD><EFBFBD><E49489><EFBFBD><EFBFBD><EFBFBD>靘页<E99D98>
**隡睃<E99AA1>蝥?*嚗帋<E59A97><EFBFBD><E59A97>MVP瘚贝<E7989A>撉諹<E69289>嚗?
**憸<><EFBFBD>埈𧒄**嚗?憭?
**<2A>∩辣閫血<E996AB>**嚗𡁶鸌摰𡁜㦤<F0A1819C>臬仃韐亦<E99F90>>30%
---
### <20>箏𦛚5嚗𡁏鸌憭<E9B88C><E686AD><EFBFBD>滚𦛚<E6BB9A><EFBFBD><E88AB8><EFBFBD>Day 4敺<34><E695BA><EFBFBD>𡢅<EFBFBD>
**<2A><EFBFBD><E6A185>讛膩**嚗?- 敶枏<E695B6><E69E8F><EFBFBD><E88AA3><EFBFBD>PDF<44><46>LM憭<4D><E686AD><EFBFBD>滚𦛚
- 蝻箏<E89DBB><E7AE8F><EFBFBD><EFBFBD><E686AD><EFBFBD><EFBFBD><EFBFBD>摨西<E691A8>頦芥<E9A0A6><E88AA5><EFBFBD>烐綉<E78390>?
**敶勗<E695B6>**嚗?- <20><EFBFBD><E4ADBE><EFBFBD><EFBFBD><E686AD>憭𡁶<E686AD><F0A181B6><EFBFBD>
- 蝻箏<E89DBB>隞餃𦛚<E9A483><EFBFBD><E7AC94><EFBFBD>摨衣恣<E8A1A3>?
**閫<><E996AB><EFBFBD><EFBFBD>**嚗?- Day 4撘<34><E69298>鬔AsyncTaskService`<EFBFBD>䈣FulltextScreeningService`
- <20><><EFBFBD>`p-queue`摰䂿緵撟嗅<E6929F><E59785><EFBFBD>
- 摰䂿緵餈𥕦漲<F0A595A6><EFBFBD><E599BC><EFBFBD>仃韐仿<E99F90>霂?
**隡睃<E99AA1>蝥?*嚗𡁻<E59A97>嚗㇄ay 4霈<E99C88>銝哨<E98A9D>
**憸<><EFBFBD>埈𧒄**嚗?憭?
**<2A><EFBFBD>?*嚗朞恣<E69C9E>雴葉
---
### <20>箏𦛚6嚗𡁜<E59A97>蝡狹I<E78BB9><EFBFBD><E88AB8>𡢅<EFBFBD>Day 5-6敺<36><E695BA><EFBFBD>𡢅<EFBFBD>
**<2A><EFBFBD><E6A185>讛膩**嚗?- <20><EFBFBD>憭滨<E686AD><E6BBA8><EFBFBD><EFBFBD>蝡狹I摰<49><E691B0><EFBFBD><EFBFBD><E88AB8>?- <20><>𡠺霈曄蔭憿萸<E686BF><E890B8>極雿𨅯蝱憿萸<E686BF><E890B8><EFBFBD><EFBFBD>𣈯△<F0A388AF><E296B3><EFBFBD><EFBFBD>㦛摰⊿<E691B0>撘寧<E69298>
**敶勗<E695B6>**嚗?- <20>𡒊垢<F0A1928A>滚𦛚<E6BB9A><EFBFBD>鋡怎鍂<E6808E>瑚蝙<E7919A>?- MVP<56><EFBFBD>鈭支<E988AD>
**閫<><E996AB><EFBFBD><EFBFBD>**嚗?- Day 5-6撘<36><E69298><EFBFBD>蝡狹I
- <20><><EFBFBD><EFBFBD><EFBFBD>憸䀹<E686B8><EFBFBD><E996AC>蝑𤤿<E89D91>UI霈曇恣
- <20><><EFBFBD>12摮埈挾璅⊥踎<E28AA5><E8B88E><EFBFBD>蝷粹<E89DB7>瘙?
**隡睃<E99AA1>蝥?*嚗𡁻<E59A97>嚗㇄ay 5-6霈<E99C88>銝哨<E98A9D>
**憸<><EFBFBD>埈𧒄**嚗?憭?
**<2A><EFBFBD>?*嚗朞恣<E69C9E>雴葉
---
### <20>箏𦛚7嚗𡁏㺭<F0A1818F><EFBFBD>銵冽𧊋<E586BD>𥕦遣 <20>?撌脰圾<E884B0>?
**<2A><EFBFBD><E6A185>讛膩**嚗?- `AslFulltextScreeningTask`<60>䈣AslFulltextScreeningResult`銵冽𧊋<EFBFBD>𥕦遣
- <20><EFBFBD>摮睃<E691AE><E79D83><EFBFBD>憭滨<E686AD><E6BBA8><EFBFBD><EFBFBD><EFBFBD>蝏𤘪<E89D8F>
**敶勗<E695B6>**嚗?- <20>𡒊垢<F0A1928A>滚𦛚<E6BB9A><EFBFBD><E4ADBE><EFBFBD><EFBFBD><EFBFBD>𡝗㺭<F0A19D97>?
**閫<><E996AB><EFBFBD><EFBFBD>**嚗?- Day 4<><EFBFBD>Prisma餈<61>
- <20>𥕦遣銝支葵<E694AF>啗”撟嗅遣蝡见<E89DA1><E8A781>?
**隡睃<E99AA1>蝥?*嚗𡁻<E59A97>嚗㇄ay 4霈<E99C88>銝哨<E98A9D>
**憸<><EFBFBD>埈𧒄**嚗𡁜<E59A97>憭?
**<EFBFBD><EFBFBD>?*嚗尠<E59A97> 撌脣<E6928C><E884A3><EFBFBD>2025-11-23嚗?
**閫<><E996AB>霂行<E99C82>**嚗?- 雿輻鍂<E8BCBB>见𢆡SQL<51>𡁏𧋦摰峕<E691B0><EFBFBD>宏嚗<E5AE8F><E59A97><EFBFBD>滚蔣<E6BB9A>㥍ublic schema嚗?- <20>𥕦遣鈭?`fulltext_screening_tasks` <20>?`fulltext_screening_results` 銵?- 靽格㺿 `literatures` 銵剁<E98AB5>瘛餃<E7989B>13銝芸<E98A9D><E88AB8><EFBFBD><EFBFBD><EFBFBD>畾?- 霂西<E99C82>嚗靀2025-11-23_<33>唳旿摨栞<E691A8>蝘餌𠶖<E9A48C><F0A0B696><EFBFBD>?md](../05-撘<><E69298>𤏸扇敶?2025-11-23_<33>唳旿摨栞<E691A8>蝘餌𠶖<E9A48C><F0A0B696><EFBFBD>?md)
---
### <20>箏𦛚8嚗鋫PI蝡舐<E89DA1><E88890><EFBFBD><E88AB8>?
**<2A><EFBFBD><E6A185>讛膩**嚗?- <20><EFBFBD>憭滨<E686AD><E6BBA8><EFBFBD><E8A9A8><EFBFBD>ESTful API<50><EFBFBD><E88AB8>?- <20>滨垢<E6BBA8><EFBFBD><EFBFBD><EFBFBD>𡒊垢<F0A1928A>滚𦛚
**敶勗<E695B6>**嚗?- <20><EFBFBD>蝡舀<E89DA1>瘜閖<E7989C><E99696>?
**閫<><E996AB><EFBFBD><EFBFBD>**嚗?- Day 4撘<34><E69298>飊PI<50><EFBFBD><E689B9>?- 摰䂿緵隞餃𦛚<E9A483>𥕦遣<F0A595A6><E981A3><EFBFBD>摨行䰻霂<E99C82><EFBCB5><EFBFBD><EFBFBD>𨀣䰻霂<E99C82><EFBCB5>犖撌亙<E6928C><E4BA99><EFBFBD><E8B28A>亙藁
**隡睃<E99AA1>蝥?*嚗𡁻<E59A97>嚗㇄ay 4霈<E99C88>銝哨<E98A9D>
**憸<><EFBFBD>埈𧒄**嚗𡁜<E59A97>憭?
**<EFBFBD><EFBFBD>?*嚗朞恣<E69C9E>雴葉
---
### <20>箏𦛚9嚗𡁏<E59A97><F0A1818F><EFBFBD><E7A08C>𣇉征<F0A38789>?
**<2A><EFBFBD><E6A185>讛膩**嚗?- <20><EFBFBD>PDF憭<46><E686AD><EFBFBD>鞉𧋦蝥汕?.10嚗㇄eepSeek + Qwen嚗?- System Prompt隞齿<E99A9E>6,601摮㛖泵嚗峕<E59A97>隡睃<E99AA1>蝛粹𡢿
**瞏𨅯銁隡睃<E99AA1>**嚗?1. 蝎曄<E89D8E>System Prompt嚗<74><E59A97><EFBFBD>蹱瓲敹<E793B2><E695B9>撘𤏪<E69298>蝘駁膄<E9A781>𦯀<EFBFBD>霂湔<E99C82>嚗?2. 靚<>㟲JSON Schema嚗<61><E59A97>撠鬴escription摮埈挾嚗?3. <20><><EFBFBD><EFBFBD>閙芋<E99699>𧢲芋撘𧶏<E69298><EFBFBD>eepSeek嚗峕<E59A97><E5B395><EFBFBD>雿?5%嚗?
**憸<><E686B8><EFBFBD><EFBFBD><EFBFBD>**嚗?- <20>鞉𧋦<E99E89><EFBFBD>30-50%嚗<><E59A97><E79285>嚗?- <20><EFBFBD>雿?5%嚗<><E59A97><E79285>嚗?
**隡睃<E99AA1>蝥?*嚗帋葉嚗㇈VP蝔喳<E89D94><E596B3>𠬍<EFBFBD>
**憸<><EFBFBD>埈𧒄**嚗?-2憭?
---
### <20>箏𦛚10嚗𡁜捆<F0A1819C>蹱㦤<E8B9B1><EFBFBD>憓𧼮撩
**<EFBFBD><EFBFBD><EFBFBD>讛膩**嚗?- <20><EFBFBD>撌脣<E6928C><E884A3>?撅<>SON閫<4E><E996AB>蝑𣇉裦嚗䔶<E59A97>蝻箏<E89DBB>"LLM<4C><EFBFBD>"撅?- 憒<><E68692>3撅<33><EFBFBD><EFBFBD>憭梯揖嚗䔶遙<E494B6>∠凒<E288A0>亙仃韐?
**撱箄悅**嚗?- <20><EFBFBD>鈭抒㴓憓<E3B493><EFBFBD>烐綉JSON閫<4E><E996AB>憭梯揖<E6A2AF>?- 憒<><E68692>憭梯揖<E6A2AF>?5%嚗<><E59A97><EFBFBD>賜洵4撅<34><E69285>LLM<4C><EFBFBD><EFBFBD>蒂撘箏<E69298>Prompt嚗?
**隡睃<E99AA1>蝥?*嚗帋<E59A97><EFBFBD><E59A97><EFBFBD>煺漣<E785BA>唳旿撉諹<E69289>嚗?
**憸<><EFBFBD>埈𧒄**嚗?憭?
**<EFBFBD>∩辣閫血<EFBFBD>**嚗麿SON閫<4E><E996AB>憭梯揖<E6A2AF>?5%
---
## <20><20><EFBFBD>憭滨<E686AD> - <20>滨垢<E6BBA8><E59EA2><EFBFBD><EFBFBD>箏𦛚
> **璅<E79285>**嚗𡁜<E59A97><F0A1819C><EFBFBD><EFBFBD>蝑𥕦<E89D91>蝡?
> **<2A>𥕦遣<F0A595A6>園𡢿**嚗?025-11-23
> **<2A><EFBFBD>?*嚗𡁜<E59A97><EFBFBD><E69298>?
---
### <20>箏𦛚11嚗䥪DF<44><46><EFBFBD><EFBFBD>
**<EFBFBD><EFBFBD><EFBFBD>讛膩**嚗?- MVP<56><50>𧋦<EFBFBD>芣𣈲<E88AA3><F0A388B2>DF憸<46><E686B8><EFBFBD>蕃憿萸<E686BF><E890B8><EFBFBD><EFBFBD>
- <20><EFBFBD><E4ADBE>沌DF銝𡃏<E98A9D>銵峕<E98AB5>瘜具<E7989C><E585B7><EFBFBD>鈭柴<E988AD><E69FB4><EFBFBD>䭾鸌瘜?- <20><EFBFBD>撣峕<E692A3><E5B395>典恣<E585B8>豢𧒄<E8B1A2><F0A79284><EFBFBD>喲睸靽⊥<E99DBD>
**雿輻鍂<E8BCBB>箸艶**嚗?- 摰⊥瓲撌乩<E6928C><E4B9A9>唳䰻<E594B3><EFBFBD><E8A781><EFBFBD>𧒄嚗峕<E59A97>霈啣<E99C88><E595A3><EFBFBD><E6A0AA>?- 擃䀝漁<E4809D><EFBFBD><E884A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>畾?- 瘛餃<E7989B>銝芯犖摰⊥瓲蝚磰扇
**撱箄悅<E7AE84><EFBFBD>**嚗?- <20><><EFBFBD>PDF<44><46>釣摨橒<E691A8>憒?react-pdf-highlighter嚗?- <20><EFBFBD><E88880><EFBFBD>𧋦擃䀝漁<E4809D><E6BC81><EFBFBD><EFBFBD>垍瑪<E59E8D><E791AA>鸌瘜?- <20><><EFBFBD>唳旿靽嘥<E99DBD><E598A5>唳㺭<E594B3><EFBFBD><EFBFBD>虾撖澆枂
**隡睃<E99AA1>蝥?*嚗帋葉
**憸<><EFBFBD>埈𧒄**嚗?-4憭?
**靘肽<E99D98>**嚗䥪DF憸<46><E686B8><EFBFBD><EFBFBD>摰峕<E691B0>
**<EFBFBD><EFBFBD>隞瑕<EFBFBD>?*嚗尠<E59A97>潃鐥<E6BD83>潃?
---
### <20>箏𦛚12嚗𡁏<E59A97><F0A1818F><EFBFBD>霈啣<E99C88><E595A3>?
**<2A><EFBFBD><E6A185>讛膩**嚗?- <20><EFBFBD>銝箸<E98A9D><EFBFBD><E89DAD><EFBFBD>格溶<E6A0BC>惩恣<E683A9><EFBFBD>霈?- 鈭箏極憭齿瓲<E9BDBF><EFBFBD><E597A5><EFBFBD><E882BD><EFBFBD>蝔𧢲<E89D94>瘜閗扇敶?- 銝滢噶鈭𤾸<E988AD>蝏剖<E89D8F>皞臬<E79A9E>蝑碶<E89D91><E7A2B6>?
**雿輻鍂<E8BCBB>箸艶**嚗?- 霈啣<E99C88>銝箔<E98A9D><EFBFBD><EFBFBD>?<3F>㘾膄<E398BE><EFBFBD><E99E9F><EFBFBD>
- 霈啣<E99C88><E595A3><EFBFBD><EFBFBD><E996AC><EFBFBD>甇交瓲<E4BAA4><EFBFBD><E4BAA6><EFBFBD>
- <20><EFBFBD><EFBD81><EFBFBD><E8AD8D><EFBFBD>瘝罸<E7989D>朞扇敶?
**撱箄悅<E7AE84><EFBFBD>**嚗?- <20><EFBFBD><E586BD>株祕<E6A0AA><E7A595>𡂝撅㗇溶<E39787>?蝚磰扇"Tab
- <20><EFBFBD>撖峕<E69296><E5B395><EFBFBD>颲穃膥嚗㇈arkdown嚗?- <20><EFBFBD>@<40>𣂼<EFBFBD><F0A382BC><EFBFBD><EFBD81>𣂼<EFBFBD>
- 蝚磰扇靽嘥<E99DBD><E598A5>唳㺭<E594B3><EFBFBD>
**隡睃<E99AA1>蝥?*嚗帋葉
**憸<><EFBFBD>埈𧒄**嚗?-3憭?
**靘肽<E99D98>**嚗朞祕<E69C9E><E7A595>𡂝撅匧<E69285><E58CA7>?
**<EFBFBD><EFBFBD>隞瑕<EFBFBD>?*嚗尠<E59A97>潃鐥<E6BD83>潃?
---
### <20>箏𦛚13嚗帋<E59A97><E5B88B><EFBFBD>摨㯄<E691A8>㗇𥋘<E39787><F0A58B98>
**<EFBFBD><EFBFBD><EFBFBD>讛膩**嚗?- MVP<56><50>𧋦<EFBFBD>芣𣈲<E88AA3><F0A388B2>𧋦<EFBFBD><EFBFBD>隡蘯DF
- <20><EFBFBD>隞𤾸歇<F0A4BEB8>厩䰻霂<E4B0BB><E99C82>銝剝<E98A9D>㗇𥋘<E39787><F0A58B98>
- <20><><EFBFBD><E996AC>憭滢<E686AD>隡惩歇摮睃銁<E79D83><E98A81>DF
**雿輻鍂<E8BCBB>箸艶**嚗?- <20><EFBFBD><E586BD>其葵鈭箇䰻霂<E4B0BB><E99C82>銝剖歇靽嘥<E99DBD>憭折<E686AD><E68A98><EFBFBD>
- 撣峕<E692A3><E5B395>湔𦻖<E6B994>㗇𥋘<E39787><EFBFBD><E594B3><EFBFBD>讃餈𥡝<E9A488><F0A5A19D><EFBFBD>憭滨<E686AD>
- <20><EFBFBD><E8B8B9><EFBFBD>銝𠹺<E98A9D><F0A0B9BA><EFBFBD><EFBFBD><EFBFBD>?
**撱箄悅<E7AE84><EFBFBD>**嚗?- <20>?瘛餃<E7989B><E9A483><EFBFBD>讃"撘寧<E69298>瘛餃<E7989B>"<22><EFBFBD>摨?Tab
- <20>曄內<E69B84><EFBFBD><E586BD><EFBFBD><EFBFBD><EFBFBD>侨DF<44><46><EFBFBD>𡑒”
- <20><EFBFBD><E88880>𦦵揣<F0A6A6B5><E68FA3><EFBFBD><EFBFBD><EFBFBD><E589B9><EFBFBD><EFBFBD>?- <20>劐葉<E58A90>舘䌊<E88898><EFBFBD><E585B8>𥪜<EFBFBD>敶枏<E695B6>隞餃𦛚
**隡睃<E99AA1>蝥?*嚗帋<E59A97>
**憸<><EFBFBD>埈𧒄**嚗?憭?
**靘肽<E99D98>**嚗帋葵鈭箇䰻霂<E4B0BB><E99C82><E79285>嚗㇊KB嚗?
**<EFBFBD><EFBFBD>隞瑕<EFBFBD>?*嚗尠<E59A97>潃鐥<E6BD83>
---
### <20>箏𦛚14嚗𡁻<E59A97><EFBFBD>PMID/DOI<4F>芸𢆡<E88AB8><EFBFBD><E79195><EFBFBD>
**<EFBFBD><EFBFBD><EFBFBD>讛膩**嚗?- <20><EFBFBD><E586BD><EFBFBD>PMID<49>靝OI嚗峕瓷<E5B395>侨DF<44><46>
- <20><><EFBFBD><E996AC><EFBFBD>典縧PubMed蝑厩<E89D91>蝡嗘<E89DA1>頧瞑DF
- 憓𧼮<E68693><F0A7BCAE><EFBFBD><E6BBA2>鞉𧋦<E99E89>峕𧒄<E5B395>?
**雿輻鍂<E8BCBB>箸艶**嚗?- <20><EFBFBD><E586BD><EFBFBD><E39787><EFBFBD>PMID<49>𡑒”
- 撣峕<E692A3>蝟餌<E89D9F><E9A48C>芸𢆡<E88AB8><EFBFBD><E79195><EFBFBD>PDF
- <20>芸𢆡<E88AB8><EFBFBD>銝贝蝸撟嗅<E6929F><E59785>?
**撱箄悅<E7AE84><EFBFBD>**嚗?- <20>?瘛餃<E7989B><E9A483><EFBFBD>讃"撘寧<E69298>瘛餃<E7989B>"<22>芸𢆡<E88AB8><EFBFBD>"Tab
- 颲枏<E9A2B2>PMID/DOI<4F>𡑒”嚗<E2809D>𣈲<EFBFBD><F0A388B2><EFBFBD>𧶏<EFBFBD>
-<>鍂蝚砌<E89D9A><E7A08C>農PI嚗㇊ubMed<65><64>npaywall<6C><6C>ci-Hub<75>𨅯<EFBFBD>嚗?- <20>芸𢆡銝贝蝸PDF撟嗆溶<E59786><EFBFBD>隞餃𦛚
**隡睃<E99AA1>蝥?*嚗帋<E59A97>
**憸<><EFBFBD>埈𧒄**嚗?-5憭?
**靘肽<E99D98>**嚗𡁶洵銝㗇䲮PDF<44><EFBFBD>API
**<EFBFBD><EFBFBD>隞瑕<EFBFBD>?*嚗尠<E59A97>潃鐥<E6BD83>潃鐥<E6BD83>
**瘜訫<E7989C>憌𡡞埯**嚗尠<E59A97>儭?<3F><><EFBFBD><EFBFBD><E691AF><EFBFBD><EFBFBD><EFBFBD>
---
### <20>箏𦛚15嚗𡁻<E59A97>鈭唧I撘閧鍂<E996A7><E98D82><EFBFBD><EFBFBD><EFBFBD><EFBFBD>畾?
**<2A><EFBFBD><E6A185>讛膩**嚗?- AI<41>斗鱏<E69697><EFBFBD><E59785><EFBFBD><E585B6><EFBFBD><EFBFBD><EFBFBD>
-<>銁PDF憸<46><E686B8>銝剜<E98A9D>瘜閗䌊<E99697><EFBFBD>雿滚<E99BBF>擃䀝漁
- <20><EFBFBD><E586BD><EFBFBD><EFBFBD><E996AC><EFBFBD>冽䰻<E586BD>曉笆摨𠉛<E691A8><F0A0899B><EFBFBD>𧋦
**雿輻鍂<E8BCBB>箸艶**嚗?- <20><EFBFBD>AI<41>斗鱏靘脲旿<E884B2><EFBFBD>撣峕<E692A3><E5B395><EFBFBD><E8A781><EFBFBD><EFBFBD>雿滨蔭
- <20>孵稬霂<E7A8AC><EFBFBD><E697BF>𧋦嚗釶DF<44>芸𢆡頝唾蓮撟園<E6929F>鈭?- 撉諹<E69289>AI<41>𣂼<EFBFBD><F0A382BC>臬炏<E887AC><E7828F>
**撱箄悅<E7AE84><EFBFBD>**嚗?- <20>杗I<E69D97>斗鱏撖寞<E69296>銝哨<E98A9D><EFBFBD><EFBFBD><E697BF>𧋦<EFBFBD>䀝蛹<E4809D><EFBFBD><E88890>?- <20>孵稬<E5ADB5>窰DF憸<46><E686B8><EFBFBD>芸𢆡頝唾蓮<E594BE>啣笆摨娪△<E5A8AA>?- 擃䀝漁<E4809D><EFBFBD><E5AFA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>畾蛛<E795BE><E89B9B><EFBFBD><EFBFBD><E996AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- <20>𡒊垢<F0A1928A><E59EA2><EFBFBD><E996AC><EFBFBD><EFBFBD><E5A2A7>砍銁PDF銝剔<E98A9D>雿滨蔭<E6BBA8><EFBFBD>
**隡睃<E99AA1>蝥?*嚗帋葉
**憸<><EFBFBD>埈𧒄**嚗?-5憭?
**靘肽<E99D98>**嚗䥪DF<44>𣂼<EFBFBD><F0A382BC>滚𦛚餈𥪜<E9A488><F0A5AA9C><EFBFBD>𧋦<EFBFBD><EFBFBD>
**<EFBFBD><EFBFBD>隞瑕<EFBFBD>?*嚗尠<E59A97>潃鐥<E6BD83>潃鐥<E6BD83>
**<EFBFBD><EFBFBD><EFBFBD>舫𠗕摨?*嚗尠<E59A97>潃鐥<E6BD83>潃?
---
### <20>箏𦛚16嚗阳ebSocket摰墧𧒄<E5A2A7><EFBFBD><E588B8>𤜯隞<F0A49CAF>蔭霂?
**<2A><EFBFBD><E6A185>讛膩**嚗?- 敶枏<E695B6>雿輻鍂頧株砭<E6A0AA><EFBFBD><EFBFBD><E59A97>3蝘坿窈瘙<E7AA88><E79899>甈∴<E79488>
- 憓𧼮<E68693><F0A7BCAE>滚𦛚<E6BB9A><EFBFBD>頧賢<E9A0A7>蝵𤑳<E89DB5><EFBFBD><E7989A>
- 餈𥕦漲<F0A595A6>湔鰵<E6B994>匧辣餈<E8BEA3><E9A488><EFBFBD><EFBFBD>憭?蝘𡜐<E89D98>
**雿輻鍂<E8BCBB>箸艶**嚗?- 隞餃𦛚餈𥕦漲<F0A595A6>烐綉憿菟𢒰
- <20>踵𧒄<E8B8B5><EFBFBD>銵𣬚<E98AB5>LLM隞餃𦛚
- 撣峕<E692A3>摰墧𧒄<E5A2A7><EFBFBD><EFBFBD><E686AD><EFBFBD><EFBFBD>
**撱箄悅<E7AE84><EFBFBD>**嚗?- <20>𡒊垢摰䂿緵WebSocket<65>滚𦛚
- <20>滨垢撱箇<E692B1>WebSocket餈墧𦻖
- 隞餃𦛚餈𥕦漲<F0A595A6><EFBFBD><E79D83>嗡蜓<E597A1>冽綫<E586BD>?- <20>滨漣蝑𣇉裦嚗阳ebSocket銝滚虾<E6BB9A>冽𧒄<E586BD><EFBFBD><E9AE8B><EFBFBD>啗蔭霂?
**隡睃<E99AA1>蝥?*嚗帋<E59A97>
**憸<><EFBFBD>埈𧒄**嚗?-4憭?
**靘肽<E99D98>**嚗𡁜<E59A97>蝡狸ebSocket摰䂿緵
**<EFBFBD><EFBFBD>隞瑕<EFBFBD>?*嚗尠<E59A97>潃鐥<E6BD83>
**<EFBFBD><EFBFBD><EFBFBD>𣂼<EFBFBD>**嚗尠<E59A97>潃鐥<E6BD83>潃?
---
### <20>箏𦛚17嚗朞<E59A97><E69C9E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E585B6>硋之<E7A18B>𡑒”<F0A19192><EFBFBD>
**<EFBFBD><EFBFBD><EFBFBD>讛膩**嚗?- 敶𤘪<E695B6><F0A498AA>格㺭<E6A0BC>?100蝭<30>𧒄嚗諹”<E8ABB9>潭葡<E6BDAD><EFBFBD><E69E8F>?- <20><><EFBFBD><EFBFBD><E39591>賣葡<E8B3A3><EFBFBD>DOM嚗<4D><E59A97><EFBFBD>典之<E585B8><EFBFBD>摮?- 皛𡁜𢆡<F0A1819C>嗅虾<E59785>賢枂<E8B3A2>啣㨃憿?
**雿輻鍂<E8BCBB>箸艶**嚗?- 憭扯<E686AD><E79285><E288AA><EFBFBD><EFBFBD>蝑𨥈<E89D91>200+蝭<><E89DAD><EFBFBD><EFBFBD>
- 摰⊥瓲撌乩<E6928C><E4B9A9><EFBFBD>蝏𤘪<E89D8F>憿菟𢒰
- <20><><EFBFBD><E996AC><EFBFBD><EFBFBD><EFBFBD>皛𡁜𢆡雿㯄<E99BBF>
**撱箄悅<E7AE84><EFBFBD>**嚗?- 雿輻鍂<E8BCBB>𡁏<EFBFBD>皛𡁜𢆡摨橒<E691A8>react-window / react-virtualized嚗?- <20>芣葡<E88AA3>枏虾閫<E899BE><EFBFBD><EFBFBD>銵?- 隡睃<E99AA1>Ant Design Table<6C><EFBFBD>
- 瘛餃<E7989B><E9A483><EFBFBD><E689AF>烐綉
**隡睃<E99AA1>蝥?*嚗帋<E59A97>
**憸<><EFBFBD>埈𧒄**嚗?憭?
**<EFBFBD>∩辣閫血<EFBFBD>**嚗𡁏<E59A97><F0A1818F>格㺭<E6A0BC>?100蝭?
**<EFBFBD><EFBFBD>隞瑕<EFBFBD>?*嚗尠<E59A97>潃鐥<E6BD83>
**<EFBFBD><EFBFBD><EFBFBD>𣂼<EFBFBD>**嚗尠<E59A97>潃鐥<E6BD83>潃鐥<E6BD83>
---
### <20>箏𦛚18嚗𡁏鸌<F0A1818F>𤩺<EFBFBD>雿𨅯<E99BBF><F0A885AF>?
**<2A><EFBFBD><E6A185>讛膩**嚗?- 蝏𤘪<E89D8F>憿菟𢒰<E88F9F><EFBFBD><E88ABE>蓥葵<E893A5><E891B5><EFBFBD><EFBFBD>
- <20><EFBFBD><E4ADBE><EFBFBD>靽格㺿<E6A0BC><EFBFBD>
- <20><EFBFBD><E4ADBE><EFBFBD>撖澆枂<E6BE86>劐葉<E58A90><E89189><EFBFBD><EFBFBD>?
**雿輻鍂<E8BCBB>箸艶**嚗?- <20><EFBFBD><E5AFA5><EFBFBD>扇銝?蝥喳<E89DA5>"<22>?<3F>㘾膄"
- <20><EFBFBD>撖澆枂<E6BE86>劐葉<E58A90><E89189><EFBFBD><E8AE83>DF
- <20><EFBFBD><E5AFA5>𣳇膄<F0A3B387>躰秤銝𠹺<E98A9D><F0A0B9BA><EFBFBD><EFBFBD><EFBFBD>?
**撱箄悅<E7AE84><EFBFBD>**嚗?- 銵冽聢瘛餃<E7989B>憭漤<E686AD><EFBFBD><E39787>?- 瘛餃<E7989B><E9A483><EFBFBD><E5AFA5><EFBFBD>撌亙<E6928C><E4BA99>?- <20><EFBFBD>嚗𡁏鸌<F0A1818F>譍耨<E8AD8D><EFBFBD>蝑硔<E89D91><E7A194><EFBFBD>誩紡<E8AAA9><EFBFBD><E7AE9D><EFBFBD><EFBFBD><E8AAA9>?- 瘛餃<E7989B><E9A483><EFBFBD>蝖株恕<E6A0AA>鞟內
**隡睃<E99AA1>蝥?*嚗帋<E59A97>
**憸<><EFBFBD>埈𧒄**嚗?憭?
**<EFBFBD><EFBFBD>隞瑕<EFBFBD>?*嚗尠<E59A97>潃鐥<E6BD83>潃?
---
### <20>箏𦛚19嚗𡁶氖蝥燕DF憸<46><E686B8><EFBFBD><EFBFBD>
**<EFBFBD><EFBFBD><EFBFBD>讛膩**嚗?- PDF憸<46><E686B8>靘肽<E99D98><E882BD>函瑪CDN<44>㰘蝸pdf.js worker
- 蝵𤑳<E89DB5>銝滚末<E6BB9A><EFBFBD>頧賢仃韐?- <20><><EFBFBD><EFBFBD><EFBFBD><E887AC><EFBFBD>雿輻鍂
**雿輻鍂<E8BCBB>箸艶**嚗?- <20><><EFBFBD><EFBFBD>函蔡<E587BD><EFBFBD>
- 蝵𤑳<E89DB5>銝滨迅摰𡁶<E691B0><F0A181B6><EFBFBD>
- <20><><EFBFBD><E996AC><EFBFBD>函氖蝥蹂蝙<E8B982>?
**撱箄悅<E7AE84><EFBFBD>**嚗?- 撠<>df.js worker<65><EFBFBD><E69E8F>圈★<E59C88>桐葉
- <20><EFBFBD><E88880>砍𧑐<E7A08D>㰘蝸<E3B098>龦DN<44>㰘蝸銝斤<E98A9D><E79285>
- <20>芸𢆡璉<F0A286A1>瘚讠<E7989A>蝏𨅯僎<F0A885AF>㗇𥋘<E39787><F0A58B98>隡䀹䲮撘?
**隡睃<E99AA1>蝥?*嚗帋<E59A97>
**憸<><EFBFBD>埈𧒄**嚗?憭?
**<EFBFBD>∩辣閫血<EFBFBD>**嚗𡁜<E59A97>蝵煾<E89DB5>蝵脤<E89DB5>瘙?
**<EFBFBD><EFBFBD>隞瑕<EFBFBD>?*嚗尠<E59A97>潃鐥<E6BD83>
---
### <20>箏𦛚20嚗𡁜<E59A97>摨𥪜<E691A8>霈曇恣<E69B87><E681A3><EFBFBD>蝘餃𢆡蝡?
**<2A><EFBFBD><E6A185>讛膩**嚗?- 敶枏<E695B6>霈曇恣<E69B87><EFBFBD><E88ABE><EFBFBD>獢屸𢒰蝡荔<E89DA1>1920x1080嚗?- <20>典像<E585B8><EFBFBD><E8B8B9>𧢲㦤銝𦠜遬蝷箸<E89DB7><E7AEB8>𨅯榆
- 銵冽聢摰賢漲<E8B3A2><EFBFBD><EFBFBD><E59A97>撅誩<E69285>銝𧢲<E98A9D>瘜蓥蝙<E893A5>?
**雿輻鍂<E8BCBB>箸艶**嚗?- <20><EFBFBD>撣峕<E692A3><E5B395>典像<E585B8><EFBFBD>摰⊥瓲<E28AA5><E793B2>
- 蝘餃𢆡<E9A483>箸艶銝𧢲䰻<F0A7A2B2>衤遙<E8A1A4><EFBFBD>摨?- 憭硋枂<E7A18B>嗡葩<E597A1><EFBFBD><E59785><EFBFBD><EFBFBD>?
**撱箄悅<E7AE84><EFBFBD>**嚗?- 雿輻鍂<E8BCBB><EFBFBD>撘誩<E69298><EFBFBD>嚗㇍ailwind CSS嚗?- 撠誩<E692A0>撟蓥<E6929F>銵冽聢<E586BD>嫣蛹<E5ABA3><EFBFBD><EFBFBD>
- 隡睃<E99AA1>閫行𨰫鈭支<E988AD>雿㯄<E99BBF>
- 瘛餃<E7989B>蝘餃𢆡蝡臬紡<E887AC>?
**隡睃<E99AA1>蝥?*嚗𡁏<E59A97>雿?
**憸<><EFBFBD>埈𧒄**嚗?-7憭?
**<EFBFBD>∩辣閫血<EFBFBD>**嚗𡁶鍂<F0A181B6><EFBFBD>蝖桅<E89D96>瘙?
**<EFBFBD><EFBFBD>隞瑕<EFBFBD>?*嚗尠<E59A97>潃?
---
## <20><> <20><EFBFBD><E8A9A8><EFBFBD>
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**:
- [璅<E79285>敶枏<E695B6><E69E8F><EFBFBD><E59786><EFBFBD><EFBFBD><E69298><EFBFBD><E78390>㻩(../00-璅<E79285>敶枏<E695B6><E69E8F><EFBFBD><E59786><EFBFBD><EFBFBD><E69298><EFBFBD><E78390>?md) - 撌脩䰻<E884A9><EFBFBD><E6A185><EFBFBD>
- [隞餃𦛚<EFBFBD><EFBFBD>](../04-撘<><E69298>𤏸恣<F0A48FB8>?03-隞餃𦛚<E9A483><F0A69B9A>圾.md) - Week 4隞餃𦛚皜<F0A69B9A><E79A9C>
- [Prompt霈曇恣銝擧<E98A9D>霂閙𥁒<E99699>𠺖(../05-撘<><E69298>𤏸扇敶?2025-11-18-Prompt霈曇恣銝擧<E98A9D>霂訫<E99C82><E8A8AB>鞉𥁒<E99E89>?md) - 韐券<E99F90><E588B8><EFBFBD><E6A185><EFBFBD><EFBFBD>
- [隞𦠜𠯫撌乩<EFBFBD><EFBFBD><EFBFBD>](../05-撘<><E69298>𤏸扇敶?2025-11-18-隞𦠜𠯫撌乩<E6928C><E4B9A9><EFBFBD>.md) - 颲寧<E9A2B2><E5AFA7><EFBFBD>霂𦠜鱏
**<EFBFBD><EFBFBD>憭滨<EFBFBD>**:
- [<5B><EFBFBD>憭滨<E686AD><EFBFBD><E69298>𤏸恣<F0A48FB8>哋(../04-撘<><E69298>𤏸恣<F0A48FB8>?04-<2D><EFBFBD>憭滨<E686AD><EFBFBD><E69298>𤏸恣<F0A48FB8>?md) - <20>𡒊垢撘<E59EA2><E69298>𤏸<EFBFBD>摨血<E691A8><E99C88>
- [<EFBFBD><EFBFBD>憭滨<EFBFBD><EFBFBD>滨垢撘<EFBFBD><EFBFBD>𤏸恣<EFBFBD>哋(../04-撘<><E69298>𤏸恣<F0A48FB8>?05-<2D><EFBFBD>憭滨<E686AD><E6BBA8>滨垢撘<E59EA2><E69298>𤏸恣<F0A48FB8>?md) - <20>滨垢撘<E59EA2><E69298>𤏸祕蝏<E7A595><EFBFBD>?- [<5B><EFBFBD>憭滨<E686AD>韐券<E99F90>靽嗪<E99DBD>蝑𣇉裦](../02-<2D><><EFBFBD>航挽霈?08-<2D><EFBFBD>憭滨<E686AD>韐券<E99F90>靽嗪<E99DBD>蝑𣇉裦.md) - 韐券<E99F90>蝑𣇉裦霈曇恣
- [Day 2-3撘<33><E69298>𤏸扇敶騟(../05-撘<><E69298>𤏸扇敶?2025-11-22_Day2-Day3_LLM<4C>滚𦛚銝𡡞<E98A9D><EFBFBD>頂蝏笔<E89D8F><E7AC94>?md) - LLM<4C>滚𦛚撘<F0A69B9A><E69298>?- [Day 5撘<35><E69298>𤏸扇敶騟(../05-撘<><E69298>𤏸扇敶?2025-11-23_Day5_<35><EFBFBD>憭滨<E686AD>API撘<49><E69298>?md) - <20>𡒊垢API撘<49><E69298>?
---
**<EFBFBD><EFBFBD>﹝蝏湔擪**嚗?- 瘥𤩺活<F0A4A9BA>𤑳緵<F0A491B3><EFBFBD><E59581><EFBFBD><EFBFBD><EFBFBD>箏𦛚<E7AE8F>嗆凒<E59786>?- 瘥𤩺活閫<E6B4BB><E996AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>箏𦛚<E7AE8F><EFBFBD>霈啁𠶖<E59581>?- 摰𡁏<E691B0><EFBFBD>摯隡睃<E99AA1>蝥改<E89DA5>瘥𤩺<E798A5>嚗?
**<EFBFBD><EFBFBD><EFBFBD>擧凒<EFBFBD>?*嚗?025-11-23嚗ǒ1.2嚗?
**<EFBFBD>祆活<EFBFBD>湔鰵**嚗𡁏鰵憓𧼮<E68693><F0A7BCAE><EFBFBD><EFBFBD>蝑𥕦<E89D91>蝡舀<E89DA1><E88880><EFBFBD>箏𦛚嚗?0憿對<E686BF><E5B08D>箏𦛚11-20嚗?
**銝𧢲活霂<E6B4BB>摯**嚗𡁜<E59A97><F0A1819C><EFBFBD><EFBFBD>蝑𥕦<E89D91>蝡烘VP摰峕<E691B0><E5B395>?