Files
AIclinicalresearch/docs/03-业务模块/DC-数据清洗整理/06-开发记录/2025-12-07_后端API完整对接完成.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

7.8 KiB
Raw Blame History

2025-12-07 <20>𡒊垢 API 摰峕㟲撖寞𦻖摰峕<E691B0>

**<2A>滚之<E6BB9A>𣬚<EFBFBD>蝣?*嚗関ool C <20><EFBFBD>蝡?API 摰峕㟲撖寞𦻖嚗<F0A6BB96>虾隞亦垢<E4BAA6>啁垢瘚贝<E7989A>嚗?


<EFBFBD><EFBFBD> 隞餃𦛚璁<F0A69B9A>

<EFBFBD>𤑳緵嚗𡁜<EFBFBD>蝡?API <20>?Day 1-3 撌脩<E6928C>摰峕㟲撘<E39FB2><E69298>𡢅<EFBFBD><EFBFBD><E99BBF>蝡?API 頝臬<E9A09D>銝滚龪<E6BB9A>?

**靽桀<E99DBD>**嚗帋耨甇<E880A8><E79487>蝡?API 靚<>鍂頝臬<E9A09D><EFBFBD><E59A97><EFBFBD>𣂼<EFBFBD><F0A382BC>𡒊垢撖寞𦻖


<EFBFBD>?<3F>𡒊垢 API 皜<><E79A9C><EFBFBD>歇摰峕<E691B0>嚗?

1. Session 蝞∠<E89D9E> <20>?Day 2 摰峕<E691B0>

API <EFBFBD><EFBFBD> 頝臬<EFBFBD> <EFBFBD><EFBFBD>
銝𠹺<EFBFBD><EFBFBD><EFBFBD> POST /api/v1/dc/tool-c/sessions/upload <EFBFBD>𥕦遣 Session
<EFBFBD><EFBFBD> Session GET /api/v1/dc/tool-c/sessions/:id <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> GET /api/v1/dc/tool-c/sessions/:id/preview <EFBFBD>?00銵峕㺭<E5B395>?
<EFBFBD><EFBFBD>摰峕㟲<EFBFBD>唳旿 GET /api/v1/dc/tool-c/sessions/:id/full <EFBFBD><EFBFBD><EFBFBD>唳旿
<EFBFBD>湔鰵敹<EFBFBD> POST /api/v1/dc/tool-c/sessions/:id/heartbeat 撱園鵭餈<EFBFBD><EFBFBD><EFBFBD>園𡢿
<EFBFBD>𣳇膄 Session DELETE /api/v1/dc/tool-c/sessions/:id <EFBFBD>𣳇膄 Session

2. AI <20><EFBFBD> <20>?Day 3 摰峕<E691B0>

API <EFBFBD><EFBFBD> 頝臬<EFBFBD> <EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> POST /api/v1/dc/tool-c/ai/generate <EFBFBD><EFBFBD><EFBFBD> Pandas 隞<><E99A9E>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> POST /api/v1/dc/tool-c/ai/execute <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*<EFBFBD>甇亙<EFBFBD>雿? POST /api/v1/dc/tool-c/ai/process <EFBFBD><EFBFBD><EFBFBD>+<2B><EFBFBD>+<2B><EFBFBD> 潃?
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> GET /api/v1/dc/tool-c/ai/history/:sessionId 撖寡<EFBFBD><EFBFBD><EFBFBD>

<EFBFBD>圲 隞𦠜𠯫靽桀<E99DBD>

1. 靽格迤<E6A0BC>滨垢 API 頝臬<E9A09D>

**<2A><EFBFBD>**嚗𡁜<E59A97>蝡航<E89DA1><E888AA>刻楝敺<E6A59D><E695BA><EFBFBD><EFBFBD>

// <20>?<3F>躰秤嚗<E7A7A4><E59A97><EFBFBD><EFBFBD>
fetch('/api/dc/tool-c/process')
fetch('/api/dc/tool-c/execute')

