Files
AIclinicalresearch/docs/03-业务模块/DC-数据清洗整理/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

725 lines
28 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.
# DC<44>唳旿皜<E697BF><E79A9C><EFBFBD><EFBFBD><E79285> - 敶枏<E695B6><E69E8F><EFBFBD><E59786><EFBFBD><EFBFBD><E69298><EFBFBD><E78390>?
> **<2A><><EFBFBD><EFB99D>𧋦嚗?* v3.4
> **<2A>𥕦遣<F0A595A6><EFBFBD>嚗?* 2025-11-28
> **蝏湔擪<E6B994><E693AA><EFBFBD>** DC璅<E79285><EFBFBD><E69298>穃𣪧<E7A983>?
> **<2A><><EFBFBD>擧凒<E693A7><EFBFBD>** 2025-12-22 <20><> **Tool C撘<43><EFBFBD><EFBFBD>+<2B><EFBFBD>隡睃<E99AA1>摰峕<E691B0>嚗?*
> **<2A>滚之<E6BB9A>𣬚<EFBFBD>蝣𡢅<E89DA3>** Tool C Postgres-Only撘<79><EFBFBD><EFBFBD><E59786><EFBFBD>?+ <20><EFBFBD>隡睃<E99AA1>嚗?99%嚗? 憭𡁏<E686AD><F0A1818F><EFBFBD><EFBFBD>?
> **<2A><><EFBFBD><EFBFBD>嚗?* <20>齿<EFBFBD><E79285><E288AA><EFBFBD><E7AC94><EFBFBD><E59786><EFBFBD>霈啣<E99C88><EFBFBD><E69298><EFBFBD>蝔?
---
## <20>𩤃<EFBFBD> <20><EFBFBD>鈭衤辣霈啣<E99C88>
### 隞<><E99A9E>仃鈭衤辣嚗?025-11-28嚗?
**鈭衤辣<E8A1A4>讛膩**嚗?- <20>?025-11-27撘<37><E69298>𤑳<EFBFBD>DC璅<E79285>Tool B隞<42><E99A9E><EFBFBD><E691B0>
- <20><EFBFBD>嚗鋴ursor銝湔𧒄蝻枏<E89DBB>仃嚗䔶誨<E494B6><E8AAA8>𧊋<EFBFBD>𦠜𧒄<F0A6A09C>𣂷漱<F0A382B7>蚣it
- 敶勗<E695B6><E58B97><EFBFBD>凒嚗? - <20>?<3F><><EFBFBD>农ervice撅<65><EFBFBD><E8AAA8><EFBFBD>4銝芣<E98A9D><E88AA3><EFBFBD>
- <20>?Controller撅<72><EFBFBD>? - <20>?Routes<65>滨蔭
- <20>?<3F>唳旿摨栞<E691A8>蝘艋QL<51><4C>辣嚗Ǒ20251127_add_dc_tool_b_tables/migration.sql`銝箇征嚗? - <20>?霈曇恣<E69B87><E681A3>﹝靽萘<E99DBD>嚗㇊RD<52><44><EFBFBD><EFBFBD>航挽霈<E99C88><EFBD9E>PI霈曇恣<E69B87><E681A3><EFBFBD><EFBFBD>霈曇恣<E69B87><E681A3>I<EFBFBD><EFBFBD>嚗? - <20>?撘<><E69298>𤏸扇敶蓥<E695B6><E893A5><EFBFBD>Day2<79><32>ay3摰峕<E691B0><E5B395><EFBFBD>嚗? - <20>?Prisma Schema摰帋<E691B0>靽萘<E99DBD>嚗?銝芾”璅<E79285>嚗?
**<2A>滚遣撌乩<E6928C>**嚗?- <20>?2025-11-28嚗𡁜<E59A97><F0A1819C><EFBFBD>撱箏<E692B1>蝡臭誨<E887AD><E8AAA8><EFBFBD>100%<25><EFBFBD><E8A098><EFBFBD>嚗?- <20>?Git<69>𣂷漱嚗𡁻俈甇<E79487>甈∩腺憭?- <20>𩤃<EFBFBD> <20>唳旿摨栞”<E6A09E><EFBFBD><E59786><EFBFBD>**<2A>霈?*嚗<><E59A97>瘜閗<E7989C><E99697>仿<EFBFBD><EFBFBD><E99C82><EFBFBD><EFBFBD>𤩺𧒄<F0A4A9BA><EFBFBD>`npx prisma db push`<EFBFBD>𥕦遣嚗?
**<EFBFBD>躰悌銝擧㺿餈?*嚗?- <20>?<3F>湔鰵鈭<E9B0B5>it<69>𣂷漱閫<E6BCB1><E996AB>嚗𡁜撩<F0A1819C><EFBFBD><E59786><EFBFBD>鈭?- <20>?皜<><E79A9C><EFBFBD><E988AD><EFBFBD>㗇㺭<E39787><EFBFBD><EFBFBD><E79289><EFBFBD><E4BAA5>穿<EFBFBD><EFBFBD>垢颲枏枂<E69E8F><EFBFBD><E6A185><EFBFBD><EFBFBD><E996AB>嚗?- <20>𩤃<EFBFBD> **<EFBFBD>喲睸<EFBFBD><EFBFBD>**嚗鋴ursor<6F><72>owerShell蝏<6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>曄內颲枏枂嚗<E69E82><EFBFBD><EFBFBD><E79488>霂訫仃韐?
---
## <20><> <20><>﹝霂湔<E99C82>
<EFBFBD><EFBFBD><EFBFBD>糓DC<EFBFBD>唳旿皜<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?*<2A><EFBFBD><E7AC94><EFBFBD><E59786><EFBFBD>?*嚗<><E59A97>摰噼扇敶蓥誨<E893A5><E8AAA8>腺憭晞<E686AD><E6999E><EFBFBD>撱箄<E692B1>蝔见<E89D94>敶枏<E695B6><E69E8F><EFBFBD><E7AC94><EFBFBD><E59785>?
**銝𤾸<E98A9D>隞𡝗<E99A9E><EFBFBD><E78DA2><EFBFBD>喟頂**嚗?- **<EFBFBD><EFBFBD><EFBFBD><EFBFBD>00-璅<E79285>敶枏<E695B6><E69E8F><EFBFBD><E59786><EFBFBD>**嚗阳hat is嚗<73><E59A97>摰䂿𠶖<E482BF><F0A0B696><EFBFBD><EFBFBD><EFBFBD>𡠺<EFBFBD><EFBFBD>嚗?- **撘<><E69298>𤏸恣<F0A48FB8><EFBFBD>獢?*嚗阳hat to do嚗<6F><E59A97><E99C88>嚗?- **撘<><E69298>𤏸扇敶閙<E695B6>獢?*嚗阳hat done嚗<65><E59A97><EFBFBD>砌腺憭勗<E686AD><E58B97><EFBFBD>ay2-3霈啣<E99C88>嚗?- **<EFBFBD><EFBFBD><EFBFBD>航挽霈⊥<EFBFBD>獢?*嚗䥅ow to do嚗<6F>挽霈⊥䲮獢<E4B2AE><E78DA2>
---
## <20>㴓 璅<E79285><EFBFBD>
### <20><EFBFBD><E8A9A8><EFBFBD>
DC<EFBFBD>唳旿皜<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𣂷<EFBFBD>4銝芣惣<EFBFBD>賢極<EFBFBD><EFBFBD>撣桀𨭌<EFBFBD>𠉛弦鈭箏<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>硋龫<EFBFBD>埈㺭<EFBFBD><EFBFBD>?
### 敶枏<E695B6><E69E8F><EFBFBD>?- **撘<><E69298>煾𧫴畾?*嚗尠<E59A97> **Tool B MVP摰峕<E691B0>** + <20>?**Tool C MVP摰峕<E691B0>** + <20><> **Postgres-Only <20><EFBFBD><E59786><EFBFBD><EFBFBD><E683A9>?*
- **撌脣<E6928C><E884A3>𣂼<EFBFBD><F0A382BC>?*嚗? - <20>?Portal嚗𡁏惣<F0A1818F>賣㺭<E8B3A3><EFBFBD>瘣堒極雿𨅯蝱嚗?025-12-02嚗? - <20>?Tool B <20>𡒊垢嚗𡁶<E59A97><F0A181B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>箏膥鈭綽<E988AD>2025-11-28<32>滚遣摰峕<E691B0>嚗? - <20>?Tool B <20>滨垢嚗?甇亙極雿𨀣<E99BBF>摰峕㟲摰䂿緵嚗?025-12-03嚗? - <20>?Tool B API撖寞𦻖嚗?銝芰垢<E88AB0><EFBFBD><E5ADB5><EFBFBD><E588B8><EFBFBD>2025-12-03嚗? - <20>?**<2A><> Tool B Postgres-Only <20><EFBFBD><E59786><EFBFBD>?*嚗?025-12-13嚗釶hase 7嚗㚁<E59A97>
- <20>?<3F><EFBFBD><E7AE84>峕芋撘誩<E69298><E8AAA9><EFBFBD><EFBFBD><50<35>∠凒<E288A0><EFBFBD><E4BC90>?0<><EFBFBD><E28ABF><EFBFBD>
- <20>?隞餃𦛚<E9A483><F0A69B9A><EFBFBD><EFBFBD><EFBFBD>嚗?000<30><EFBFBD>20<32><EFBFBD>
- <20>?<3F><EFBFBD>蝏凋<E89D8F><E5878B><EFBFBD><EFBFBD>𣈲<EFBFBD><F0A388B2><EFBFBD>園𡢿<E59C92>𣂼<EFBFBD>隞餃𦛚嚗? - <20>?Platform撅<6D><E69285><EFBFBD>蝞∠<E89D9E>嚗àob.data摮睃<E691AE>嚗? - <20>?Worker瘜典<E7989C>嚗ỀxtractionWorker.ts嚗? - <20>?**Tool C 摰峕㟲摰䂿緵**嚗?025-12-06 ~ 2025-12-22嚗㚁<E59A97>
- <20>?Python敺格<E695BA><E6A0BC><EFBFBD>~2400銵䕘<E98AB5>Day 1 + NA憭<41><E686AD>隡睃<E99AA1> + 憭𡁏<E686AD><F0A1818F><EFBFBD><EFBFBD><EFBFBD>
- <20>?Node.js<6A>𡒊垢嚗ǚ3900銵䕘<E98AB5>Day 2-3 + Day 5-10 + 撘<><EFBFBD><EFBFBD> + Worker嚗? - <20>?<3F>滨垢<E6BBA8>屸𢒰嚗ǚ4500銵䕘<E98AB5>Day 4-10 + React Query頧株砭 + 餈𥕦漲<F0A595A6><EFBFBD>
- <20>?**<2A>𡁶鍂 Chat 蝏<>辣**嚗ǚ968銵䕘<E98AB5>Day 5嚗咓<E59A97>? - <20>?7銝芸<E98A9D><E88AB8><EFBFBD><E8B3A3><EFBFBD>Day 6嚗? - <20>?NA憭<41><E686AD>隡睃<E99AA1>嚗?銝芸<E98A9D><E88AB8><EFBFBD>Day 7嚗? - <20>?Pivot<6F>烾◇摨譍<E691A8><E8AD8D><EFBFBD>Day 7-8嚗? - <20>?霈∠<E99C88><E288A0>埈䲮獢㇂嚗<E38782><E59A97><EFBFBD><EFBFBD><E585B8>齿<EFBFBD><EFBFBD><E692A0>Day 7-8嚗? - <20>?**UX<55>滚之<E6BB9A><EFBFBD>**嚗<><E59A97>憭渡<E686AD><E6B8A1>?銵<>噡/皛𡁜𢆡<F0A1819C>∩耨憭?<3F><EFBFBD><E588B8>唳旿嚗㷉ay 8嚗? - <20>?**憭𡁏<E686AD><F0A1818F><EFBFBD><EFBFBD>?*嚗<><EFBFBD>?+2嚗峕惣<E5B395><EFBFBD><EFBFBD><E89D8F><EFBFBD><EFBFBD>憿箏<E686BF>靽脲<E99DBD>嚗㷉ay 9嚗? - <20>?**Postgres-Only撘<79><EFBFBD><EFBFBD>**嚗<><E59A97>隡牐<E99AA1><EFBFBD>𧒄嚗𡦀orker<65>𤾸蝱憭<E89DB1><E686AD>嚗㷉ay 10嚗? - <20>?**<2A><EFBFBD>隡睃<E99AA1>**嚗Ếlean data蝻枏<E89DBB>嚗?99%<25>埈𧒄嚗㷉ay 10嚗? - **<EFBFBD>餉恣嚗鰺16500銵?* | **摰峕<E691B0>摨佗<E691A8>99%**
- **<2A>滚之<E6BB9A>𣂼停**嚗? - <20><> **<EFBFBD>滨垢<EFBFBD>𡁶鍂<EFBFBD><EFBFBD><EFBFBD>遣霈曉<EFBFBD><EFBFBD>?*
- <20>?<3F><EFBFBD> Ant Design X <20>?Chat 蝏<>辣摨? - <20><> **Platform-Only <20><EFBFBD><E59786>𥟇鰵**嚗<><E59A97> ASL 蝏煺<E89D8F><E785BA><EFBFBD>嚗? - <20><> <20><EFBFBD><E887AC><EFBFBD> AIA<49><41>KB<4B><42>ool C 蝑㗇芋<E39787>? - <20>?**NA憭<41><E686AD><EFBFBD>券𢒰<E588B8><EFBFBD>**嚗𡁏㺭<F0A1818F><EFBFBD><EFBFBD><E692A0><EFBFBD><EFBFBD>蝞晞<E89D9E><E6999E>辺隞嗥<E99A9E><E597A5>𣂼<EFBFBD><F0A382BC><EFBFBD><EFBFBD><EFBFBD>? - <20>?**Pivot隡睃<E99AA1>**嚗帋<E59A97><E5B88B>蹱𧊋<E8B9B1><EFBFBD>+<2B><EFBFBD><E7AC94>烾◇摨? - <20>?**UX<55>滚之<E6BB9A><EFBFBD>**嚗𡁜<E59A97>憭渡<E686AD><E6B8A1><EFBFBD>Excel憌擧聢嚗? 銵<><EFBFBD>?+ 皛𡁜𢆡<F0A1819C>∩耨憭?+ <20><EFBFBD><E588B8>唳旿憭<E697BF><E686AD>
- **<2A><EFBFBD><E88AB8><EFBFBD><E7A983>?*嚗? - <20>?Tool A嚗𡁜龫<F0A1819C>埈㺭<E59F88><EFBFBD>蝥批<E89DA5>撟嗅膥
- <20>?蝻箏仃<E7AE8F>銵伐<E98AB5><E4BC90><EFBFBD><EFBFBD>?銝凋<E98A9D><E5878B>?隡埈㺭/<2F><EFBFBD><E7AE8F><EFBFBD>
- <20>?憭𡁻<E686AD><F0A181BB>嚗㇈ICE嚗?- **璅<E79285><E288AA><EFBFBD>**嚗鋽eepSeek-V3 + Qwen-Max <20>峕芋<E5B395>衤漱<E8A1A4><EFBFBD><EFBFBD><E99C82>撌脤<E6928C><EFBFBD><EFBFBD><EFBFBD>
- **<2A>函蔡<E587BD><EFBFBD>?*嚗尠<E59A97> <20><EFBFBD>蝡臬<E89DA1><E887AC>游虾<E6B8B8><EFBFBD><E58981>唳旿摨栞”撌脩霈文<E99C88><E69687>典僎甇<E5838E>虜撌乩<E6928C>
- **撌脩䰻<E884A9><EFBFBD>**嚗?銝芣<E98A9D><E88AA3><EFBFBD>箏𦛚嚗<F0A69B9A><E59A97>`07-<2D><><EFBFBD><EFBFBD>箏𦛚/Tool-B<><42><EFBFBD><EFBFBD>箏𦛚皜<F0A69B9A><E79A9C>.md`嚗?
### <20>喲睸<E596B2>𣬚<EFBFBD>蝣?
**Tool B - <20><><EFBFBD>蝏𤘪<E89D8F><F0A498AA>𡝗㦤<F0A19D97>其犖**:
- <20>?2025-11-22嚗?*Day 2摰峕<E691B0>**嚗<><E59A97><E79488><E288AA>𡢅<EFBFBD>
- <20>唳旿摨廍chema霈曇恣嚗?銝芾”嚗? - 4銝芣<E98A9D><E88AA3>⊿爸<E28ABF><EFBFBD>撱? - LLMFactory瘚贝<E7989A><E8B49D><EFBFBD>
- <20>?2025-11-23嚗?*Day 3摰峕<E691B0>**嚗<><E59A97><E79488><E288AA>𡢅<EFBFBD>
- HealthCheckService摰峕㟲摰䂿緵
- TemplateService摰峕㟲摰䂿緵嚗?銝芷<E98A9D>霈暹芋<E69AB9><EFBFBD>
- API瘚贝<E7989A><E8B49D><EFBFBD>
- <20>?2025-11-27嚗?*隞<><E99A9E><EFBFBD><E691B0>仃**
- <20>?2025-11-28嚗?*隞<><E99A9E><EFBFBD>滚遣摰峕<E691B0>**
- 4銝杵ervice<63>滚遣嚗𠃍ealthCheck<63><6B>emplate<74><65>ualModel<65><6C>onflict嚗? - 1銝杭ontroller<65>滚遣嚗?銝服PI蝡舐<E89DA1>嚗? - Routes<65><73><EFBFBD><EFBFBD>唬蜓摨𠉛鍂
- Git<69>𣂷漱靽脲擪
- <20>?2025-12-02嚗?*Portal憿菟𢒰摰峕<E691B0>**
- 撌乩<E6928C><E4B9A9><EFBFBD><E59581><EFBFBD><EFBCB7><EFBFBD><E7A983>? - UI隡睃<E99AA1><EFBFBD><EFBFBD><EFBFBD><E6BB9A>贝挽霈? - 銝𡒊頂蝏罸▲<E7BDB8>典紡<E585B8><EFBFBD><E88AB7>?- <20>?2025-12-03嚗?*Tool B MVP<56><50>𧋦摰峕<E691B0>** <20><>
- <20>滨垢5甇亙極雿𨀣<E99BBF>嚗ǚ1400銵䔶誨<E494B6><E8AAA8><EFBFBD>
- API摰峕㟲撖寞𦻖嚗㇊hase 1-5嚗? - <20><EFBFBD>LLM靚<4D>鍂撉諹<E69289><E8ABB9><EFBFBD>
- <20>峕芋<E5B395>𧢲<EFBFBD><F0A7A2B2>𡝗<EFBFBD><F0A19D97><EFBFBD><EFBFBD>霂? - Excel撖澆枂<E6BE86><EFBFBD><E8A098>舐鍂
**Tool C - 蝘𤑳<E89D98><F0A491B3>唳旿蝻𤥁<E89DBB><F0A4A581>?*:
- <20>?2025-12-06嚗?*Day 1摰峕<E691B0>** - Python敺格<E695BA><E6A0BC>?<3F><>
- <20>?2025-12-06嚗?*Day 2摰峕<E691B0>** - Session蝞∠<E89D9E>
- <20>?2025-12-07嚗?*Day 3摰峕<E691B0>** - AI隞<49><E99A9E><EFBFBD><EFBFBD><EFBFBD>
- <20>?2025-12-07嚗?*Day 4摰峕<E691B0>** - <20>滨垢<E6BBA8><EFBFBD><EFBFBD>
- <20>?2025-12-07嚗?*Day 5摰峕<E691B0>** - AI Chat<61>踎 + Ant Design X <20><><EFBFBD> <20><>
- <20>?2025-12-07嚗?*UI隡睃<E99AA1>摰峕<E691B0>** - 7銝芷䔮憸䀝耨憭?- <20>?2025-12-07嚗?*MVP 摰峕<E691B0>** - 蝡臬<E89DA1>蝡臬虾<E887AC>?<3F>?- <20>?2025-12-08嚗?*Day 6摰峕<E691B0>** - 7銝芸<E98A9D><E88AB8><EFBFBD><E8B3A3><EFBFBD><E6A180>?<3F><>
- <20>?2025-12-09嚗?*Day 7摰峕<E691B0>** - 霈∠<E99C88><E288A0>埈䲮獢㇂ + UX隡睃<E99AA1>
- <20>?2025-12-10嚗?*Day 8摰峕<E691B0>** - UX<55>滚之<E6BB9A><EFBFBD> <20><>
- Python敺格<E695BA><E6A0BC><EFBFBD>撅𤏪<E69285>~1800銵䕘<E98AB5><E49598>俏A憭<41><E686AD> + <20><EFBFBD><E588B8>唳旿憭<E697BF><E686AD>嚗? - Node.js<6A>𡒊垢隡睃<E99AA1><EFBFBD><E59A97><EFBFBD><EFBFBD><E8AE9B><EFBFBD>5憭<35><EFBFBD><E8AAA8><EFBFBD><EFBFBD>
- <20>滨垢<E6BBA8>屸𢒰摰<F0A292B0><E691B0><EFBFBD><E59A97><EFBFBD>?銵<>噡/皛𡁜𢆡<F0A1819C>?<3F><EFBFBD><E588B8>㰘蝸嚗? - 7銝芸<E98A9D><E88AB8><EFBFBD><E8B3A3><EFBFBD>蝑偦<E89D91><EFBFBD><E589B9><EFBFBD><EFBFBD><E692A0><EFBFBD><EFBFBD>蝞晞<E89D9E><E6999E>辺隞嗚<E99A9E><E5979A><EFBFBD>NA<4E><41>恣蝞𨰜<E89D9E><F0A8B09C>ivot嚗? - 4銝芸<E98A9D><E88AB8>賣𣈲<E8B3A3><F0A388B2>A憭<41><E686AD><EFBFBD><E59A97><EFBFBD><E692A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E589B9><EFBFBD>蝞晞<E89D9E><E6999E>辺隞塚<E99A9E>
- Pivot隡睃<E99AA1><EFBFBD><E59A97><EFBFBD>蹱𧊋<E8B9B1><EFBFBD>+<2B><EFBFBD><E7AC94>烾◇摨𧶏<E691A8>
- 霈∠<E99C88><E288A0>埈䲮獢㇂嚗<E38782><E59A97><EFBFBD><EFBFBD><E585B8>齿<EFBFBD>撠?+ <20><EFBFBD>摮㛖泵頧祆揢嚗? - **UX<55>滚之<E6BB9A><EFBFBD>**嚗? - <20>?<3F>堒仍蝑偦<E89D91><EFBFBD>Excel憌擧聢嚗龦ommunity<74><79>𧋦嚗䔶葉<E494B6><E89189>𧋦<EFBFBD><EFBFBD>嚗? - <20>?銵<><EFBFBD><EFBFBD><E6A2B9><EFBFBD>撌虫儒嚗𣬚<E59A97><F0A3AC9A><EFBFBD><E884B0><EFBFBD>
- <20>?皛𡁜𢆡<F0A1819C>∩耨憭㵪<E686AD>靽格㺿MainLayout嚗峕㟲銝芷△<E88AB7><EFBFBD>皛𡁜𢆡<F0A1819C><EFBFBD>
- <20>?<3F><EFBFBD><E588B8>唳旿嚗<E697BF><E59A97><EFBFBD><EFBFBD><E6BCA4>?0銵䕘<E98AB5>蝑偦<E89D91>厩移蝖殷<E89D96>
- <20>?<3F>𣳇膄憸<E88684><E686B8><EFBFBD>鞟內<E99E9F>? - 瘚贝<E7989A><E8B49D><EFBFBD><E69C9E><EFBFBD><EFBFBD>90%+
- **Tool C 摰峕<E691B0>摨佗<E691A8>98%** <20>?
- <20>?2025-12-06嚗?*Day 2摰峕<E691B0>** - Session蝞∠<E89D9E> <20>? - SessionService.ts嚗?83銵䕘<E98AB5>+ DataProcessService.ts嚗?03銵䕘<E98AB5>
- SessionController.ts嚗?00銵䕘<E98AB5>
- <20>唳旿摨栞”嚗飱c_tool_c_sessions嚗?2摮埈挾嚗? - 6銝杵ession API蝡舐<E89DA1>
- OSS摮睃<E691AE><E79D83><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗? - 瘚贝<E7989A><E8B49D><EFBFBD><E69C9E><EFBFBD><EFBFBD>100% (7/7)
- <20>?2025-12-07嚗?*Day 3摰峕<E691B0>** - AI隞<49><E99A9E><EFBFBD><EFBFBD><EFBFBD> <20>? - AICodeService.ts嚗?50銵䕘<E98AB5>+ AIController.ts嚗?57銵䕘<E98AB5>
- <20>唳旿摨栞”嚗飱c_tool_c_ai_history嚗?4摮埈挾嚗? - 10銝東ew-shot蝷箔<E89DB7>嚗𡿨evel 1-4嚗? - <20><EFBFBD>靽格迤<E6A0BC><EFBFBD><EFBFBD><E59A97>憭?甈⊿<E79488>霂𤏪<E99C82>
- 4銝服I API蝡舐<E89DA1>
- 瘚贝<E7989A><E8B49D><EFBFBD><E69C9E><EFBFBD><EFBFBD>81.8% (9/11<31>箸艶)
- <20>?2025-12-07嚗?*Day 4摰峕<E691B0>** - <20>滨垢<E6BBA8><EFBFBD><EFBFBD><20>? - index.tsx嚗?58銵䕘<E98AB5>- 銝餃<E98A9D><E9A483>?<3F><EFBFBD><E59786><EFBFBD>? - Header.tsx嚗?1銵䕘<E98AB5>+ Toolbar.tsx嚗?04銵䕘<E98AB5>
- DataGrid.tsx嚗?11銵䕘<E98AB5>- AG Grid Community<74><79><EFBFBD>
- Sidebar.tsx嚗?49銵䕘<E98AB5>- 撉冽沲<E586BD>? - API撠<49><E692A0>toolC.ts嚗?18銵䕘<E98AB5>8銝芣䲮瘜𤏪<E7989C>
- AG Grid<69><EFBFBD>銋㗇甅撘𧶏<E69298>Emerald蝏輯𠧧銝駁<E98A9D>嚗? - 頝舐眏<E88890>滨蔭 + Portal<61>舐鍂
- <20>颱誨<E9A2B1><E8AAA8><EFBFBD>~1106銵? - <20><EFBFBD>撉諹<E69289>100%<25><EFBFBD>
---
## <20><>儭?<3F><><EFBFBD>舀沲<E88880>?
### <20><><EFBFBD><EFBFBD>
#### <20>滨垢
```
<EFBFBD>沲: React 19 + TypeScript 5
頝舐眏: React Router DOM v6
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>? @tanstack/react-query (React Query v5)
UI蝏<EFBFBD>辣: Ant Design v5
<EFBFBD><EFBFBD>: TailwindCSS v3
<EFBFBD><EFBFBD>遣撌亙<EFBFBD>: Vite v5
<EFBFBD>𩤃<EFBFBD> <20><EFBFBD><E59786><EFBFBD><EFBFBD><E99A9E>Placeholder嚗峕<E59A97><E5B395><EFBFBD><EFBFBD><E99A9E>
```
#### <20>𡒊垢
```
<EFBFBD>沲: Fastify v4 (Node.js 22)
<EFBFBD>唳旿摨? PostgreSQL 16 + Prisma 6
LLM SDK: <20><EFBFBD> LLMFactory (蝏煺<E89D8F><E785BA><EFBFBD><EFBFBD>撅?
<EFBFBD>: DeepSeek-V3, Qwen-Max
<EFBFBD><EFBFBD>: Winston
Excel憭<EFBFBD><EFBFBD>: xlsx 摨橒<E691A8><E6A992><EFBFBD><EFBFBD><E79285>嚗?撟嗅<E6929F><E59785><EFBFBD>: p-limit嚗<74><E59A97><EFBFBD>貳LM撟嗅<E6929F><E59785><EFBFBD>
<EFBFBD>?<3F><EFBFBD><E59786><EFBFBD><EFBFBD><E99A9E>撌脤<E6928C>撱綽<E692B1>100%<25><EFBFBD><E8A098><EFBFBD>
```
#### <20><EFBFBD>霈暹鴌嚗<E9B48C><E59A97><EFBFBD><EFBFBD> + <20><> Postgres-Only <20><EFBFBD>嚗?```
<EFBFBD>唳旿摨? PostgreSQL 16 with Schema isolation
Schema: dc_schema (<28><EFBFBD><E7A589>𠉛氖)
摮睃<EFBFBD>: storage<67>滚𦛚嚗㇉SS <20>?LocalFS嚗?
<EFBFBD><EFBFBD> Postgres-Only <20><EFBFBD>嚗?025-12-13 <20><EFBFBD><EFBFBD><E683A9><EFBFBD>:
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 蝏煺<E89D8F>蝻枏<E89DBB>: platform_schema.app_cache (PostgresCacheAdapter)
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 蝏煺<E89D8F><E785BA><EFBFBD>: platform_schema.job (PgBossQueue, pg-boss)
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 隞餃𦛚蝞∠<E89D9E>: job.data 蝏煺<E89D8F>摮睃<E691AE><EFBFBD><E59A97><EFBFBD><EFBFBD><E585B6>∟”銝哨<E98A9D>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>蝏凋<E89D8F>: CheckpointService (<28><EFBFBD> job.data嚗屸<E59A97>𡁶鍂)
<EFBFBD><EFBFBD>: logger<65>滚𦛚嚗Áinston蝏𤘪<E89D8F><F0A498AA><EFBFBD>
<EFBFBD>?<3F><EFBFBD><E59786><EFBFBD>100%憭滨鍂撟喳蝱<E596B3><EFBFBD>霈暹鴌
<EFBFBD>?<3F><EFBFBD>嚗䥪latform-Only 璅<E79285>嚗䔶<E59A97> ASL 蝏煺<E89D8F>
```
#### <20><> Postgres-Only <20><EFBFBD>鈭桃<E988AD>嚗㇍ool B嚗?
**<2A><EFBFBD><E7AE84>峕芋撘誩<E69298><E8AAA9><EFBFBD><EFBFBD>**
```typescript
const QUEUE_THRESHOLD = 50;
if (records.length >= 50) {
// <20><EFBFBD><E79285>嚗𡁜虾<F0A1819C><EFBFBD><EFBFBD><E689BE>? - 隞餃𦛚<E9A483><F0A69B9A><EFBFBD>嚗?0<>?<3F><EFBFBD>
- <20><EFBFBD>蝏凋<E89D8F><EFBFBD><E59A97>10<31><EFBFBD>摮矋<E691AE>
- <20><EFBFBD><E88880>踵𧒄<E8B8B5><EFBFBD><E6B994><EFBFBD>2-24撠𤩺𧒄嚗? - 摰硺<E691B0><E7A1BA>滚鍳<E6BB9A><EFBFBD>憭?} else {
// <20>湔𦻖璅<E79285>嚗𡁏<E59A97><EFBFBD>隡睃<E99AA1>
- 敹恍<E695B9><EFBFBD>摨䈑<E691A8><1<><31><EFBFBD>嚗? - <20>𣳇<EFBFBD><F0A3B387>堒辣餈?}
```
**<EFBFBD><EFBFBD><EFBFBD>辣嚗?*
- `ExtractionController.ts`嚗𡁏惣<EFBFBD><EFBFBD><EFBFBD>澆ế<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鸌甈∩遙<EFBFBD>?- `extractionWorker.ts`嚗𡁏鸌甈<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝏凋<EFBFBD>
- `CheckpointService`嚗𡁏<EFBFBD>雿?job.data嚗<61><E59A97> ASL <20>梁鍂嚗?
**<2A><><EFBFBD><EFBFBD><E887AD><EFBFBD>**
- <20>?<3F><EFBFBD>憭𡝗<E686AD><F0A19D97>穿<EFBFBD><E7A9BF>𣳇<EFBFBD> Redis嚗?- <20>?蝏煺<E89D8F><E785BA><EFBFBD><EFBFBD><E59A97> ASL 銝<><E98A9D><EFBFBD>
- <20>?擃睃虾<E79D83><EFBFBD><EFBFBD><E694B9>芸𢆡<E88AB8><EFBFBD><E6BBA9><EFBFBD><EFBFBD>寧賒隡𩤃<E99AA1>
- <20>?<3F>𤘪<EFBFBD>撅𤏪<E69285><F0A48FAA>芣䔉璅<E79285><E288AA>湔𦻖憭滨鍂嚗?
---
## <20><> <20><EFBFBD><EFBFBD><E99A9E>蝏𤘪<E89D8F>
### <20>滨垢隞<E59EA2><E99A9E>蝏𤘪<E89D8F>
```
frontend-v2/src/modules/dc/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> index.tsx # <20>?隞<>laceholder嚗峕<E59A97><E5B395><EFBFBD><E7AC94><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> components/ # <20><> 蝛箸<E89D9B>隞嗅允
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> pages/ # <20><> 蝛箸<E89D9B>隞嗅允蝏𤘪<E89D8F>
<EFBFBD>? <20><EFBFBD><E98EBF><EFBFBD> tool-a/ # <20><> 蝛?<3F>? <20><EFBFBD><E98EBF><EFBFBD> tool-b/ # <20><> 蝛綽<E89D9B>摨𥪜<E691A8><F0A5AA9C>訓4<E8A893><EFBFBD>嚗?<3F>? <20><EFBFBD><E5A999><EFBFBD> tool-c/ # <20><> 蝛?<3F><EFBFBD><E5A999><EFBFBD> types/ # <20><> 蝛箸<E89D9B>隞嗅允
<EFBFBD>𩤃<EFBFBD> <20><EFBFBD><E7AC94><EFBFBD><E59786><EFBFBD><EFBFBD>滨垢摰<E59EA2><E691B0><EFBFBD><EFBFBD><E88AB8>𡢅<EFBFBD><F0A1A285><EFBFBD><E88AA3><EFBFBD>蝚?```
**<2A>滨垢敺<E59EA2><E695BA><EFBFBD><EFBFBD><E595A3>?*嚗<>抅鈭竚4<E7AB9A><EFBFBD>霈曇恣嚗㚁<E59A97>
1. **Step 1**嚗𡁏<E59A97>隞嗡<E99A9E>隡牐<E99AA1><E78990><EFBFBD>㗇𥋘
2. **Step 2**嚗锭chema<6D><EFBFBD><EFBFBD>𪆴<EFBFBD><F0AA86B4><EFBFBD><EFBFBD><E58D9D>𥁒<EFBFBD>羓掩<E7BE93><EFBFBD><E58D9D>𤌍<EFBFBD><F0A48C8D><EFBFBD>畾蛛<E795BE>
3. **Step 3**嚗𡁜<E59A97><F0A1819C><EFBFBD><EFBFBD>摨衣<E691A8><E8A1A3><EFBFBD>摰墧𧒄餈𥕦漲<F0A595A6><E6BCB2><EFBFBD>睲遙<E79DB2>⊥遬蝷綽<E89DB7>
4. **Step 4**嚗𡁜<E59A97><EFBFBD><E89D92><EFBFBD>極雿𨅯蝱嚗<E89DB1><E59A97><E79285>撖寞<E69296><E5AF9E><EFBFBD><EFBFBD>銝𧢲<E98A9D><F0A7A2B2>曄內嚗?5. **Step 5**嚗𡁶<E59A97><F0A181B6>𨅯紡<F0A885AF><EFBFBD>Excel銝贝蝸嚗?
### <20>𡒊垢隞<E59EA2><E99A9E>蝏𤘪<E89D8F>
```
backend/src/modules/dc/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> index.ts # <20>?璅<E79285><E288AA>亙藁嚗?17銵䕘<E98AB5>
<EFBFBD>? <20><EFBFBD><E98EBF><EFBFBD> registerDCRoutes() # 頝舐眏瘜典<E7989C><E585B8>賣㺭
<EFBFBD>? <20><EFBFBD><E5A999><EFBFBD> initDCModule() # <20><EFBFBD><E598A5>硋遆<E7A18B><EFBFBD><E5A086>急㺭<E680A5><EFBFBD><EFBFBD><E79289><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> tool-b/ # <20>?撌亙<E6928C>B嚗𡁶<E59A97><F0A181B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>箏膥鈭?<3F>? <20><EFBFBD><E98EBF><EFBFBD> services/ # <20>?<3F>滚𦛚撅<F0A69B9A><E69285>4銝芣瓲敹<E793B2><E695B9><EFBFBD><EFBFBD>
<EFBFBD>? <20>? <20><EFBFBD><E98EBF><EFBFBD> HealthCheckService.ts # <20>?190銵?- Excel<65>亙熒璉<E78692><E79289>?<3F>? <20>? <20><EFBFBD><E98EBF><EFBFBD> TemplateService.ts # <20>?243銵?- 憸<>挽璅⊥踎蝞∠<E89D9E>
<EFBFBD>? <20>? <20><EFBFBD><E98EBF><EFBFBD> DualModelExtractionService.ts # <20>?390銵?- <20>峕芋<E5B395>𧢲<EFBFBD><F0A7A2B2>?<3F>? <20>? <20><EFBFBD><E5A999><EFBFBD> ConflictDetectionService.ts # <20>?215銵?- <20><EFBFBD><EFBFBD>瘚讠<E7989A>瘜?<3F>? <20><EFBFBD><E98EBF><EFBFBD> controllers/ # <20>?<3F><EFBFBD><E689B9><EFBFBD>
<EFBFBD>? <20>? <20><EFBFBD><E5A999><EFBFBD> ExtractionController.ts # <20>?388銵?- 6銝服PI蝡舐<E89DA1>
<EFBFBD>? <20><EFBFBD><E98EBF><EFBFBD> routes/ # <20>?頝舐眏撅?<3F>? <20>? <20><EFBFBD><E5A999><EFBFBD> index.ts # <20>?115銵?- 頝舐眏<E88890>滨蔭
<EFBFBD>? <20><EFBFBD><E98EBF><EFBFBD> utils/ # <20><> 蝛綽<E89D9B><EFBFBD><E686B8>嚗?<3F>? <20><EFBFBD><E5A999><EFBFBD> workers/ # <20><> 蝛綽<E89D9B><EFBFBD><E686B8><EFBFBD>郊隞餃𦛚嚗?<3F><EFBFBD><E98EBF><EFBFBD> tool-a/ # <20><> 蝛綽<E89D9B><E7B6BD><EFBFBD><E88AB8>𡢅<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> tool-c/ # <20><> 蝛綽<E89D9B><E7B6BD><EFBFBD><E88AB8>𡢅<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> portal/ # <20><> 蝛綽<E89D9B><E7B6BD><EFBFBD><E88AB8>𡢅<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> shared/ # <20><> 蝛綽<E89D9B><EFBFBD><E686B8><EFBFBD>曹澈隞<E6BE88><E99A9E>嚗?
<EFBFBD>?<3F><EFBFBD><E7AC94><EFBFBD><E59786><EFBFBD>Tool B<>𡒊垢隞<E59EA2><E99A9E>摰峕㟲嚗<E39FB2><E59A97>霈?1,658 銵?```
**<2A>𡒊垢隞<E59EA2><E99A9E>蝏蠘恣**嚗<><E59A97>撱箏<E692B1><E7AE8F><EFBFBD>嚗?- **<2A><EFBFBD>隞嗆㺭**嚗?銝枚ypeScript<70><74>
- **<2A>颱誨<E9A2B1><E8AAA8><EFBFBD>**嚗𡁶漲1,658銵䕘<E98AB5>銝滚鉄瘜券<E7989C><E588B8>𣬚征銵䕘<E98AB5>
- **<2A>滚𦛚撅?*嚗?銝芣<E98A9D><E88AA3><EFBFBD>1,038銵?- **<2A><EFBFBD><E689B9><EFBFBD>**嚗?銝芣綉<E88AA3>嗅膥嚗?88銵?- **頝舐眏撅?*嚗?銝芾楝<E88ABE><EFBFBD>隞塚<E99A9E>115銵?- **璅<E79285><E288AA>亙藁**嚗?銝波ndex.ts嚗?17銵?
---
## <20><>儭?<3F>唳旿摨栞挽霈?
### Schema<6D>𠉛氖
```sql
-- DC璅<E79285><E288AA><EFBFBD>Schema
dc_schema (<28><EFBFBD><E7A589>𠉛氖嚗<E6B096><E59A97><EFBFBD>?銝芾”)
```
### <20>唳旿銵刻挽霈?
#### 1. dc_health_checks嚗<73><E59A97>摨瑟<E691A8><E7919F>亥扇敶𤏪<E695B6>
```prisma
model DcHealthCheck {
id String @id @default(uuid())
userId String
fileName String
columnName String
emptyRate Float // 蝛箏<E89D9B><EFBFBD>
avgLength Float // 撟喳<E6929F><E596B3>踹漲
totalRows Int // <20><EFBFBD><E9A489>? estimatedTokens Int // 隡啁<E99AA1>Token瘨<6E><E798A8>? status String // pass | warning | rejected
message String // <20>行⏛<E8A18C><EFBFBD>
createdAt DateTime @default(now())
@@schema("dc_schema")
@@map("dc_health_checks")
}
```
#### 2. dc_templates嚗<73><E59A97>霈暹芋<E69AB9><EFBFBD>
```prisma
model DcTemplate {
id String @id @default(uuid())
diseaseType String // <20><EFBFBD>蝐餃<E89D90>嚗ēung_cancer, diabetes, hypertension嚗? reportType String // <20><EFBFBD>蝐餃<E89D90>嚗īathology, admission, outpatient嚗? displayName String // <20>曄內<E69B84>滨妍
fields Json // <20><EFBFBD>摮埈挾摰帋<E691B0>
promptTemplate String // Prompt璅⊥踎
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@unique([diseaseType, reportType])
@@schema("dc_schema")
@@map("dc_templates")
}
```
#### 3. dc_extraction_tasks嚗<73><E59A97><EFBFBD>碶遙<E7A2B6><EFBFBD>
```prisma
model DcExtractionTask {
id String @id @default(uuid())
userId String
projectName String
sourceFileKey String // OSS摮睃<E691AE>頝臬<E9A09D>
textColumn String // 敺<><E695BA><EFBFBD><EFBFBD><E7A18B>? diseaseType String
reportType String
targetFields Json // <20><EFBFBD>摮埈挾
modelA String @default("deepseek-v3")
modelB String @default("qwen3-72b")
status String @default("pending")
totalCount Int @default(0)
processedCount Int @default(0)
cleanCount Int @default(0) // <20><EFBFBD>蝒? conflictCount Int @default(0) // <20><EFBFBD>蝒? failedCount Int @default(0)
totalTokens Int @default(0)
totalCost Float @default(0)
error String?
createdAt DateTime @default(now())
startedAt DateTime?
completedAt DateTime?
items DcExtractionItem[]
@@schema("dc_schema")
@@map("dc_extraction_tasks")
}
```
#### 4. dc_extraction_items嚗<73><E59A97><EFBFBD>𡝗<EFBFBD><EFBFBD><E89D8F>
```prisma
model DcExtractionItem {
id String @id @default(uuid())
taskId String
rowIndex Int // Excel銵<6C>
originalText String @db.Text
resultA Json? // DeepSeek蝏𤘪<E89D8F>
resultB Json? // Qwen蝏𤘪<E89D8F>
status String @default("pending")
conflictFields String[] @default([]) // <20><EFBFBD>摮埈挾<E59F88>𡑒”
finalResult Json? // <20><><EFBFBD><E89D8F><EFBFBD>? tokensA Int @default(0)
tokensB Int @default(0)
error String?
createdAt DateTime @default(now())
resolvedAt DateTime?
task DcExtractionTask @relation(fields: [taskId], references: [id], onDelete: Cascade)
@@schema("dc_schema")
@@map("dc_extraction_items")
}
```
### <20>唳旿摨梶𠶖<E6A2B6>?
<EFBFBD>?**撌脤<E6928C><EFBFBD><E99C82><EFBFBD><EFBFBD>2025-12-02嚗?*
**撉諹<E69289>蝏𤘪<E89D8F>**嚗?- <20>?**dc_schema**: 撌脣<E6928C><E884A3>?- <20>?**dc_health_checks**: 撌脣<E6928C>撱綽<E692B1>2<EFBFBD>∟扇敶𤏪<E695B6>
- <20>?**dc_templates**: 撌脣<E6928C>撱綽<E692B1>**3<><EFBFBD>霈暹芋<E69AB9>?*嚗?- <20>?**dc_extraction_tasks**: 撌脣<E6928C>撱綽<E692B1>1<EFBFBD>∟扇敶𤏪<E695B6>
- <20>?**dc_extraction_items**: 撌脣<E6928C>撱綽<E692B1>4<EFBFBD>∟扇敶𤏪<E695B6>
**憸<>挽璅⊥踎<E28AA5>𡑒”**嚗?1. <20><EFBFBD><E7AE87><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (lung_cancer/pathology)
2. 蝟硋倏<E7A18B><E5808F><EFBFBD><EFBFBD>扇敶?(diabetes/admission)
3. 擃䁅<E69383><E48185>钅秄霂羓<E99C82><E7BE93>?(hypertension/outpatient)
**撉諹<E69289><E8ABB9>𡁏𧋦**嚗?```bash
# 璉<><E79289>交㺭<E4BAA4><EFBFBD>銵函𠶖<E587BD>?cd backend
node scripts/check-dc-tables.mjs
```
**蝏栞捏**嚗尠<E59A97> <20>唳旿摨枏<E691A8><E69E8F><EFBFBD><EFBFBD>停蝏迎<E89D8F><E8BF8E>𡒊垢API摨磰砲<E7A3B0>臭誑<E887AD>湔𦻖雿輻鍂嚗?
---
## <20><> API<50>亙藁
### 頝舐眏<E88890><EFBFBD>
```
/api/v1/dc/tool-b
```
### 撌脣<E6928C><E884A3>蚊PI嚗?銝芰垢<E88AB0><EFBFBD>
#### 1. <20>亙熒璉<E78692><E79289>?```typescript
POST /health-check
Content-Type: multipart/form-data
Body:
- file: Excel<65><6C>
- columnName: 敺<><E695BA><EFBFBD><EFBFBD><E4BA99>?
Response: {
status: 'pass' | 'warning' | 'rejected',
emptyRate: number,
avgLength: number,
totalRows: number,
estimatedTokens: number,
message: string
}
```
#### 2. <20><EFBFBD><E79195><EFBFBD><EFBFBD>㗇芋<E39787>?```typescript
GET /templates
Response: {
templates: Array<{
id: string,
diseaseType: string,
reportType: string,
displayName: string,
fields: object
}>
}
```
#### 3. <20>𥕦遣<F0A595A6>𣂼<EFBFBD>隞餃𦛚
```typescript
POST /tasks
Content-Type: multipart/form-data
Body:
- file: Excel<65><6C>
- projectName: 憿寧𤌍<E5AFA7>滨妍
- textColumn: <20><>𧋦<EFBFBD><EFBFBD>
- diseaseType: <20><EFBFBD>蝐餃<E89D90>
- reportType: <20><EFBFBD>蝐餃<E89D90>
- targetFields: JSON摮㛖泵銝?
Response: {
taskId: string,
status: 'pending',
message: '隞餃𦛚<E9A483>𥕦遣<F0A595A6>𣂼<EFBFBD>'
}
```
#### 4. <20>亥砭隞餃𦛚餈𥕦漲
```typescript
GET /tasks/:taskId/progress
Response: {
taskId: string,
status: 'pending' | 'processing' | 'completed' | 'failed',
totalCount: number,
processedCount: number,
cleanCount: number,
conflictCount: number,
failedCount: number,
totalTokens: number,
totalCost: number,
progress: number, // <20><EFBFBD>瘥? error?: string
}
```
#### 5. <20><EFBFBD>隞餃𦛚<E9A483>𡒊<EFBFBD>
```typescript
GET /tasks/:taskId/items?status=conflict
Query:
- status: 'conflict' | 'clean' | 'failed' | 'all'
- page: number (default: 1)
- pageSize: number (default: 20)
Response: {
items: Array<{
id: string,
rowIndex: number,
originalText: string,
resultA: object,
resultB: object,
conflictFields: string[],
finalResult?: object,
status: string
}>,
pagination: {
total: number,
page: number,
pageSize: number,
totalPages: number
}
}
```
#### 6. 閫<><E996AB><EFBFBD><EFBFBD>
```typescript
POST /items/:itemId/resolve
Body: {
resolvedData: object // <20><EFBFBD>蝖株恕<E6A0AA><E68195><EFBFBD><EFBFBD><E89D8F><EFBFBD>?}
Response: {
success: true,
itemId: string,
finalResult: object
}
```
---
## <20><20>滨垢UI霈曇恣
### V4<56><EFBFBD>霈曇恣
**<2A><>辣雿滨蔭**嚗?- `docs/03-銝𡁜𦛚璅<E79285>/DC-<2D>唳旿皜<E697BF><E79A9C><EFBFBD><EFBFBD>/03-UI霈曇恣/撌亙<E6928C>B_<42><5F><EFBFBD>蝏𤘪<E89D8F><F0A498AA>𡝗㦤<F0A19D97>其犖_<E78A96><EFBFBD>霈曇恣_V4.tsx`
**5銝杵tep瘚<70><E7989A>**嚗?
#### Step 1嚗帋<E59A97>隡牐<E99AA1>Schema
```
- Excel<65><6C>辣銝𠹺<E98A9D><EFBFBD><E59A97><EFBFBD><EFBFBD><E8B3A3>㗇𥋘嚗?- <20>芸𢆡璉<F0A286A1>瘚见<E7989A><E8A781>?- <20>㗇𥋘<E39787><F0A58B98>𧋦<EFBFBD><EFBFBD><EFBFBD><E695BA><EFBFBD><EFBFBD>
```
#### Step 2嚗𡁻<E59A97>蝵格<E89DB5>撠?```
- <20>㗇𥋘<E39787><EFBFBD>蝐餃<E89D90><EFBFBD><E59A97><EFBFBD><EFBFBD><E48E9A><EFBFBD>撠輻<E692A0><E8BCBB><EFBFBD><EFBFBD><EFBFBD><E98AB5><EFBFBD>
- <20>㗇𥋘<E39787><EFBFBD>蝐餃<E89D90><EFBFBD><E59A97><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBCB5>秄霂𠺪<E99C82>
- <20>芸𢆡<E88AB8>㰘蝸憸<E89DB8>挽璅⊥踎
- <20>曄內<E69B84><EFBFBD>摮埈挾嚗<E68CBE>虾靚<E899BE>㟲嚗?```
#### Step 3嚗𡁜<E59A97><F0A1819C><EFBFBD><EFBFBD>摨?```
- 摰墧𧒄餈𥕦漲<F0A595A6>?- 敶枏<E695B6><EFBFBD><E686AD><EFBFBD>
- Token瘨<6E><E798A8><EFBFBD>霈?- <20>鞉𧋦憸<F0A78BA6>
- 撟嗅<E6929F>隞餃𦛚<E9A483>曄內嚗㇄eepSeek + Qwen<65>峕𧒄餈鞱<E9A488>嚗?```
#### Step 4嚗𡁜<E59A97><EFBFBD><E89D92>霂?```
- <20><EFBFBD><E884A9>𡑒”嚗<E2809D><EFBFBD>潭遬蝷綽<E89DB7>
- <20>峕芋<E5B395><EFBFBD><E8AEA0>𨅯笆瘥䈑<E798A5>撌血𢰧<E8A180><F0A2B0A7><EFBFBD>嚗?- <20><><EFBFBD>銝𠹺<E98A9D><F0A0B9BA><EFBFBD>遬蝷?- <20><EFBFBD>摮埈挾擃䀝漁
- 敹恍<E695B9>霈斗<E99C88><E69697>?```
#### Step 5嚗𡁶<E59A97><F0A181B6>𨅯紡<F0A885AF>?```
- 蝏蠘恣璁<E681A3><E79281><EFBFBD><E59A97>餅㺭<E9A485><E3BAAD><EFBFBD><EFBFBD><EFBFBD><E884A9><EFBFBD>歇閫<E6AD87><E996AB><EFBFBD><EFBFBD>仃韐伐<E99F90>
- Excel撖澆枂<E6BE86>厰僼
- 4銝杵heet嚗? 1. 摰峕㟲蝏𤘪<E89D8F>
2. <20><EFBFBD><EFBFBD>
3. <20><EFBFBD>憿對<E686BF>撌脰圾<E884B0><EFBFBD>
4. 憭梯揖憿?```
**<2A>𩤃<EFBFBD> <20><EFBFBD><E59786><EFBFBD>霈曇恣摰峕<E691B0>嚗䔶誨<E494B6><E8AAA8>𧊋摰䂿緵**
---
## <20><20><><EFBFBD><EFBFBD><E887AC><EFBFBD><E59581>?
### 1. <20>亙熒璉<E78692><E79289>交㦤<E4BAA4>?
**摰䂿緵雿滨蔭**嚗䫤HealthCheckService.ts`嚗?90銵䕘<E98AB5>
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>**嚗?- Excel<65><6C><EFBFBD><EFBFBD><E996AB>嚗ūlsx摨橒<E691A8><E6A992>𣳇<EFBFBD><F0A3B387><EFBFBD>嚗?- 蝛箏<E89D9B><EFBFBD>霈∠<E99C88><EFBFBD><EFBFBD>?>50%嚗?- 撟喳<E6929F><E596B3><EFBFBD>𧋦<EFBFBD>踹漲霈∠<E99C88>
- Token瘨<6E><E798A8>𦯀摯蝞梹<E89D9E><E6A2B9><EFBFBD>撟喳<E6929F><E596B3>踹漲 <20> 4 <20> 銵峕㺭嚗?- <20>行⏛蝑𣇉裦嚗? - 蝛箏<E89D9B><EFBFBD> >50%嚗尠<E59A97> rejected
- 蝛箏<E89D9B><EFBFBD> 30-50%嚗尠<E59A97>儭?warning
- 蝛箏<E89D9B><EFBFBD> <30%嚗尠<E59A97> pass
**鈭穃<E988AD><E7A983>毺鸌<E6AFBA>?*嚗?- <20>?憭滨鍂`storage.getFileBuffer()`嚗㇉SS摮睃<EFBFBD>嚗?- <20>?憭滨鍂`cache.set()`<EFBFBD><EFBFBD><EFBFBD>𦦵<EFBFBD>摮?撠𤩺𧒄嚗?- <20>?<3F><><EFBFBD><EFBFBD><E686AD><EFBFBD><EFBFBD><EFBFBD>嚗?
### 2. <20>峕芋<E5B395>𧢲<EFBFBD><F0A7A2B2>?
**摰䂿緵雿滨蔭**嚗䫤DualModelExtractionService.ts`嚗?90銵䕘<E98AB5>
**<2A><EFBFBD><E8A9A8><EFBFBD>**嚗?- 撟嗅<E6929F><EFBFBD>鍂DeepSeek-V3<56>熑wen-Max
- PII<49><EFBFBD><EFBFBD><E59A97><EFBFBD><EFBFBD><E6BABB>澈隞質<E99A9E><E8B3AA><EFBFBD>
- 3撅<33>SON閫<4E><E996AB><EFBFBD><EFBFBD>蹱㦤<E8B9B1><EFBFBD>嚗? 1. <20><><EFBFBD>JSON閫<4E><E996AB>
2. <20>駁膄Markdown隞<6E><E99A9E><EFBFBD><EFBFBD><EFBFBD><E996AB>
3. 甇<><E79487><EFBFBD>𣂼<EFBFBD>JSON撖寡情
- <20><EFBFBD><E6BBA9><EFBFBD><EFBFBD><E59A97>憭?甈∴<E79488>
- Token蝏蠘恣銝擧<E98A9D><E693A7>祈恣蝞?
**鈭穃<E988AD><E7A983>毺鸌<E6AFBA>?*嚗?- <20>?憭滨鍂`LLMFactory.getLLM()`
- <20>?憭滨鍂`jobQueue.add()`嚗<><E59A97>甇乩遙<E4B9A9><EFBFBD>
- <20>?憭滨鍂`logger.info()`嚗<><E59A97><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?
### 3. <20><EFBFBD><EFBFBD>瘚讠<E7989A>瘜?
**摰䂿緵雿滨蔭**嚗䫤ConflictDetectionService.ts`嚗?15銵䕘<E98AB5>
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>**嚗?- 摮埈挾蝥批笆瘥䈑<E798A5><E48891>𣂼<EFBFBD>畾菜<E795BE><EFBFBD>eepSeek<65>熑wen蝏𤘪<E89D8F>嚗?- <20><EFBFBD><EFBFBD><E98A9D><EFBFBD><E59094>駁膄蝛箸聢<E7AEB8><E881A2><EFBFBD><EFBFBD>憭批<E686AD><E689B9><EFBFBD>
- <20><EFBFBD>澆捆撌殷<E6928C><E6AEB7>詨笆霂臬榆 <5%閫<>蛹銝<E89BB9><E98A9D><EFBFBD>
- 霂凋<E99C82><E5878B>訾撮摨佗<E691A8><EFBFBD><E686B8><EFBFBD>亙藁嚗<E89781><EFBFBD><EFBFBD>embedding嚗?- <20><EFBFBD>摮埈挾<E59F88>𡑒”<F0A19192><E2809D><EFBFBD>
**<EFBFBD><EFBFBD><EFBFBD>ế<EFBFBD>?*嚗?```typescript
if (conflictFields.length === 0) {
status = 'clean' // <20><EFBFBD><EFBFBD><E89D92><EFBFBD>芸𢆡<E88AB8><EFBFBD>
} else {
status = 'conflict' // <20><EFBFBD><EFBFBD><E89D92><EFBFBD><EFBFBD>鈭箏極蝖株恕
}
```
### 4. 璅⊥踎蝞∠<E89D9E>
**摰䂿緵雿滨蔭**嚗䫤TemplateService.ts`嚗?43銵䕘<E98AB5>
**憸<>挽璅⊥踎**嚗?銝迎<E98A9D>嚗?1. **<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**嚗ēung_cancer/pathology嚗? - 14銝芸<E98A9D>畾蛛<E795BE><E89B9B>輻𠈔蝐餃<E89D90><E9A483><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9BA84><EFBFBD><EFBFBD><E588A0><EFBFBD>
2. **蝟硋倏<E7A18B><E5808F><EFBFBD><EFBFBD>扇敶?*嚗Ê̌iabetes/admission嚗? - 12銝芸<E98A9D>畾蛛<E795BE><EFBFBD>蝟硔<E89D9F><E7A194><EFBFBD><EFBFBD>𤥁<EFBFBD><E89DA5><EFBCBA><EFBFBD><E8B3AC><EFBFBD>𤑳<EFBFBD>蝑?3. **擃䁅<E69383><E48185>钅秄霂𡃏扇敶?*嚗áypertension/outpatient嚗? - 10銝芸<E98A9D>畾蛛<E795BE><EFBFBD><E98AB5><EFBFBD><E58D9D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
**Prompt璅⊥踎**嚗?```
雿䭾糓銝<EFBFBD>銝芯<EFBFBD>銝𡁶<EFBFBD><EFBFBD>餃郎靽⊥<EFBFBD><EFBFBD>𣂼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>窈隞𦒘誑銝讠<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>砌葉<EFBFBD>𣂼<EFBFBD><EFBFBD>喲睸靽⊥<EFBFBD>...
<EFBFBD><EFBFBD>蝐餃<EFBFBD>嚗㝯diseaseType}
<EFBFBD><EFBFBD>蝐餃<EFBFBD>嚗㝯reportType}
<EFBFBD><EFBFBD>摮埈挾嚗㝯fields}
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?{originalText}
霂瑚艇<EFBFBD><EFBFBD><EFBFBD>克SON<EFBFBD><EFBFBD>颲枏枂...
```
---
## <20>?撌脰圾<E884B0><EFBFBD><E5969F><EFBFBD>
### 1. <20>唳旿摨栞”<E6A09E><EFBFBD><E59786><EFBFBD>霂?<3F>?撌脣<E6928C><E884A3><EFBFBD>2025-12-02嚗?
**<2A><EFBFBD><E6A185>讛膩**嚗?- 隞<><E99A9E><EFBCB7><EFBFBD>瘜閧霈斗㺭<E69697><EFBFBD>銵冽糓<E586BD><EFBFBD><E8A180>?- 餈<><EFBFBD><E5AE8F>辣銝仃嚗Ǒmigration.sql`銝箇征嚗?
**閫<><E996AB><EFBFBD><EFBFBD>**嚗?- <20>?<3F>𥕦遣鈭<E981A3><EFBFBD><EFBFBD><EFBFBD><E79289><EFBFBD><E4BAA5>?`backend/scripts/check-dc-tables.mjs`
- <20>?撉諹<E69289>蝖株恕<E6A0AA><E68195><EFBFBD>㕑”撌脣<E6928C>撱?- <20>?撉諹<E69289>蝖株恕憸<E68195>挽璅⊥踎撌脣<E6928C>憪见<E686AA>
**撉諹<E69289>蝏𤘪<E89D8F>**嚗?- <20>?dc_schema摮睃銁
- <20>?4銝芾”<E88ABE><EFBFBD>摮睃銁
- <20>?3銝芷<E98A9D>霈暹芋<E69AB9>踹歇<E8B8B9><EFBFBD><E598A5>?- <20>?<3F><EFBFBD>霂閙㺭<E99699>桀虾<E6A180>?
**蝏栞捏**嚗𡁏㺭<F0A1818F><EFBFBD><EFBFBD><E691B0><EFBFBD><EFBFBD><EFBFBD>撠梁貌嚗<E8B28C>虾隞亦凒<E4BAA6>乩蝙<E4B9A9><EFBFBD>
---
## <20>𩤃<EFBFBD> 敶枏<E695B6>摮睃銁<E79D83><E98A81>䔮憸?
### 2. <20>滨垢摰<E59EA2><E691B0><EFBFBD><EFBFBD><E88AB8>?<3F>𣞁 擃䀝<E69383><E4809D><EFBFBD>
**<EFBFBD><EFBFBD><EFBFBD>讛膩**嚗?- <20><EFBFBD>Placeholder<65><EFBFBD>蝚?- V4<56><EFBFBD>霈曇恣撌脣<E6928C><E884A3><EFBFBD><EFBFBD><E99BBF>隞颱<E99A9E>摰䂿緵隞<E7B7B5><E99A9E>
**敶勗<E695B6>**嚗?- <20>?<3F><EFBFBD>餈𥡝<E9A488>摰峕㟲<E5B395><E39FB2><EFBFBD>啁垢瘚贝<E7989A>
- <20>?<3F><EFBFBD>瞍𠉛內蝏嗵鍂<E597B5>?
**撌乩<E6928C><E4B9A9>譍摯蝞?*嚗?- Step 1嚗<31><E59A97>隡牐<E99AA1>Schema嚗㚁<E59A97>4撠𤩺𧒄
- Step 2嚗<32><E59A97>蝵格<E89DB5><EFBFBD><E692A0>嚗?撠𤩺𧒄
- Step 3嚗<33><E59A97><EFBFBD><EFBFBD><EFBFBD>摨佗<E691A8>嚗?撠𤩺𧒄
- Step 4嚗<34><E59A97><EFBFBD><E89D92><EFBFBD><E99C82>嚗?撠𤩺𧒄嚗<F0A79284><E59A97>憭齿<E686AD>嚗?- Step 5嚗<35><E59A97><EFBFBD>𨅯紡<F0A885AF><EFBFBD>嚗?撠𤩺𧒄
- **<2A>餉恣**嚗?8撠𤩺𧒄嚗<F0A79284>漲2-3憭抬<E686AD>
**隡睃<E99AA1>蝥?*嚗𡄻<E59A97>?擃矋<E69383><E79F8B><EFBFBD>摰峕㟲<E5B395><EFBFBD>嚗?
---
### 3. <20>𡒊垢<F0A1928A><EFBFBD><E88AB0><EFBFBD>瘚贝<E7989A> <20>椬 銝凋<E98A9D><E5878B><EFBFBD>
**<EFBFBD><EFBFBD><EFBFBD>讛膩**嚗?- 隞<><E99A9E><EFBFBD>臬抅鈭舘挽霈⊥<E99C88><EFBFBD><E78DA2>撱箇<E692B1>
- 瘝⊥<E7989D>餈鞱<E9A488><EFBFBD><E9A488>摰䂿<E691B0>API瘚贝<E7989A>
- 瘝⊥<E7989D>撉諹<E69289>餈䜶LM靚<4D><EFBFBD>臬炏甇<E7828F>
**憌𡡞埯**嚗?- <20>𩤃<EFBFBD> <20><EFBFBD>摮睃銁<E79D83><EFBFBD><E88AB8><EFBFBD>bug
- <20>𩤃<EFBFBD> 摰鮋<E691B0>LLM<4C>𣂼<EFBFBD><F0A382BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>霂?
**閫<><E996AB><EFBFBD><EFBFBD>**嚗?1. <20><><EFBFBD>銵䈣npx prisma db push`<60>𥕦遣銵?2. <20>臬𢆡<E887AC>𡒊垢嚗䫤npm run dev`
3. 雿輻鍂REST Client瘚贝<E7989A>6銝服PI蝡舐<E89DA1>
4. 銝𠹺<E98A9D><F0A0B9BA><EFBFBD>Excel<65><6C>辣瘚贝<E7989A><E8B49D>𣂼<EFBFBD><F0A382BC><EFBFBD><EFBFBD>
**隡睃<E99AA1>蝥?*嚗𡄻<E59A97>?銝哨<E98A9D><E593A8>滨垢撘<E59EA2><E69298><EFBFBD>摨𥪜<E691A8><F0A5AA9C><EFBFBD>
---
### 4. Cursor蝏<72>垢颲枏枂<E69E8F><EFBFBD> <20>叚 雿𦒘<E99BBF><F0A69298><EFBFBD>
**<EFBFBD><EFBFBD><EFBFBD>讛膩**嚗?- PowerShell蝏<6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>曄內<E69B84>賭誘颲枏枂
- 撖潸稲<E6BDB8><EFBFBD>餈鞱<E9A488><E99EB1>唳旿摨𤘪<E691A8><F0A498AA><EFBFBD><E4BAA5>?- 瘚芾晶鈭<E699B6><EFBFBD>𤩺𧒄<F0A4A9BA><EFBFBD>霂蓥<E99C82><E893A5>峕䲮瘜?
**敶勗<E695B6>**嚗?- <20>𩤃<EFBFBD><><E69298>𤏸<EFBFBD>霂蓥<E99C82>靘?- <20>𩤃<EFBFBD> <20><EFBFBD>摰墧𧒄<E5A2A7><EFBFBD><E4BAA6><EFBFBD>
**銝湔𧒄閫<F0A79284><E996AB><EFBFBD><EFBFBD>**嚗?- 雿輻鍂憭㚚<E686AD>PowerShell<6C>𥟟MD蝒堒藁
- 雿輻鍂Prisma Studio<69><EFBFBD><E888AA>硋極<E7A18B>?- <20>湔𦻖<E6B994>臬𢆡<E887AC>𡒊垢<F0A1928A><EFBFBD><E4BAA6>臬𢆡<E887AC><EFBFBD>
**隡睃<E99AA1>蝥?*嚗𡄻<E59A97>?雿𠬍<E99BBF><F0A0AC8D>㗇𤜯隞<F0A49CAF>䲮獢<E4B2AE><E78DA2>
---
## <20><> 銝衤<E98A9D>甇亙<E79487><E4BA99>𤏸恣<F0A48FB8>?
### 蝡见朖<E8A781><E69C96><EFBFBD><E996AC><EFBFBD><EFBFBD><EFBFBD>蝝扳<E89D9D><EFBFBD>
1. **撉諹<E69289><E8ABB9>唳旿摨栞”** <20>𣞁
```bash
cd backend
npx prisma db push
npx prisma studio # <20><EFBFBD><E888AA>𣇉霈? ```
2. **<2A>𡒊垢API瘚贝<E7989A>** <20>𣞁
- <20>臬𢆡<E887AC>𡒊垢<F0A1928A>滚𦛚
- 瘚贝<E7989A>6銝服PI蝡舐<E89DA1>
- 撉諹<E69289>LLM靚<4D>
- 蝖株恕<E6A0AA>峕芋<E5B395>𧢲<EFBFBD><F0A7A2B2><EFBFBD><EFBFBD>
3. **Git<69>齿活<E9BDBF>𣂷漱** <20>𣞁
- 蝖桐<E89D96><E6A190><EFBFBD><EFBFBD>劐誨<E58A90><E8AAA8><EFBFBD>𣂷漱
- <20><EFBFBD><E588B8><EFBFBD>餈𦦵<E9A488>隞枏<E99A9E><EFBFBD><E59A97><EFBFBD>𨀣<EFBFBD>嚗?
### <20><EFBFBD><EFBFBD><E69298>睲遙<E79DB2><EFBFBD><E288B4>砍𪂹嚗?
4. **<2A>滨垢UI撘<49><E69298>?* <20>𣞁嚗<F0A39E81><E59A97>霈?-3憭抬<E686AD>
- <20><EFBFBD>V4<56><EFBFBD>摰䂿緵5銝杵tep
- <20><><EFBFBD><EFBFBD>SL璅<E79285><E288AA><EFBFBD><EFBFBD>蝡臭誨<E887AD><E8AAA8><EFBFBD><EFBFBD>? - 雿輻鍂React Query蝞∠<E89D9E>API靚<49>
- 雿輻鍂Ant Design蝏<6E>
5. **蝡臬<E89DA1>蝡舀<E89DA1>霂?* <20>
- <20><EFBFBD>Excel<65><6C>辣瘚贝<E7989A>
- <20><EFBFBD><EFBFBD><E996AB><EFBFBD><E7989A>瘚贝<E7989A>
- 撖澆枂<E6BE86><EFBFBD>瘚贝<E7989A>
### 銝剜<E98A9D>隡睃<E99AA1>隞餃𦛚嚗<F0A69B9A><E59A97><EFBFBD><EFBFBD>
6. **<2A><EFBFBD>隡睃<E99AA1>** <20>
- 瘛餃<E7989B>撟嗅<E6929F><E59785><EFBFBD>嚗ī-limit嚗? - 隡睃<E99AA1>Excel憭扳<E686AD>隞嗅<E99A9E><E59785>? - 瘛餃<E7989B>餈𥕦漲摰墧𧒄<E5A2A7><EFBFBD><E588B8><EFBFBD>WebSocket嚗?
7. **<2A>躰秤憭<E7A7A4><E686AD>隡睃<E99AA1>** <20>
- 摰<><E691B0><EFBFBD>躰秤<E8BAB0>鞟內
- 瘛餃<E7989B><E9A483><EFBFBD><E6BBA9><EFBFBD>
- 憭梯揖隞餃𦛚<E9A483><EFBFBD>
---
## <20><> <20><EFBFBD><E8A9A8><EFBFBD>
### 霈曇恣<E69B87><E681A3>
- [PRD<52><44><EFBFBD><E79899>獢β(./01-<2D><><EFBFBD><E79899><EFBFBD>?)
- [<5B><><EFBFBD>航挽霈⊥<E99C88>獢β(./02-<2D><><EFBFBD>航挽霈?<3F><><EFBFBD>航挽霈⊥<E99C88><EFBFBD><E78DA2>撌亙<E6928C> B - <20><><EFBFBD>蝏𤘪<E89D8F><F0A498AA>𡝗㦤<F0A19D97>其犖 (The AI Structurer).md)
- [<5B>唳旿摨栞挽霈⊥<E99C88>獢β(./02-<2D><><EFBFBD>航挽霈?<3F>唳旿摨栞挽霈⊥<E99C88>獢?DC璅<E79285><EFBFBD><E59A97><EFBFBD><EFBFBD>嚗?md)
- [API霈曇恣<E69B87><E681A3>﹝](./02-<2D><><EFBFBD>航挽霈?API霈曇恣<E69B87><E681A3>﹝-DC璅<E79285><EFBFBD><E59A97><EFBFBD><EFBFBD>嚗?md)
- [UI<55><EFBFBD>霈曇恣](./03-UI霈曇恣/撌亙<E6928C>B_<42><5F><EFBFBD>蝏𤘪<E89D8F><F0A498AA>𡝗㦤<F0A19D97>其犖_<E78A96><EFBFBD>霈曇恣_V4.tsx)
### 撘<><E69298>𤏸扇敶?- [Day2摰峕<E691B0><E5B395><EFBFBD>](./06-撘<><E69298>𤏸扇敶?Day2摰峕<E691B0><E5B395><EFBFBD>.md)嚗<>腺憭勗<E686AD>嚗?- [Day3摰峕<E691B0><E5B395><EFBFBD>](./06-撘<><E69298>𤏸扇敶?Day3摰峕<E691B0><E5B395><EFBFBD>.md)嚗<>腺憭勗<E686AD>嚗?- [DC璅<E79285><E288AA>滚遣摰峕<E691B0><E5B395><EFBFBD>](./06-撘<><E69298>𤏸扇敶?DC璅<E79285><E288AA>滚遣摰峕<E691B0><E5B395><EFBFBD>-Day1.md)嚗<><E59A97>撱箏<E692B1>嚗?
### 閫<><E996AB><EFBFBD><EFBFBD>
- [鈭穃<E988AD><E7A983><EFBFBD><E7AC94>𤏸<EFBFBD><F0A48FB8><EFBFBD>(../../04-撘<><E69298>𤏸<EFBFBD><F0A48FB8>?08-鈭穃<E988AD><E7A983><EFBFBD><E7AC94>𤏸<EFBFBD><F0A48FB8>?md)
- [Git<69>𣂷漱閫<E6BCB1><E996AB>](../../04-撘<><E69298>𤏸<EFBFBD><F0A48FB8>?06-Git<69>𣂷漱閫<E6BCB1><E996AB>.md)嚗<><EFBFBD>湔鰵嚗<E9B0B5><EFBFBD><EFBFBD><E59786><EFBFBD>鈭歹<E988AD>
---
## <20><> 蝏蹱鰵撘<E9B0B5><E69298>𤏸<EFBFBD><F0A48FB8><EFBFBD><EFBFBD>鞟內
### 敹恍<E695B9><EFBFBD><E785BA>?
1. **鈭<>圾隞<E59CBE><E99A9E>仃鈭衤辣**
- <20><><EFBFBD><EFBFBD><EFBFBD><E78DA2>"<22><EFBFBD>鈭衤辣霈啣<E99C88>"<22><EFBFBD>
- <20><>圾銝箔<E98A9D><EFBFBD><E98A8B>瘥𤩺𠯫Git<69>𣂷漱
2. **<2A><><EFBFBD><EFBFBD>𡒊垢隞<E59EA2><E99A9E>**
- <20><><EFBFBD>`backend/src/modules/dc/index.ts`鈭<>圾璅<E79285>蝏𤘪<E89D8F>
- <20><>粉4銝杵ervice<63><65><EFBFBD><E8AAA8><EFBFBD>? - 餈鞱<E9A488>Prisma Studio<69><EFBFBD><E4BAA6>唳旿摨栞”
3. **<2A><>圾鈭穃<E988AD><E7A983><EFBFBD><EFBFBD>?*
- <20><>粉`鈭穃<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𤏸<EFBFBD><EFBFBD><EFBFBD>
-<>圾憒<E59CBE><E68692>憭滨鍂撟喳蝱<E596B3><EFBFBD>霈暹鴌
- **蝳<>迫**嚗𡁏𧋦<F0A1818F><EFBFBD>隞嗅<E99A9E><E59785><EFBFBD><E585B7><EFBFBD>摮条<E691AE>摮塩<E691AE><E5A1A9>蝻𣇉<E89DBB><F0A38789>滨蔭
4. **<EFBFBD><EFBFBD><EFBFBD><EFBFBD>SL璅<EFBFBD>**
- DC璅<E79285><E288AA>滨垢摨𠉛掩隡劈SL璅<E79285><E288AA><EFBFBD><EFBFBD>蝡舐<E89DA1><E88890>? - 憭滨鍂ASL<53><4C>ooks<6B><73><EFBFBD>隞嗅<E99A9E>撌亙<E6928C><E4BA99>賣㺭
- 靽脲<E99DBD><EFBFBD><E98A9D><EFBFBD><EFBFBD><E99A9E>憌擧聢
### 撣貉<E692A3><E8B289>琿𩐠
<EFBFBD>?**銝滩<E98A9D>餈蹱甅<E8B9B1>?*嚗?1. <20>砍𧑐撘<F0A79190><E69298>烐𧒄<E78390>湔𦻖<E6B994>総fs.writeFileSync()`嚗<><E59A97><EFBFBD><EFBFBD><E6BBA2><EFBFBD><EFBFBD><E996AB>嚗?2. 雿輻鍂<E8BCBB><EFBFBD><E585B8><EFBFBD>蝻枏<E89DBB><E69E8F>唳旿嚗𠄎erverless<73><EFBFBD>銝滚虾<E6BB9A>𩤃<EFBFBD>
3. 敹䁅扇瘥𤩺𠯫Git<69>𣂷漱嚗<E6BCB1><EFBFBD><E8AAA8><EFBFBD>賭腺憭梧<E686AD>
4. <20>每ursor蝏<72>垢餈鞱<E9A488>憭齿<E686AD><E9BDBF>𡁏𧋦嚗<F0A78BA6><E59A97><EFBFBD>粹䔮憸矋<E686B8>
<EFBFBD>?**摨磰砲餈蹱甅<E8B9B1>?*嚗?1. 雿輻鍂`storage.uploadBuffer()`摮睃<E691AE><E79D83><EFBFBD>
2. 雿輻鍂`cache.set()`蝻枏<E89DBB><E69E8F>唳旿
3. **瘥誩予銝讠号<E8AEA0><EFBFBD>憿腐it<69>𣂷漱**
4. 憭齿<E686AD><E9BDBF>𡁏𧋦<F0A1818F><EFBFBD><E585B8>沌owerShell餈鞱<E9A488>
---
## <20><><E79285>蝏蠘恣
### 隞<><E99A9E><EFBFBD><EFBFBD>霈∴<E99C88>敶枏<E695B6>嚗?```
<EFBFBD>𡒊垢隞<EFBFBD><EFBFBD><EFBFBD>歇摰峕<EFBFBD>嚗㚁<EFBFBD>
- TypeScript<70><74>辣嚗?銝?- <20><EFBFBD><E9A489><EFBFBD>蝥?,658銵?- <20>滚𦛚撅<F0A69B9A><E69285>4銝芣<E98A9D><E88AA3><EFBFBD>1,038銵?- <20><EFBFBD><E689B9><EFBFBD>嚗?88銵?- 頝舐眏撅<E79C8F><E69285>115銵?
<EFBFBD>滨垢隞<EFBFBD><EFBFBD><EFBFBD>𧊋撘<EFBFBD><EFBFBD>𡢅<EFBFBD>嚗?- TypeScript/TSX<53><58>辣嚗?銝迎<E98A9D>Placeholder嚗?- <20><EFBFBD><E9A489><EFBFBD>14銵?- <20><EFBFBD><E7AC94><EFBFBD>嚗?%
<EFBFBD>唳旿摨橒<EFBFBD>
- 銵冽㺭<E586BD>𧶏<EFBFBD>4銝迎<E98A9D>Prisma Schema撌脣<E6928C>銋㚁<E98A8B>
- 摰鮋<E691B0><E9AE8B>𥕦遣嚗尠<E59A97>儭?<3F>霈?```
### 撘<><E69298>𤏸<EFBFBD>摨?```
<EFBFBD><EFBFBD>餈𥕦漲嚗𡁶漲35%
- Tool B<>𡒊垢嚗?00% <20>?- Tool B<>滨垢嚗?% <20>?- Tool A嚗?% <20>?- Tool C嚗?% <20>?- Portal嚗?% <20>?```
---
## <20><> <20>渲陝
<EFBFBD>蠘陝<EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝𥟠C璅<EFBFBD><EFBFBD><EFBFBD>𤑳<EFBFBD><EFBFBD><EFBFBD>嚗𣬚鸌<EFBFBD>急糓<EFBFBD>其誨<EFBFBD><EFBFBD>腺憭勗<EFBFBD>敹恍<EFBFBD><EFBFBD>撱箇<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>摰𧼮<EFBFBD><EFBFBD>䭾芋<EFBFBD>㛖𠶖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𡠺<EFBFBD><EFBFBD><EFBFBD><EFBFBD>頞喉<EFBFBD>隞乩噶<EFBFBD>游末<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝏剖極雿栶<EFBFBD>?*
---
**<EFBFBD><EFBFBD><EFBFBD>擧凒<EFBFBD><EFBFBD>** 2025-12-10
**<EFBFBD><EFBFBD>﹝蝏湔擪嚗?* DC璅<E79285><EFBFBD><E69298>穃𣪧<E7A983>?
**<EFBFBD>𠉛頂<EFBFBD><EFBFBD>嚗?* 憿寧𤌍Issues