Files
AIclinicalresearch/docs/03-业务模块/DC-数据清洗整理/02-技术设计/总体技术设计文档:医疗科研智能数据清洗平台.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.0 KiB
Raw Blame History

<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>航挽霈⊥<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝘𤑳<EFBFBD><EFBFBD><EFBFBD><EFBFBD>唳旿皜<EFBFBD><EFBFBD>撟喳蝱

<EFBFBD><EFBFBD>﹝蝐餃<EFBFBD> System Architecture Document (SAD)
撖孵<EFBFBD> PRD PRD_<EFBFBD><EFBFBD>_<EFBFBD><EFBFBD>蝘𤑳<EFBFBD><EFBFBD><EFBFBD><EFBFBD>唳旿皜<EFBFBD><EFBFBD>撟喳蝱.md
<EFBFBD><EFBFBD>𧋦 V1.0
*<EFBFBD><EFBFBD>? Final Draft
<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>?

1. <20><EFBFBD>蝟餌<E89D9F><E9A48C><EFBFBD><E59786>?(System Architecture)

撟喳蝱<EFBFBD><EFBFBD><EFBFBD>𨅯凝<EFBFBD>滚𦛚<EFBFBD><EFBFBD>雿?(Modular Monolith)<29>? <20>?*<2A>輶FF + Worker<65>?* <20><EFBFBD><E59786><EFBFBD><EFBFBD>蝡舐<E89DA1><EFBFBD><E98A9D>亙藁嚗<E89781><E59A97>蝡舀<E89DA1><E88880><EFBFBD><E8A098><EFBFBD><EFBFBD><EFBFBD>滚𦛚<E6BB9A>𡝗芋<F0A19D97>𨰜<EFBFBD>? graph TD
subgraph Client_Layer [<5B>滨垢鈭支<E988AD>撅?(Browser)]
Portal[撌乩<E6928C><E4B9A9>?(Portal)]
ToolA_UI[撌亙<E6928C>A: 頞<><EFBFBD><E6BCA3><EFBFBD>沔]
ToolB_UI[撌亙<E6928C>B: 蝏𤘪<E89D8F><F0A498AA>𡝗㦤<F0A19D97>其犖]
ToolC_UI[撌亙<E6928C>C: 蝘𤑳<E89D98>蝻𤥁<E89DBB><F0A4A581>沔]
end

subgraph Gateway\_Layer \[蝵穃<E89DB5>銝舘<E98A9D><E88898><EFBFBD><EFBFBD>\]  
    Nginx\[Nginx / Load Balancer\]  
    BFF\[Node.js BFF (Fastify)\]  
end

subgraph Service\_Layer \[銝𡁜𦛚<F0A1819C>滚𦛚撅<F0A69B9A>]  
    Auth\[霈方<E99C88><E696B9>滚𦛚\]  
    Asset\[韏<>漣蝞∠<E89D9E><E288A0>滚𦛚\]  
      
    subgraph Workers \[撘<>郊霈∠<E99C88><E288A0><EFBFBD>黎\]  
        WorkerA\[<5B><>僎撘閙<E69298> (Stream)\]  
        WorkerB\[AI 撘閙<E69298> (LangChain)\]  
    end  
end

subgraph Storage\_Layer \[摮睃<E691AE><EFBFBD>]  
    PG\[(PostgreSQL \- 銝𡁜𦛚<F0A1819C>唳旿)\]  
    Redis\[(Redis \- <20><EFBFBD>/蝻枏<E89DBB>)\]  
    MinIO\[(MinIO/S3 \- <20><>辣摮睃<E691AE>)\]  
end

Client\_Layer \--\> Nginx \--\> BFF  
BFF \--\> Auth  
BFF \--\> Asset  
BFF \--隞餃𦛚<E9A483><F0A69B9A><EFBFBD>--\> Redis  
Redis \--瘨<>晶--\> WorkerA & WorkerB  
ToolC\_UI \--Local First--\> IndexedDB\[(Browser DB)\]  
ToolC\_UI \--敹怎<E695B9><E6808E>峕郊--\> BFF

2. <20>𡁶鍂<F0A181B6><E98D82><EFBFBD>臬抅摨?(The Common Foundation)

餈䠷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>韐舐忽<EFBFBD><EFBFBD><EFBFBD>㗇芋<EFBFBD><EFBFBD><EFBFBD>臬𣪧<EFBFBD><EFBFBD>憿餌<EFBFBD><EFBFBD><EFBFBD>萄儐<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?

2.1 <20>滨垢<E6BBA8>𡁶鍂<F0A181B6>?(Frontend Core)