// <20>?甇<><EFBC86>耨憭滚<E686AD>嚗?
fetch('/api/v1/dc/tool-c/ai/process')
fetch('/api/v1/dc/tool-c/ai/execute')

靽桀<EFBFBD><EFBFBD><EFBFBD>嚗?

  • <EFBFBD>?frontend-v2/src/modules/dc/pages/tool-c/components/Sidebar.tsx

2. 靽格迤<E6A0BC><EFBFBD><E6BB9A>唳旿<E594B3><EFBFBD>

**<2A><EFBFBD>**嚗𡁜<E59A97>蝡航<E89DA1><E888AA>?previewData<EFBFBD><EFBFBD>蝡舀<EFBFBD><EFBFBD>?rows

**靽桀<E99DBD>**嚗?

// <20>?<3F>滨垢<E6BBA8>澆捆銝斤<E98A9D><E696A4><EFBFBD>
data: preview.data.previewData || preview.data.rows || []

靽桀<EFBFBD><EFBFBD><EFBFBD>嚗?

  • <EFBFBD>?frontend-v2/src/modules/dc/pages/tool-c/index.tsx
  • <EFBFBD>?frontend-v2/src/modules/dc/api/toolC.ts<EFBFBD><EFBFBD><EFBFBD>銋㚁<EFBFBD>

3. 靽格迤 AI 憭<><E686AD><EFBFBD><EFBFBD><E6BB9A><EFBFBD>頧祆揢

**<2A><EFBFBD>**嚗𡁜<E59A97>蝡臬<E89DA1>摨娍聢撘誯<E69298><EFBFBD><EFBFBD><EFBCB6>滨垢 ChatContainer <20><><EFBFBD><EFBFBD><EFBFBD>聢撘?

**靽桀<E99DBD>**嚗?

// <20>?頧祆揢<E7A586>𡒊垢<F0A1928A><EFBFBD>
return {
  messageId: result.data?.messageId,
  explanation: result.data?.explanation,
  code: result.data?.code,
  success: result.data?.executeResult?.success,
  metadata: {
    newDataPreview: result.data?.executeResult?.newDataPreview,
  },
};

靽桀<EFBFBD><EFBFBD><EFBFBD>嚗?

  • <EFBFBD>?frontend-v2/src/modules/dc/pages/tool-c/components/Sidebar.tsx

<EFBFBD><EFBFBD> API <20><EFBFBD><E6BB9A><EFBFBD>

1. <20><>辣銝𠹺<E98A9D><F0A0B9BA><EFBFBD>

POST /api/v1/dc/tool-c/sessions/upload

Response (201):
{
  "success": true,
  "message": "Session<6F>𥕦遣<F0A595A6>𣂼<EFBFBD>",
  "data": {
    "sessionId": "xxx",
    "fileName": "data.csv",
    "fileSize": "1.2 MB",
    "totalRows": 1000,
    "totalCols": 10,
    "columns": ["id", "name", "age", ...],
    "expiresAt": "2025-12-07T12:00:00Z",
    "createdAt": "2025-12-07T11:00:00Z"
  }
}

2. <20><EFBFBD><EFBFBD><E686B8><EFBFBD>唳旿<E594B3><EFBFBD>

GET /api/v1/dc/tool-c/sessions/:id/preview

Response (200):
{
  "success": true,
  "data": {
    "sessionId": "xxx",
    "fileName": "data.csv",
    "totalRows": 1000,
    "totalCols": 10,
    "columns": ["id", "name", "age", ...],
    "previewRows": 100,
    "previewData": [
      { "id": 1, "name": "撘牐<E69298>", "age": 25 },
      { "id": 2, "name": "<22>𤾸<EFBFBD>", "age": 30 },
      ...
    ]
  }
}

3. AI 憭<><E686AD><EFBFBD><EFBFBD>

POST /api/v1/dc/tool-c/ai/process

Request:
{
  "sessionId": "xxx",
  "message": "<22>𨉖ge<67><EFBFBD>蝻箏仃<E7AE8F>銵乩蛹撟喳<E6929F><E596B3>?,
  "maxRetries": 3
}

