Files
AIclinicalresearch/docs/03-业务模块/DC-数据清洗整理/04-开发计划/工具C_MVP开发_TODO清单.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

547 lines
22 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.
# 撌亙<E6928C>C MVP撘<50><E69298>?- To-do List
> **<2A><><EFBFBD><EFB99D>𧋦**嚗鯝1.4
> **<2A>𥕦遣<F0A595A6><EFBFBD>**嚗?025-12-06
> **<2A><><EFBFBD>擧凒<E693A7>?*嚗?025-12-10
> **憸<>恣撌交<E6928C>**嚗?<3F><EFBFBD>15銝芸極雿𨀣𠯫嚗?
> **摰鮋<E691B0>餈𥕦漲**嚗阳eek 1-2摰峕<E691B0><EFBFBD><E59A97><EFBFBD><EFBFBD><E8B3A3>娑hase 1-2摰峕<E691B0><E5B395>?+ NA憭<41><E686AD>隡睃<E99AA1><E79D83>?+ Pivot<6F>烾◇摨譍<E691A8><E8AD8D><EFBFBD>
> **<2A><><EFBFBD><EFBFBD><EFBFBD>獢?*嚗靀撌亙<E6928C>C_MVP撘<50><E69298>𤏸恣<F0A48FB8>𦚱V1.0.md](./撌亙<E6928C>C_MVP撘<50><E69298>𤏸恣<F0A48FB8>𦚱V1.0.md), [撌亙<E6928C>C_<43><EFBFBD><E8A098>厰僼撘<E583BC><E69298>𤏸恣<F0A48FB8>𦚱V1.0.md](./撌亙<E6928C>C_<43><EFBFBD><E8A098>厰僼撘<E583BC><E69298>𤏸恣<F0A48FB8>𦚱V1.0.md)
---
## <20><> <20><EFBFBD>餈𥕦漲璁<E6BCB2><E79281>
| <20>嗆挾 | 隞餃𦛚<E9A483>?| 撌脣<E6928C><E884A3>?| 餈𥡝<E9A488>銝?| 敺<><E695BA>憪?| 摰峕<E691B0><E5B395>?|
|------|-------|-------|-------|-------|--------|
| **Week 1: <20><EFBFBD><E7AE87><EFBFBD>** | 12 | 12 | 0 | 0 | 100% <20>?|
| **Week 2: <20><EFBFBD><E8A9A8><EFBFBD>** | 10 | 0 | 0 | 10 | 0% |
| **Week 3: 瘚贝<E7989A>隡睃<E99AA1>** | 8 | 0 | 0 | 8 | 0% |
| **<EFBFBD>餉恣** | **30** | **12** | **0** | **18** | **40%** |
**<EFBFBD><EFBFBD><EFBFBD>唳凒<EFBFBD>?*嚗?025-12-08 16:00 **<EFBFBD><EFBFBD><EFBFBD>厰僼Phase 1-2摰峕<E691B0>** + 7銝芸<E98A9D><E88AB8><EFBFBD>蝥?
---
## <20><> <20><><EFBFBD><EFBFBD>撅𤏪<E69285>2025-12-10嚗?
### <20>?<3F><EFBFBD><E8A098>厰僼撘<E583BC><E69298>𡢅<EFBFBD>Phase 1-2嚗?
**7銝芣瓲敹<E793B2><E695B9><EFBFBD>賢歇摰峕<E691B0>**嚗?1. <20>?擃条漣蝑偦<E89D91>匧膥嚗<E886A5><E59A97><EFBFBD>∩辣AND/OR + 銝箇征/銝滢蛹蝛箸辺隞塚<E99A9E>
2. <20>?<3F><EFBFBD><EFBFBD><EFBFBD><E692A0><EFBFBD><EFBFBD><E6BBA8>?+ NA憭<41><E686AD><EFBFBD>厰★嚗帋<E59A97><E5B88B>?<3F><EFBFBD>/<2F>𣳇膄嚗?3. <20>?<3F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E59A97>摰?蝑厰<E89D91>/<2F><EFBFBD>銋匧<E98A8B><E58CA7>?+ NA憭<41><E686AD><EFBFBD>厰★嚗?4. <20>?<3F>∩辣<E288A9><E8BEA3><EFBFBD><EFBFBD><EFBFBD>IF-THEN-ELSE + 銝箇征/銝滢蛹蝛箸辺隞塚<E99A9E>
5. <20>?<3F>𣳇膄蝻箏仃<E7AE8F><EFBFBD><E6BD98><EFBFBD>/<2F><EFBFBD><E6A2B9><EFBFBD><EFBFBD>潭綉<E6BDAD><EFBFBD>
6. <20>?霈∠<E99C88><E288A0><EFBFBD><E6A2B9><EFBFBD>B嚗𡁜<E59A97><F0A1819C><EFBFBD><E585B8>齿<EFBFBD><EFBFBD><E692A0><EFBFBD><EFBFBD><E88880><EFBFBD>摮㛖泵<E39B96><EFBFBD>嚗?7. <20>?Pivot頧祆揢嚗<E68FA2>鵭銵兩<E98AB5>摰質” + 靽萘<E99DBD><E89098><EFBFBD><EFBFBD> + <20><EFBFBD><E7AC94>烾◇摨𧶏<E691A8>
**<EFBFBD><EFBFBD><EFBFBD>舀沲<EFBFBD>?*嚗?- <20>?憸<><E686B8>Python<6F>賣㺭<E8B3A3><EFBFBD><EFBFBD>迅摰𠾼<E691B0><F0A0BEBC><EFBFBD><EFBFBD><EFBFBD><E585B7><EFBFBD><EFBFBD><EFBFBD>嚗?- <20>?7銝枉ython operations璅<E79285>
- <20>?7銝服PI蝡舐<E89DA1>嚗Ǒ/api/operations/*`嚗?- <20>?摰峕㟲<E5B395><E39FB2><EFBFBD><EFBFBD>𡒊垢<F0A1928A><E59EA2><EFBFBD>
- <20>?<3F>见末<E8A781><E69CAB>I鈭支<E988AD>嚗㇄ialog + 摰墧𧒄撉諹<E69289>嚗?
### <20>?NA憭<41><E686AD>隡睃<E99AA1>嚗?025-12-09~10嚗?
**4銝芸<E98A9D><E88AB8>賣𣈲<E8B3A3><F0A388B2><EFBFBD><EFBFBD><E6BE86>?*嚗?1. <20>?<3F><EFBFBD><EFBFBD>撠?- NA憭<41><E686AD><EFBFBD>厰★嚗<E29885><E59A97><EFBFBD><EFBFBD>A/<2F><EFBFBD>銝箸<E98A9D>摰𡁜<E691B0>?<3F>𣳇膄銵䕘<E98AB5>
2. <20>?擃条漣蝑偦<E89D91>?- 銝箇征/銝滢蛹蝛箸辺隞塚<E99A9E><E5A19A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?3. <20>?<3F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - NA憭<41><E686AD><EFBFBD>厰★嚗<E29885><E59A97><EFBFBD><EFBFBD>蛹蝛?<3F><>扇銝?蝻箏仃"/<2F><><EFBFBD><EFBFBD><EFBFBD>摰𡁶<E691B0>嚗?4. <20>?<3F>∩辣<E288A9><E8BEA3><EFBFBD><EFBFBD>?- 銝箇征/銝滢蛹蝛箄<E89D9B>蝞㛖泵
### <20>?Pivot<6F>烾◇摨譍<E691A8><E8AD8D><EFBFBD>2025-12-10嚗?
- <20>?靽萘<E99DBD><E89098><EFBFBD>㗇𥋘<E39787><F0A58B98><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E58CA7><EFBFBD>
- <20>?<3F><EFBFBD><EFBFBD><E58CA7>𡁜<EFBFBD><F0A1819C><EFBFBD><EFBFBD><E59A97>蝚砌<E89D9A>銝芸<E98A9D>?<3F><EFBFBD><E7A2B6>?<3F><EFBFBD><E7A18B><EFBFBD>
- <20>?靽脲<E99DBD><E884B2><EFBFBD><E7AC94>烾◇摨𧶏<E691A8>頧祆揢<E7A586>𤾸<EFBFBD><F0A4BEB8><EFBFBD><E58CA7><EFBFBD>辣憿箏<E686BF><E7AE8F><EFBFBD>嚗?- <20>?<3F><EFBFBD><E8AE9B><EFBFBD><EFBFBD>擐𡝗活<F0A19D97>箇緵憿箏<E686BF><E7AE8F><EFBFBD>
### <20>?UX隡睃<E99AA1>嚗?025-12-09嚗?
- <20>?<3F>堒仍tooltip嚗<70><E59A97><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𨀣遬蝷箏<E89DB7><E7AE8F><EFBFBD><E6B8B8><EFBFBD>
- <20>?50銵屸<E98AB5><EFBFBD><E996AB>蝷箏虾<E7AE8F>喲𡡒
- <20>?憿菟𢒰皛𡁜𢆡<F0A1819C><EFBFBD><E288A9><EFBFBD><E59094><EFBFBD><EFBFBD>皛𡁜𢆡嚗峕<E59A97><E5B395>湧△皛𡁜𢆡嚗?
### <20>?霈∠<E99C88><E288A0>埈䲮獢㇂摰墧鴌嚗?025-12-09嚗?
- <20>?<3F>滨垢摰匧<E691B0><E58CA7><EFBFBD><E5A092><EFBFBD>嚗Ếol_0, col_1...嚗?- <20>?<3F>𡒊垢columnMapping摮睃<E691AE><E79D83><EFBFBD><E494B6>?- <20>?Python蝡臭蝙<E887AD>牢olumnMapping霈∠<E99C88><EFBFBD>𣈲<EFBFBD><F0A388B2>鸌畾𠰴<E795BE>蝚血<E89D9A><E8A180><EFBFBD>
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?025-12-10銝见<E98A9D>嚗?*嚗?- <20>?蝻箏仃<E7AE8F>銵伐<E98AB5>6蝘齿䲮瘜𤏪<E7989C><F0A48FAA><EFBFBD><EFBFBD>?銝凋<E98A9D><E5878B>?隡埈㺭/<2F><EFBFBD><E7AE8F>?<3F><EFBFBD>憛怠<E6869B>/<2F>𤾸<EFBFBD>憛怠<E6869B>嚗? 撌脣<E6928C><E884A3>?- <20>银 MICE憭𡁻<E686AD><F0A181BB> - 撌脤<E6928C><E884A4><EFBFBD>DataFrame shape<70><EFBFBD><EFBFBD><E695BA>霂?- <20>?<3F>芸𢆡蝎曉漲璉<E6BCB2>瘚?- 憛怨<E680A8>潸䌊<E6BDB8>典龪<E585B8><EFBFBD>憪𧢲㺭<F0A7A2B2><EFBFBD><E6A180><EFBFBD><E594AC>?- <20>?<3F><><EFBFBD>𡑒<EFBFBD><F0A19192>?- MICE<43>芸𢆡頝唾<E9A09D><E594BE><EFBFBD><EFBFBD>堒僎<E5A092>鞟內
- <20>?<3F><EFBFBD><E8A098>厰僼隡睃<E99AA1> - 蝘駁膄"<22><EFBFBD>"<22>?憭𡁻<E686AD><F0A181BB>"<22><EFBFBD><E7A589>厰僼嚗<E583BC><E59A97>撟嗅<E6929F>"蝻箏仃<E7AE8F><EFBFBD><E6BE86>?
- <20>?<3F>芸𢆡<E88AB8>𡝗<EFBFBD>霂閗<E99C82><E99697>?- 18銝芣<E98A9D>霂閧鍂靘页<E99D98>test_fillna_operations.py嚗?
**<2A><EFBFBD><E595A3><EFBFBD>嚗?025-12-10<31><EFBFBD>嚗? UX隡睃<E99AA1><E79D83>滚之<E6BB9A><EFBFBD>** <20><><EFBFBD>
- <20>?<3F>𣳇膄"<22>?0銵屸<E98AB5>閫?<3F>鞟內<E99E9F>?- <20><EFBFBD>雿㯄<E99BBF>隡睃<E99AA1>
- <20>?瘛餃<E7989B><EFBFBD><EFBFBD>?- <20><EFBFBD><E7AE8F>刻”<E588BB>澆椰靘改<E99D98><E694B9>啗𠧧<E59597>峕艶嚗?蝚血噡<E8A180>堒仍
- <20>?<3F>堒仍蝑偦<E89D91><EFBFBD><E58CA7>?- Excel憌擧聢嚗龦ommunity<74><79>𧋦嚗䔶葉<E494B6><E89189>𧋦<EFBFBD><EFBFBD>嚗峕遬蝷箏𣈲銝<F0A388B2><E98A9D><EFBFBD>霈⊥㺭
- <20>?<3F><EFBFBD><E588B8>唳旿<E594B3>㰘蝸 - 銝滚<E98A9D><E6BB9A>𣂼<EFBFBD>50銵䕘<E98AB5>蝑偦<E89D91>匧抅鈭𤾸<E988AD><F0A4BEB8>𤩺㺭<F0A4A9BA><EFBFBD>蝏𤘪<E89D8F>蝎曄
- <20>?<3F><EFBFBD><E588B8>唳旿餈𥪜<E9A488> - <20><><EFBFBD>匧翰<E58CA7><E7BFB0><EFBFBD>雿頣<E99BBF>蝑偦<E89D91>?<3F><EFBFBD>/<2F><>拳/<2F>∩辣/<2F>賫A/霈∠<E99C88>/Pivot嚗匧<E59A97><E58CA7><EFBFBD><E8AE9B>?- <20>?**皛𡁜𢆡<F0A1819C><EFBFBD><E288A0><EFBFBD>耨憭?* - 靽格㺿MainLayout銝箏𤐄摰𡁻<E691B0>摨佗<E691A8>h-screen嚗㚁<E59A97><E39A81>港葵瘚讛<E7989A><E8AE9B><EFBFBD><E587BD><EFBFBD><EFBFBD>皛𡁜𢆡<F0A1819C><EFBFBD><E288B4><EFBFBD>AG Grid<69><64><EFBFBD>皛𡁜𢆡
- <20>?霈∠<E99C88><E288A0><EFBFBD>閫鍦<E996AB>蝚虫耨憭?- <20>芸𢆡頧祆揢銝剜<E98A9D><E5899C>砍噡蝑匧<E89D91>閫鍦<E996AB>蝚?- <20>?霈∠<E99C88><E288A0>㛖鸌畾𠰴<E795BE>蝚血<E89D9A><E8A180>滢耨憭?- 摰<><E691B0><EFBFBD><EFBFBD><E5A092>齿㦤<E9BDBF><EFBFBD><E5A19A><EFBFBD>隞餅<E99A9E><E9A485><EFBFBD>摮㛖泵<E39B96><EFBFBD>
**敶枏<E695B6><E69E8F><EFBFBD>?*嚗?- <20>?**Tool C <20><EFBFBD>摰峕<E691B0>摨佗<E691A8>98%** - <20><EFBFBD><E8A9A8><EFBFBD><E8A098><EFBFBD>摰峕<E691B0>嚗𣬚鍂<F0A3AC9A><EFBFBD>撉峕遬<E5B395><EFBFBD><E59F88>?- <20><> **隞<><E99A9E>蝏蠘恣**嚗䥪ython ~1800銵?+ Node.js ~3500銵?+ <20>滨垢 ~4000銵?+ <20>𡁶鍂Chat ~968銵?= **~10268銵?*
---
## <20><20><EFBFBD><E8A9A8>𣬚<EFBFBD>蝣𡢅<E89DA3><EFBFBD>◆摰峕<E691B0>嚗?
- [x] **M1**嚗䥪ython隞<6E><E99A9E><EFBFBD><EFBFBD><E689AF><EFBFBD><E887AC>剖遣摰峕<E691B0>嚗㇄ay 1嚗争<E59A97> 2025-12-06
- [x] **M2**嚗鋫I<E98BAB><49><EFBFBD><EFBFBD><E99A9E><EFBFBD><EFBFBD>撉諹<E69289><E8ABB9><EFBFBD>嚗㇄ay 3嚗争<E59A97> 2025-12-07
- [x] **M3**嚗𡁜<E59A97>蝡烘VP摰峕<E691B0>嚗𣬚垢<F0A3AC9A>啁垢<E59581>舐鍂嚗㇄ay 5嚗争<E59A97> 2025-12-07 **摰峕<E691B0>嚗?*
- [ ] **M4**嚗𡁏<E59A97><EFBFBD><E9A2B1>𣂼<EFBFBD><F0A382BC>?> 80%嚗㇄ay 6-7嚗争虬儭?敺<><E695BA>憪?
---
## <20><> <20><><EFBFBD><EFBFBD>撅𤏪<E69285>2025-12-07嚗?
### <20>?撌脣<E6928C><E884A3>?- **Day 1** (2025-12-06): Python敺格<E695BA><E6A0BC><EFBFBD>撅?<3F>? - dc_executor.py嚗?27銵䕘<E98AB5>
- AST摰匧<E691B0><EFBFBD><E79289>?+ Pandas<61><EFBFBD>
- 瘚贝<E7989A><E8B49D><EFBFBD><E69C9E><EFBFBD><EFBFBD>100%
- **Day 2** (2025-12-06): Session蝞∠<E89D9E> + <20>唳旿憭<E697BF><E686AD> <20>? - SessionService.ts嚗?83銵䕘<E98AB5>
- DataProcessService.ts嚗?03銵䕘<E98AB5>
- SessionController.ts嚗?00銵䕘<E98AB5>
- <20>唳旿摨栞”嚗飱c_tool_c_sessions
- 瘚贝<E7989A><E8B49D><EFBFBD><E69C9E><EFBFBD><EFBFBD>100% (7/7 API)
- **Day 3** (2025-12-07): AI隞<49><E99A9E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滚𦛚 <20>? - AICodeService.ts嚗?50銵䕘<E98AB5>
- AIController.ts嚗?57銵䕘<E98AB5>
- <20>唳旿摨栞”嚗飱c_tool_c_ai_history
- 10銝東ew-shot蝷箔<E89DB7>
- <20><EFBFBD>靽格迤<E6A0BC><EFBFBD><EFBFBD><E59A97>憭?甈⊿<E79488>霂𤏪<E99C82>
- 瘚贝<E7989A><E8B49D><EFBFBD><E69C9E><EFBFBD><EFBFBD>81.8% (9/11<31>箸艶)
- **Day 4** (2025-12-07): <20>滨垢<E6BBA8><EFBFBD><EFBFBD><20>? - index.tsx嚗?58銵䕘<E98AB5>
- Header + Toolbar + DataGrid (AG Grid)
- Sidebar撉冽沲
- API撠<49><E692A0>嚗ōoolC.ts, 218銵䕘<E98AB5>
- 頝舐眏<E88890>滨蔭摰峕<E691B0>
- Portal<61>舐鍂Tool C
- **Day 5** (2025-12-07): AI Chat<61>踎摰峕<E691B0> + Ant Design X <20><><EFBFBD> <20>?**<2A>滚之<E6BB9A>𣬚<EFBFBD>蝣𡢅<E89DA3>**
- [x] Ant Design 6.0 <20><><20>? - [x] @ant-design/x + x-sdk <20><><EFBFBD> <20>? - [x] <20>𡁶鍂 Chat 蝏<>辣撘<E8BEA3><E69298>𡢅<EFBFBD>~968銵䕘<E98AB5><E49598>? - ChatContainer, MessageRenderer, CodeBlockRenderer
- 摰峕㟲蝐餃<E89D90>摰帋<E691B0><E5B88B><EFBFBD>獢? - [x] Tool C <20><><EFBFBD> ChatContainer <20>? - [x] <20><>辣銝𠹺<E98A9D>摰峕㟲瘚<E39FB2><E7989A> <20>? - [x] API 摰峕㟲撖寞𦻖 <20>? - [x] UI 隡睃<E99AA1>嚗?銝芷䔮憸䀝耨憭㵪<E686AD><E3B5AA>? - [x] 蝡臬<E89DA1>蝡舀<E89DA1>霂閖<E99C82><EFBFBD> <20>? - **<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗鰺2100銵?*
### <20><EFBFBD><><E695BA>憪?- **Day 6-7**: 隡睃<E99AA1>銝擧<E98A9D>霂𤏪<E99C82><F0A48FAA>𣂼<EFBFBD><F0A382BC>?> 80%嚗?- **Day 8-10**: 擃条漣<E69DA1><EFBFBD><EFBFBD><EFBFBD><E4BC83>/<2F><EFBFBD><E6BB9A><EFBFBD><EFBFBD><EFBFBD>
- **Day 11-15**: <20>券𢒰瘚贝<E7989A>銝𡡞<E98A9D><F0A1A19E>?
---
## <20><> Week 1嚗𡁜抅蝖<E68A85><E89D96><EFBFBD><E59786>剖遣嚗㇄ay 1-5嚗?
### Day 1嚗䥪ython<6F>滚𦛚<E6BB9A><EFBFBD> + <20><EFBFBD>撉諹<E69289> 潃?<3F>?**撌脣<E6928C><E884A3>?2025-12-06**
#### Python敺格<E695BA><E6A0BC><EFBFBD>撅?- [x] **P0** <20>𥕦遣 `extraction_service/services/dc_executor.py` <20>? - [x] 摰䂿緵 `validate_code(code)` - AST<53><EFBFBD><E8B9B1><EFBFBD><EFBFBD>?<3F>? - [x] 摰䂿緵 `execute_pandas_code(data, code)` - 隞<><E99A9E><EFBFBD><EFBFBD> <20>? - [x] 瘛餃<E7989B><E9A483>梢埯璅<E79285>暺穃<E69ABA><E7A983>𤏪<EFBFBD>os<6F><73>ys<79><73>ubprocess蝑㚁<E89D91><E39A81>? - [x] 瘛餃<E7989B><EFBFBD>𧒄靽脲擪嚗?0蝘𡜐<E89D98><F0A19C90>? - [x] 瘛餃<E7989B><EFBFBD><EFBFBD>閗繮<E99697><EFBFBD>霂舀<E99C82><E88880>?<3F>?
- [x] **P0** <20><EFBFBD> `extraction_service/main.py` <20>? - [x] 瘛餃<E7989B> `POST /api/dc/execute` 蝡舐<E89DA1> <20>? - [x] 瘛餃<E7989B> `POST /api/dc/validate` 蝡舐<E89DA1> <20>? - [x] 瘛餃<E7989B>霂瑟<E99C82><E7919F><EFBFBD>霈啣<E99C88> <20>? - [x] 瘛餃<E7989B><E9A483>躰秤憭<E7A7A4><E686AD>銝剝𡢿隞?<3F>?
- [x] **P0** 瘚贝<E7989A>Python<6F>滚𦛚 <20>? - [x] <20>臬𢆡<E887AC>滚𦛚 <20>? - [x] 瘚贝<E7989A><E8B49D>亙熒璉<E78692><E79289>?<3F>? - [x] 瘚贝<E7989A><EFBFBD><E99A9E>撉諹<E69289> <20>? - [x] 瘚贝<E7989A><EFBFBD><E99A9E><EFBFBD><EFBFBD> <20>? - [x] 撉諹<E69289>AST<53>行⏛ <20>?
#### Node.js<6A>𡒊垢<F0A1928A><E59EA2><EFBFBD>
- [x] **P0** <20>𥕦遣<F0A595A6>𡒊垢<F0A1928A><E59EA2>辣憭寧<E686AD><E5AFA7>?<3F>?
- [x] **P0** 摰䂿緵 `PythonExecutorService.ts` <20>? - [x] 摰䂿緵 `executeCode(data, code)` <20><EFBFBD> <20>? - [x] 摰䂿緵 `validateCode(code)` <20><EFBFBD> <20>? - [x] 瘛餃<E7989B><EFBFBD>𧒄<EFBFBD><EFBFBD>嚗?0蝘𡜐<E89D98><F0A19C90>? - [x] 瘛餃<E7989B><E9A483><EFBFBD>霈啣<E99C88> <20>? - [x] 瘛餃<E7989B><E9A483>躰秤憭<E7A7A4><E686AD><EFBFBD><EFBFBD>霂閙㦤<E99699>?<3F>?
- [x] **P1** <20><EFBFBD><E887AC><EFBFBD><E3979B>滨蔭 <20>?
#### 撉峕𤣰<E5B395><F0A4A3B0><EFBFBD>
- [x] Python<6F>滚𦛚<E6BB9A><EFBFBD><E8B3A3><EFBFBD><EFBFBD>銵𣬚<E98AB5><F0A3AC9A>𠠬andas隞<73><E99A9E> <20>?- [x] AST璉<54><E79289><EFBFBD><E4BAA5>行⏛<E8A18C>梢埯隞<E59FAF><E99A9E> <20>?- [x] Node.js<6A><EFBFBD><E8B3A3><EFBFBD><E8A098>沌ython<6F>滚𦛚撟嗉繮<E59789>𣇉<EFBFBD><F0A38789>?<3F>?- [x] <20><><EFBFBD>㗇𠯫敹埈迤撣貉<E692A3><E8B289><EFBFBD><E7AE8F><EFBFBD><E689B9>?<3F>?
---
### Day 2嚗𡁏㺭<F0A1818F><EFBFBD> + Session蝞∠<E89D9E> <20>?**撌脣<E6928C><E884A3>?2025-12-06**
#### <20>唳旿摨廍chema霈曇恣
- [x] **P0** <20>𥕦遣Prisma Schema嚗Ǒprisma/schema.prisma`嚗争<E59A97>
```prisma
// @@schema("dc")
model DcToolCSession {
id String @id @default(uuid())
userId String
fileName String
fileKey String // OSS摮睃<E691AE>key
totalRows Int
totalCols Int
columns Json // <20><EFBFBD><E5A092><EFBFBD>
encoding String? // 蝻𣇉<E89DBB><F0A38789><EFBFBD>
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([userId])
@@map("dc_tool_c_sessions")
}
```
- [ ] **P0** <20><EFBFBD><E689AF>唳旿摨栞<E691A8>蝘? ```bash
npx prisma db push
npx prisma generate
```
- [ ] **P1** 撉諹<E69289>銵典<E98AB5>撱箸<E692B1><E7AEB8>? ```sql
SELECT * FROM dc.dc_tool_c_sessions LIMIT 1;
```
#### SessionService摰䂿緵
- [ ] **P0** 摰䂿緵 `SessionService.ts`
- [ ] `createSession(userId, fileName, fileBuffer)` - <20>𥕦遣隡朞<E99AA1>
- [ ] 銝𠹺<E98A9D>Excel<65>記SS嚗<53><E59A97><EFBFBD>?`storage.uploadBuffer`嚗? - [ ] 閫<><E996AB>Excel<65>衷SON嚗<4E><EFBFBD>肝lsx摨橒<E691A8>
- [ ] 靽嘥<E99DBD><E598A5><EFBFBD><EFBFBD><EFBFBD><E6A180>唳旿摨橒<E691A8>prisma嚗? - [ ] `getSession(sessionId)` - <20><EFBFBD>隡朞<E99AA1>
- [ ] 隞擧㺭<E693A7><EFBFBD>霂餃<E99C82><E9A483><EFBFBD><EFBFBD>? - [ ] 隞窻SS銝贝蝸<E8B49D>唳旿嚗<E697BF><E59A97><EFBFBD><EFBFBD><EFBFBD><E996AC>
- [ ] `deleteSession(sessionId)` - <20>𣳇膄隡朞<E99AA1>
- [ ] <20>𣳇膄OSS<53><53>
- [ ] <20>𣳇膄<F0A3B387>唳旿摨栞扇敶?
- [ ] **P1** 瘛餃<E7989B>Excel閫<6C><E996AB><EFBFBD><EFBFBD>
- [ ] 雿輻鍂 `xlsx` 摨栞粉<E6A09E>鍨xcel
- [ ] 頧祆揢銝撇SON<4F><EFBFBD><EFBFBD>㺭蝏<E3BAAD>笆鞊∴<E99E8A>
- [ ] 璉<>瘚讠<E7989A><E8AEA0><EFBFBD><EFBFBD>銝剜<E98A9D><E5899C><EFBFBD>嚗? - [ ] <20>𣂼<EFBFBD><F0A382BC><EFBFBD><E5A092>峕㺭<E5B395>桃掩<E6A183>?
#### 撉峕𤣰<E5B395><F0A4A3B0><EFBFBD>
- [ ] <20><EFBFBD><E8B3A3><EFBFBD>隡?0MB隞亙<E99A9E><E4BA99><EFBFBD>xcel<65><6C>
- [ ] <20>唳旿甇<E697BF>靽嘥<E99DBD><E598A5>記SS嚗<53><EFBFBD><EFBFBD>嚗?- [ ] Session<6F><6E><EFBFBD>格迤蝖桀<E89D96><E6A180><EFBFBD><E585B8>唳旿摨?- [ ] <20><EFBFBD><EFBFBD>sessionId璉<64><E89D9D>摰峕㟲<E5B395>唳旿
---
### Day 3嚗鋫I隞<49><E99A9E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滚𦛚
#### AICodeService摰䂿緵
- [ ] **P0** 摰䂿緵 `AICodeService.ts`
- [ ] <20><><EFBFBD>LLMFactory嚗<79><E59A97><EFBFBD>?`@/common/llm`嚗? - [ ] 摰䂿緵 `generateCode(prompt, dataContext)` <20><EFBFBD>
- [ ] <20><>遣System Prompt嚗<74><E59A97><EFBFBD>?0銝東ew-shot蝷箔<E89DB7>嚗? - [ ] 瘜典<E7989C><E585B8>唳旿銝𠹺<E98A9D><F0A0B9BA><EFBFBD><EFBFBD>銵峕㺭<E5B395><E3BAAD><EFBFBD><EFBFBD><EFBFBD><E6BABB><EFBFBD>祆㺭<E7A586><EFBFBD>
- [ ] 靚<>鍂LLM<4C><4D><EFBFBD><EFBFBD><E99A9E>
- [ ] <20>𣂼<EFBFBD>蝥臭誨<E887AD><E8AAA8><EFBFBD><EFBFBD>駁膄Markdown<77><EFBFBD>嚗? - [ ] 摰䂿緵 `fixCode(originalCode, errorMsg, dataContext)` <20><EFBFBD>
- [ ] AI<41><EFBFBD>靽桀<E99DBD><E6A180><EFBFBD>
- [ ] <20><>憭𡁻<E686AD>霂?甈?
- [ ] **P0** System Prompt霈曇恣
- [ ] <20><EFBFBD><E7AE87>箸艶蝷箔<E89DB7>嚗?銝迎<E98A9D>
- [ ] 銝剔<E98A9D><E58994>箸艶蝷箔<E89DB7>嚗?銝迎<E98A9D>
- [ ] 擃条漣<E69DA1>箸艶蝷箔<E89DB7>嚗?銝迎<E98A9D>
- [ ] 摰匧<E691B0><EFBFBD><E996AB>霂湔<E99C82>
- [ ] 颲枏枂<E69E8F><EFBFBD><EFBFBD><E996AC>
- [ ] **P1** 隞<><E99A9E><EFBFBD>𣂼<EFBFBD><F0A382BC><EFBFBD>
- [ ] 霂<><E99C82> ` ```python ... ``` ` <20><EFBFBD>
- [ ]<><E99C82>蝥臭誨<E887AD><E8AAA8>聢撘? - [ ] <20>駁膄瘜券<E7989C><E588B8>諹秩<E8ABB9>?
#### 撉峕𤣰<E5B395><F0A4A3B0><EFBFBD>
- [ ] AI<41><EFBFBD><E8B39C>鞉迤蝖桃<E89D96>Pandas隞<73><E99A9E><EFBFBD>抅蝖<E68A85><E89D96>箸艶嚗?- [ ] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8AAA8><EFBFBD><E6B3B5><EFBFBD><EFBFBD><EFBFBD><E588BB><EFBFBD><EFBFBD><EFBFBD>惩暒<E683A9>拙紡<E68B99><EFBFBD>
- [ ] <20>賣迤蝖桀<E89D96><E6A180><EFBFBD><EFBFBD><E89189><EFBFBD><EFBFBD>?- [ ] 隞<><E99A9E><EFBFBD>𣂼<EFBFBD><F0A382BC><EFBFBD><EFBFBD>?> 95%
---
### Day 4嚗𡁜<E59A97>蝡臬抅蝖<E68A85><EFBFBD>
#### <20>滨垢<E6BBA8><E59EA2>辣憭寧<E686AD><E5AFA7>?- [ ] **P0** <20>𥕦遣<F0A595A6>滨垢<E6BBA8><EFBFBD>
```
frontend-v2/src/modules/dc/pages/tool-c/
<20><EFBFBD><E98EBF><EFBFBD> index.tsx # 銝駁△<E9A781><EFBFBD><EFBCB7>? <20><EFBFBD><E98EBF><EFBFBD> components/
<20>? <20><EFBFBD><E98EBF><EFBFBD> DataTable.tsx # AG Grid<69>唳旿銵冽聢
<20>? <20><EFBFBD><E98EBF><EFBFBD> AICopilot.tsx # AI撖寡<E69296>靘扯器<E689AF>? <20>? <20><EFBFBD><E98EBF><EFBFBD> FileUploader.tsx # <20><>辣銝𠹺<E98A9D>
<20>? <20><EFBFBD><E98EBF><EFBFBD> Toolbar.tsx # 憿園<E686BF>撌亙<E6928C><E4BA99>? <20>? <20><EFBFBD><E5A999><EFBFBD> ChatMessage.tsx # 撖寡<E69296><EFBFBD><E798A8><EFBFBD>
<20><EFBFBD><E98EBF><EFBFBD> hooks/
<20>? <20><EFBFBD><E98EBF><EFBFBD> useSession.ts # Session蝞∠<E89D9E>
<20>? <20><EFBFBD><E5A999><EFBFBD> useAIChat.ts # AI撖寡<E69296>
<20><EFBFBD><E98EBF><EFBFBD> types.ts # TypeScript蝐餃<E89D90>摰帋<E691B0>
<20><EFBFBD><E5A999><EFBFBD> api.ts # API撠<49><E692A0>
```
- [ ] **P0** 摰㕑<E691B0>靘肽<E99D98>
```bash
cd frontend-v2
npm install ag-grid-react ag-grid-community xlsx
```
#### 銝駁△<E9A781><EFBFBD><EFBFBD>
- [ ] **P0** 摰䂿緵 `index.tsx`嚗<>蜓撣<E89C93><E692A3>嚗? - [ ] 撌虫儒嚗𡁏㺭<F0A1818F>株”<E6A0AA>澆躹<E6BE86><E8BAB9><EFBFBD>70%摰賢漲嚗? - [ ] <20>喃儒嚗鋫I Copilot靘扯器<E689AF>𧶏<EFBFBD>30%摰賢漲嚗? - [ ] 憿園<E686BF>嚗𡁏<E59A97>撟喳極<E596B3><EFBFBD><EFBFBD><E59A97>隞嗡<E99A9E>隡𨬭<E99AA1><F0A8ACAD><EFBFBD><EFBFBD><E7AE9D><EFBFBD><E4BC83>嚗? - [ ] <20><EFBFBD><E59786><EFBFBD><E681A3><EFBFBD>useState/useReducer
- [ ] **P1** 摰䂿緵 `FileUploader.tsx`
- [ ] <20>𡝗嗻銝𠹺<E98A9D><F0A0B9BA><EFBFBD>
- [ ] <20><>辣蝐餃<E89D90>撉諹<E69289><EFBFBD><E59A97>Excel嚗? - [ ] <20><>辣憭批<E686AD><E689B9>𣂼<EFBFBD>嚗?0MB嚗? - [ ] 銝𠹺<E98A9D>餈𥕦漲<F0A595A6>曄內
#### 撉峕𤣰<E5B395><F0A4A3B0><EFBFBD>
- [ ] 憿菟𢒰撣<F0A292B0><E692A3><EFBFBD><EFBC86>椰銵冽聢<E586BD>莧I嚗?- [ ] <20><EFBFBD><E8B3A3><EFBFBD>隡𪊲xcel<65><6C>
- [ ] 銝𠹺<E98A9D><F0A0B9BA><EFBFBD><E88898><EFBFBD><E8A781>㰘蝸<E3B098><EFBFBD>?- [ ] <20><EFBFBD>撘誩<E69298><EFBFBD><EFBFBD><E59A97>撠誩捐摨?280px嚗?
---
### Day 5嚗𡁏㺭<F0A1818F>株”<E6A0AA><EFBFBD><E6BE86><EFBFBD>AG Grid嚗?
#### DataTable蝏<65>
- [ ] **P0** 摰䂿緵 `DataTable.tsx`
- [ ] <20><><EFBFBD>AG Grid
- [ ] <20><EFBFBD><E586BD><EFBFBD>摰帋<E691B0><EFBFBD><EFBFBD>圃xcel<65>芸𢆡<E88AB8><F0A286A1><EFBFBD>嚗? - [ ] <20><EFBFBD><E8A8AB><EFBFBD>颲穃<E9A2B2><E7A983>? - [ ] <20>𤩺㺭<F0A4A9BA><EFBFBD>霈堆<E99C88><EFBFBD>𠧧擃䀝漁嚗? - [ ] <20><><EFBFBD><EFBFBD><EFBFBD><E59A97>憿?00銵䕘<E98AB5>
- [ ] **P1** <20>滨蔭AG Grid銝駁<E98A9D>
- [ ] 雿輻鍂 `ag-theme-alpine`
- [ ] <20><EFBFBD>銋㗇甅撘𧶏<E69298>Ant Design憌擧聢嚗? - [ ] <20>堒捐<E5A092><EFBFBD><E88AB7><EFBFBD>
- [ ] **P1** 銵冽聢<E586BD><EFBFBD>
- [ ] <20><EFBFBD>摨? - [ ] <20><EFBFBD><E39B96>? - [ ] 銵屸<E98AB5>㗇𥋘嚗<F0A58B98><E59A97><EFBFBD><EFBFBD>
- [ ] 撖澆枂CSV嚗㇁G Grid<69><64>蔭嚗?
#### 撉峕𤣰<E5B395><F0A4A3B0><EFBFBD>
- [ ] <20>賣迤蝖格遬蝷慟xcel<65>唳旿嚗?00銵?嚗?- [ ] <20>堒捐<E5A092><EFBFBD><E88AB7><EFBFBD>銝𥪜虾<F0A5AA9C>见𢆡靚<F0A286A1>
- [ ] <20><EFBFBD><E8A8AB><EFBFBD>颲穃<E9A2B2><E7A983><EFBFBD><E58EB0><EFBFBD>霈?- [ ] 銵冽聢<E586BD><EFBFBD><EFBFBD><E7989A>嚗?000銵䔶<E98AB5><E494B6>⊿▼嚗?
---
## <20><> Week 2嚗𡁏瓲敹<E793B2><E695B9><EFBFBD><EFBFBD><E8B3A2><EFBFBD>Day 6-10嚗?
### Day 6嚗鋫I撖寡<E69296>UI
#### AICopilot蝏<74>
- [ ] **P0** 摰䂿緵 `AICopilot.tsx`
- [ ] 撖寡<E69296><EFBFBD><E798A8><EFBFBD>𡑒”嚗<E2809D><E59A97><EFBFBD><EFBFBD>
- [ ] 颲枏<E9A2B2><EFBFBD><E78DA2>憭朞<E686AD>嚗峕𣈲<E5B395><F0A388B2>nter<65><EFBFBD><E785BE><EFBFBD>
- [ ] <20><EFBFBD><E785BE><EFBFBD><EFBFBD>? - [ ] <20>㰘蝸<E3B098><EFBFBD><E59786><EFBFBD>AI<41><EFBFBD><E882BD>葉...嚗?
- [ ] **P0** 摰䂿緵 `ChatMessage.tsx`
- [ ] <20><EFBFBD><EFBFBD><E798A8><EFBFBD>𢰧撖寥<E69296>嚗諹<E59A97><E8ABB9><EFBFBD>
- [ ] AI瘨<49><E798A8><EFBFBD>椰撖寥<E69296>嚗𣬚<E59A97><F0A3AC9A><EFBFBD>
- [ ] 隞<><E99A9E><EFBFBD><EFBFBD>鈭殷<E988AD>雿輻鍂 `react-syntax-highlighter`嚗? - [ ] <20>園𡢿<E59C92>單遬蝷?
- [ ] **P1** 瘨<><E798A8><EFBFBD><EFBFBD>蟮蝞∠<E89D9E>
- [ ] 靽嘥<E99DBD><E598A5>追ocalStorage
- [ ] <20><>憭帋<E686AD>摮?0<>? - [ ] 皜<><EFBFBD><E5BE81><EFBFBD>厰僼
#### 撉峕𤣰<E5B395><F0A4A3B0><EFBFBD>
- [ ] 撖寡<E69296><E5AFA1>屸𢒰蝢舘<E89DA2><EFBFBD><E59A97><EFBFBD><EFBFBD><EFBFBD><EFBFBD>贝挽霈∴<E99C88>
- [ ] 瘨<><E798A8><EFBFBD><EFBFBD>?<3F>交𤣰瘚<F0A4A3B0><E7989A>
- [ ] 隞<><E99A9E><EFBFBD>埈迤蝖桅<E89D96>鈭?- [ ] 皛𡁜𢆡<F0A1819C><EFBFBD><E594B3><EFBFBD><E594B3>?
---
### Day 7嚗鋫I<E98BAB><49><EFBFBD><EFBFBD><E99A9E><EFBFBD><EFBFBD><EFBFBD> 潃?
#### API<50><49><EFBFBD>
- [ ] **P0** 摰䂿緵 `api.ts`
- [ ] `uploadFile(file)` - 銝𠹺<E98A9D>Excel
- [ ] `sendMessage(sessionId, message)` - <20><EFBFBD><E785BE>I瘨<49><E798A8>
- [ ] `executeCode(sessionId, code)` - <20><EFBFBD><EFBFBD><E99A9E>
- [ ] `getSessionData(sessionId)` - <20><EFBFBD><E79195>唳旿
- [ ] **P0** <20>𡒊垢API摰䂿緵嚗ǑToolCController.ts`嚗? - [ ] `POST /api/v1/dc/tool-c/upload` - <20><>辣銝𠹺<E98A9D>
- [ ] `POST /api/v1/dc/tool-c/chat` - AI撖寡<E69296>
- [ ] `POST /api/v1/dc/tool-c/execute` - <20><EFBFBD><EFBFBD><E99A9E>
- [ ] `GET /api/v1/dc/tool-c/sessions/:id` - <20><EFBFBD>隡朞<E99AA1>
#### 銝𡁜𦛚<F0A1819C><EFBFBD>摰䂿緵
- [ ] **P0** 摰䂿緵摰峕㟲瘚<E39FB2><E7989A>
1. [ ] <20><EFBFBD><E586BD><EFBFBD><E785BE><EFBFBD><EFBFBD>?<3F>?AICodeService<63><65><EFBFBD><EFBFBD><E99A9E>
2. [ ] <20>滨垢撅閧內<E996A7><E585A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8AAA8><EFBFBD>Markdown<77><EFBFBD>嚗? 3. [ ] <20><EFBFBD><E586BD>孵稬"<22><EFBFBD>"<22>厰僼 <20>?靚<>鍂Python<6F>滚𦛚
4. [ ] <20><EFBFBD><E689AF>𣂼<EFBFBD> <20>?<3F>瑟鰵銵冽聢<E586BD>唳旿
5. [ ] <20><EFBFBD>憭梯揖 <20>?AI<41><EFBFBD>靽桀<E99DBD> <20>?<3F><EFBFBD>
- [ ] **P1** <20>躰秤憭<E7A7A4><E686AD>
- [ ] AST璉<54><E79289>亙仃韐?<3F>?<3F>鞟內<E99E9F><EFBFBD>
- [ ] <20><EFBFBD><EFBFBD>𧒄嚗?0蝘𡜐<E89D98> <20>?<3F>鞟內<E99E9F><EFBFBD>
- [ ] AI<41><49><EFBFBD>憭梯揖 <20>?<3F><EFBFBD><E6BBA9><EFBFBD>
#### 撉峕𤣰<E5B395><F0A4A3B0><EFBFBD>
- [ ] **<EFBFBD><EFBFBD><EFBFBD>箸艶瘚贝<EFBFBD>嚗?銝迎<E98A9D><E8BF8E>𣂼<EFBFBD><F0A382BC>?> 90%**
- [ ] "<22>𠰴僑樴<E58391>之鈭?0<><30><EFBFBD>霈唬蛹<E594AC><E89BB9>僑蝏?
- [ ] "<22>𣳇膄<F0A3B387><E88684><EFBFBD><EFBFBD><E39787><EFBFBD>D銝箇征<E7AE87><E5BE81><EFBFBD>"
- [ ] "<22>𦠜<EFBFBD><EFBFBD>頧砌蛹<E7A08C><EFBFBD>嚗𣬚琸1憟?"
- [ ] "霈∠<E99C88>BMI = 雿㯄<E99BBF> / (頨恍<E9A0A8>/100)^2"
- [ ] "<22>𣳇膄蝻箏仃<E7AE8F><E4BB83><EFBFBD>餈?0%<25><><EFBFBD>"
---
### Day 8嚗䦧I<E4A6A7><49><EFBFBD><EFBFBD><EFBFBD>
#### 鈭埝棅<E59F9D><E6A385><EFBFBD><EFBFBD>?- [ ] **P0** <20>滨垢<E6BBA8><EFBFBD><E59786><EFBFBD>? - [ ] 瘛餃<E7989B> `isAIProcessing` <20><EFBFBD>? - [ ] AI撖寡<E69296>銝?<3F>?<3F><><EFBFBD>銵冽聢蝻𤥁<E89DBB>
- [ ] <20>曄內<E69B84>见末<E8A781>鞟內嚗?AI甇<49>銁憭<E98A81><E686AD>嚗諹窈蝔滚<E89D94>?.."
- [ ] **P0** 銵冽聢<E586BD><E881A2><EFBFBD><EFBFBD><EFBFBD>
- [ ] `isAIProcessing=true` <20>?AG Grid霈曄蔭銝箏蘨霂? - [ ] 蝳<>鍂撌亙<E6928C><E4BA99>𤩺<EFBFBD><F0A4A9BA><EFBFBD>撖澆枂<E6BE86><EFBFBD>嚗? - [ ] <20>曄內<E69B84>𢠃<EFBFBD>𤩺<EFBFBD><F0A4A9BA><EFBFBD>
- [ ] **P1**<><E996AB><EFBFBD><EFBFBD>
- [ ] 銵冽聢<E586BD>𢠃<EFBFBD>𤩺<EFBFBD>嚗èpacity: 0.6嚗? - [ ] <20>曄內<E69B84>㰘蝸<E3B098>函𤫇
- [ ] 憿園<E686BF><E59C92>曄內餈𥕦漲<F0A595A6>?
#### 撉峕𤣰<E5B395><F0A4A3B0><EFBFBD>
- [ ] AI憭<49><E686AD><EFBFBD><EFBFBD>銵冽聢<E586BD><EFBFBD>蝻𤥁<E89DBB>
- [ ] <20><><EFBFBD><EFBFBD><EFBFBD><E59786><EFBFBD><EFBFBD>擧遬<E693A7><E981AC><EFBFBD>閫匧<E996AB>擐?- [ ] AI摰峕<E691B0><E5B395>𠬍<EFBFBD>銵冽聢<E586BD>芸𢆡閫<F0A286A1><E996AB>
- [ ] <20><EFBFBD>雿㯄<E99BBF><EFBFBD><E7989A><EFBFBD><E59A97><EFBFBD>⊿▼嚗?
---
### Day 9嚗朞䌊<E69C9E><EFBFBD><E586BD><EFBFBD>嚗㇃heckpoint嚗?
#### <20>唳旿敹怎<E695B9>蝞∠<E89D9E>
- [ ] **P0** 摰䂿緵璉<E7B7B5><E79289><EFBFBD><E4BAA6><EFBFBD>
- [ ] 瘥𤩺活AI<41><EFBFBD><E689AF>𣂼<EFBFBD> <20>?<3F>芸𢆡靽嘥<E99DBD>敹怎<E695B9>
- [ ] <20><>憭帋<E686AD>摮?0銝芣<E98A9D><E88AA3><EFBFBD>
- [ ] 敹怎<E695B9><E6808E>唳旿摮睃<E691AE><E79D83>記SS嚗<53><E59A97>蝻咐SON嚗?
- [ ] **P0** <20><EFBFBD><E5A2A7><EFBFBD>
- [ ] 撌亙<E6928C><E4BA99>𤩺溶<F0A4A9BA>?<3F><EFBFBD>"<22>厰僼
- [ ] <20>孵稬<E5ADB5><EFBFBD> <20>?<3F><EFBFBD><EFBCB7><EFBFBD><EFBFBD>銝芣<E98A9D><E88AA3><EFBFBD>
- [ ] <20><>憭𡁏𣈲<F0A1818F>?0甈⊥伃<E28AA5><E4BC83>
- [ ] **P1**<><E79289><EFBFBD><E4BAA6>𡑒”UI
- [ ] 靘扯器<E689AF>𤩺遬蝷箸<E89DB7><E7AEB8><EFBFBD><E4BAA6>𡑒”
- [ ] 瘥譍葵璉<E891B5><E79289><EFBFBD><E4BAA6>曄內嚗𡁏𧒄<F0A1818F><EFBFBD><E6B0AC><EFBFBD>雿𨀣<E99BBF>餈? - [ ] <20>孵稬璉<E7A8AC><E79289><EFBFBD> <20>?<3F><EFBFBD><EFBCB7>啗砲<E59597><EFBFBD>?
#### 撉峕𤣰<E5B395><F0A4A3B0><EFBFBD>
- [ ] 瘥𤩺活AI<41><EFBFBD><E6BBA2>舘䌊<E88898><EFBFBD>摮䀹<E691AE><E480B9><EFBFBD>
- [ ] <20><EFBFBD><E697A5><EFBFBD><EFBFBD>虜撌乩<E6928C>
- [ ] 敹怎<E695B9><E6808E>唳旿甇<E697BF>摮睃<E691AE><E79D83>記SS
- [ ] 10銝芣<E98A9D><E88AA3><EFBFBD><E4BAA6>𠬍<EFBFBD><F0A0AC8D>芸𢆡<E88AB8>𣳇膄<F0A3B387><E88684><EFBFBD><EFBFBD>
---
### Day 10嚗鍃xcel撖澆枂
#### 撖澆枂<E6BE86><EFBFBD>摰䂿緵
- [ ] **P0** <20>𡒊垢撖澆枂API
- [ ] `POST /api/v1/dc/tool-c/export/:sessionId`
- [ ] 雿輻鍂 `openpyxl`嚗㇊ython嚗㗇<EFBFBD> `xlsx`嚗𠃊ode.js嚗? - [ ] 靽萘<E99DBD><E89098><EFBFBD>Excel<65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MVP<56>航歲餈<E6ADB2><E9A488>
- [ ] **P0** <20>滨垢撖澆枂<E6BE86>厰僼
- [ ] 撌亙<E6928C><E4BA99>𤩺溶<F0A4A9BA>?撖澆枂"<22>厰僼
- [ ] <20>孵稬 <20>?銝贝蝸Excel<65><6C>
- [ ] <20><><EFBFBD><EFBFBD>`<60><><EFBFBD>隞嗅<E99A9E>_cleaned_YYYYMMDD.xlsx`
- [ ] **P1** 撖澆枂<E6BE86>厰★嚗<E29885><EFBFBD><EFBFBD>
- [ ]<><EFBFBD>箔耨<E7AE94><EFBFBD>銵? - [ ] 靽萘<E99DBD><E89098><EFBFBD><EFBFBD><E59A97><EFBFBD><EFBFBD><EFBFBD><EFBFBD>臬辣<E887AC>𠬍<EFBFBD>
#### 撉峕𤣰<E5B395><F0A4A3B0><EFBFBD>
- [ ] <20><EFBFBD><E8B3A3>笔紡<E7AC94>慟xcel<65><6C>
- [ ] 撖澆枂<E6BE86><E69E82><EFBFBD><EFBFBD>銵冽聢銝<E881A2><E98A9D>?- [ ] <20><><EFBFBD>齿迤蝖?- [ ] 銝贝蝸<E8B49D>笔漲敹恬<E695B9>< 3蝘𡜐<E89D98>
---
## <20><> Week 3嚗𡁏<E59A97>霂蓥<E99C82><E893A5><EFBFBD>Day 11-15嚗?
### Day 11嚗帋葉蝑匧㦤<E58CA7><EFBFBD>霂?<3F>
#### 瘚贝<E7989A><E8B49D><EFBFBD><E585B6><EFBFBD>
- [ ] **P0** <20><><EFBFBD>瘚贝<E7989A><E8B49D>唳旿
- [ ] <20>𥕦遣瘚贝<E7989A>Excel<65><6C>辣嚗<E8BEA3><E59A97><EFBFBD><EFBFBD>銝芸<E98A9D>嚗? - [ ] <20><><EFBFBD><EFBFBD><E7AC94><EFBFBD><E9A48C>唳旿蝷箔<E89DB7>
- [ ] **P0** 銝剔<E98A9D><E58994>箸艶瘚贝<E7989A>嚗?銝迎<E98A9D>
1. [ ] "<22>𡃏<EFBFBD><F0A1838F>剜𠯫<E5899C><EFBFBD><E7AC94>粹堺<E7B2B9><EFBFBD>霈∠<E99C88>憭拇㺭撌殷<E6928C><EFBFBD><E68692><EFBFBD>粹堺<E7B2B9><EFBFBD><E4BAA4><EFBFBD>霂𦠜鱏<F0A6A09C><EFBFBD><E4BAA4><EFBFBD>霈唬蛹撘<E89BB9>虜"
2. [ ] "<22>寞旿<E5AF9E><EFBFBD><E8B39C>𠺶<EFBFBD><F0A0BAB6><EFBFBD><EFBFBD><EFBFBD><E89D8F><EFBFBD><EFBFBD><EFBFBD>撌渡<E6928C><E6B8A1><EFBFBD>銝芣<E98A9D><E88AA3><EFBFBD><EFBFBD>霈∠<E99C88>NLR嚗<52><EFBFBD>?.5<EFBFBD><EFBFBD>蛹擃䀝<EFBFBD>銝斤<EFBFBD>"
3. [ ] "隞𡒊<E99A9E><F0A1928A><EFBFBD>𥁒<EFBFBD>𠰴<EFBFBD>銝剜<E98A9D><E5899C>巁NM<4E><4D><EFBFBD>嚗𣬚<E59A97><F0A3AC9A>鞉鰵<E99E89>?
4. [ ] "<22>𡃏<EFBFBD><F0A1838F><EFBFBD><E8A781>?120/80'<27><EFBFBD><E6BE86><EFBFBD><EFBFBD><EFBFBD>鞉𤣰蝻拙<E89DBB><E68B99><EFBFBD>撘惩<E69298><EFBFBD><EFBFBD>斗鱏<E69697>臬炏擃䁅<E69383><E48185>?
5. [ ] "<22>𣳇膄<F0A3B387><EFBFBD><E6BB9A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>D嚗䔶<E59A97><E494B6><EFBFBD><E8B9B1><EFBFBD><EFBFBD><E98A9D>∟扇敶𤏪<E695B6><F0A48FAA>寞旿撠梯<E692A0><E6A2AF><EFBFBD>嚗?
#### 隡睃<E99AA1>AI Prompt
- [ ] **P1** <20>寞旿憭梯揖獢<E68F96><E78DA2>隡睃<E99AA1>Prompt
- [ ] 憓𧼮<E68693><F0A7BCAE>躰秤憭<E7A7A4><E686AD>蝷箔<E89DB7>
- [ ] 撘箏<E69298>銝剜<E98A9D><E5899C><EFBFBD><EFBFBD><E686AD>
- [ ] 憓𧼮<E68693>颲寧<E9A2B2><E5AFA7><EFBFBD><EFBFBD>霂湔<E99C82>
#### 撉峕𤣰<E5B395><F0A4A3B0><EFBFBD>
- [ ] **銝剔<E98A9D><E58994>箸艶<E7AEB8>𣂼<EFBFBD><F0A382BC>?> 80%嚗?/5<>𣂼<EFBFBD>嚗?*
---
### Day 12嚗𡁻<E59A97>蝥批㦤<E689B9><EFBFBD>霂?<3F>𣞁
#### 擃条漣<E69DA1>箸艶瘚贝<E7989A>嚗?銝迎<E98A9D>
- [ ] **P0** 憭齿<E686AD><E9BDBF>箸艶瘚贝<E7989A>
1. [ ] "撖嫣<E69296>瘥譍葵<E8AD8D><E891B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>曉枂蝚砌<E89D9A><E79488><E288AA>埈𠯫<E59F88><EFBFBD><E7AC94><EFBFBD><EFBFBD>𦒘<EFBFBD><E79488><E288AA>埈𠯫<E59F88><F0A0AFAB><EFBFBD>霈∠<E99C88><E288A0>𣇉<EFBFBD><F0A38789><EFBFBD><EFBFBD>園𡢿"
2. [ ] "<22><><EFBFBD><EFBFBD><EFBFBD><E7AC94><EFBFBD><E59786><EFBFBD><EFBFBD><EFBFBD><E7AC94>園𡢿"嚗<><E59A97><EFBFBD><EFBFBD>辺隞園<E99A9E><EFBFBD>嚗? 3. [ ] "<22>寞旿ALT<4C><54>ST<53><54>LP<4C><50>BIL<49>斗鱏<E69697><EFBFBD><E598A5><EFBFBD>蝥?
4. [ ] "<22><EFBFBD><E39787><EFBFBD>D<EFBFBD><44><EFBFBD>嚗諹恣蝞埈<E89D9E>甈⊿<E79488>霈輻㮾瘥𥪯<E798A5>甈∠<E79488><E288A0>輻𠈔憭批<E686AD><E689B9><EFBFBD><E79D83>?
5. [ ] "<22>寞旿<E5AF9E>仿堺<E4BBBF>園𡢿嚗諹恣蝞堒迤<E5A092><E8BFA4><EFBFBD><EFBFBD>𧶏<EFBFBD>蝏蠘恣銝滚<E98A9D><EFBFBD><E691AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
#### Prompt瘛勗漲隡睃<E99AA1>
- [ ] **P1** <20><>笆憭梯揖<E6A2AF>箸艶隡睃<E99AA1>
- [ ] 憓𧼮<E68693><F0A7BCAE><EFBFBD><EFBFBD><EFBFBD>𡁜<EFBFBD>蝷箔<E89DB7>
- [ ] 憓𧼮<E68693><F0A7BCAE>園𡢿摨誩<E691A8>蝷箔<E89DB7>
- [ ] 憓𧼮<E68693><F0A7BCAE>餃郎閫<E9838E><E996AB>蝷箔<E89DB7>
#### 撉峕𤣰<E5B395><F0A4A3B0><EFBFBD>
- [ ] **擃条漣<E69DA1>箸艶<E7AEB8>𣂼<EFBFBD><F0A382BC>?> 60%嚗?/5<>𣂼<EFBFBD>嚗?*
- [ ] **<EFBFBD><EFBFBD><EFBFBD>𣂼<EFBFBD><EFBFBD>?> 80%嚗?2/15<31>𣂼<EFBFBD>嚗?*
---
### Day 13嚗𡁏<E59A97><EFBFBD>隡睃<E99AA1>
#### <20><EFBFBD>瘚贝<E7989A>
- [ ] **P1** 瘚贝<E7989A><E8B49D><EFBFBD><E689AF><EFBFBD><EFBFBD>
- [ ] <20><>辣銝𠹺<E98A9D><F0A0B9BA>笔漲嚗?0MB<4D><42>辣 < 5蝘𡜐<E89D98>
- [ ] AI隞<49><E99A9E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>笔漲嚗? 10蝘𡜐<E89D98>
- [ ] Python<6F><EFBFBD><E689AF>笔漲嚗? 5蝘𡜐<E89D98>
- [ ] 銵冽聢<E586BD>瑟鰵<E7919F>笔漲嚗? 2蝘𡜐<E89D98>
- [ ] 蝡臬<E89DA1>蝡舀<E89DA1>蝔页<E89D94>< 20蝘𡜐<E89D98>
#### 隡睃<E99AA1><E79D83>芣鴌
- [ ] **P1** <20>滨垢隡睃<E99AA1>
- [ ] AG Grid<69>𡁏<EFBFBD>皛𡁜𢆡
- [ ] React.memo隡睃<E99AA1>皜脫<E79A9C>
- [ ] <20><EFBFBD>颲枏<E9A2B2>嚗Ê̌ebounce 300ms嚗?
- [ ] **P1** <20>𡒊垢隡睃<E99AA1>
- [ ] <20>唳旿<E594B3>讠憬嚗㇉SS銝𠹺<E98A9D><F0A0B9BA><EFBFBD>
- [ ] 蝻枏<E89DBB>隡朞<E99AA1><E69C9E>唳旿嚗㇌edis<69><EFBFBD><EFBFBD>
- [ ] 撟嗅<E6929F><E59785><EFBFBD><EFBFBD><E59A97><EFBFBD><EFBFBD><E59785><EFBFBD>銵峕㺭嚗?
#### 撉峕𤣰<E5B395><F0A4A3B0><EFBFBD>
- [ ] 蝡臬<E89DA1>蝡舀<E89DA1>雿?< 20蝘?- [ ] 1000銵峕㺭<E5B395>株”<E6A0AA><EFBFBD><E6BD94>⊿▼
- [ ] <20><EFBFBD>摮䀹<E691AE>瞍?
---
### Day 14嚗𡁻<E59A97><F0A181BB><EFBFBD>霂?
#### 蝡臬<E89DA1>蝡舀<E89DA1>霂?- [ ] **P0** 摰峕㟲瘚<E39FB2><E7989A>瘚贝<E7989A>嚗?0甈∴<E79488>
1. [ ] 銝𠹺<E98A9D>Excel<65><6C>
2. [ ] <20><EFBFBD><E4BAA6>唳旿銵冽聢
3. [ ] <20><EFBFBD><E785BE>I<EFBFBD><49>
4. [ ] <20><EFBFBD><E689AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? 5. [ ] 撉諹<E69289>銵冽聢<E586BD>瑟鰵
6. [ ] 瘚贝<E7989A><E8B49D><EFBFBD><E697A5><EFBFBD>
7. [ ] 撖澆枂Excel<65><6C>
8. [ ] 撉諹<E69289>撖澆枂<E6BE86>唳旿甇<E697BF>
- [ ] **P1**<><EFBFBD>箸艶瘚贝<E7989A>
- [ ] 銝𠹺<E98A9D><F0A0B9BA><EFBFBD><E7AC94><EFBFBD>xcel<65><6C>
- [ ] <20><EFBFBD><E785BE>征瘨<E5BE81><E798A8>
- [ ] <20><EFBFBD><E689AF>梢埯隞<E59FAF><E99A9E><EFBFBD><E59A97>鋡急㜃<E680A5><EFBFBD>
- [ ] 蝵𤑳<E89DB5><F0A491B3><EFBFBD><E58996><EFBFBD>
#### Bug靽桀<E99DBD>
- [ ] **P1** 靽桀<E99DBD>瘚贝<E7989A>銝剖<E98A9D><E58996><EFBFBD><E59581><EFBFBD>
- [ ] 霈啣<E99C88><E595A3><EFBFBD><EFBFBD>实ug<75>蚣itHub Issues
- [ ] <20><EFBFBD><E58A90><EFBFBD>漣靽桀<E99DBD>嚗㇊0 > P1 > P2嚗?
#### 撉峕𤣰<E5B395><F0A4A3B0><EFBFBD>
- [ ] 蝡臬<E89DA1>蝡舀<E89DA1>蝔?00%<25><EFBFBD>
- [ ] <20>蘯0蝥批<E89DA5>bug
- [ ] P1蝥批<E89DA5>bug < 3銝?
---
### Day 15嚗鐝VP撉峕𤣰 <20><>
#### <20><><EFBFBD><E89D8F><EFBFBD><EFBFBD>霂?- [ ] **P0** 15銝芸㦤<E88AB8><EFBFBD><EFBFBD><E996AC>瘚贝<E7989A>
- [ ] <20><EFBFBD><E7AE87>箸艶嚗?/5 <20>? - [ ] 銝剔<E98A9D><E58994>箸艶嚗?/5 <20>? - [ ] 擃条漣<E69DA1>箸艶嚗?/5 <20>? - [ ] **<EFBFBD><EFBFBD><EFBFBD>𣂼<EFBFBD><EFBFBD>?> 80%**
- [ ] **P0** <20>𧼮<EFBFBD><F0A7BCAE><EFBFBD><EFBFBD><E68A98>? - [ ] <20><EFBFBD>嚗𡁶垢<F0A181B6>啁垢 < 20蝘?<3F>? - [ ] 摰匧<E691B0>嚗鋫ST<53>行⏛<E8A18C>梢埯隞<E59FAF><E99A9E> <20>? - [ ] 蝔喳<E89D94>嚗?0甈⊥<E79488>霂閙<E99C82>撏拇<E6928F> <20>? - [ ] <20>梶鍂嚗𡁶鍂<F0A181B6><EFBFBD><E79181><EFBFBD>摰峕<E691B0>隞餃𦛚 <20>?
#### <20><>﹝摰<EFB99D><E691B0>
- [ ] **P1** <20>湔鰵<E6B994><E9B0B5>
- [ ] <20><EFBFBD>雿輻鍂<E8BCBB><EFBFBD>
- [ ] API<50>亙藁<E4BA99><E89781>
- [ ] <20>函蔡<E587BD><E894A1><EFBFBD>
- [ ] 撌脩䰻<E884A9><EFBFBD><EFBFBD><E79A9C>
#### 撉峕𤣰<E5B395><EFBFBD>
- [ ] <20>?**<2A><EFBFBD>**嚗𡁏<E59A97><EFBFBD><E9A2B1>𣂼<EFBFBD><F0A382BC>?> 80%嚗諹<E59A97><E8ABB9><EFBFBD><EFBFBD><E98A9D>嗆挾
- [ ] <20>?**憭梯揖**嚗𡁏<E59A97><EFBFBD><E9A2B1>𣂼<EFBFBD><F0A382BC>?< 60%嚗屸<E59A97><EFBFBD>ivot<6F>唳芋<E594B3><EFBFBD><E79285>
---
## <20>𤣳 瘥𤩺𠯫蝡嗘<E89DA1><EFBFBD><E79289><EFBFBD><E4BAA4>?
### 瘥誩予撌乩<E6928C><EFBFBD>憪见<E686AA>
- [ ] <20><EFBFBD><E4BAA6>冽𠯫<E586BD><EFBFBD><E39B96><EFBFBD>
- [ ] 蝖株恕隞𦠜𠯫隞餃𦛚皜<F0A69B9A><E79A9C>
- [ ]<><E79289>亦㴓憓<E3B493><EFBFBD>行迤撣賂<E692A3>Python<6F>滚𦛚<E6BB9A><F0A69B9A><EFBFBD><EFBFBD><E6A180><EFBFBD><EFBFBD>蝡留ev server嚗?
### 瘥誩予撌乩<E6928C>蝏𤘪<E89D8F><F0A498AA>?- [ ] <20>湔鰵To-do List餈𥕦漲
- [ ] <20>𣂷漱隞<E6BCB1><E99A9E><EFBFBD>蚣it嚗<74><E59A97> <20><EFBFBD><EFBFBD>俈甇腺憭梧<E686AD>
- [ ] 霈啣<E99C88><E595A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䔮憸睃<E686B8><EFBFBD><E996AB><EFBFBD><EFBFBD>
- [ ]<><E996AB><EFBFBD>擧𠯫隞餃𦛚
---
## <20>𩤃<EFBFBD> 憌𡡞埯<F0A1A19E>鞟內
### <20><><EFBFBD><EFBFBD><E888AB>?1. **AI<41><49><EFBFBD>韐券<E99F90>銝滨迅摰?*
- 蝻栞圾嚗𡁜<E59A97>頧格<E9A0A7>霂𤏪<E99C82>隡睃<E99AA1>Prompt
-<><E686AD><EFBFBD>憭梯揖<E6A2AF>𦒘犖撌亦<E6928C><E4BAA6>蹱芋<E8B9B1>?
2. **Python<6F><EFBFBD>摰匧<E691B0><E58CA7><EFBFBD>**
- 蝻栞圾嚗鋫ST<53><EFBFBD><E8B9B1><EFBFBD><EFBFBD>?+ 頞<>𧒄<EFBFBD><EFBFBD>
-<><E686AD><EFBFBD>Docker瘝嗵拳<E597B5>𠉛氖嚗㇊hase 2嚗?
3. **<EFBFBD><EFBFBD>銝滩噢<EFBFBD>?*
- 蝻栞圾嚗𡁜<E59A97>甇乩<E79487><E4B9A9><EFBFBD>霈曉<E99C88><E69B89><EFBFBD><E689AF><EFBFBD>
-<><E686AD><EFBFBD><E39A81><EFBFBD><E6BBA2>唳旿<E594B3><EFBFBD><EFBFBD><E79899>10MB <20>?5MB嚗?
### 餈𥕦漲憌𡡞埯
1. **AI<41><49><EFBFBD><EFBFBD>𣂼<EFBFBD><F0A382BC>?< 60%**
- 摨𥪜笆嚗𡁶揮<F0A181B6><EFBFBD>霈殷<E99C88><E6AEB7><EFBFBD><E596B3>臬炏Pivot
2. **<EFBFBD>滨垢撘<EFBFBD><EFBFBD>穃辣<EFBFBD>?*
- 摨𥪜笆嚗𡁶<E59A97><F0A181B6>𨯅I嚗諹<E59A97><E8ABB9>行瓲敹<E793B2><E695B9><EFBFBD>?
---
## <20><> <20>𣂼<EFBFBD><F0A382BC><EFBFBD><EFBFBD><EFBFBD><E59A97><EFBFBD><E89D8F><EFBFBD><EFBFBD>
| <20><><EFBFBD> | <20><EFBFBD> | 敶枏<E695B6> | <20><EFBFBD>?|
|------|------|------|------|
| **<EFBFBD><EFBFBD><EFBFBD>箸艶<EFBFBD>𣂼<EFBFBD><EFBFBD>?* | > 90% | 0% | <20>𣞁 |
| **銝剔<E98A9D><E58994>箸艶<E7AEB8>𣂼<EFBFBD><F0A382BC>?* | > 80% | 0% | <20>𣞁 |
| **擃条漣<E69DA1>箸艶<E7AEB8>𣂼<EFBFBD><F0A382BC>?* | > 60% | 0% | <20>𣞁 |
| **<EFBFBD><EFBFBD><EFBFBD>𣂼<EFBFBD><EFBFBD>?* | > 80% | 0% | <20>𣞁 |
| **蝡臬<E89DA1>蝡舀<E89DA1><EFBFBD>** | < 20蝘?| 0蝘?| <20>𣞁 |
| **隞<><E99A9E>摰匧<E691B0><E58CA7>?* | 100%<25>行⏛ | 0% | <20>𣞁 |
---
## <20>㴓 銝衤<E98A9D>甇亥<E79487><E4BAA5><EFBFBD><E58981>臬𢆡撘<F0A286A1><E69298>𡢅<EFBFBD>
### 蝡见朖撘<E69C96>憪页<E686AA>Day 1嚗?1. **<2A><EFBFBD>Python<6F>滚𦛚**嚗?撠𤩺𧒄嚗? ```bash
cd AIclinicalresearch/extraction_service
# <20>𥕦遣dc_executor.py
# <20><EFBFBD>main.py瘛餃<E7989B>2銝芰垢<E88AB0>? # 瘚贝<E7989A><E8B49D>滚𦛚
```
2. **<2A>𥕦遣<F0A595A6>𡒊垢<F0A1928A><E59EA2>辣憭?*嚗?撠𤩺𧒄嚗? ```bash
cd AIclinicalresearch/backend/src/modules/dc
mkdir -p tool-c/services tool-c/controllers tool-c/routes tool-c/utils
```
3. **摰䂿緵PythonExecutorService**嚗?撠𤩺𧒄嚗? - 蝻硋<E89DBB><EFBFBD><E99A9E>
- <20><EFBFBD>瘚贝<E7989A>
- <20><><EFBFBD>瘚贝<E7989A>
---
**<EFBFBD><EFBFBD><EFBFBD>憟賭<EFBFBD><EFBFBD><EFBFBD>霈拇<EFBFBD>隞砍<EFBFBD>憪𠵿ay 1<><31><EFBFBD><EFBFBD>𡢅<EFBFBD>** <20><>