<EFBFBD> <EFBFBD><EFBFBD> 霂湔<EFBFBD>
<EFBFBD> React 19 <EFBFBD>拍鍂<EFBFBD><EFBFBD><EFBFBD><EFBFBD> Hooks <20><><EFBFBD>𤑳鸌<F0A491B3><EFBFBD>?
<EFBFBD><EFBFBD>遣撌亙<EFBFBD> Vite 5.x <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>撱綽<EFBFBD><EFBFBD><EFBFBD> HMR<4D>?
霂剛<EFBFBD> TypeScript 5.x 撘箏<EFBFBD>撘箇掩<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝡臬<EFBFBD>鈭怎掩<EFBFBD><EFBFBD>銋?(shared-types)<29>?
*<EFBFBD><EFBFBD>摨? Tailwind CSS 蝏煺<EFBFBD> UI 憌擧聢嚗<E881A2><EFBFBD><EFBFBD><E7AC94><EFBFBD>?
*<EFBFBD><EFBFBD>摨? Lucide React 憌擧聢蝏煺<EFBFBD><EFBFBD><EFBFBD><EFBFBD>讐漣 SVG <20><EFBFBD><E69AB9>?
頝舐眏 React Router v6 蝞∠<EFBFBD> Portal 銝𤾸<E98A9D>銝?Tool 銋钅𡢿<E99285><F0A1A2BF><EFBFBD><EFBFBD>憟𨰜<E6869F>?
<EFBFBD>唳旿霂瑟<EFBFBD> SWR <20>?TanStack Query <EFBFBD><EFBFBD> API 霂瑟<E99C82><E7919F><EFBFBD><EFBFBD>摮塩<E691AE><E5A1A9><EFBFBD>𠹺遙<F0A0B9BA>∠𠶖<E288A0><F0A0B696><EFBFBD>頧株砭 (Polling)<EFBFBD>?

2.2 <20>𡒊垢<F0A1928A>𡁶鍂<F0A181B6>?(Backend Core)

<EFBFBD> <EFBFBD><EFBFBD> 霂湔<EFBFBD>
*餈鞱<EFBFBD><EFBFBD>? Node.js 22 (LTS) 靽脲<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?LTS <20><>𧋦<EFBFBD>?
Web 獢<> Fastify 5.x 擃䀹<EFBFBD><EFBFBD>嚗䔶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗玺chema <20><EFBFBD><E28ABF>见末<E8A781>?
ORM Prisma 6 蝐餃<EFBFBD>摰匧<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗峕𣈲<EFBFBD>?Schema Migration<6F>?
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> Zod 餈鞱<EFBFBD><EFBFBD>?Schema <20><EFBFBD><EFBFBD><EFBFBD><E899BE><EFBFBD> TypeScript 蝐餃<E89D90><E9A483>?
<EFBFBD><EFBFBD> Winston / Pino 蝏𤘪<EFBFBD><EFBFBD>?JSON <20><EFBFBD><E4BA99>?

2.3 <20><EFBFBD>霈暹鴌<E69AB9>?(Infrastructure)

<EFBFBD> <EFBFBD><EFBFBD> 霂湔<EFBFBD>
*<EFBFBD>唳旿摨? PostgreSQL 15 摮睃<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鈭批<EFBFBD><EFBFBD>唳旿<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝏𤘪<EFBFBD> (JSONB)<29>?
蝻枏<EFBFBD>/<2F><EFBFBD> Redis 7 餈䠷<EFBFBD><EFBFBD>?Redis <20><EFBFBD>蝻枏<E89DBB>嚗䔶<E59A97><E494B6>?BullMQ <20><><EFBFBD>蝡胯<E89DA1>?
<EFBFBD><EFBFBD>辣摮睃<EFBFBD> MinIO / AWS S3 摮睃<EFBFBD><EFBFBD><EFBFBD>銝𠹺<EFBFBD><EFBFBD>?Excel<65><6C>DF 隞亙<E99A9E><E4BA99><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>隞嗚<E99A9E>?

3. 璅<E79285>銝梶鍂<E6A2B6><E98D82><EFBFBD><EFBFBD> (Module-Specific Stack)

<EFBFBD><EFBFBD>笆銝滚<EFBFBD><EFBFBD>箸艶<EFBFBD><EFBFBD>鸌畾𢠃<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>隞嗚<EFBFBD>?

