Files
AIclinicalresearch/docs/07-运维文档/03-SAE环境变量配置指南.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.7 KiB
Raw Blame History

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>甇仿炊

  1. <EFBFBD><EFBFBD><EFBFBD><EFBFBD>鈭烐綉<EFBFBD>嗅蝱
  2. 餈𥕦<EFBFBD> Serverless摨𠉛鍂撘閙<E69298>SAE
  3. <EFBFBD>㗇𥋘摨𠉛鍂 <20>?<3F>滨蔭蝞∠<E89D9E> <20>?<3F><EFBFBD><E887AC><EFBFBD>
  4. <EFBFBD>孵稬<EFBFBD>峕溶<EFBFBD>删㴓憓<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
  5. <EFBFBD><EFBFBD>憭滚<EFBFBD>隞乩<EFBFBD><EFBFBD><EFBFBD>捆嚗<EFBFBD>𤜯<EFBFBD><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>嚗?

  1. RDS<EFBFBD><EFBFBD><EFBFBD>?<3F>?摰硺<E691B0><E7A1BA>𡑒” <20>?<3F>孵稬摰硺<E691B0>ID
  2. <EFBFBD>箸𧋦靽⊥<EFBFBD> <20>?<3F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E59A97><EFBFBD><EFBFBD>
  3. 蝷箔<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>𤨎嚗?

  1. 霈輸䔮<EFBFBD><EFBFBD>RAM <20>?<3F><EFBFBD> <20>?aiclinical-oss
  2. <EFBFBD><EFBFBD>敹䁅扇撖<EFBFBD>𤨎嚗屸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>撱態ccessKey
  3. *<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><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>

  1. 銝滩<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>蝵?
  2. 摰𡁏<EFBFBD><EFBFBD>湔揢撖<EFBFBD>𤨎

    • 瘥?-6銝芣<E98A9D><E88AA3>湔揢銝<E68FA2>甈?
    • <EFBFBD>𤑳緵瘜<EFBFBD>蠧蝡见朖<EFBFBD>湔揢
  3. *雿輻鍂撖<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>嚗?

  1. RDS<EFBFBD><EFBFBD><EFBFBD>?<3F>?韐血噡蝞∠<E89D9E>
  2. <EFBFBD><EFBFBD><EFBFBD><EFBFBD> aiclinical
  3. <EFBFBD>孵稬<EFBFBD><EFBFBD>蝵桀<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
  4. 霈曄蔭<EFBFBD><EFBFBD><EFBFBD>?
  5. <EFBFBD>湔鰵SAE<EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝剔<EFBFBD> DATABASE_URL

Q2: OSS AccessKey瘜<79>蠧鈭<E8A0A7><E988AD>𦒘<EFBFBD><F0A69298><EFBFBD>

*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?

  1. RAM<EFBFBD><EFBFBD><EFBFBD>?<3F>?<3F><EFBFBD> <20>?aiclinical-oss
  2. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AccessKey
  3. <EFBFBD>𥕦遣<EFBFBD><EFBFBD>AccessKey
  4. <EFBFBD>湔鰵SAE<EFBFBD><EFBFBD><EFBFBD><EFBFBD>

Q3: 憒<><E68692>撉諹<E69289><E8ABB9><EFBFBD><E887AC><EFBFBD><E3979B>滨蔭甇<E894AD>嚗?

*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?

  1. <EFBFBD>函蔡摨𠉛鍂<EFBFBD>𠬍<EFBFBD><EFBFBD><EFBFBD>摰墧𧒄<EFBFBD><EFBFBD>
  2. <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)