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%)
7.7 KiB
SAE<EFBFBD>臬<EFBFBD><EFBFBD>㗛<EFBFBD><EFBFBD>滨蔭<EFBFBD><EFBFBD><EFBFBD>
*<EFBFBD><EFBFBD>﹝<EFBFBD><EFBFBD>𧋦嚗? v1.0
*<EFBFBD>𥕦遣<EFBFBD>交<EFBFBD>嚗? 2025-12-11
*<EFBFBD><EFBFBD>鍂<EFBFBD>箸艶嚗? <20>輸<EFBFBD>鈭騌AE<41>函蔡<E587BD>臬<EFBFBD><E887AC>㗛<EFBFBD><E3979B>滨蔭
*雿輻鍂<EFBFBD>寞<EFBFBD>嚗? <20>沒AE<41>批<EFBFBD><E689B9>圈<EFBFBD>鞱<EFBFBD><E99EB1>滨蔭
<EFBFBD><EFBFBD> <20>滨蔭霂湔<E99C82>
<EFBFBD>券燵<EFBFBD>䔶<EFBFBD>SAE<EFBFBD>批<EFBFBD><EFBFBD>圈<EFBFBD>蝵桃㴓憓<EFBFBD><EFBFBD><EFBFBD>𤩺𧒄嚗峕<EFBFBD><EFBFBD>找誑銝钅◇摨誯<EFBFBD>鞱<EFBFBD>瘛餃<EFBFBD>嚗?
<EFBFBD>滢<EFBFBD>甇仿炊
- <EFBFBD>餃<EFBFBD><EFBFBD>輸<EFBFBD>鈭烐綉<EFBFBD>嗅蝱
- 餈𥕦<EFBFBD> Serverless摨𠉛鍂撘閙<E69298>SAE
- <EFBFBD>㗇𥋘摨𠉛鍂 <20>?<3F>滨蔭蝞∠<E89D9E> <20>?<3F>臬<EFBFBD><E887AC>㗛<EFBFBD>
- <EFBFBD>孵稬<EFBFBD>峕溶<EFBFBD>删㴓憓<EFBFBD><EFBFBD><EFBFBD>譌<EFBFBD>?
- <EFBFBD>鞱<EFBFBD>憭滚<EFBFBD>隞乩<EFBFBD><EFBFBD><EFBFBD>捆嚗<EFBFBD>𤜯<EFBFBD>X<EFBFBD><EFBFBD>?雿删<E99BBF>XXX"嚗?
<EFBFBD><EFBFBD> 敹<>‵<EFBFBD>臬<EFBFBD><E887AC>㗛<EFBFBD>
<EFBFBD>箇<EFBFBD><EFBFBD>滨蔭
NODE_ENV=development
PORT=3001
SERVICE_NAME=aiclinical-backend-dev
LOG_LEVEL=debug
<EFBFBD>唳旿摨㯄<EFBFBD>蝵?
# <20>澆<EFBFBD>嚗䮝ostgresql://<2F>冽<EFBFBD><E586BD>?撖<><E69296>@<40>啣<EFBFBD>:蝡臬藁/<2F>唳旿摨枏<E691A8>
# 蝷箔<E89DB7>嚗䮝ostgresql://aiclinical:MyPass123@rm-bp1xxxx.mysql.rds.aliyuncs.com:5432/aiclinical_dev
DATABASE_URL=postgresql://aiclinical:雿删<E99BBF>撖<EFBFBD><E69296>@雿删<E99BBF>RDS<44><53><EFBFBD><EFBFBD>啣<EFBFBD>:5432/aiclinical_dev
# Serverless餈墧𦻖瘙牐<E79899><E78990>?
DB_MAX_CONNECTIONS=400
MAX_INSTANCES=10
*<EFBFBD>瑕<EFBFBD>RDS<EFBFBD>啣<EFBFBD>嚗?
- RDS<EFBFBD>批<EFBFBD><EFBFBD>?<3F>?摰硺<E691B0><E7A1BA>𡑒” <20>?<3F>孵稬摰硺<E691B0>ID
- <EFBFBD>箸𧋦靽⊥<EFBFBD> <20>?<3F><><EFBFBD><EFBFBD>啣<EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>塚<EFBFBD>
- 蝷箔<EFBFBD>嚗䫤rm-bp1abcd1234.mysql.rds.aliyuncs.com`
OSS摮睃<EFBFBD><EFBFBD>滨蔭
STORAGE_TYPE=oss
OSS_REGION=oss-cn-hangzhou
OSS_BUCKET=aiclinical-dev
OSS_ACCESS_KEY_ID=雿删<EFBFBD>AccessKeyId
OSS_ACCESS_KEY_SECRET=雿删<EFBFBD>AccessKeySecret
*<EFBFBD>瑕<EFBFBD>OSS撖<EFBFBD>𤨎嚗?
- 霈輸䔮<EFBFBD>批<EFBFBD>RAM <20>?<3F>冽<EFBFBD> <20>?
aiclinical-oss - 憒<EFBFBD><EFBFBD>敹䁅扇撖<EFBFBD>𤨎嚗屸<EFBFBD>閬<EFBFBD><EFBFBD><EFBFBD>啣<EFBFBD>撱態ccessKey
- *<EFBFBD>滩<EFBFBD>嚗? 撖<>𤨎<EFBFBD>芣遬蝷箔<E89DB7>甈∴<E79488>蝡见朖靽嘥<E99DBD>嚗?
LLM API<50>滨蔭
# DeepSeek嚗<6B>綫<EFBFBD>琜<EFBFBD>
DEEPSEEK_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DEEPSEEK_BASE_URL=https://api.deepseek.com
# <20>帋<EFBFBD><E5B88B><EFBFBD>䔮嚗<E494AE>燵<EFBFBD>䔶<EFBFBD>嚗?
DASHSCOPE_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# CloseAI隞<49><E99A9E>嚗<EFBFBD>虾<EFBFBD>㚁<EFBFBD>
CLOSEAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
CLOSEAI_OPENAI_BASE_URL=https://api.openai-proxy.org/v1
CLOSEAI_CLAUDE_BASE_URL=https://api.openai-proxy.org/anthropic
*<EFBFBD>喳<EFBFBD><EFBFBD>滨蔭銝<EFBFBD>銝林LM API Key嚗?
摰匧<EFBFBD><EFBFBD>滨蔭
# JWT撖<54>𤨎嚗<F0A4A88E><E59A97>憿颱耨<E9A2B1>對<EFBFBD>嚗?
# <20><><EFBFBD>撌亙<E6928C>嚗冴ttps://www.random.org/strings/
JWT_SECRET=霂瑟㺿銝?2雿滢誑銝𢠃<E98A9D><F0A2A083>箏<EFBFBD>蝚虫葡abcdefg123456
JWT_EXPIRES_IN=7d
# CORS<52>滨蔭
CORS_ORIGIN=*
<EFBFBD>𩤃<EFBFBD> JWT_SECRET 蝏嘥笆銝滩<E98A9D>雿輻鍂暺䁅恕<E48185>潘<EFBFBD>
<EFBFBD>辷<EFBFBD> <20>刻<EFBFBD><E588BB>滨蔭
蝻枏<EFBFBD><EFBFBD>滨蔭嚗<EFBFBD><EFBFBD><EFBFBD>煺<EFBFBD>雿輻鍂Redis嚗?
CACHE_TYPE=memory
QUEUE_TYPE=memory
*霂湔<EFBFBD>嚗? <20>脲<EFBFBD><E884B2>冽<EFBFBD><E586BD>誩<EFBFBD>嚗䔶蝙<E494B6>典<EFBFBD>摮条<E691AE>摮䁅雲憭?
*<EFBFBD>芣䔉<EFBFBD><EFBFBD>閬<EFBFBD>edis<EFBFBD>塚<EFBFBD><EFBFBD>嫣蛹嚗?
CACHE_TYPE=redis
REDIS_HOST=r-bp1xxxx.redis.rds.aliyuncs.com
REDIS_PORT=6379
REDIS_PASSWORD=雿删<EFBFBD>Redis撖<EFBFBD><EFBFBD>
REDIS_DB=0
Dify<EFBFBD>滨蔭嚗<EFBFBD>虾<EFBFBD>㚁<EFBFBD>
DIFY_API_KEY=app-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DIFY_API_URL=https://api.dify.ai/v1
*霂湔<EFBFBD>嚗? 憒<><E68692>雿輻鍂Dify<66>𣂷<EFBFBD>RAG<41>滚𦛚嚗屸<E59A97>閬<EFBFBD><E996AC>蝵?
Python敺格<EFBFBD><EFBFBD>⊿<EFBFBD>蝵?
# 銝湔𧒄<E6B994>寞<EFBFBD>嚗𡁜<E59A97><F0A1819C>典<EFBFBD>蝵穃𧑐<E7A983><F0A79190>
EXTRACTION_SERVICE_URL=http://雿删<E99BBF>銝湔𧒄<E6B994>啣<EFBFBD>:8000
# 甇<><E79487><EFBFBD>寞<EFBFBD>嚗𡁻<E59A97>蝵涯ython<6F>訕AE<41>𦒘蝙<F0A69298>典<EFBFBD>蝵穃𧑐<E7A983><F0A79190>
# EXTRACTION_SERVICE_URL=http://aiclinical-python-dev.default:8000
<EFBFBD><EFBFBD>辣銝𠹺<EFBFBD><EFBFBD>滨蔭
UPLOAD_MAX_SIZE=104857600
*霂湔<EFBFBD>嚗? 100MB = 104857600 bytes
<EFBFBD>?<3F>滨蔭璉<E894AD><E79289>交<EFBFBD><E4BAA4>?
蝚砌<EFBFBD>甇伐<EFBFBD>憭滚<EFBFBD>蝎䁅斐璉<EFBFBD><EFBFBD>?
- <EFBFBD><EFBFBD><EFBFBD>厩㴓憓<EFBFBD><EFBFBD><EFBFBD>誩歇瘛餃<EFBFBD><EFBFBD>訕AE
- <EFBFBD><EFBFBD><EFBFBD>?雿删<E99BBF>XXX"撌脫𤜯<E884AB>V蛹<EFBCB6>笔<EFBFBD><E7AC94>?
- 瘝⊥<EFBFBD><EFBFBD>埈<EFBFBD>隞颱<EFBFBD>敹<EFBFBD>‵憿?
蝚砌<EFBFBD>甇伐<EFBFBD><EFBFBD>澆<EFBFBD>璉<EFBFBD><EFBFBD>?
-
DATABASE_URL <20>澆<EFBFBD>甇<EFBFBD>&
postgresql://<2F>冽<EFBFBD><E586BD>?撖<><E69296>@<40>啣<EFBFBD>:蝡臬藁/<2F>唳旿摨? <0A>?甇<>&嚗䮝ostgresql://aiclinical:MyPass@rm-xxx.com:5432/db <0A>?<3F>躰秤嚗䮝ostgresql://aiclinical@rm-xxx.com:5432/db嚗<62>撩撠穃<E692A0><E7A983><EFBFBD><EFBFBD> -
撖<EFBFBD><EFBFBD>銝剜瓷<EFBFBD>厩鸌畾𠰴<EFBFBD>蝚佗<EFBFBD>
@ # $ % & 蝛箸聢嚗?<EFBFBD>?<3F>刻<EFBFBD>嚗鐝yPassword123 <0A>?<3F>踹<EFBFBD>嚗鐝y@Pass#123嚗<33><E59A97><EFBFBD>陂<EFBFBD>?嚗? -
JWT_SECRET 撌脖耨<E88496>對<EFBFBD>銝齿糓暺䁅恕<E48185>潘<EFBFBD>
-
OSS_REGION <20>澆<EFBFBD>甇<EFBFBD>&嚗<EFBC86>蒂
oss-<20>滨<EFBFBD>嚗?<EFBFBD>?甇<>&嚗駅ss-cn-hangzhou <0A>?<3F>躰秤嚗䬙n-hangzhou
蝚砌<EFBFBD>甇伐<EFBFBD>撖<EFBFBD>𤨎<EFBFBD>㗇<EFBFBD><EFBFBD>扳<EFBFBD><EFBFBD>?
- RDS撖<EFBFBD><EFBFBD>甇<EFBFBD>&嚗<EFBFBD>虾隞亦鍂<EFBFBD>唳旿摨枏恥<EFBFBD>瑞垢瘚贝<EFBFBD>餈墧𦻖嚗?
- OSS AccessKey<65>㗇<EFBFBD>嚗<EFBFBD>銁RAM<41>批<EFBFBD><E689B9>啁&霈歹<E99C88>
- LLM API Key<65>㗇<EFBFBD>嚗<EFBFBD>虾隞亦鍂curl瘚贝<E7989A>嚗?
*瘚贝<EFBFBD>LLM API Key嚗?
curl https://api.deepseek.com/v1/models \
-H "Authorization: Bearer sk-雿删<E99BBF>撖<EFBFBD>𤨎"
<EFBFBD><EFBFBD> <20>滨蔭蝷箔<E89DB7>嚗<EFBFBD><E59A97><EFBFBD>讐<EFBFBD>嚗?
NODE_ENV=development
PORT=3001
SERVICE_NAME=aiclinical-backend-dev
LOG_LEVEL=debug
DATABASE_URL=postgresql://aiclinical:MySecurePass123@rm-bp1abc123.mysql.rds.aliyuncs.com:5432/aiclinical_dev
DB_MAX_CONNECTIONS=400
MAX_INSTANCES=10
STORAGE_TYPE=oss
OSS_REGION=oss-cn-hangzhou
OSS_BUCKET=aiclinical-dev
OSS_ACCESS_KEY_ID=LTAI5t12345678901234
OSS_ACCESS_KEY_SECRET=abcdefghijk1234567890123456789012
CACHE_TYPE=memory
QUEUE_TYPE=memory
DEEPSEEK_API_KEY=sk-1234567890abcdef1234567890abcdef
DEEPSEEK_BASE_URL=https://api.deepseek.com
DASHSCOPE_API_KEY=sk-abcdef1234567890abcdef1234567890
JWT_SECRET=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0
JWT_EXPIRES_IN=7d
CORS_ORIGIN=*
EXTRACTION_SERVICE_URL=http://123.456.789.0:8000
UPLOAD_MAX_SIZE=104857600
<EFBFBD><EFBFBD> 摰匧<E691B0><E58CA7><EFBFBD>雿喳<E99BBF>頝?
撖<EFBFBD>𤨎蝞∠<EFBFBD>
-
銝滩<EFBFBD>撠<EFBFBD><EFBFBD><EFBFBD>交<EFBFBD>鈭文<EFBFBD>Git
- <EFBFBD>?銝滩<E98A9D><E6BBA9>𥕦遣
.env.production<20><>辣 - <EFBFBD>?銝滩<E98A9D><E6BBA9>其誨<E585B6><E8AAA8>葉蝖祉<E89D96><E7A589><EFBFBD><EFBFBD><EFBFBD>?
- <EFBFBD>?<3F>芸銁SAE<41>批<EFBFBD><E689B9>圈<EFBFBD>蝵?
- <EFBFBD>?銝滩<E98A9D><E6BBA9>𥕦遣
-
摰𡁏<EFBFBD><EFBFBD>湔揢撖<EFBFBD>𤨎
- 瘥?-6銝芣<E98A9D><E88AA3>湔揢銝<E68FA2>甈?
- <EFBFBD>𤑳緵瘜<EFBFBD>蠧蝡见朖<EFBFBD>湔揢
-
*雿輻鍂撖<EFBFBD><EFBFBD>蝞∠<EFBFBD><EFBFBD>?
- <EFBFBD>刻<EFBFBD>嚗?Password<72><64>astPass<73><73>itwarden
- 靽嘥<EFBFBD><EFBFBD><EFBFBD><EFBFBD>匧<EFBFBD><EFBFBD>亙<EFBFBD><EFBFBD>滨蔭靽⊥<EFBFBD>
<EFBFBD>臬<EFBFBD><EFBFBD>𠉛氖
撘<EFBFBD><EFBFBD>𤑳㴓憓<EFBFBD><EFBFBD>
- Bucket: aiclinical-dev
- Database: aiclinical_dev
- JWT_SECRET: <20>祉<EFBFBD><E7A589><EFBFBD><EFBFBD><EFBFBD>?
<0A>煺漣<E785BA>臬<EFBFBD>嚗?
- Bucket: aiclinical-prod
- Database: aiclinical_prod
- JWT_SECRET: 銝滚<E98A9D><E6BB9A><EFBFBD><EFBFBD><EFBFBD>?
*瘞貉<EFBFBD>銝滩<EFBFBD><EFBFBD>函<EFBFBD>鈭抒㴓憓<EFBFBD>蝙<EFBFBD>典<EFBFBD><EFBFBD>𤑳㴓憓<EFBFBD><EFBFBD>撖<EFBFBD>𤨎嚗?
<EFBFBD><EFBFBD> 撣貉<E692A3><E8B289>桅<EFBFBD>
Q1: 敹䁅扇鈭<E68987>DS撖<53><E69296><EFBFBD>𦒘<EFBFBD><F0A69298>痹<EFBFBD>
*閫<EFBFBD><EFBFBD><EFBFBD>寞<EFBFBD>嚗?
- RDS<EFBFBD>批<EFBFBD><EFBFBD>?<3F>?韐血噡蝞∠<E89D9E>
- <EFBFBD>曉<EFBFBD><EFBFBD>冽<EFBFBD>
aiclinical - <EFBFBD>孵稬<EFBFBD>屸<EFBFBD>蝵桀<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
- 霈曄蔭<EFBFBD>啣<EFBFBD><EFBFBD>?
- <EFBFBD>湔鰵SAE<EFBFBD>臬<EFBFBD><EFBFBD>㗛<EFBFBD>銝剔<EFBFBD>
DATABASE_URL
Q2: OSS AccessKey瘜<79>蠧鈭<E8A0A7><E988AD>𦒘<EFBFBD><F0A69298>痹<EFBFBD>
*閫<EFBFBD><EFBFBD><EFBFBD>寞<EFBFBD>嚗?
- RAM<EFBFBD>批<EFBFBD><EFBFBD>?<3F>?<3F>冽<EFBFBD> <20>?
aiclinical-oss - 蝳<EFBFBD>鍂<EFBFBD>硋<EFBFBD><EFBFBD>斗<EFBFBD><EFBFBD>脩<EFBFBD>AccessKey
- <EFBFBD>𥕦遣<EFBFBD>啁<EFBFBD>AccessKey
- <EFBFBD>湔鰵SAE<EFBFBD>臬<EFBFBD><EFBFBD>㗛<EFBFBD>
Q3: 憒<><E68692>撉諹<E69289><E8ABB9>臬<EFBFBD><E887AC>㗛<EFBFBD><E3979B>滨蔭甇<E894AD>&嚗?
*閫<EFBFBD><EFBFBD><EFBFBD>寞<EFBFBD>嚗?
- <EFBFBD>函蔡摨𠉛鍂<EFBFBD>𠬍<EFBFBD><EFBFBD>亦<EFBFBD>摰墧𧒄<EFBFBD>亙<EFBFBD>
- <EFBFBD>见<EFBFBD>隞乩<EFBFBD><EFBFBD>亙<EFBFBD>銵函內<EFBFBD>滨蔭甇<EFBFBD>&嚗?
<EFBFBD>?[Config] Environment validation passed <0A>?[Database] <20>唳旿摨栞<E691A8><E6A09E>交<EFBFBD><E4BAA4>? <0A>𣑐 [Storage] 雿輻鍂<E8BCBB>輸<EFBFBD>鈭?OSS 摮睃<E691AE>
Q4: DATABASE_URL銝剖<E98A9D><E58996><EFBFBD><EFBFBD><EFBFBD>怎鸌畾𠰴<E795BE>蝚行<E89D9A>𦒘<EFBFBD><F0A69298>痹<EFBFBD>
*閫<EFBFBD><EFBFBD><EFBFBD>寞<EFBFBD>嚗?
憒<><E68692>撖<EFBFBD><E69296><EFBFBD><EFBFBD>鉄 @ # $ % & 蝛箸聢 蝑厩鸌畾𠰴<E795BE>蝚佗<E89D9A><E4BD97><EFBFBD>閬<EFBFBD>RL蝻𣇉<E89DBB>嚗?
<EFBFBD>笔<EFBFBD><EFBFBD><EFBFBD><EFBFBD>My@Pass#123
蝻𣇉<E89DBB><F0A38789>𠬍<EFBFBD>My%40Pass%23123
摰峕㟲URL嚗?
postgresql://aiclinical:My%40Pass%23123@rm-xxx.com:5432/aiclinical_dev
蝻𣇉<EFBFBD>撖寧<EFBFBD>銵剁<EFBFBD>
@ <20>?%40
# <20>?%23
$ <20>?%24
% <20>?%25
& <20>?%26
蝛箸聢 <20>?%20
*<EFBFBD>刻<EFBFBD>嚗? <20>齿鰵霈曄蔭銝滚<E98A9D><E6BB9A>怎鸌畾𠰴<E795BE>蝚衣<E89D9A>撖<EFBFBD><E69296><EFBFBD>渡<EFBFBD><E6B8A1>?
<EFBFBD><EFBFBD> <20>滨蔭摰峕<E691B0>撉諹<E69289>
<EFBFBD>芸𢆡撉諹<EFBFBD>
<EFBFBD>函蔡<EFBFBD>𠬍<EFBFBD>摨𠉛鍂隡朞䌊<EFBFBD>券<EFBFBD>霂<EFBFBD>㴓憓<EFBFBD><EFBFBD><EFBFBD>𧶏<EFBFBD>
// backend/src/config/env.ts
// 隡朞䌊<E69C9E>冽<EFBFBD><E586BD>交<EFBFBD><E4BAA4>匧<EFBFBD>憛恍★
*<EFBFBD>亙<EFBFBD>颲枏枂蝷箔<EFBFBD>嚗?
<EFBFBD>?[Config] Environment validation passed
[Config] Application configuration:
- Environment: development
- Port: 3001
- Storage: oss
- Cache: memory
- Queue: memory
- Log Level: debug
<EFBFBD>见𢆡撉諹<EFBFBD>
# 霈輸䔮<E8BCB8>亙熒璉<E78692><E79289>交𦻖<E4BAA4>?
curl http://雿删<E99BBF>SAE<41>啣<EFBFBD>:3001/health
# 憸<><E686B8>餈𥪜<E9A488>
{
"status": "ok",
"database": "connected",
"storage": "oss",
"cache": "memory",
"timestamp": "2025-12-11T10:30:00.000Z"
}
*<EFBFBD><EFBFBD>﹝<EFBFBD><EFBFBD>𧋦嚗? v1.0
<EFBFBD><EFBFBD><EFBFBD>擧凒<EFBFBD>堆<EFBFBD> 2025-12-11
蝏湔擪<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>舀沲<E88880><E6B2B2><EFBFBD>
*<EFBFBD>詨<EFBFBD><EFBFBD><EFBFBD>﹝嚗? [SAE<41>函蔡摰<E894A1><E691B0><EFBFBD><EFBFBD><EFBFBD>](../05-<2D>函蔡<E587BD><E894A1>﹝/02-SAE<41>函蔡摰<E894A1><E691B0><EFBFBD><EFBFBD><EFBFBD>(鈭批<E988AD>蝏讐<E89D8F><E8AE90>?.md)