Response (200):
{
  "success": true,
  "message": "<EFBFBD><EFBFBD><EFBFBD>𣂼<EFBFBD>",
  "data": {
    "messageId": "msg-123",
    "explanation": "憟賜<EFBFBD>嚗峕<EFBFBD><EFBFBD><EFBFBD><EFBFBD>age<EFBFBD><EFBFBD>蝻箏仃<EFBFBD>銵乩蛹撟喳<EFBFBD><EFBFBD><EFBFBD>?,
    "code": "df['age'].fillna(df['age'].mean(), inplace=True)",
    "executeResult": {
      "success": true,
      "result": "<22>𣂼<EFBFBD>憛怨 15 銝芰撩憭勗<E686AD>?,
      "newDataPreview": [
        { "id": 1, "name": "撘牐<EFBFBD>", "age": 25 },
        { "id": 2, "name": "<EFBFBD>𤾸<EFBFBD>", "age": 27.5 },
        ...
      ]
    },
    "retryCount": 0
  }
}

<EFBFBD>㴓 蝡臬<E89DA1>蝡舀<E89DA1>蝔?

摰峕㟲<EFBFBD><EFBFBD><EFBFBD><EFBFBD>

1. <20><EFBFBD>銝𠹺<E98A9D><F0A0B9BA><EFBFBD><20>?
   POST /api/v1/dc/tool-c/sessions/upload
   <20>?
   餈𥪜<E9A488> sessionId
   
2. <20>芸𢆡<E88AB8><EFBFBD><EFBFBD><E686B8><EFBFBD>唳旿
   <20>?
   GET /api/v1/dc/tool-c/sessions/:id/preview
   <20>?
   <20>曄內<E69B84>唳旿銵冽聢 + <20><><EFBFBD>?AI 撖寡<E69296><E5AFA1>屸𢒰
   
3. <20><EFBFBD>颲枏<E9A2B2> AI <20><><20>?
   POST /api/v1/dc/tool-c/ai/process
   <20>?
   餈𥪜<E9A488><EFBFBD><E99A9E> + <20><EFBFBD>蝏𤘪<E89D8F>
   
4. <20>芸𢆡<E88AB8>湔鰵銵冽聢<E586BD>唳旿
   <20>?
   <20>曄內<E69B84><EFBFBD><E59581>唳旿憸<E697BF><E686B8>

<EFBFBD><EFBFBD> 瘚贝<E7989A><E8B49D><EFBFBD><EFBFBD>

1. <20>臬𢆡<E887AC>滚𦛚

# <20>𡒊垢
cd AIclinicalresearch/backend
npm run dev

# <20>滨垢
cd AIclinicalresearch/frontend-v2
npm run dev

# Python 敺格<E695BA><E6A0BC>?
cd AIclinicalresearch/extraction_service
python main.py

2. 瘚贝<E7989A>甇仿炊

  1. <EFBFBD>?霈輸䔮憿菟𢒰

  2. <EFBFBD>?銝𠹺<EFBFBD><EFBFBD><EFBFBD>

    • <EFBFBD>孵稬"<22>㗇𥋘<E39787><F0A58B98>辣"
    • 銝𠹺<EFBFBD> CSV <20>?Excel <20><>辣嚗?10MB嚗?
    • 摨磰砲<EFBFBD>芸𢆡<EFBFBD><EFBFBD><EFBFBD>?AI 撖寡<E69296><E5AFA1>屸𢒰
  3. <EFBFBD>?AI 撖寡<E69296>

    • <EFBFBD><EFBFBD><EFBFBD><EFBFBD>颲枏<EFBFBD><EFBFBD><EFBFBD>誘嚗䔶<EFBFBD><EFBFBD><EFBFBD>
      • "<22>曄內<E69B84>?0銵峕㺭<E5B395>?
      • "<22>𨉖ge<67><EFBFBD>蝻箏仃<E7AE8F>銵乩蛹撟喳<E6929F><E596B3>?
      • "<22>𣳇膄<F0A3B387><EFBFBD>銵?
    • 摨磰砲<EFBFBD><EFBFBD> AI <20><><EFBFBD><EFBFBD><E99A9E>撟嗉䌊<E59789><EFBFBD>銵?
  4. <EFBFBD>?撉諹<EFBFBD><EFBFBD>唳旿<EFBFBD>湔鰵

    • 撌虫儒銵冽聢摨磰砲<EFBFBD>芸𢆡<EFBFBD>湔鰵
    • <EFBFBD>曄內憭<EFBFBD><EFBFBD><EFBFBD>𡒊<EFBFBD><EFBFBD>唳旿