3.1 撌亙<E6928C> A嚗朞<E59A97>蝥批<E89DA5>撟嗅膥 (IO 撖<><E69296><EFBFBD>?

*<2A><EFBFBD><E8A9A8><EFBFBD>嚗𡁜之<F0A1819C><E4B98B>辣瘚<E8BEA3><E7989A><EFBFBD><E686AD><EFBFBD><EFBFBD>𠯫<EFBFBD>蠘圾<E8A098><EFBFBD><E58390><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?

<EFBFBD><EFBFBD> 銝梶鍂蝏<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>𡒊垢 (Excel) ExcelJS <EFBFBD><EFBFBD> SheetJS嚗<53><E59A97>撖?Stream (瘚? <20><>𣈲<EFBFBD><F0A388B2>凒憟踝<E6869F><E8B89D><EFBFBD><E8B3A2><EFBFBD><EFBFBD><EFBFBD><E9A488>摮㗛<E691AE><E3979B><EFBFBD>憭扳<E686AD>隞嗚<E99A9E>?
<EFBFBD>𡒊垢 (Date) Day.js + CustomParseFormat <EFBFBD><EFBFBD> Excel <20><><EFBFBD><E5839A>𠯫<EFBFBD><F0A0AFAB>聢撘?(44927, 2023/1/1)嚗諹蝠<E8ABB9><EFBFBD>撘箏之<E7AE8F>?
<EFBFBD><EFBFBD><EFBFBD> BullMQ <EFBFBD><EFBFBD><EFBFBD>埈𧒄<EFBFBD><EFBFBD>僎隞餃𦛚嚗峕𣈲<EFBFBD><EFBFBD><EFBFBD>摨行<EFBFBD><EFBFBD><EFBFBD>?
<EFBFBD>滨垢蝏<EFBFBD> Ant Design Steps / Upload 敹恍<EFBFBD><EFBFBD><EFBFBD><EFBFBD>撖澆<EFBFBD> UI<55>?

3.2 撌亙<E6928C> B嚗𡁶<E59A97><F0A181B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>箏膥鈭?(API/霈∠<E99C88><EFBFBD><E69296><EFBFBD>?

*<2A><EFBFBD><E8A9A8><EFBFBD>嚗匁LM 蝻𡝗<E89DBB><F0A19D97><EFBFBD><EFBFBD><E79285>撟嗅<E6929F><E59785><EFBFBD><EFBFBD><EFBFBD><EFBFBD>撖嫘<E69296>?

<EFBFBD><EFBFBD> 銝梶鍂蝏<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>𡒊垢 (AI) LangChain.js 蝏煺<EFBFBD> DeepSeek <20>?Qwen <20><><EFBFBD><EFBFBD>冽𦻖<E586BD><F0A6BB96><EFBFBD>蝞∠<E89D9E> Prompt Template<74>?
<EFBFBD>𡒊垢 (Diff) diff-match-patch (Google) 霈∠<EFBFBD>銝支葵璅<EFBFBD>颲枏枂<EFBFBD><EFBFBD><EFBFBD><EFBFBD>砍榆撘<EFBFBD><EFBFBD><EFBFBD>𤥁<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>擃䀝漁雿滨蔭<EFBFBD>?
<EFBFBD>𡒊垢 (瘥𥪜笆) Lodash / Dice Coefficient <EFBFBD><EFBFBD> JSON 撖寡情<E5AFA1><E68385>楛撅<E6A59B><E69285>撖孵<E69296>摮㛖泵銝脩㮾隡澆漲霈∠<E99C88><E288A0>?
<EFBFBD>滨垢 (Grid) TanStack Table (Headless) <EFBFBD>牐蛹<EFBFBD><EFBFBD><EFBFBD><EFBFBD>摨血<EFBFBD><EFBFBD><EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> UI (撌血𢰧撟嗆<E6929F><E59786>厰僼)嚗峵eadless 摨𤘪<E691A8> AntD Table <20><EFBFBD>瘣颯<E798A3>?

3.3 撌亙<E6928C> C嚗𡁶<E59A97><F0A181B6>娍㺭<E5A88D><EFBFBD>颲穃膥 (鈭支<E988AD><EFBFBD><E69296><EFBFBD>?

*<2A><EFBFBD><E8A9A8><EFBFBD>嚗𡁜<E59A97>蝡舫<E89DA1><E888AB><EFBFBD>皜脫<E79A9C><E884AB><EFBFBD>𧋦<EFBFBD>啗恣蝞𨰜<E89D9E><F0A8B09C><EFBFBD><E4BC83><EFBFBD><EFBFBD><E6BB9A>?

<EFBFBD><EFBFBD> 銝梶鍂蝏<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>滨垢 (Grid) AG Grid Community <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𣈲銝<EFBFBD><EFBFBD><EFBFBD>韐寞𣈲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𡝗嗻<EFBFBD><EFBFBD>xcel 蝥找漱鈭垍<E988AD>摨瓐<E691A8>?
<EFBFBD>滨垢 (Storage) Dexie.js (IndexedDB) Local-First <20><EFBFBD><E59786><EFBFBD><EFBFBD><EFBFBD>銁瘚讛<EFBFBD><EFBFBD>函垢摮睃<EFBFBD> 5-10 銝<><E98A9D><EFBFBD>唳旿嚗屸<E59A97><E5B1B8><EFBFBD><EFBFBD><E89D9C>蝏𡏭窈瘙<E7AA88><E79899>?
<EFBFBD>滨垢 (State) Zustand + Immer <EFBFBD>拍鍂 Immer <20>?Patches <20><EFBFBD>摰䂿緵 Undo/Redo (<28><EFBFBD><E697A5><EFBFBD>) <20><><EFBFBD>?
<EFBFBD>滨垢 (Calc) Math.js <EFBFBD><EFBFBD> JS 瘚桃<E7989A><E6A183>啁移摨阡䔮憸矋<E686B8><EFBFBD><E996AB><EFBFBD><EFBFBD>颲枏<E9A2B2><E69E8F><EFBFBD>龫摮血<E691AE>撘?(ln, pow)<29>?
<EFBFBD>滨垢 (Chart) Ant Design Charts (G2) <EFBFBD>冽惣<EFBFBD>賭儒颲寞<EFBFBD>銝剔<EFBFBD><EFBFBD>嗥凒<EFBFBD>孵㦛<EFBFBD><EFBFBD><EFBFBD>?

4. <20>唳旿鈭支<E988AD><E694AF><EFBFBD><EFBFBD> (Data Standards)

銝箔<EFBFBD><EFBFBD><EFBFBD>?A -> B -> C <20><><EFBFBD>頧穿<E9A0A7><EFBFBD>◆摰帋<E691B0>蝏煺<E89D8F><E785BA><EFBFBD><EFBFBD>桐漱<E6A190>聢撘譌<E69298>?

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

  • *<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗? 蝏煺<E89D8F>雿輻鍂 CSV (UTF-8 with BOM) <20>?JSON Lines (.jsonl)<EFBFBD>?
    • *<2A><>眏嚗? Stream 憭<><E686AD><EFBFBD><EFBFBD>敹恬<E695B9>銝𥪯<E98A9D>靘肽<E99D98> Excel 憭齿<E686AD><E9BDBF>?XML 蝏𤘪<E89D8F><F0A498AA>?
  • *<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗? <20><><EFBFBD>匧極<E58CA7>瑚漣<E7919A><EFBFBD><E7AE87><EFBFBD><EFBFBD><E59A97>憿餃<E686BF><EFBFBD><E98A9D>碶蛹 YYYY-MM-DD 摮㛖泵銝脯<E98A9D>?
  • 蝛箏<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 蝏煺<E89D8F>銝?null (JSON) <20>?"" (CSV)嚗䔶艇蝳<E88987><EFBFBD>?"NA", "-"<22>?

4.2 API <20><EFBFBD>蝏𤘪<E89D8F> (Standard Response)

interface ApiResponse<T> {
code: number; // 0: <20>𣂼<EFBFBD>, >0: <20>躰秤<E8BAB0>? data: T; // 銝𡁜𦛚<F0A1819C>唳旿
message?: string; // <20>躰秤<E8BAB0>鞟內
meta?: { // <20><><EFBFBD><EFBFBD><E7A18B>唳旿
total?: number;
traceId: string;
}
}

5. 撘<><E69298>𤑳㴓憓<E3B493><E68693><EFBFBD>函蔡 (DevOps)

  • <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> pnpm (<28><EFBFBD>嚗諹<E59A97><E8ABB9><EFBFBD><EFBFBD><EFBFBD>条征<E69DA1><EFBFBD>摰㕑<E691B0>敹?<3F>?
  • *Monorepo (<28><EFBFBD>?嚗? 撱箄悅雿輻鍂 Turborepo <20>?Nx 蝞∠<E89D9E> frontend, backend-api, worker-merger, worker-ai 蝑匧<E89D91><EFBFBD><E59A97>鈭怎掩<E6808E><EFBFBD>銋剹<E98A8B>?
  • 摰孵膥<EFBFBD><EFBFBD>
    • API Service: <20>删𠶖<E588A0><F0A0B696><EFBFBD><EFBFBD>舀偌撟單<E6929F>撅𨰻<E69285>?
    • Worker Service: <20>閧𡠺<E996A7>函蔡嚗峕覔<E5B395>?CPU/<2F><><EFBFBD>韐蠘蝸餈𥡝<E9A488><F0A5A19D>拙捆嚗<E68D86><EFBFBD>急糓 Worker A 憭<><E686AD>憭扳<E686AD>隞嗆𧒄<E59786><F0A79284><EFBFBD><EFBFBD><E798A8>堒之嚗剹<E59A97>