Files
AIclinicalresearch/docs/03-业务模块/DC-数据清洗整理/02-技术设计/技术设计文档:工具 C - 科研数据编辑器 (V7 云端沙箱抗风险版).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

8.1 KiB
Raw Blame History

€譛ッ隶セ隶。譁<EFBFBD>。」<EFBFBD>壼キ・蜈キ C - 遘醍<E98198>疲焚謐ョ郛冶セ大<EFBDBE>?(V7 莠醍ォッ豐咏ョア謚鈴」朱勦迚<E58BA6>)

<EFBFBD>。」邀サ蝙<EFBFBD> Technical Design Document (TDD)
蟇ケ蠎泌次蝙<EFBFBD> 蟾・蜈キC_遘醍<EFBFBD>疲焚謐ョ郛冶セ大勣_蜴溷梛隶セ隶。_V6_菫ョ螟咲<EFBFBD>?html
迚域悽 V7.1 (螳梧紛謾カ蠖墓楔譫<E6A594><E8ADAB><EFBFBD> ADR 荳守コ「髦滄」朱勦蟇ケ遲?
*迥カ諤? Final Standard
譬ク蠢<EFBFBD>岼譬<EFBFBD> <EFBFBD>サコ荳€荳ェ鬮伜庄髱<EFBFBD><EFBFBD>コ醍ォ?Python 謨ー謐ョ貂<EFBDAE>エ怜ケウ蜿ー縲ょ惠菫晞囿窶懈焚謐ョ荳榊<E88DB3>蝓溪€晉噪蜑肴署荳具シ碁€夊ソ<E5A48A> Apache Arrow 蜥梧<E89CA5>キ蠑丞<E8A091>遖サ謚€譛ッ<E8AD9B>瑚ァ」蜀ウ譛榊苅遶ッ謇ァ陦悟クヲ譚・逧<EFBDA5>サカ霑滉ク取<EFBDB8>シ蠑丈ク「螟ア髣ョ鬚倥€?

1. 諤サ菴捺楔譫<E6A594>ョセ隶。 (System Architecture)

驩エ莠取枚莉カ螟ァ蟆城剞蛻カ (<20MB) 蜥瑚┳謨丞燕謠撰シ碁㊦逕ィ 窶廸ode.js BFF + Python Microservice窶?譫カ譫<EFBDB6>€? V7 譬ク蠢<EFBDB8>合郤ァ<E983A4>?蠑募<E8A091> Apache Arrow 菴應クコ蜑榊錘遶ッ謨ー謐ョ莠、謐「譬<EFBDA2><EFBFBD>梧崛莉」菴取譜逧?Excel 譁<>サカ蜿榊、崎ッサ蜀呻シ悟ー<E6829F>黒谺。莠、莠貞サカ霑滉サ?8s 髯堺ス手<EFBDBD>?0.5s縲?

1.1 譫カ譫<EFBDB6>挙謇大<E8AC87>?(V7 莨伜喧迚?

graph TD
subgraph Client_Layer [逕ィ謌キ遶ッ]
ReactApp[React 19 + AG Grid]
ArrowClient[Apache Arrow JS]
end

subgraph Aliyun\_SAE \[髦ソ驥御コ?Serverless 蠎皮畑蠑墓梼\]  
    BFF\[Node.js Web 譛榊苅 (Fastify)\]  
    PythonService\[Python 隶。邂怜セョ譛榊<E8AD9B>?(FastAPI)\]  
end

subgraph Cache\_Layer \[鬮倬€溽シ灘ュ伜ア<E4BC9C>]  
    Redis\_Session\[Redis (蟄?DataFrame Arrow 蠎丞<E8A08E>蛹?\]  
end

subgraph AI\_PaaS \[AI 閭ス蜉帛ア<E5B89B>]  
    Dify\[Dify 郛匁賜蠑墓梼\]  
    DeepSeek\[DeepSeek-V3 讓。蝙欺]  
end

subgraph Cloud\_Infra \[謖∽ケ<E288BD>喧螻<E596A7>]  
    OSS\[蟇ケ雎。蟄伜お (蟄?Excel 蠎墓攸)\]  
    RDS\[RDS PostgreSQL (蟄伜<E89F84>謨ー謐ョ)\]  
end

%% 莠、莠呈オ? 
User\[逕ィ謌キ\] \--\>|1. 荳贋シ<E8B48B>| BFF  
BFF \--\>|2. 蟄伜次蟋畿xcel| OSS  
BFF \--\>|3. 鬚<>Ο Session| PythonService  
PythonService \--\>|4. 蜉<>霓ス蟷カ霓ャ荳?Arrow| Redis\_Session

User \--\>|5. AI 謖<>サ、| Dify  
Dify \--\>|6. Python 莉」遐- BFF  
BFF \--\>|7. 蜿鷹€∽サ」遐- PythonService  
  
PythonService \--\>|8. 隸サ蜿<EFBDBB> Arrow (蜀<><EFBFBD>)| Redis\_Session  
PythonService \--\>|9. Pandas 謇ァ陦芸 PythonService  
PythonService \--\>|10. 蜀吝屓 Arrow| Redis\_Session  
  
PythonService \--\>|11. 霑泌屓 Preview 謨ー謐ョ (JSON/Arrow)| ReactApp  
  
User \--\>|12. 蟇シ蜃コ/菫晏ュ<E6998F> BFF  
BFF \--\>|13. 隗ヲ蜿大粋蟷カ| PythonService  
PythonService \--\>|14. 隸サOSS蠎墓攸 \+ 蝪ォ蜈・謨ー謐ョ| OSS

2. 蜈ウ髞ョ譫カ譫<EFBDB6><E8ADAB>遲冶ョー蠖<EFBDB0> (ADR)

譛ャ闃りョー蠖穂コ<EFBFBD>クコ菴穂サ寂€懷燕遶?Pyodide窶晁スャ蜷鯛€懷錘遶ッ豐咏ョア窶晉噪蜀ウ遲冶ソ<E586B6>ィ具シ御セ帛屬髦溷盾閠<E79BBE>€?

蜀ウ遲也せ<EFBFBD>壼燕遶ッ霑占。<EFBFBD> (WASM) vs 蜷守ォッ霑占。<E58DA0> (Server-side)

扈エ蠎ヲ 譁ケ譯<EFBFBD> A<>壼燕遶?Pyodide (WASM) 譁ケ譯<EFBFBD> B<>壼錘遶?Python (譛ャ譁ケ譯? 蜀ウ遲也サ楢ョコ
蜷ッ蜉ィ蟒カ霑<EFBFBD> **譫∵<E8ADAB> (15s+)**縲る怙荳玖スス ~20MB 蠑墓梼蛹<E6A2BC>シ檎畑謌キ菴馴ェ梧栫蟾ョ縲? 遘貞シ€縲ら識蠅<EFBFBD>惠譛榊苅蝎ィ鬚<EFBFBD>Ο<EFBFBD>悟叉蠑€蜊ウ逕ィ縲? *蜷守ォッ閭?
莠、莠貞サカ霑<EFBFBD> **譫∝ソォ (< 0.1s)**縲よ悽蝨ー蜀<EFBDB0>ュ俶桃菴懶シ梧裏鄂醍サ懷シ€€縲? **荳ュ遲<EFBDAD> (0.5s)**縲る€夊ソ<E5A48A> Apache Arrow 莨伜喧蜷主庄謗・蜿励€? 蜑咲ォッ閭?
*遞ウ螳壽€? **鬮倬」朱<EFBDA3>?*縲よオ剰ァ亥勣 Tab 蜀<>ュ俶怏髯撰シ梧<EFBDBC> OOM 蟠ゥ貅<EFBDA9>€? **鬮倡ィウ螳?*縲よ恪蜉。蝎ィ蜀<EFBDA8>ュ伜<EFBDAD>雜ウ<E99B9C>悟ョケ蝎ィ髫皮ヲサ<EFBDA6>悟エゥ貅<EFBDA9>ク榊スア蜩榊燕遶ッ縲? *蜷守ォッ閭?
*蠎捺髪謖? 譛蛾剞縲ゆク肴髪謖<EFBFBD>Κ<EFBFBD> C 謇ゥ螻募コ?(螯ょ、肴揩扈溯ョ。蠎<EFBDA1>)縲? **譌<><EFBFBD>**縲よ<E7B8B2><E38288><EFBFBD>?Linux 邇ッ蠅<EFBDAF>シ檎函諤∝ョ梧紛縲? *蜷守ォッ閭?
*蠑€蜿鷹埓蠎? **譫<><EFBFBD>**縲る怙螟<E68099>炊 JS-Python 騾壻ソ。縲∝<E7B8B2>蟄倡ョ。逅<EFBDA1>€? **菴?*縲よ<E7B8B2><E38288><EFBFBD>?Web API 蠑€蜿代€? *蜷守ォッ閭?

*扈楢ョコ<EFBFBD>? 驩エ莠寂€懈焚謐ョ蟾イ閼ア謨鞘€昜ク披€懈枚莉カ霎<EFBDB6>ー鞘€晢シ<E699A2>蜷守ォッ謇ァ陦梧婿譯<EFBFBD> 蝨ィ遞ウ螳壽€ァ縲∝<E7B8B2>螳ケ諤ァ蜥悟シ€蜿第<E89CBF>譛ャ荳雁<E88DB3>髱「閭懷<E996AD>縲?

3. 謚€譛ッ騾牙梛荳手檮蜷?(Tech Stack Fusion)

3.1 譬ク蠢<EFBDB8><EFBFBD>サカ譖エ譁ー

<EFBFBD> 騾牙梛 V7 譁ー蠅樒炊逕ア
謨ー謐ョ莠、謐「 Apache Arrow 蜈ウ髞ョ蜊<EFBFBD>コァ縲ら畑莠?Python 蜥?Node.js/蜑咲ォッ荵矩龍逧<E9BE8D>ォ俶€ァ閭ス謨ー謐ョ莨<EFBDAE>霎難シ碁∩蜈?JSON 蠎丞<E8A08E>蛹門シ€€<E9AB9E>?*隗」蜀ウ IO 蟒カ霑滓<E99C91>ク蠢<EFBDB8>**縲?
Excel 螟<> openpyxl 譖ソ莉」郤?Pandas縲ら畑莠主惠蟇シ蜃コ譌?*菫晉蕗蜴溷ァ<E6BAB7> Excel 譬キ蠑<EFBDB7>**<2A>亥ヲる「懆牡縲∬セケ譯<EFBDB9>シ会シ?*隗」蜀ウ譬シ蠑丈ク「螟ア譬ク蠢<EFBDB8>**縲?
莨夊ッ晉シ灘ュ<EFBFBD> Redis 逕ィ莠取嘯蟄倡畑謌キ逧?DataFrame (蠎丞<E8A08E>蛹紋クコ Parquet/Arrow)<29>碁∩蜈肴ッ乗ャ。謫堺ス憺<EFBDBD>蜴?OSS 隸サ譁<EFBDBB>サカ縲?
隶。邂玲恪蜉。 FastAPI + Celery 蠑募<EFBFBD> Celery 螟<>炊蠑よュ・莉サ蜉。<E89C89>碁亟豁「髟ソ隶。邂鈴仆蝪<E4BB86> HTTP 郤ソ遞九€?

4. 騾<>髄鬟朱勦隸<E58BA6>シー荳主ッケ遲?(Red Teaming Analysis)

譛ャ闃りッヲ扈<EFBFBD>ョー蠖穂コ<EFBFBD>€懃コ「髦滓オ玖ッ補€昜クュ蜿醍鴫逧<EFBFBD>ス懷惠閾エ蜻ス鬟朱勦蜿雁<EFBFBD>蟾・遞句喧隗」蜀ウ譁ケ譯医€?

*鬟朱勦荳€<EFBFBD>壻コ、莠貞サカ霑溽噪窶應ス捺─蟠ゥ蝪娯€?

  • *<EFBFBD>髄諡キ髣ョ<EFBFBD>? 豈乗ャ。 AI 謫堺ス憺<EFBDBD>襍ー OSS 荳玖スス -> Pandas 隸サ蜿<EFBDBB> -> 隶。邂<EFBDA1> -> 荳贋シ<E8B48B><EFBDBC>悟黒谺。閠玲慮蜿ッ閭ス雜<EFBDBD>ソ<EFBFBD> 8遘抵シ檎畑謌キ譌<EFBDB7>豕募ソ榊女縲?
  • *V7 隗」蜀ウ譁ケ譯茨シ? Session 鬩サ逡呎ィ。蠑<EFBDA1> (Memory-Resident)
    1. 蛻晏ァ句喧<EFBFBD><EFBFBD> 逕ィ謌キ荳贋シ<E8B48B> Excel 蜷趣シ悟錘遶ッ蟆<EFBDAF><E89F86><EFBFBD>霓ス荳?DataFrame<6D>悟ケカ蠎丞<E8A08E>蛹紋クコ Arrow 譬シ蠑丞ュ伜<EFBDAD> Redis (TTL 30min)縲?
    2. *蠅樣㍼莠、莠抵シ? 蜑咲ォッ蜿鷹€∵欠莉、<E88E89>訓ython 莉?Redis 隸サ蜿<EFBDBB> Arrow 謨ー謐ョ<E8AC90>域ッォ遘堤コァ<EFBDBA>会シ梧鴬陦<E9B4AC> Pandas 隶。邂暦シ悟ー<E6829F>サ捺棡蜀吝屓 Redis縲?
    3. *霓サ驥丞渚鬥茨シ? 隶。邂怜ョ梧<EFBDAE>蜷趣シ悟宵霑泌<E99C91>?*蜑?100 陦碁「<E7A281>ァ域焚謐? 扈吝燕遶?AG Grid 貂イ譟薙€?
    4. *謨域棡<EFBFBD>? 閠玲慮郛ゥ遏ュ閾?0.5s - 1s縲?

鬟朱勦莠鯉シ哘xcel 譬シ蠑丈ク「螟ア (The Format Loss)

  • *<EFBFBD>髄諡キ髣ョ<EFBFBD>? Pandas 逧?to_excel 莨夐㍾鄂ョ謇€譛牙黒蜈<E9BB92><E89C88>シ譬キ蠑擾シ悟現逕滓<E98095><E6BB93>ウィ逧<EFBDA8>「懆牡蜥梧音豕ィ莨壻ク「螟ア縲?
  • *V7 隗」蜀ウ譁ケ譯茨シ? 蠎墓攸蛻<EFBFBD>ヲサ遲也払 (Template Separation)
    1. 荳贋シ<EFBFBD>譌カ<EFBFBD><EFBFBD><>次蟋?Excel 譬<>ョー荳?"Style Template" (譬キ蠑丞コ墓攸)<EFBFBD>梧ーク荵<EFBFBD>ソ晏ュ伜惠 OSS縲?
    2. 隶。邂玲慮<EFBFBD><EFBFBD> 蜿ェ蝨ィ蜀<EFBDA8><EFBFBD>/Redis 荳ュ螟<EFBDAD>炊郤ッ謨ー謐ョ (Values)<29>御ク榊<EFBDB8><EFBFBD><E8A0A2>キ蠑上€?
    3. 蟇シ蜃コ譌カ<EFBFBD><EFBFBD> 菴ソ逕ィ openpyxl 蜉<>霓ス窶懈<E7AAB6>キ蠑丞コ墓攸窶晢シ悟ー<E6829F><EFBDB0>蟄倅クュ逧<EFBDAD>眠謨ー謐ョ**蝪ォ蜈・**蛻ー蠎墓攸逧<E694B8>ッケ蠎泌攝譬<E6949D>クュ<EFBDB8>御ソ晉蕗譛ェ菫ョ謾ケ蛹コ蝓溽噪閭梧勹濶イ蜥梧音豕ィ縲?

*鬟朱勦荳会シ夂憾諤∝酔豁・逧<EFBFBD>€懷曙蜀吝<EFBFBD>遯≫€?

  • *<EFBFBD>髄諡キ髣ョ<EFBFBD>? 逕ィ謌キ謇句勘菫ョ謾ケ莠<EFBDB9>ャャ 5 陦鯉シ悟酔譌カ AI 蛻<>髯、莠<EFBDA4>ャャ 5 陦鯉シ悟ッシ閾エ謨ー謐ョ迥カ諤∽ク堺ク€閾エ縲?
  • *V7 隗」蜀ウ譁ケ譯茨シ? UI 莠呈箕髞?(UI Locking)
    • 蠖?AI 豁」蝨ィ逕滓<E98095>莉」遐∵<E98190>蜷守ォッ豁」蝨ィ隶。邂玲慮<E78EB2>窟G Grid 蠑コ蛻カ霑帛<E99C91> readOnly 讓。蠑擾シ悟ケカ蝨ィ逡碁擇譏セ遉?"AI 豁」蝨ィ螟<EFBDA8>炊..." 驕ョ鄂ゥ<E98482>?*迚ゥ逅<EFBDA9>アる擇荳顔ヲ∵ュ「蟷カ蜿第桃菴?*縲?

*鬟朱勦蝗幢シ壼ョ牙<EFBFBD>豐咏ョア騾<EFBFBD>€?

  • *<EFBFBD>髄諡キ髣ョ<EFBFBD>? AI 逕滓<E98095>莠?import os; os.system('rm -rf /')縲?
  • *V7 隗」蜀ウ譁ケ譯茨シ? AST 髱呎€<C280>譫?+ 螳ケ蝎ィ髫皮ヲサ
    • *<EFBFBD>€<EFBFBD>? 蝨ィ謇ァ陦?exec() 蜑搾シ御スソ逕ィ Python ast 讓。蝮玲沖謠丈サ」遐∵<E98190>托シ梧」€豬句芦 import os 遲牙<E981B2>髞ョ隸咲峩謗・謚帛<E8AC9A>蠑ょクク縲?
    • *<EFBFBD>コ宣剞鬚晢シ? 菴ソ逕ィ Python resource 讓。蝮鈴剞蛻カ蜊墓ャ。謇ァ陦檎<E999A6>?CPU 譌カ髣エ (10s) 蜥?蜀<><EFBFBD> (1GB)縲?

5. 謨ー謐ョ蠎楢ョセ隶?(蜈<>焚謐ョ螻<EFBDAE>)

譁ー蠅<EFBFBD> TaskAudit 陦ィ逕ィ莠手ョー蠖墓ッ丈ク€谺?AI 謫堺ス懃噪荳贋ク区枚<E58CBA>御セソ莠主屓貊壼柱螳。隶。縲? model TaskAudit {
id String @id @default(uuid())
datasetId String
version Int // 謫堺ス懷錘逧<E98C98>沿譛ャ蜿?

actionType String // "AI_CODE" or "MANUAL_EDIT"
prompt String? // 逕ィ謌キ逧<EFBDB7><E980A7>辟カ隸ュ險€<C280>サ、
code String? // AI 逕滓<E98095>逧?Python 莉」遐<EFBDA3>

executionTime Int // 謇ァ陦瑚€玲慮 (ms)
status String // SUCCESS / FAILED

createdAt DateTime @default(now())
}

6. API 謗・蜿」螳壻ケ<E5A3BB> (V7 莨伜喧)

  • POST /api/session/init: 荳贋シ<E8B48B><EFBFBD>サカ<EFBDBB><EFBFBD>蟋句喧 Redis Session<6F>瑚ソ泌<EFBDBF>?sessionId縲?
  • POST /api/session/execute:
    • Input: { sessionId, code, version }
    • Output: { previewData: ArrowBase64, newVersion: int, logs: string }
    • 隸エ譏<EFBFBD>:<>ソ泌屓鬚<E5B193>ァ域焚謐ョ<E8AC90>御ク咲函謌?Excel 譁<>サカ縲?
  • POST /api/session/save:
    • Input: { sessionId }
    • Output: { downloadUrl }
    • 隸エ譏<EFBFBD>: 隗ヲ蜿<EFBDA6> openpyxl 蜷亥ケカ騾サ霎托シ檎函謌先怙扈?Excel 蟷カ荳贋シ?OSS縲?

*7. 蠑€蜿大<E89CBF>蟾・蟒コ隶?

  • Python 扈?(驥堺クュ荵矩㍾):
    • 螳樒鴫 Arrow <-> Pandas 逧<>コ丞<EFBDBA>蛹夜€サ霎代€?
    • 蟆∬」<EFBFBD> openpyxl 逧<><E980A7>キ蠑丞屓蝪ォ騾サ霎代€?
    • 謳ュ蟒コ FastAPI + Redis 邇ッ蠅<EFBDAF>€?
  • Node.js 扈?
    • 雍溯エ」 Dify 霓ャ蜿大柱驩エ譚<EFBDB4>€?
  • 蜑咲ォッ扈?
    • <EFBFBD><EFBFBD> apache-arrow JS 蠎難シ瑚ァ」譫仙錘遶ッ霑泌屓逧<E5B193>コ瑚ソ帛宛豬∝ケカ蝨?AG Grid 螻慕、コ縲?
    • 螳樒鴫窶廣I 螟<>炊荳ュ窶晉噪蜈ィ螻城煤螳壻コ、莠偵€