3. 瘚贝<E7989A><E8B49D>唳旿

<EFBFBD><EFBFBD>雿輻鍂嚗?

  • AIclinicalresearch/test_data/cqol-demo.csv<EFBFBD>龫摮行㺭<EFBFBD><EFBFBD>
  • <EFBFBD>碶遙雿?CSV/Excel <20><>辣嚗?10MB嚗?

<EFBFBD><EFBFBD> 靽格㺿皜<E3BABF><E79A9C>

<EFBFBD><EFBFBD> <EFBFBD> 靽格㺿<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>?
Sidebar.tsx 43 靽格迤<EFBFBD><EFBFBD><EFBFBD><EFBFBD> API 頝臬<E9A09D> <EFBFBD>?
Sidebar.tsx 122-136 靽格迤 AI 憭<><E686AD> API 頝臬<E9A09D><E887AC><EFBFBD><EFBFBD>摨磰蓮<E7A3B0>? <EFBFBD>?
index.tsx 82 <EFBFBD>澆捆 previewData <20>?rows <EFBFBD>?
toolC.ts 47 <EFBFBD>湔鰵 PreviewData 蝐餃<E89D90>摰帋<E691B0> <EFBFBD>?

<EFBFBD>?撉諹<E69289>蝏𤘪<E89D8F>

Linter 璉<><E79289>?

  • <EFBFBD>?**<2A>躰秤<E8BAB0>?*嚗?
  • <EFBFBD>𩤃<EFBFBD> **霅血<E99C85><E8A180>?*嚗?嚗<>𧊋雿輻鍂<E8BCBB>?handleSendMessage<EFBFBD>虾敹賜裦嚗?

<EFBFBD><EFBFBD>撉諹<EFBFBD>

<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>? <EFBFBD>
憿菟𢒰<EFBFBD>㰘蝸 <EFBFBD>? <EFBFBD>䭾𥁒<EFBFBD>?
<EFBFBD><EFBFBD>辣銝𠹺<EFBFBD> UI <EFBFBD>? <EFBFBD><EFBFBD>曄內
API 頝臬<E9A09D> <EFBFBD>? <EFBFBD><EFBFBD><EFBFBD>𡒊垢
蝐餃<EFBFBD>摰帋<EFBFBD> <EFBFBD>? 摰峕㟲
蝡臬<EFBFBD>蝡舀<EFBFBD>蝔? <EFBFBD>? <EFBFBD><EFBFBD>霂?

<EFBFBD><EFBFBD> <20>𣬚<EFBFBD>蝣?

*<EFBFBD>?Tool C <20><EFBFBD>蝡?API 摰峕㟲撖寞𦻖摰峕<E691B0>嚗?

