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%)
100 lines
5.7 KiB
Markdown
100 lines
5.7 KiB
Markdown
# **PRD嚗関ool C \- 蝘𤑳<E89D98><F0A491B3>唳旿蝻𤥁<E89DBB><F0A4A581>?(MVP V1.1)**
|
||
|
||
| <20><>﹝<EFBFBD><EFB99D>𧋦 | V1.1 (撌亦<E6928C>蝏<EFBFBD><E89D8F><EFBFBD>? |
|
||
| :---- | :---- |
|
||
| **鈭批<E988AD>敶X<E695B6>?* | **Web 蝡舀㺭<E88880>桃<EFBFBD>颲穃膥 (AG Grid \+ AI Chat)** |
|
||
| **<EFBFBD>詨<EFBFBD>蝑𣇉裦** | **"AI-First" \+ "Server-side State"**<2A><><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>?|
|
||
|
||
## **銝<><E98A9D>?MVP <20>詨<EFBFBD><E8A9A8>格<EFBFBD> (Objectives)**
|
||
|
||
1. **撉諹<E69289><E8ABB9>剔㴓嚗?* 頝煾<E9A09D>?<3F>𡏭䌊<F0A18FAD>嗉祗閮<E7A597> \-\> Python 隞<><E99A9E> \-\> <20>𡒊垢<F0A1928A>扯<EFBFBD> \-\> <20>滨垢<E6BBA8>瑟鰵<E7919F>?<3F><><EFBFBD><EFBFBD>湧曎頝胯<E9A09D>?
|
||
2. **<EFBFBD>唳旿銝<EFBFBD><EFBFBD>湔<EFBFBD>改<EFBFBD>** 蝖桐<E89D96><E6A190>见𢆡蝻𤥁<E89DBB>銝?AI <20>滢<EFBFBD>銝滚<E98A9D>蝒<EFBFBD><E89D92><EFBFBD>嗆<EFBFBD><E59786>虾餈賣滲<E8B3A3>?
|
||
3. **<EFBFBD>舐鍂<EFBFBD>改<EFBFBD>** 閫<><E996AB>銝剜<E98A9D>銋梁<E98A8B><E6A281><EFBFBD><EFBFBD>霂肽<E99C82><E882BD>嗥<EFBFBD>摰鮋<E691B0>撌亦<E6928C><E4BAA6>桅<EFBFBD><E6A185>?
|
||
## **鈭䎚<E988AD>?霂衣<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):**
|
||
* <20>冽<EFBFBD>銝𠹺<E98A9D><F0A0B9BA><EFBFBD>辣 \-\> <20>𡒊垢撘<E59EA2><E69298>?Python 餈𤤿<E9A488>/摰孵膥 \-\> <20>㰘蝸 df \-\> 餈𥪜<E9A488> sessionId<49>?
|
||
* **蝻𣇉<E89DBB>璉<EFBFBD>瘚页<E7989A>** <20>𡒊垢敹<E59EA2>◆撠肽<E692A0> utf-8 <20>?gbk 閫<><E996AB>嚗屸俈甇V葉<EFBCB6><E89189>僚<EFBFBD><E5839A><EFBFBD>?
|
||
* **P1: 敹<>歲銝𦒘<E98A9D>瘣?(Keep-alive):**
|
||
* <20>滨垢瘥?30s <20>煾<EFBFBD><E785BE><EFBFBD>頝喋<E9A09D>?
|
||
* **頞<>𧒄蝑𣇉裦嚗?* <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) \- *<2A>滨垢鈭支<E988AD>***
|
||
|
||
* **P0: <20>唳旿撅閧內 (View):**
|
||
* <20>朞<EFBFBD> API <20><>△<EFBFBD>匧<EFBFBD><E58CA7>唳旿嚗<E697BF><E59A97>閫<EFBFBD>芋撘𧶏<E69298>隞<EFBFBD><E99A9E><EFBFBD>?100-500 銵䕘<E98AB5><E49598>?
|
||
* **<2A>㛖掩<E39B96>𧢲綫<F0A7A2B2>哨<EFBFBD>** <20>滨垢<E6BBA8>寞旿<E5AF9E>𡒊垢餈𥪜<E9A488><F0A5AA9C>?dtypes 皜脫<E79A9C><E884AB>堒仍<E5A092>暹<EFBFBD>嚗<EFBFBD>㺭<EFBFBD>?<3F><>𧋦/<2F>交<EFBFBD>嚗剹<E59A97>?
|
||
* **P0: <20>见𢆡蝻𤥁<E89DBB> (Manual Edit):**
|
||
* <20>舀<EFBFBD><E88880><EFBFBD>稬靽格㺿<E6A0BC>訫<EFBFBD><E8A8AB>潦<EFBFBD>?
|
||
* **<2A>喲睸<E596B2>餉<EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>唳旿<E594B3><E697BF>扇嚗㚁<E59A97>** <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>䀝蛹 **<EFBFBD>芾粉 (Read-only)**嚗峕遬蝷?Loading <20>桃蔗<E6A183>?
|
||
### **3\. AI Copilot <20>箄<EFBFBD><E7AE84>拇<EFBFBD> (The Brain) \- *<2A>𡒊垢撽勗𢆡***
|
||
|
||
#### **3.1 鈭支<E988AD>瘚<EFBFBD><E7989A> (Chat Loop)**
|
||
|
||
1. **<EFBFBD>冽<EFBFBD>颲枏<EFBFBD>嚗?* <20>𨀣<EFBFBD>撟湧<E6929F>憭找<E686AD>60<36><30>挽銝箄<E98A9D><E7AE84>僑蝏<E58391><E89D8F>腈<EFBFBD>?
|
||
2. **<EFBFBD>滨蔭<EFBFBD>峕郊 (Auto-Sync):** **(V1.1 <20>啣<EFBFBD>)**
|
||
* **<2A>文<EFBFBD>嚗?* <20>滨垢璉<E59EA2><E79289>交糓<E4BAA4>行<EFBFBD><E8A18C>芯<EFBFBD>摮条<E691AE><E69DA1>见𢆡靽格㺿 (dirtyRows).
|
||
* **<2A>其<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>?
|
||
3. **隞<><E99A9E><EFBFBD><EFBFBD><EFBFBD>嚗?* <20>𡒊垢靚<E59EA2>鍂 DeepSeek嚗𣬚<E59A97><F0A3AC9A>?Pandas 隞<><E99A9E><EFBFBD>?
|
||
4. **憸<><E686B8>雿𦦵&霈?(Action Card):**
|
||
* 撅閧內嚗帋誨<E5B88B><E8AAA8><EFBFBD>閫?\+ <20>䁅<EFBFBD><E48185>?
|
||
* <20>厰僼嚗䨵[餈鞱<E9A488>\] | \[<5B>𡝗<EFBFBD>\]<5D>?
|
||
#### **3.2 <20>扯<EFBFBD>銝𤾸<E98A9D>皛?(Execute & Rollback) \- (V1.1 <20>詨<EFBFBD>)**
|
||
|
||
* **P0: <20>芸𢆡敹怎<E695B9> (Auto-Checkpoint):**
|
||
* <20>冽<EFBFBD>銵?exec(code) 銋见<E98A8B>嚗<EFBFBD><E59A97>蝡臬<E89DA1>憿餃<E686BF>撖孵<E69296><E5ADB5>?df 餈𥡝<E9A488><F0A5A19D><EFBFBD><EFBFBD>敹怎<E695B9>嚗<EFBFBD><E59A97>摨誩<E691A8><E8AAA9>硋<EFBFBD>隞踝<E99A9E><E8B89D>?
|
||
* 霈啣<E99C88><E595A3>滢<EFBFBD><E6BBA2>亙<EFBFBD>嚗鋫ctionID: 101, Type: AI\_CODE, Code: "..."<22>?
|
||
* **P0: <20>扯<EFBFBD><E689AF>漤<EFBFBD>:**
|
||
* <20>𣂼<EFBFBD>嚗朞<E59A97><E69C9E>墧鰵<E5A2A7><E9B0B5><EFBFBD>閫<EFBFBD>㺭<EFBFBD>?\-\> <20>瑟鰵 Grid \-\> 瘛餃<E7989B>銝<EFBFBD><E98A9D>﹦<EFBFBD>𨀣<EFBFBD>雿𨀣<E99BBF><F0A880A3>麨<EFBFBD>脲<EFBFBD><E884B2>胯<EFBFBD>?
|
||
* 憭梯揖嚗𡁏<E59A97><F0A1818F>?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):**
|
||
* <20>𠰴予獢<E4BA88><E78DA2><EFBFBD>⊥<EFBFBD><E28AA5>蠘扇敶蓥<E695B6><E893A5>曄內 \[<5B>日<EFBFBD>\] <20>厰僼<E58EB0>?
|
||
* <20>餉<EFBFBD>嚗朞<E59A97><E69C9E>典<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>?
|
||
* <20>餉<EFBFBD>嚗𡁜<E59A97>蝡舐凒<E88890>亙<EFBFBD>敶枏<E695B6><E69E8F>?df (<28><>鉄<EFBFBD><E98984><EFBFBD>?AI 靽格㺿<E6A0BC>峕<EFBFBD><E5B395>其耨<E585B6>? <20>坔<EFBFBD> Excel 瘚<>僎餈𥪜<E9A488><F0A5AA9C>?
|
||
## **銝剹<E98A9D>?撘<>虜憭<E8999C><E686AD>閫<EFBFBD><E996AB> (Error Handling)**
|
||
|
||
| 撘<>虜<EFBFBD>箸艶 | <20>滨垢銵函緵 | <20>𡒊垢憭<E59EA2><E686AD> |
|
||
| :---- | :---- | :---- |
|
||
| **銝剜<E98A9D>銋梁<E98A8B>** | <20>鞟內<E99E9F>𦦵<EFBFBD><F0A6A6B5><EFBFBD>聢撘讛<E69298><E8AE9B>怠仃韐伐<E99F90>霂瑟<E99C82><E7919F>券<EFBFBD>㗇𥋘<E39787>?| 撠肽<E692A0> chardet 璉<>瘚页<E7989A>憭梯揖<E6A2AF>蹱𥁒<E8B9B1>?|
|
||
| **AI 隞<><E99A9E><EFBFBD>仿<EFBFBD>** | Chat 瘞娍部<E5A88D>条滯嚗峕遬蝷算<E89DB7>𦯷I 甇<>銁撠肽<E692A0>靽桀<E99DBD>...<2E>?| <20>閗繮 stderr嚗<72><E59A97><EFBFBD>躰秤<E8BAB0>滚<EFBFBD>蝏?AI <20>滩<EFBFBD> (Max 1甈? |
|
||
| **隡朞<E99AA1>餈<EFBFBD><E9A488>** | <20>典<EFBFBD><E585B8>桃蔗<E6A183>靝<EFBFBD>霂嘥歇餈<E6AD87><E9A488><EFBFBD>?| 皜<><E79A9C> Redis/<2F><><EFBFBD>嚗諹<E59A97><E8ABB9>?401/404 |
|
||
| **<EFBFBD>见𢆡靽格㺿<EFBFBD>脩<EFBFBD>** | <20>鞟內<E99E9F>𨀣迤<F0A880A3>典<EFBFBD>甇交㺭<E4BAA4>?..<2E>?| 隡睃<E99AA1>憭<EFBFBD><E686AD><EFBFBD>见𢆡 Patch嚗<68><E59A97><EFBFBD>扯<EFBFBD> AI 隞餃𦛚 |
|
||
|
||
## **<2A>䜘<EFBFBD>?撘<><E69298>睲<EFBFBD>瘚贝<E7989A><E8B49D>滨<EFBFBD> (QA Focus)**
|
||
|
||
1. **銝<><E98A9D>湔<EFBFBD>扳<EFBFBD>霂𤏪<E99C82>**
|
||
* <20><><EFBFBD><EFBFBD>冽㺿銝<E3BABF>銝芸<E98A9D>潘<EFBFBD><E6BD98>滩悟 AI <20>牐<EFBFBD>銵䕘<E98AB5>蝖株恕<E6A0AA><E68195>葵<EFBFBD>潸<EFBFBD><E6BDB8>其<EFBFBD><E585B6>剁<EFBFBD><E58981>𤥁<EFBFBD><F0A4A581>糓<EFBFBD>行迤蝖株◤<E6A0AA>𩤃<EFBFBD><F0A9A483>?
|
||
* <20><>悟 AI <20>嫣<EFBFBD><E5ABA3>梹<EFBFBD><E6A2B9>齿伃<E9BDBF><E4BC83>嚗𣬚&霈斗糓<E69697>血<EFBFBD><E8A180>冽<EFBFBD>憭溻<E686AD>?
|
||
2. **颲寧<E9A2B2>瘚贝<E7989A>嚗?*
|
||
* 銝𠹺<E98A9D>蝛箸<E89D9B>隞嗚<E99A9E>?
|
||
* 銝𠹺<E98A9D><F0A0B9BA>其葉<E585B6><E89189><EFBFBD><EFBFBD>滨<EFBFBD><E6BBA8><EFBFBD>辣<EFBFBD>?
|
||
* 霈?AI 霈∠<E99C88>銝<EFBFBD>銝芯<E98A9D>摮睃銁<E79D83><E98A81><EFBFBD><EFBFBD>?
|
||
3. **<EFBFBD>扯<EFBFBD>瘚贝<EFBFBD>嚗?*
|
||
* 餈䂿賒敹恍<E695B9>笔<EFBFBD><E7AC94>?5 <20>⊥<EFBFBD>隞歹<E99A9E>蝖桐<E89D96><E6A190>𡒊垢<F0A1928A>?*銝脰<E98A9D><E884B0>笔<EFBFBD>**憭<><E686AD>嚗諹<E59A97>䔶<EFBFBD><E494B6>臬僎<E887AC>烐<EFBFBD>銋望㺭<E69C9B>柴<EFBFBD>?
|
||
## **鈭𢛵<E988AD>?<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>?
|