Files
AIclinicalresearch/docs/03-业务模块/RVW-稿件审查系统/00-模块当前状态与开发指南.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

305 lines
12 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.
# RVW蝔蹂辣摰⊥䰻璅<E79285> - 敶枏<E695B6><E69E8F><EFBFBD><E59786><EFBFBD><EFBFBD><E69298><EFBFBD><E78390>?
> **<2A><><EFBFBD><EFB99D>𧋦嚗?* v3.2
> **<2A>𥕦遣<F0A595A6><EFBFBD>嚗?* 2026-01-07
> **<2A><><EFBFBD>擧凒<E693A7><EFBFBD>** 2026-01-10
> **蝏湔擪<E6B994><E693AA><EFBFBD>** 撘<><E69298>穃𣪧<E7A983>?
> **敶枏<E695B6><E69E8F><EFBFBD><E59786><EFBFBD>** <20>?**Phase 1-6 摰峕<E691B0>嚗玺chema<6D>𠉛氖摰峕<E691B0>嚗峕芋<E5B395>?5%<25>舐鍂**
> **<2A><><EFBFBD><EFBFBD>嚗?* 敹恍<E695B9><EFBFBD>ΟVW璅<E79285><E288AA><EFBFBD><E59786><EFBFBD>銝箸鰵AI<41><EFBFBD><E68B87>𣂷<EFBFBD>銝𠹺<E98A9D><F0A0B9BA>?
---
## <20><><E79285><EFBFBD><E79281>
### <20>箸𧋦靽⊥<E99DBD>
| 憿寧𤌍 | 靽⊥<E99DBD> |
|------|------|
| **璅<E79285><E288AA>滨妍** | RVW - 蝔蹂辣摰⊥䰻蝟餌<E89D9F> (Review) |
| **璅<E79285>摰帋<E691B0>** | <20><EFBFBD><E7AE84><EFBFBD>摰∠阮颲<E998AE>𨭌蝟餌<E89D9F><EFBFBD><EFBFBD><EFBFBD><E7A589><EFBFBD><EFBFBD><EFBFBD> |
| **<EFBFBD><EFBFBD><EFBFBD>隞瑕<EFBFBD>?* | 潃鐥<E6BD83>潃鐥<E6BD83>潃?<3F><><EFBFBD> |
| **<EFBFBD><EFBFBD><EFBFBD>?* | 潃鐥<E6BD83>潃鐥<E6BD83>潃?<3F><><EFBFBD><EFBFBD><EFBFBD>瑞黎摰<E9BB8E><E691B0>銝滚<E98A9D>嚗?|
| **<EFBFBD><EFBFBD><EFBFBD><EFBFBD>** | <20><EFBFBD><E7AC94>嘥恣蝻𤥁<E89DBB> |
| **撘<><E69298>𤑳𠶖<F0A491B3>?* | <20>?**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>100%摰峕<E691B0>嚗峕𣈲<E5B395><F0A388B2>ord撖澆枂嚗<E69E82><EFBFBD><E6AD87><EFBFBD><EFBFBD>?frontend-v2** |
### <20><EFBFBD><E8A9A8><EFBFBD>
> <EFBFBD><EFBFBD><EFBFBD>銝?*"撘<>蝞勗朖<E58B97>?**<2A><><EFBFBD>賢恣蝔踹極<E8B8B9><EFBFBD><E791AF><EFBFBD>颲睲<E9A2B2>隡删阮隞塚<E99A9E>蝟餌<E89D9F><E9A48C>芸𢆡餈鞱<E9A488><E99EB1><EFBFBD><EFBFBD><E79289><EFBFBD><EFBFBD><E996AB><EFBFBD>?<3F><EFBFBD>摮佗<E691AE>嚗諹<E59A97><E8ABB9>箏虾靘𥕦<E99D98><F0A595A6><EFBFBD><EFBFBD>摰∠阮<E288A0><EFBFBD><E4BA99>?>
> **<2A><EFBFBD><E8A9A8><EFBFBD><EFBFBD>**嚗帋<E59A97>隡惩<E99AA1><E683A9>箸𥁒<E7AEB8>?< 2<><32><EFBFBD>嚗𥡝<E59A97><F0A5A19D><EFBFBD><EFBFBD>折䔮憸䀹<E686B8><E480B9><EFBFBD> > 80%
### <20><EFBFBD><EFBFBD>
#### <20><EFBFBD>AI<41><EFBFBD><EFBFBD>歇摰峕<E691B0> <20><><EFBFBD>
1. **蝔輻漲閫<E6BCB2><E996AB><EFBFBD><EFBFBD>隡?*嚗?1憿寞<E686BF><E5AF9E><EFBFBD><EFBFBD>
- <20><><EFBFBD>摮埈㺭<E59F88><E3BAAD><EFBFBD><EFBFBD><E996AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E69FB4><EFBFBD>䕸PI蝑? - <20><EFBFBD><E7AE94>𠹺葉<F0A0B9BA>𤾸龫摮西<E691AE>憯唳<E686AF>敹𨰜<E695B9>讠阮蝥行<E89DA5><E8A18C>?
2. **<EFBFBD><EFBFBD>摮西<EFBFBD>隡?*嚗?<3F><EFBFBD>嚗?0銝芣<E98A9D><E88AA3><EFBFBD>嚗? - 蝘𤑳<E89D98>霈曇恣霂<E681A3>摯嚗?銝芣<E98A9D><E88AA3><EFBFBD>嚗? - 蝏蠘恣摮行䲮瘜閙<E7989C>餈啗<E9A488>隡堆<E99AA1>5銝芣<E98A9D><E88AA3><EFBFBD>嚗? - 蝏蠘恣<E8A098><E681A3><EFBFBD><EFBFBD>摯嚗?銝芣<E98A9D><E88AA3><EFBFBD>嚗?
3. **蝏澆<E89D8F><EFBFBD><E99C82> + PICO<43>𣂼<EFBFBD>**
-<><E996AB><EFBFBD><EFBFBD><E689B9><EFBFBD>0-100嚗? - <20><EFBFBD>摮衣𠶖<E8A1A3><F0A0B696><EFBFBD><EFBFBD>𣞁<EFBFBD>躰秤 <20>椬摮条<E691AE> <20><EFBFBD><EFBFBD>嚗? - PICO蝏𤘪<E89D8F><F0A498AA>𡝗<EFBFBD><F0A19D97><EFBFBD>P/I/C/O嚗?
#### 鈭支<E988AD><E694AF><EFBFBD><EFBFBD><E59A97> 撌脣<E6928C><E884A3><EFBFBD>
| <20><EFBFBD> | <20><EFBFBD><E68A92>?| <20><EFBFBD><E59581>?| <20><EFBFBD>?|
|------|--------|--------|------|
| <20><EFBFBD>隞嗡<E99A9E>隡?| <20>?| <20>?| <20>?撌脣<E6928C><E884A3>?|
| <20><EFBFBD>銝𠹺<E98A9D> | <20>?| <20>?| <20>?撌脣<E6928C><E884A3>?|
| 摰∠阮撌乩<E6928C><E4B9A9><EFBFBD>摰質”嚗?| <20>?| <20>?| <20>?撌脣<E6928C><E884A3>?|
| <20><EFBFBD>雿㯄<E99BBF>㗇𥋘 | <20>芸𢆡 | <20><EFBFBD><E586BD><EFBFBD>?| <20>?撌脣<E6928C><E884A3>?|
| <20><EFBFBD><E5AFA5><EFBFBD> | <20>?| <20>?| <20>?撌脣<E6928C><E884A3>?|
| <20><EFBFBD><E59786><EFBFBD><EFBFBD>?| <20>?| <20>?| <20>?撌脣<E6928C><E884A3>?|
| <20><>蟮敶埝﹝ | <20>?| <20>?| <20><EFBFBD> <20>唳旿摨枏歇<E69E8F><EFBFBD>嚗𪄇I<F0AA8487><49><EFBFBD> |
| 蝟餌<E89D9F>霈曄蔭 | <20>?| <20>?| <20><EFBFBD> <20><><EFBFBD><EFBFBD><E69298>?|
| <20><EFBFBD>憿菟𢒰 | <20>?| <20><EFBFBD> | <20><EFBFBD> 憭滨鍂撟喳蝱<E596B3><EFBFBD> |
| PICO<43><EFBFBD> | <20>?| <20>?| <20><EFBFBD> <20>唳旿摨枏歇<E69E8F><EFBFBD>嚗𪄇I<F0AA8487><49><EFBFBD> |
---
## <20><>儭?<3F><EFBFBD><E59786><EFBFBD>?
### <20>?撌脣<E6928C><E884A3><EFBFBD>蝘鳴<E89D98>Modules嚗?
```
<EFBFBD>𡒊垢嚗<EFBFBD><EFBFBD> 撌脣<E6928C><E884A3><EFBFBD>嚗?backend/src/modules/rvw/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> routes/index.ts # v2 API頝舐眏嚗?api/v2/rvw嚗?<3F><EFBFBD><E98EBF><EFBFBD> controllers/reviewController.ts # <20><EFBFBD><E689B9><EFBFBD><E58981>急鸌<E680A5>𤩺<EFBFBD>雿栶<E99BBF><E6A0B6><EFBFBD><EFBFBD><E8B3AD>㗇𥋘嚗?<3F><EFBFBD><E98EBF><EFBFBD> services/
<EFBFBD>? <20><EFBFBD><E98EBF><EFBFBD> reviewService.ts # <20><EFBFBD><E8A9A8>滚𦛚嚗<F0A69B9A><EFBFBD><EFBFBD>撱箝<E692B1><E7AE9D><EFBFBD>銵䕘<E98AB5>
<EFBFBD>? <20><EFBFBD><E98EBF><EFBFBD> editorialService.ts # 蝔輻漲閫<E6BCB2><E996AB><EFBFBD><EFBFBD>隡?<3F>? <20><EFBFBD><E98EBF><EFBFBD> methodologyService.ts # <20><EFBFBD>摮西<E691AE>隡?<3F>? <20><EFBFBD><E5A999><EFBFBD> utils.ts # 撌亙<E6928C><E4BA99>賣㺭
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> workers/
<EFBFBD>? <20><EFBFBD><E5A999><EFBFBD> reviewWorker.ts # pg-boss撘<73>郊隞餃𦛚憭<F0A69B9A><E686AD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> types/index.ts # TypeScript蝐餃<E89D90>摰帋<E691B0>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> __tests__/ # API瘚贝<E7989A><E8B49D>𡁏𧋦
<EFBFBD>滨垢嚗<EFBFBD><EFBFBD> 撌脣<E6928C><E884A3><EFBFBD>嚗?frontend-v2/src/modules/rvw/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> index.tsx # 璅<E79285><E288AA>亙藁
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> api/index.ts # API<50>亙藁
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> types/index.ts # 蝐餃<E89D90>摰帋<E691B0>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> styles/index.css # <20><EFBFBD><E79195><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> pages/
<EFBFBD>? <20><EFBFBD><E5A999><EFBFBD> Dashboard.tsx # 摰∠阮撌乩<E6928C><E4B9A9><EFBFBD>隞餃𦛚<E9A483>𡑒”<F0A19192><E2809D><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> components/
<20><EFBFBD><E98EBF><EFBFBD> Header.tsx # 憿萄仍嚗<E4BB8D><E59A97>隡䭾<E99AA1><E4ADBE><EFBFBD>
<20><EFBFBD><E98EBF><EFBFBD> Sidebar.tsx # 靘扯器<E689AF>誩紡<E8AAA9>? <20><EFBFBD><E98EBF><EFBFBD> TaskTable.tsx # 隞餃𦛚<E9A483>𡑒”銵冽聢
<20><EFBFBD><E98EBF><EFBFBD> TaskDetail.tsx # 隞餃𦛚霂行<E99C82><EFBFBD><E59A97>摨行辺+<2B><EFBFBD>+Word撖澆枂嚗? <20><EFBFBD><E98EBF><EFBFBD> EditorialReport.tsx # 蝔輻漲閫<E6BCB2><E996AB><EFBFBD>扳𥁒<E689B3>? <20><EFBFBD><E98EBF><EFBFBD> MethodologyReport.tsx # <20><EFBFBD>摮西<E691AE>隡唳𥁒<E594B3>? <20><EFBFBD><E98EBF><EFBFBD> AgentModal.tsx # <20><EFBFBD>雿㯄<E99BBF>㗇𥋘撘寧<E69298>
<20><EFBFBD><E5A999><EFBFBD> ScoreRing.tsx # 霂<><E99C82><EFBFBD><EFBFBD>隞?
<EFBFBD><EFBFBD><EFBFBD>穿<EFBFBD>靽萘<EFBFBD><EFBFBD>澆捆嚗㚁<EFBFBD>
backend/src/legacy/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> routes/reviewRoutes.ts # v1 API頝舐眏嚗<E79C8F><E59A97><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> controllers/reviewController.ts
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> services/reviewService.ts
Prompt嚗<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?backend/prompts/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> review_editorial_system.txt # 蝔輻漲霂<E6BCB2>摯嚗?66銵䕘<E98AB5>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> review_methodology_system.txt # <20><EFBFBD>摮西<E691AE>隡堆<E99AA1>257銵䕘<E98AB5>
<EFBFBD>唳旿摨橒<EFBFBD><EFBFBD>?撌脣<E6928C><E884A3><EFBFBD>嚗?- ReviewTask銵典歇瘛餃<E7989B><E9A483><EFBFBD>畾蛛<E795BE>selectedAgents, editorialScore, methodologyScore, methodologyStatus, picoExtract, isArchived, archivedAt
- <20>?Schema撌脰<E6928C>蝘餃<E89D98> rvw_schema嚗?026-01-10摰峕<E691B0>嚗?```
---
## <20><><><E69298>𤏸<EFBFBD>摨?
| Phase | 隞餃𦛚 | <20><EFBFBD>?| 摰峕<E691B0><E5B395><EFBFBD> |
|-------|------|------|---------|
| Phase 1 | <20>𡒊垢璅<E79285><EFBFBD>宏銝擧<E98A9D>撅?| <20>?撌脣<E6928C><E884A3>?| 2026-01-07 |
| Phase 2 | <20>唳旿摨枏<E691A8>畾菜<E795BE>撅?| <20>?撌脣<E6928C><E884A3>?| 2026-01-07 |
| Phase 3 | <20>滨垢<E6BBA8>齿<EFBFBD>嚗Êrontend-v2嚗?| <20>?撌脣<E6928C><E884A3>?| 2026-01-07 |
| Phase 4 | <20><><EFBFBD>瘚贝<E7989A>銝𦻓ug靽桀<E99DBD> | <20>?撌脣<E6928C><E884A3>?| 2026-01-10 |
| Phase 5 | <20><EFBFBD>撖澆枂嚗Áord嚗?| <20>?撌脣<E6928C><E884A3>?| 2026-01-10 |
| Phase 6 | Schema<6D>𠉛氖餈<E6B096>宏 | <20>?撌脣<E6928C><E884A3>?| 2026-01-10 |
| Phase 7 | 蝟餌<E89D9F>霈曄蔭銝𤾸<E98A9D>獢?| <20><EFBFBD> <20><><EFBFBD> | - |
| **<2A>餉恣** | - | **95%** | - |
### Phase 1-5 摰峕<E691B0><E5B395><EFBFBD>
**<2A>𡒊垢嚗㇊hase 1嚗㚁<E59A97>**
- <20>?<3F>𥕦遣 `backend/src/modules/rvw/` 璅<E79285>蝏𤘪<E89D8F>
- <20>?餈<>宏撟嗡<E6929F><E597A1>?reviewService<63><65>ditorialService<63><65>ethodologyService
- <20>?摰䂿緵<E482BF><EFBFBD>雿㯄<E99BBF>㗇𥋘嚗ìelectedAgents嚗塄ditorial/methodology/both嚗?- <20>?摰䂿緵<E482BF><EFBFBD>餈鞱<E9A488>API嚗Ê̄atchRunReviewTasks嚗?- <20>?<3F>踵揢 console.log 銝?logger <20>滚𦛚
- <20>?瘜典<E7989C> v2 API頝舐眏嚗?api/v2/rvw嚗?- <20>?摰䂿緵 pg-boss 撘<>郊隞餃𦛚憭<F0A69B9A><E686AD>嚗ǐeviewWorker嚗?
**<2A>唳旿摨橒<E691A8>Phase 2嚗㚁<E59A97>**
- <20>?瘛餃<E7989B> selectedAgents 摮埈挾嚗𠄎tring[]嚗?- <20>?瘛餃<E7989B> editorialScore 摮埈挾嚗㇅loat?嚗?- <20>?瘛餃<E7989B> methodologyScore 摮埈挾嚗㇅loat?嚗? 2026-01-10<31><EFBFBD>
- <20>?瘛餃<E7989B> methodologyStatus 摮埈挾嚗𠄎tring?嚗?- <20>?瘛餃<E7989B> picoExtract 摮埈挾嚗㇇son?嚗?- <20>?瘛餃<E7989B> isArchived<65><64>rchivedAt 摮埈挾嚗<E68CBE><E59A97><EFBFBD>𣈲<EFBFBD><F0A388B2><EFBFBD>
- <20>?雿輻鍂 prisma db push <20>峕郊<E5B395>唳㺭<E594B3><EFBFBD>
**<2A>滨垢嚗㇊hase 3嚗㚁<E59A97>**
- <20>?<3F>𥕦遣 `frontend-v2/src/modules/rvw/` 璅<E79285><E288AA><EFBFBD>蝏𤘪<E89D8F>
- <20>?摰䂿緵 Dashboard 憿菟𢒰嚗<F0A292B0><EFBFBD><EFBFBD>銵具<E98AB5><E585B7><EFBFBD><EFBFBD><EFBFBD><E589B9><EFBFBD>𤩺<EFBFBD>雿頣<E99BBF>
- <20>?摰䂿緵 TaskDetail 蝏<>辣嚗<E8BEA3>恣蝔輯<E89D94>摨行辺<E8A18C><E8BEBA><EFBFBD><EFBFBD>嗥𠶖<E597A5><F0A0B696>蔭霂<E99C82>
- <20>?摰䂿緵 EditorialReport 蝏<>辣嚗<E8BEA3>阮蝥西<E89DA5><E8A5BF><EFBFBD><EFBFBD><EFBFBD>隡唳𥁒<E594B3>𠺪<EFBFBD>
- <20>?摰䂿緵 MethodologyReport 蝏<>辣嚗<E8BEA3>䲮瘜訫郎霂<E9838E><EFBFBD><EFBFBD>嚗?- <20>?摰䂿緵 AgentModal 蝏<>辣嚗<E8BEA3><EFBFBD><EFBFBD><E8B3AD>㗇𥋘撘寧<E69298>嚗?- <20>?瘜典<E7989C><E585B8>?moduleRegistry.ts
**<2A><><EFBFBD>瘚贝<E7989A>銝𦻓ug靽桀<E99DBD>嚗㇊hase 4嚗㚁<E59A97>**
- <20>?靽桀<E99DBD><E6A180><EFBFBD>摮血<E691AE><E8A180><EFBFBD><E594AC>曄內<E69B84><EFBFBD><EFBFBD><E59A97>銵券△<E588B8>曄內"warn"<22><EFBFBD><E494B6><EFBFBD><E887AC><EFBFBD>
- <20>?靽桀<E99DBD><E6A180><EFBFBD>㗇䲮瘜訫郎<E8A8AB>嗉祕<E59789><E7A595>△銝齿遬蝷箸𥁒<E7AEB8>𢠃䔮憸?- <20>?靽桀<E99DBD> activeTab 暺䁅恕<E48185>澆紡<E6BE86><EFBFBD><E6B8A1>曄內<E69B84><EFBFBD>
- <20>?摰峕㟲瘚贝<E7989A><E8B49D>閙惣<E99699><EFBFBD><E8B3AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>雿枏恣蝔踵<E89D94>蝔?
**<2A><EFBFBD>撖澆枂嚗㇊hase 5嚗㚁<E59A97>**
- <20>?摰㕑<E691B0> docx <20>?file-saver 摨?- <20>?摰䂿緵 Word <20><>﹝撖澆枂<E6BE86><EFBFBD>
- <20>?<3F><EFBFBD>蝏𤘪<E89D8F><F0A498AA>𡝗𥁒<F0A19D97>𠺪<EFBFBD><F0A0BAAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>砌縑<E7A08C>航”<E888AA><EFBFBD><E6BDA6>阮蝥西<E89DA5><E8A5BF><EFBFBD><EFBFBD><EFBFBD><E689BC>䲮瘜訫郎霂<E9838E>摯嚗?- <20>?<3F><EFBFBD><E6A185><EFBFBD>遣霈桐蝙<E6A190><EFBFBD><E585B6><EFBFBD><E5B1B8><EFBFBD>霈?
**Schema<6D>𠉛氖餈<E6B096>宏嚗㇊hase 6嚗㚁<E59A97>**
- <20>?撠?review_tasks 銵其<E98AB5> public 餈<><EFBFBD>?rvw_schema
- <20>?<3F>湔鰵 Prisma schema 銝剔<E98A9D> @@schema <20><>
- <20>?<3F>齿鰵<E9BDBF><E9B0B5><EFBFBD> Prisma Client
- <20>?撉諹<E69289><E8ABB9><EFBFBD><EFBFBD>㗇䰻霂<E99C82><EFBCB7><EFBFBD><EFBFBD>虜撌乩<E6928C>
霂衣<EFBFBD>隞餃𦛚皜<EFBFBD><EFBFBD><EFBFBD><EFBFBD>[RVW璅<E79285><EFBFBD>宏霈<E99C88>](./04-撘<><E69298>𤏸恣<F0A48FB8>?RVW璅<E79285><EFBFBD>宏霈<E99C88>.md)
---
## <20><20><><EFBFBD><EFBFBD>韏?
### 憭滨鍂<E6BBA8><E98D82><EFBFBD><EFBFBD><E59597>?
| <20><EFBFBD> | 雿滨蔭 | <20><EFBFBD>?|
|------|------|------|
| **LLM蝵穃<E89DB5>** | `@/common/llm/LLMFactory` | AI霂<49>摯 |
| **<2A><>﹝憭<EFB99D><E686AD>** | `ExtractionClient` | Word/PDF<44><46>𧋦<EFBFBD>𣂼<EFBFBD> |
| **摮睃<E691AE>** | `@/common/storage` | <20><>辣摮睃<E691AE> |
| **<2A><EFBFBD>** | `@/common/logging` | 蝏𤘪<E89D8F><F0A498AA>𡝗𠯫敹?|
| **隞餃𦛚<E9A483><EFBFBD>** | `jobQueue` | 撘<>郊隞餃𦛚憭<F0A69B9A><E686AD> |
### LLM璅<E79285>
| 璅<E79285> | <20><EFBFBD>?| 霂湔<E99C82> |
|------|------|------|
| DeepSeek-V3 | 暺䁅恕 | <20>找遠瘥娪<E798A5>嚗峕綫<E5B395><E7B6AB><EFBFBD><EFBFBD>𥕦撩 |
| DeepSeek-R1 | 憭<><E686AD>?| 瘛勗漲<E58B97><EFBFBD> |
| Qwen3-72B | 憭<><E686AD>?| 銝剜<E98A9D><E5899C><EFBFBD>圾憟?|
---
## <20><> <20><EFBFBD><E8A9A8><EFBFBD>
### <20><><EFBFBD><E79899>獢?
- [<5B><EFBFBD><E7AE84><EFBFBD>摰∠阮蝟餌<E89D9F>MVP PRD](./01-<2D><><EFBFBD><E79899><EFBFBD>?<3F><EFBFBD><E7AE84><EFBFBD>摰∠阮蝟餌<E89D9F>%20MVP%20鈭批<E988AD><E689B9><EFBFBD><EFBFBD><E79899>獢?md)
- [<5B><EFBFBD>摰∠阮V7<56><EFBFBD>](./01-<2D><><EFBFBD><E79899><EFBFBD>?<3F><EFBFBD>摰∠阮V7.html) - <20>舐凒<E88890><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
### 撘<><E69298><EFBFBD>獢?
- [餈<>宏霈<E99C88>嚗ǒ2.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>](./04-撘<><E69298>𤏸恣<F0A48FB8>?RVW璅<E79285><EFBFBD>宏霈<E99C88>.md) 漎<><E6BC8E> **銝餉<E98A9D><EFBFBD><E69298><EFBFBD>獢?*
### <20><><EFBFBD><EFBFBD><EFBFBD>獢?
- [<5B><EFBFBD>蝟餌<E89D9F><E9A48C><EFBFBD><EFBFBD>舀𨰫摨閙𥁒<E99699>𠺖(../../00-憿寧𤌍璁<F0A48C8D>膩/<2F><EFBFBD>蝟餌<E89D9F><E9A48C><EFBFBD><EFBFBD>舀𨰫摨閙𥁒<E99699>?md) - Line 578-748
- [鈭穃<E988AD><E7A983><EFBFBD><E7AC94>𤏸<EFBFBD><F0A48FB8><EFBFBD>(../../04-撘<><E69298>𤏸<EFBFBD><F0A48FB8>?08-鈭穃<E988AD><E7A983><EFBFBD><E7AC94>𤏸<EFBFBD><F0A48FB8>?md)
- [蝟餌<E89D9F><E9A48C><EFBFBD><E59786><EFBFBD><EFBFBD>霈曇恣](../../00-蝟餌<E89D9F><E9A48C><EFBFBD>霈曇恣/01-蝟餌<E89D9F><E9A48C><EFBFBD><E59786><EFBFBD><EFBFBD>霈曇恣.md)
### Prompt<70><74>
- [蝔輻漲閫<E6BCB2><E996AB><EFBFBD><EFBFBD>隡唳<E99AA1><E594B3><EFBFBD>(./蝔輻漲閫<E6BCB2><E996AB><EFBFBD><EFBFBD>隡唳<E99AA1><E594B3>?txt)
- [蝔蹂辣<E8B982><EFBFBD>摮西<E691AE>隡唳<E99AA1><E594B3><EFBFBD>(./蝔蹂辣<E8B982><EFBFBD>摮西<E691AE>隡唳<E99AA1><E594B3>?txt)
---
## <20>㴓 敹恍<E695B9><EFBFBD>憪?
### 霈輸䔮摰∠阮璅<E79285>
1. **<2A>臬𢆡<E887AC>𡒊垢**
```bash
cd backend
npm run dev
```
2. **<2A>臬𢆡<E887AC>滨垢嚗<E59EA2><EFBFBD>?frontend-v2嚗?*
```bash
cd frontend-v2
npm run dev
```
3. **霈輸䔮摰∠阮憿菟𢒰**
- <20><EFBFBD> `http://localhost:3000`
- <20>孵稬憿園<E686BF>撖潸⏛<E6BDB8><EFBFBD> **"憸<>恣蝔?** <20><>
- <20>𣇉凒<F0A38789>亥挪<E4BAA5>?`http://localhost:3000/rvw`
4. **瘚贝<E7989A><EFBFBD><E7989A>**
- <20>孵稬"銝𠹺<E98A9D>蝔蹂辣"<22>厰僼
- <20>㗇𥋘Word/PDF<44><46>﹝嚗<EFB99D>楆5MB嚗? - <20>㗇𥋘<E39787><EFBFBD>雿橒<E99BBF>蝔輻漲閫<E6BCB2><E996AB><EFBFBD>?<3F><EFBFBD>摮?銝方<E98A9D><E696B9><EFBFBD><EFBFBD><EFBFBD>
- <20>孵稬"餈鞱<E9A488>"<22>厰僼
- 蝑匧<E89D91>AI霂<49>摯摰峕<E691B0><EFBFBD>漲1-2<><32><EFBFBD>嚗? - <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
### API瘚贝<E7989A><EFBFBD><EFBFBD>?v2 API嚗?
```http
### <20><EFBFBD>隞餃𦛚<E9A483>𡑒”
GET http://localhost:3001/api/v1/rvw/tasks
### <20>厩𠶖<E58EA9><F0A0B696><EFBFBD><EFBFBD>?GET http://localhost:3001/api/v1/rvw/tasks?status=pending
### 銝𠹺<E98A9D>蝔蹂辣
POST http://localhost:3001/api/v1/rvw/tasks
Content-Type: multipart/form-data
# file: <20><>
# selectedAgents: ["editorial", "methodology"]
### 餈鞱<E9A488><E99EB1>蓥葵隞餃𦛚
POST http://localhost:3001/api/v1/rvw/tasks/{{taskId}}/run
Content-Type: application/json
{"selectedAgents": ["editorial", "methodology"]}
### <20><EFBFBD>餈鞱<E9A488>隞餃𦛚
POST http://localhost:3001/api/v1/rvw/tasks/batch-run
Content-Type: application/json
{"taskIds": ["id1", "id2"], "selectedAgents": ["editorial"]}
### <20><EFBFBD>隞餃𦛚霂行<E99C82>
GET http://localhost:3001/api/v1/rvw/tasks/{{taskId}}
### <20><EFBFBD><E79195><EFBFBD>
GET http://localhost:3001/api/v1/rvw/tasks/{{taskId}}/report
```
### <20><EFBFBD>API嚗<49><E59A97><EFBFBD><EFBFBD><EFBFBD>摰對<E691B0>
```http
### 𠹺<EFBFBD><EFBFBD>API?POST http://localhost:3001/api/v1/review/upload
Content-Type: multipart/form-data
```
---
## <20>𩤃<EFBFBD> 瘜冽<E7989C>鈭钅★
### 撖寞鰵AI<41><EFBFBD>
1. <20>?**<2A><EFBFBD><E8A9A8><EFBFBD>撌脣<E6928C><E884A3>?*嚗𡁜<E59A97><F0A1819C>𡒊垢撌脰<E6928C>蝘餃<E89D98><E9A483>唳沲<E594B3><E6B2B2><EFBFBD><EFBFBD>舀迤撣訾蝙<E8A8BE>?2. <20>?**撌脤<E6928C><E884A4>𣂼<EFBFBD> frontend-v2**嚗𡁻<E59A97><EFBFBD>憿園<E686BF>撖潸⏛<E6BDB8>?憸<>恣蝔?餈𥕦<E9A488>
3. <20>?**v2 API 撌脣停蝏?*嚗?api/v2/rvw/* 頝舐眏<E88890>舐鍂
4. <20>?**<2A>萄儐鈭穃<E988AD><E7A983><EFBFBD><E8A098>?*嚗帋蝙<E5B88B>?logger <20>滚𦛚<E6BB9A>蹂誨 console.log
5. <20>𩤃<EFBFBD> **靽萘<E99DBD><E89098>你PI**嚗鯝1頝舐眏靽脲<E99DBD><E884B2>澆捆嚗峕𣈲<E5B395><F0A388B2><EFBFBD>滨垢
### 撌脣<E6928C><E884A3>鞉㺿<E99E89>?
| <20><EFBFBD> | <20><EFBFBD><EFBFBD> | <20><EFBFBD><EFBFBD> | <20><EFBFBD>?|
|------|--------|--------|------|
| <20><EFBFBD> | console.log | logger<65>滚𦛚 | <20>?撌脣<E6928C><E884A3>?|
| <20><EFBFBD>霈方<E99C88> | Mock<63><EFBFBD>ID | getUserId(request) | <20>?撌脣<E6928C><E884A3>?|
| <20><EFBFBD>雿㯄<E99BBF>㗇𥋘 | <20>芸𢆡 | <20><EFBFBD><E586BD><EFBFBD>?| <20>?撌脣<E6928C><E884A3>?|
| <20><EFBFBD><E5AFA5><EFBFBD> | <20>?| batchRunReviewTasks | <20>?撌脣<E6928C><E884A3>?|
### 敺<><E695BA>蝏剜㺿<E5899C>?
| <20><EFBFBD> | 敶枏<E695B6> | <20><EFBFBD> | 隡睃<E99AA1>蝥?|
|------|------|------|--------|
| Schema雿滨蔭 | <20>?rvw_schema | - | <20>?撌脣<E6928C><E884A3>?|
| 隞餃𦛚憭<F0A69B9A><E686AD> | <20>?pg-boss | - | <20>?撌脣<E6928C><E884A3>?|
| <20><EFBFBD>撖澆枂 | <20>?Word (.docx) | PDF隡睃<E99AA1> | P3 |
---
## <20><> 撉峕𤣰<E5B395><F0A4A3B0><EFBFBD>
<EFBFBD>寞旿MVP PRD嚗屸<E59A97><E5B1B8><EFBFBD><E59786><EFBFBD><EFBFBD>銝页<E98A9D>
1. **瘚<><E7989A><EFBFBD>?*嚗𡁶鍂<F0A181B6><EFBFBD><E79181>𣂼<EFBFBD>銝𠹺<E98A9D>5銝枉DF嚗<46><EFBFBD><EFBFBD><E79285>餈鞱<E9A488>嚗𣬚<E59A97>敺?<3F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E59786><EFBFBD><EFBFBD><EFBFBD>銝?撌脣<E6928C><E884A3>?
2. **<EFBFBD><EFBFBD><EFBFBD>?*嚗? - 銝𠹺<E98A9D><EFBFBD><EFBFBD><E89DAD><EFBFBD><EFBFBD><E8AAA9>?<3F><EFBFBD>蝏栞捏"<22><>阮隞塚<E99A9E><EFBFBD><E996AB><EFBFBD>扳惣<E689B3><EFBFBD><EFBFBD><EFBFBD>仿<EFBFBD>
- 銝𠹺<E98A9D><EFBFBD><EFBFBD><E89DAD><EFBFBD>𤩺毽瘛?t璉<74>撉?<3F>?<3F>⊥䲮璉<E4B2AE>撉?<3F><>阮隞塚<E99A9E><E5A19A><EFBFBD>摮行惣<E8A18C><EFBFBD><EFBFBD><EFBFBD>?摮条<E691AE>"<22>?<3F>躰秤"
3. **<EFBFBD>惩援皞?*嚗朞<E59A97>蝏凋<E89D8F>隡?0銝芣<E98A9D>隞塚<E99A9E>蝟餌<E89D9F>銝滚㨃甇鳴<E79487>銝滨蒾撅?
---
## <20><> <20>芣䔉閫<E49489><E996AB>
### <20>?撌脣<E6928C><E884A3><EFBFBD>2026-01-07 ~ 2026-01-10嚗?
- [x] <20><EFBFBD><EFBFBD><EFBFBD>?modules/rvw嚗<77><E59A97>蝡荔<E89DA1>
- [x] <20><EFBFBD><EFBFBD><EFBFBD>?modules/rvw嚗<77><E59A97>蝡?frontend-v2嚗?- [x] <20><EFBFBD>MVP<56><EFBFBD><E595A3><EFBFBD><E8B89D><EFBFBD>銝𠹺<E98A9D><F0A0B9BA><EFBFBD>極雿𨅯蝱<F0A885AF><E89DB1><EFBFBD><EFBFBD><E8B3AD>㗇𥋘嚗?- [x] 鈭穃<E988AD><E7A983><EFBFBD>㺿<EFBFBD>𩤃<EFBFBD>logger<65>滚𦛚嚗?- [x] v2 API 頝舐眏瘜典<E7989C>
- [x] <20>唳旿摨枏<E691A8>畾菜<E795BE>撅?- [x] pg-boss撘<73>郊隞餃𦛚憭<F0A69B9A><E686AD>嚗?026-01-10嚗?- [x] Word<72><EFBFBD>撖澆枂嚗?026-01-10嚗?- [x] <20><EFBFBD>摮血<E691AE><E8A180>唳遬蝷箔耨憭㵪<E686AD>2026-01-10嚗?- [x] <20>閙惣<E99699><EFBFBD>摰∠阮<E288A0>曄內靽桀<E99DBD>嚗?026-01-10嚗?- [x] Schema餈<61><EFBFBD>?rvw_schema嚗?026-01-10嚗?
### <20>𡒊賒<F0A1928A><E8B392>𧋦
- [ ] PDF<44><EFBFBD>撖澆枂隡睃<E99AA1>
- [ ] PICO<43><EFBFBD>UI摰䂿緵
- [ ] <20><>蟮敶埝﹝UI摰䂿緵
- [ ] <20><EFBFBD>憿菟𢒰嚗<F0A292B0>𡠺蝡衤漣<E8A1A4><E6BCA3>𧒄嚗?- [ ] 摰∠阮鈭箇恣<E7AE87><E681A3>頂蝏?- [ ] 憭朞蔭摰∠阮瘚<E998AE><E7989A>
- [ ] <20><EFBFBD>摨梶恣<E6A2B6>?- [ ] <20><EFBFBD>鈭批<E988AD><E689B9><EFBFBD>
---
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧋦嚗?* v3.2
**<EFBFBD><EFBFBD><EFBFBD>擧凒<EFBFBD><EFBFBD>** 2026-01-10
**敶枏<E695B6><E69E8F><EFBFBD><E59786><EFBFBD>** <20>?Phase 1-6 摰峕<E691B0>嚗峕芋<E5B395>?5%<25>舐鍂嚗玺chema撌脤<E6928C>蝳?
**銝衤<E98A9D>甇伐<E79487>** <20>煺漣<E785BA><EFBFBD><E887AC>函蔡瘚贝<E7989A>