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%)
5.7 KiB
PRD嚗関ool C - 蝘𤑳<E89D98><F0A491B3>唳旿蝻𤥁<E89DBB><F0A4A581>?(MVP V1.1)
| <EFBFBD><EFBFBD>﹝<EFBFBD><EFBFBD>𧋦 | V1.1 (撌亦<E6928C>蝏<EFBFBD><E89D8F><EFBFBD>? |
|---|---|
| *鈭批<EFBFBD>敶X<EFBFBD>? | Web 蝡舀㺭<E88880>桃<EFBFBD>颲穃膥 (AG Grid + AI Chat) |
| <EFBFBD>詨<EFBFBD>蝑𣇉裦 | "AI-First" + "Server-side State"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?AI <20><><EFBFBD> Python 隞<><E99A9E>摰峕<E691B0>皜<EFBFBD><E79A9C>嚗𥕢誑<F0A595A2>滚𦛚蝡?DataFrame 銝箏<E98A9D>銝<EFBFBD><E98A9D>唳旿皞琜<E79A9E><E7909C>滨垢韐蠘提皜脫<E79A9C><E884AB>諹蝠<E8ABB9>讐<EFBFBD>颲㻫<E9A2B2>? |
| *<EFBFBD><EFBFBD><EFBFBD>臬<EFBFBD>摨? | React + AG Grid + Node.js BFF + Python Sandbox (FastAPI) + DeepSeek-V3 |
| <EFBFBD>䀹凒霈啣<EFBFBD> | V1.1: 憓𧼮<E68693><F0A7BCAE>唳旿<E594B3>峕郊<E5B395>箏<EFBFBD><E7AE8F><EFBFBD>伃<EFBFBD><E4BC83><EFBFBD>墧<EFBFBD>蝑𣇉裦<F0A38789><E8A3A6><EFBFBD>霂萘<E99C82><E89098>賢𪂹<E8B3A2>笔<EFBFBD>銋剹<E98A8B>? |
銝<EFBFBD><EFBFBD>?MVP <20>詨<EFBFBD><E8A9A8>格<EFBFBD> (Objectives)
- *撉諹<EFBFBD><EFBFBD>剔㴓嚗? 頝煾<E9A09D>?<3F>𡏭䌊<F0A18FAD>嗉祗閮<E7A597> -> Python 隞<><E99A9E> -> <20>𡒊垢<F0A1928A>扯<EFBFBD> -> <20>滨垢<E6BBA8>瑟鰵<E7919F>?<3F><><EFBFBD><EFBFBD>湧曎頝胯<E9A09D>?
- <EFBFBD>唳旿銝<EFBFBD><EFBFBD>湔<EFBFBD>改<EFBFBD> 蝖桐<E89D96><E6A190>见𢆡蝻𤥁<E89DBB>銝?AI <20>滢<EFBFBD>銝滚<E98A9D>蝒<EFBFBD><E89D92><EFBFBD>嗆<EFBFBD><E59786>虾餈賣滲<E8B3A3>?
- <EFBFBD>舐鍂<EFBFBD>改<EFBFBD> 閫<><E996AB>銝剜<E98A9D>銋梁<E98A8B><E6A281><EFBFBD><EFBFBD>霂肽<E99C82><E882BD>嗥<EFBFBD>摰鮋<E691B0>撌亦<E6928C><E4BAA6>桅<EFBFBD><E6A185>?
鈭䎚<EFBFBD>?霂衣<E99C82><E8A1A3>蠘<EFBFBD><E8A098><EFBFBD>瘙?(Functional Requirements)
1. <20>屸𢒰獢<F0A292B0>沲銝𦒘<E98A9D>霂?(Shell & Session)
- *P0: 撌血𢰧<E8A180><F0A2B0A7><EFBFBD>撣<EFBFBD><E692A3>嚗? 撌虫儒 AG Grid (70%)嚗<>𢰧靘?AI Chat (30%)<29>?
- P0: 隡朞<E99AA1><E69C9E>嘥<EFBFBD><E598A5>?(Session Init):
- <EFBFBD>冽<EFBFBD>銝𠹺<EFBFBD><EFBFBD><EFBFBD>辣 -> <20>𡒊垢撘<E59EA2><E69298>?Python 餈𤤿<E9A488>/摰孵膥 -> <20>㰘蝸 df -> 餈𥪜<E9A488> sessionId<49>?
- 蝻𣇉<EFBFBD>璉<EFBFBD>瘚页<EFBFBD> <20>𡒊垢敹<E59EA2>◆撠肽<E692A0> utf-8 <20>?gbk 閫<><E996AB>嚗屸俈甇V葉<EFBCB6><E89189>僚<EFBFBD><E5839A><EFBFBD>?
- P1: 敹<>歲銝𦒘<E98A9D>瘣?(Keep-alive):
- <EFBFBD>滨垢瘥?30s <20>煾<EFBFBD><E785BE><EFBFBD>頝喋<E9A09D>?
- *頞<EFBFBD>𧒄蝑𣇉裦嚗? <20>亥<EFBFBD>餈?30min <20>䭾<EFBFBD>雿頣<E99BBF><E9A0A3>𡒊垢<F0A1928A>𦠜𦆮<F0A6A09C><F0A686AE><EFBFBD><EFBFBD><EFBFBD>鍂<EFBFBD>瑕<EFBFBD>甈⊥<E79488>雿𨀣𧒄嚗峕<E59A97>蝷算<E89DB7>靝<EFBFBD>霂嘥歇餈<E6AD87><E9A488>嚗諹窈<E8ABB9>齿鰵<E9BDBF>㰘蝸<E3B098><E89DB8>辣<EFBFBD>腈<EFBFBD>?
2. 頞<>漣蝵烐聢 (The Grid) - <EFBFBD>滨垢鈭支<EFBFBD>
- P0: <20>唳旿撅閧內 (View):
- <EFBFBD>朞<EFBFBD> API <20><>△<EFBFBD>匧<EFBFBD><E58CA7>唳旿嚗<E697BF><E59A97>閫<EFBFBD>芋撘𧶏<E69298>隞<EFBFBD><E99A9E><EFBFBD>?100-500 銵䕘<E98AB5><E49598>?
- <EFBFBD>㛖掩<EFBFBD>𧢲綫<EFBFBD>哨<EFBFBD> <20>滨垢<E6BBA8>寞旿<E5AF9E>𡒊垢餈𥪜<E9A488><F0A5AA9C>?dtypes 皜脫<E79A9C><E884AB>堒仍<E5A092>暹<EFBFBD>嚗<EFBFBD>㺭<EFBFBD>?<3F><>𧋦/<2F>交<EFBFBD>嚗剹<E59A97>?
- P0: <20>见𢆡蝻𤥁<E89DBB> (Manual Edit):
- <EFBFBD>舀<EFBFBD><EFBFBD><EFBFBD>稬靽格㺿<EFBFBD>訫<EFBFBD><EFBFBD>潦<EFBFBD>?
- <EFBFBD>喲睸<EFBFBD>餉<EFBFBD>嚗<EFBFBD><EFBFBD><EFBFBD>唳旿<EFBFBD><EFBFBD>扇嚗㚁<EFBFBD> <20>冽<EFBFBD>靽格㺿<E6A0BC>𠬍<EFBFBD><F0A0AC8D>訫<EFBFBD><E8A8AB>澆𢰧<E6BE86><F0A2B0A7>滯嚗峕㺭<E5B395>格<EFBFBD>摮睃銁<E79D83>滨垢 dirtyRows <20>笔<EFBFBD>銝准<E98A9D>?
- P0: <20>嗆<EFBFBD><E59786><EFBFBD> (UI Locking):
- 敶?AI 甇<>銁<EFBFBD>扯<EFBFBD><E689AF>塚<EFBFBD>Grid <20>䀝蛹 **<2A>芾粉 (Read-only)**嚗峕遬蝷?Loading <20>桃蔗<E6A183>?
3. AI Copilot <20>箄<EFBFBD><E7AE84>拇<EFBFBD> (The Brain) - <EFBFBD>𡒊垢撽勗𢆡
3.1 鈭支<E988AD>瘚<EFBFBD><E7989A> (Chat Loop)
- *<EFBFBD>冽<EFBFBD>颲枏<EFBFBD>嚗? <20>𨀣<EFBFBD>撟湧<E6929F>憭找<E686AD>60<36><30>挽銝箄<E98A9D><E7AE84>僑蝏<E58391><E89D8F>腈<EFBFBD>?
- <EFBFBD>滨蔭<EFBFBD>峕郊 (Auto-Sync): (V1.1 <20>啣<EFBFBD>)
- *<EFBFBD>文<EFBFBD>嚗? <20>滨垢璉<E59EA2><E79289>交糓<E4BAA4>行<EFBFBD><E8A18C>芯<EFBFBD>摮条<E691AE><E69DA1>见𢆡靽格㺿 (dirtyRows).
- *<EFBFBD>其<EFBFBD>嚗? 憒<><E68692><EFBFBD>㚁<EFBFBD><E39A81><EFBFBD><EFBFBD>暺睃<E69ABA><E79D83>?PATCH /api/data 撠<><E692A0><EFBFBD>其耨<E585B6>孵<EFBFBD>甇亦<E79487><E4BAA6>𡒊垢 df<64><66>&靽?AI <20>箔<EFBFBD><E7AE94><EFBFBD><EFBFBD>唳㺭<E594B3>格<EFBFBD>雿栶<E99BBF>?
- *隞<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗? <20>𡒊垢靚<E59EA2>鍂 DeepSeek嚗𣬚<E59A97><F0A3AC9A>?Pandas 隞<><E99A9E><EFBFBD>?
- 憸<EFBFBD><EFBFBD>雿𦦵&霈?(Action Card):
- 撅閧內嚗帋誨<EFBFBD><EFBFBD><EFBFBD>閫?+ <20>䁅<EFBFBD><E48185>?
- <EFBFBD>厰僼嚗䨵[餈鞱<E9A488>] | [<5B>𡝗<EFBFBD>]<5D>?
3.2 <20>扯<EFBFBD>銝𤾸<E98A9D>皛?(Execute & Rollback) - (V1.1 <20>詨<EFBFBD>)
- P0: <20>芸𢆡敹怎<E695B9> (Auto-Checkpoint):
- <EFBFBD>冽<EFBFBD>銵?exec(code) 銋见<E98A8B>嚗<EFBFBD><E59A97>蝡臬<E89DA1>憿餃<E686BF>撖孵<E69296><E5ADB5>?df 餈𥡝<E9A488><F0A5A19D><EFBFBD><EFBFBD>敹怎<E695B9>嚗<EFBFBD><E59A97>摨誩<E691A8><E8AAA9>硋<EFBFBD>隞踝<E99A9E><E8B89D>?
- 霈啣<EFBFBD><EFBFBD>滢<EFBFBD><EFBFBD>亙<EFBFBD>嚗鋫ctionID: 101, Type: AI_CODE, Code: "..."<22>?
- P0: <20>扯<EFBFBD><E689AF>漤<EFBFBD>:
- <EFBFBD>𣂼<EFBFBD>嚗朞<EFBFBD><EFBFBD>墧鰵<EFBFBD><EFBFBD><EFBFBD>閫<EFBFBD>㺭<EFBFBD>?-> <20>瑟鰵 Grid -> 瘛餃<E7989B>銝<EFBFBD><E98A9D>﹦<EFBFBD>𨀣<EFBFBD>雿𨀣<E99BBF><F0A880A3>麨<EFBFBD>脲<EFBFBD><E884B2>胯<EFBFBD>?
- 憭梯揖嚗𡁏<EFBFBD><EFBFBD>?Python Traceback -> 霈?AI 撠肽<E692A0><E882BD>芣<EFBFBD>靽桀<E99DBD> (Self-Correction) 銝<>甈?-> <20>乩<EFBFBD>憭梯揖嚗<E68F96><E59A97><EFBFBD>冽<EFBFBD>撅閧內<E996A7>躰秤<E8BAB0>笔<EFBFBD><E7AC94>?
- P0: <20>日<EFBFBD><E697A5>滢<EFBFBD> (Undo):
- <EFBFBD>𠰴予獢<EFBFBD><EFBFBD><EFBFBD>⊥<EFBFBD><EFBFBD>蠘扇敶蓥<EFBFBD><EFBFBD>曄內 [<5B>日<EFBFBD>] <20>厰僼<E58EB0>?
- <EFBFBD>餉<EFBFBD>嚗朞<EFBFBD><EFBFBD>典<EFBFBD>蝡?rollback(action_id) -> <20>W<EFBFBD><EFBCB7>啗砲<E59597>滢<EFBFBD><E6BBA2>滨<EFBFBD>敹怎<E695B9> -> <20>瑟鰵 Grid<69>?
4. 敹急㭘<E680A5><E3AD98>誘 (Prompt Chips)
- P0: 憿園<E686BF>撌亙<E6928C><E4BA99>𤩺<EFBFBD><F0A4A9BA>殷<EFBFBD><E6AEB7><EFBFBD><EFBFBD><EFBFBD>㗛<EFBFBD><E3979B><EFBFBD>鵭摰質蓮<E8B3AA>Y<EFBFBD>嚗㚁<E59A97><E39A81>孵稬隞<E7A8AC><E99A9E>銝算<E98A9D>𨅯翰<F0A885AF>瑞<EFBFBD>霂凌<E99C82>嘥‵<E598A5>亥<EFBFBD><E4BAA5>交<EFBFBD>嚗䔶<E59A97>閫血<E996AB><E8A180>祉<EFBFBD> UI <20>餉<EFBFBD>嚗䔶<E59A97><E494B6><EFBFBD>沲<EFBFBD><E6B2B2><EFBFBD>銝<EFBFBD><E98A9D>?
5. 撖澆枂 (Export)
- P0: 撖澆枂 Excel<65>?
- <EFBFBD>餉<EFBFBD>嚗𡁜<EFBFBD>蝡舐凒<EFBFBD>亙<EFBFBD>敶枏<EFBFBD><EFBFBD>?df (<28><>鉄<EFBFBD><E98984><EFBFBD>?AI 靽格㺿<E6A0BC>峕<EFBFBD><E5B395>其耨<E585B6>? <20>坔<EFBFBD> Excel 瘚<>僎餈𥪜<E9A488><F0A5AA9C>?
銝剹<EFBFBD>?撘<>虜憭<E8999C><E686AD>閫<EFBFBD><E996AB> (Error Handling)
| 撘<EFBFBD>虜<EFBFBD>箸艶 | <EFBFBD>滨垢銵函緵 | <EFBFBD>𡒊垢憭<EFBFBD><EFBFBD> |
|---|---|---|
| 銝剜<EFBFBD>銋梁<EFBFBD> | <EFBFBD>鞟內<EFBFBD>𦦵<EFBFBD><EFBFBD><EFBFBD>聢撘讛<EFBFBD><EFBFBD>怠仃韐伐<EFBFBD>霂瑟<EFBFBD><EFBFBD>券<EFBFBD>㗇𥋘<EFBFBD>? | 撠肽<EFBFBD> chardet 璉<>瘚页<E7989A>憭梯揖<E6A2AF>蹱𥁒<E8B9B1>? |
| AI 隞<><E99A9E><EFBFBD>仿<EFBFBD> | Chat 瘞娍部<E5A88D>条滯嚗峕遬蝷算<E89DB7>𦯷I 甇<>銁撠肽<E692A0>靽桀<E99DBD>...<2E>? | <EFBFBD>閗繮 stderr嚗<72><E59A97><EFBFBD>躰秤<E8BAB0>滚<EFBFBD>蝏?AI <20>滩<EFBFBD> (Max 1甈? |
| 隡朞<EFBFBD>餈<EFBFBD><EFBFBD> | <EFBFBD>典<EFBFBD><EFBFBD>桃蔗<EFBFBD>靝<EFBFBD>霂嘥歇餈<EFBFBD><EFBFBD><EFBFBD>? | 皜<EFBFBD><EFBFBD> Redis/<2F><><EFBFBD>嚗諹<E59A97><E8ABB9>?401/404 |
| <EFBFBD>见𢆡靽格㺿<EFBFBD>脩<EFBFBD> | <EFBFBD>鞟內<EFBFBD>𨀣迤<EFBFBD>典<EFBFBD>甇交㺭<EFBFBD>?..<2E>? | 隡睃<EFBFBD>憭<EFBFBD><EFBFBD><EFBFBD>见𢆡 Patch嚗<68><E59A97><EFBFBD>扯<EFBFBD> AI 隞餃𦛚 |
<EFBFBD>䜘<EFBFBD>?撘<><E69298>睲<EFBFBD>瘚贝<E7989A><E8B49D>滨<EFBFBD> (QA Focus)
- 銝<EFBFBD><EFBFBD>湔<EFBFBD>扳<EFBFBD>霂𤏪<EFBFBD>
- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>冽㺿銝<EFBFBD>銝芸<EFBFBD>潘<EFBFBD><EFBFBD>滩悟 AI <20>牐<EFBFBD>銵䕘<E98AB5>蝖株恕<E6A0AA><E68195>葵<EFBFBD>潸<EFBFBD><E6BDB8>其<EFBFBD><E585B6>剁<EFBFBD><E58981>𤥁<EFBFBD><F0A4A581>糓<EFBFBD>行迤蝖株◤<E6A0AA>𩤃<EFBFBD><F0A9A483>?
- <EFBFBD><EFBFBD>悟 AI <20>嫣<EFBFBD><E5ABA3>梹<EFBFBD><E6A2B9>齿伃<E9BDBF><E4BC83>嚗𣬚&霈斗糓<E69697>血<EFBFBD><E8A180>冽<EFBFBD>憭溻<E686AD>?
- *颲寧<EFBFBD>瘚贝<EFBFBD>嚗?
- 銝𠹺<EFBFBD>蝛箸<EFBFBD>隞嗚<EFBFBD>?
- 銝𠹺<EFBFBD><EFBFBD>其葉<EFBFBD><EFBFBD><EFBFBD><EFBFBD>滨<EFBFBD><EFBFBD><EFBFBD>辣<EFBFBD>?
- 霈?AI 霈∠<E99C88>銝<EFBFBD>銝芯<E98A9D>摮睃銁<E79D83><E98A81><EFBFBD><EFBFBD>?
- *<EFBFBD>扯<EFBFBD>瘚贝<EFBFBD>嚗?
- 餈䂿賒敹恍<EFBFBD>笔<EFBFBD><EFBFBD>?5 <20>⊥<EFBFBD>隞歹<E99A9E>蝖桐<E89D96><E6A190>𡒊垢<F0A1928A>?*銝脰<E98A9D><E884B0>笔<EFBFBD>**憭<><E686AD>嚗諹<E59A97>䔶<EFBFBD><E494B6>臬僎<E887AC>烐<EFBFBD>銋望㺭<E69C9B>柴<EFBFBD>?
鈭𢛵<EFBFBD>?<3F><><EFBFBD>嚗𡁏㺭<F0A1818F>桀<EFBFBD>甇?API 摰帋<E691B0> (蝞<><E89D9E>?
- POST /api/sync: <20>滨垢 -> <20>𡒊垢<F0A1928A><E59EA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>其耨<E585B6>寧<EFBFBD> Diff<66>?
- Payload: [{ rowId: "P001", col: "age", value: 66 }]
- POST /api/run: <20>滨垢 -> <20>𡒊垢<F0A1928A><E59EA2><EFBFBD><EFBFBD>?AI 隞<><E99A9E><EFBFBD>扯<EFBFBD>霂瑟<E99C82><E7919F>?
- Payload: { code: "df['new'] = 1", snapshot: true }
- POST /api/undo: <20>滨垢 -> <20>𡒊垢<F0A1928A>?
- Payload: { step: -1 }
### 蝏坔<E89D8F><E59D94>穃𣪧<E7A983>毺<EFBFBD>銝<EFBFBD><E98A9D>亥<EFBFBD><E4BAA5>餌<EFBFBD>
**<2A>𦛼1.1 <20><>瓲敹<E793B2>銁鈭𢛶<E988AD>条𠶖<E69DA1><F0A0B696>恣<EFBFBD><E681A3><EFBFBD>踺<EFBFBD><E8B8BA>窈<EFBFBD>∪<EFBFBD>靽肽<E99DBD><E882BD>𡒊垢 Python <20><><EFBFBD><EFBFBD>𣬚<EFBFBD> `DataFrame` <20>臬𣈲銝<F0A388B2><E98A9D><EFBFBD><EFBFBD>条<EFBFBD><E69DA1><EFBFBD>䔉皞?(Source of Truth)<29>踺<EFBFBD><E8B8BA><EFBFBD>蝡舐<E89DA1><E88890><EFBFBD><EFBFBD>㗇<EFBFBD>雿頣<E99BBF><E9A0A3>㰘捏<E3B098>舀<EFBFBD><E88880>寡<EFBFBD><E5AFA1>?AI <20>對<EFBFBD>嚗峕𧋦韐其<E99F90><E585B6>賣糓<E8B3A3>典<EFBFBD>餈嗘葵<E59798>毺<EFBFBD>撅<EFBFBD><E69285><EFBFBD><EFBFBD><EFBFBD>隞文<E99A9E><E69687>峕郊<E5B395>嗆<EFBFBD><E59786><EFBFBD><EFBFBD><EFBFBD>𩄼**
<EFBFBD>啣銁嚗峕<EFBFBD><EFBFBD>臭誑<EFBFBD>輻<EFBFBD>餈嗘遢<EFBFBD><EFBFBD>﹝嚗<EFBFBD><EFBFBD><EFBFBD>匧<EFBFBD>瘞𥪜𧑐<EFBFBD>餃<EFBFBD>撘<EFBFBD><EFBFBD>穃𣪧<EFBFBD>笔<EFBFBD>撌乩<EFBFBD><EFBFBD><EFBFBD><EFBFBD>撌脩<EFBFBD><EFBFBD>萎<EFBFBD>鈭<EFBFBD><EFBFBD>摰寞<EFBFBD>蝧餉膠<EFBFBD><EFBFBD><EFBFBD>銝芣<EFBFBD>瘣𠺶<EFBFBD>?