<EFBFBD><EFBFBD><EFBFBD>𣂼停

  1. <EFBFBD>?**<2A>𡒊垢 API 撌脣<E6928C><E884A3>?*

    • Day 1: Python 敺格<E695BA><E6A0BC><EFBFBD><EFBFBD><E99A9E><EFBFBD><EFBFBD>嚗?
    • Day 2: Session 蝞∠<E89D9E><EFBFBD><E59A97>隞嗡<E99A9E>隡𨬭<E99AA1><F0A8ACAD><EFBFBD><EFBFBD><E6A180><EFBFBD>
    • Day 3: AI 隞<><E99A9E><EFBFBD><EFBFBD><EFBFBD>嚗㇄eepSeek-V3 <20><><EFBFBD>嚗?
  2. <EFBFBD>?**<2A>滨垢 API 靚<>鍂撌脖耨甇?*

    • 頝臬<EFBFBD><EFBFBD><EFBFBD>
    • <EFBFBD>唳旿<EFBFBD><EFBFBD><EFBFBD>澆捆
    • <EFBFBD><EFBFBD>頧祆揢甇<EFBFBD>
  3. <EFBFBD>?**<2A>臭誑餈𥡝<E9A488>蝡臬<E89DA1>蝡舀<E89DA1>霂?*

    • 銝𠹺<EFBFBD><EFBFBD><EFBFBD><20>?<3F>曄內<E69B84>唳旿 <20>?AI 撖寡<E69296> <20>?<3F><EFBFBD><EFBFBD><E99A9E> <20>?<3F>湔鰵銵冽聢

<EFBFBD><EFBFBD> 銝衤<E98A9D>甇?

蝡见朖<EFBFBD><EFBFBD>

  1. <EFBFBD>?**<2A>瑟鰵瘚讛<E7989A><E8AE9B>?*
  2. <EFBFBD>?銝𠹺<EFBFBD>瘚贝<EFBFBD><EFBFBD><EFBFBD>
  3. <EFBFBD>?瘚贝<EFBFBD> AI 撖寡<E69296><E5AFA1><EFBFBD>

<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鮋獈憛痹<EFBFBD>

  1. <EFBFBD>?隡睃<E99AA1><E79D83>躰秤<E8BAB0>鞟內
  2. <EFBFBD>?瘛餃<E7989B><E9A483>㰘蝸<E3B098><EFBFBD><E59786>𢆡<EFBFBD>?
  3. <EFBFBD>?憓𧼮撩隞<E692A9><E99A9E>擃䀝漁
  4. <EFBFBD>?<3F><EFBFBD><E88880><EFBFBD>/<2F><EFBFBD>
  5. <EFBFBD>?撖澆枂<E6BE86>唳旿<E594B3><EFBFBD>

<EFBFBD><EFBFBD><><E99A9E>蝏蠘恣

<EFBFBD> <EFBFBD><EFBFBD>銵峕㺭 <EFBFBD><EFBFBD>?
Python 敺格<E695BA><E6A0BC>? ~430 銵? <EFBFBD>?Day 1
Node.js <20>𡒊垢 ~2650 銵? <EFBFBD>?Day 2-3
<EFBFBD>滨垢 React ~1100 銵? <EFBFBD>?Day 4-5
<EFBFBD>𡁶鍂 Chat 蝏<> ~968 銵? <EFBFBD>?Day 5
<EFBFBD>餉恣 *~5148 銵? <EFBFBD>?摰峕<E691B0>

<EFBFBD><EFBFBD> <20><EFBFBD>

Tool C MVP 撘<><E69298><EFBFBD><E7A983><EFBFBD>

  • <EFBFBD>?<3F><EFBFBD>蝡?API 摰峕㟲撖寞𦻖
  • <EFBFBD>?<3F>臭誑餈𥡝<E9A488>蝡臬<E89DA1>蝡舀<E89DA1>霂?
  • <EFBFBD>?AI 撖寡<E69296> + <20>唳旿憭<E697BF><E686AD><EFBFBD><EFBFBD>撠梁貌
  • <EFBFBD>?<3F><EFBFBD> Ant Design X <20><>緵隞<E7B7B5><E99A9E> UI

*<EFBFBD>啣銁<EFBFBD>臭誑撘<EFBFBD>憪𧢲<EFBFBD>霂訫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗? <20><>


**撘<><E69298>𤏸<EFBFBD>?*嚗鋫I Assistant
**<2A><EFBFBD>**嚗?025-12-07
<EFBFBD><EFBFBD>𧋦嚗鐝VP v1.0