Files
AIclinicalresearch/docs/05-部署文档/集成部署补充指南:填补最后的缝隙.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

4.0 KiB
Raw Blame History

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>函蔡銵亙<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗𡁜銵交<EFBFBD><EFBFBD>𡒊<EFBFBD>蝻嗪<EFBFBD>

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧋦: v1.0
<0A><EFBFBD>: 閫<><E996AB> 5 銝芰𡠺蝡𧢲芋<F0A7A2B2><EFBFBD><E783BE>鞉𧒄<E99E89><F0A79284><EFBFBD>蝏𡏭<E89D8F><F0A18FAD>𡁏<EFBFBD><EFBFBD><E689BC><EFBFBD><EFBFBD><E692A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鞉𧋦<E99E89><EFBFBD><E6A185>?

<EFBFBD><EFBFBD> <20>喲睸<E596B2><EFBFBD> 1嚗锭AE <20><><EFBFBD>蝵𤏸挪<F0A48FB8>?(靚<>鍂 DeepSeek/OpenAI)

<EFBFBD>啁𠶖嚗𡁻<EFBFBD>蝵脣銁 VPC <20><><EFBFBD> SAE 暺䁅恕<E48185><EFBFBD>霈輸䔮<E8BCB8><EFBFBD><E7A589>? <0A><EFBFBD>嚗𡁜<E59A97>蝡航<E89DA1><E888AA>?DeepSeek <20>亙藁隡朞<E99AA1><E69C9E><EFBFBD>Python <20>滚𦛚<E6BB9A><EFBFBD>銝贝蝸<E8B49D><EFBFBD> PDF<44>?

<EFBFBD><EFBFBD> A嚗鐭AT 蝵穃<E89DB5> (<28><><EFBFBD><EFBFBD>煺漣<E785BA><EFBFBD>嚗峕綫<E5B395>?

  • **<2A><EFBFBD>嚗𡁜銁 VPC <20><EFBFBD><E689B9><EFBFBD>撱箔<E692B1>銝?<EFBFBD><EFBFBD> NAT 蝵穃<E89DB5>**嚗<>僎蝏穃<E89D8F><EFBFBD>銝?EIP<EFBFBD><EFBFBD><EFBFBD>蝵?SNAT <20>∠𤌍嚗<F0A48C8D><E59A97>霈訾漱<E8A8BE><EFBCB8><E3A6A4><EFBFBD>摰硺<E691B0>霈輸䔮<E8BCB8><EFBFBD><E7A589>?
  • <EFBFBD>鞉𧋦嚗鐭AT 蝵穃<E89DB5>蝘蠘<E89D98>韐?+ EIP 瘚<><E7989A>韐?撣血捐韐嫘<E99F90>?
  • **隡条<E99AA1>**嚗𡁶迅摰𡄯<E691B0><F0A184AF>𣳇<EFBFBD>靽格㺿摨𠉛鍂<F0A0899B>滨蔭<E6BBA8>?

<EFBFBD><EFBFBD> B嚗锭AE 蝏穃<E89D8F><E7A983><EFBFBD> IP (<28><><EFBFBD><EFBFBD>)

  • <EFBFBD><EFBFBD>嚗𡁜銁 SAE 摨𠉛鍂<F0A0899B>滨蔭 -> 蝵𤑳<E89DB5><F0A491B3>滨蔭 銝哨<E98A9D><E593A8><EFBFBD><E4BAA6>臬炏<E887AC><EFBFBD><EFBFBD><E69298>?<EFBFBD><EFBFBD>霈輸䔮 <20>𣇉<EFBFBD>摰?EIP<49>?
  • **瘜冽<E7989C>**嚗锭AE <20>𣂷<EFBFBD><F0A382B7><EFBFBD><E68A92><EFBFBD><E7A586><EFBFBD><E5ADB5><EFBFBD><E595A3><EFBFBD>銝齿𣈲<E9BDBF><F0A388B2><EFBFBD><EFBFBD>摰?EIP<49><50><EFBFBD><EFBFBD><EFBFBD><E99D9D><EFBFBD><EFBFBD><E59A97>憿餌鍂<E9A48C><EFBFBD> A<>?

<EFBFBD><EFBFBD>儭?<3F>喲睸<E596B2><EFBFBD> 2嚗朞歲<E69C9E>踵㦤<E8B8B5>滨蔭 (憒<><E68692><EFBFBD><EFBFBD> RDS)

銝箔<EFBFBD><EFBFBD>嫣噶撘<EFBFBD><EFBFBD>睲犖<EFBFBD>䀝蝙<EFBFBD>?Navicat/DBeaver 蝞∠<E89D9E> RDS <20>唳旿嚗<E697BF><EFBFBD>?Dify ECS 雿靝蛹頝單踎<E596AE><EFBFBD>?

<EFBFBD><EFBFBD>甇仿炊

  1. <EFBFBD>砍𧑐蝏<EFBFBD><EFBFBD><EFBFBD> (撱箇<E692B1> SSH <20><EFBFBD>):
    # <20><EFBFBD>: ssh -L <20>砍𧑐蝡臬藁:RDS<44><EFBFBD>:RDS蝡臬藁 root@ECS<43><EFBFBD>IP
    ssh -N -L 5433:rm-xxxxx.pg.rds.aliyuncs.com:5432 root@<ECS_PUBLIC_IP> -i your-key.pem

  2. Navicat 餈墧𦻖<E5A2A7>滨蔭:

    • 銝餅㦤: localhost
    • 蝡臬藁: 5433
    • <EFBFBD><EFBFBD>/撖<><E69296>: RDS <20><><EFBFBD><EFBFBD><E79195>?
    • *<2A><EFBFBD>嚗𡁏<E59A97><F0A1818F><EFBFBD><EFBFBD> ECS 頧砍<E9A0A7><E7A08D><EFBFBD>蝵?RDS<44>?

<EFBFBD><EFBFBD> <20>喲睸<E596B2><EFBFBD> 3嚗帋<E59A97><E5B88B><EFBFBD><EFBFBD><E692A3><EFBFBD>?(NoOps 蟡𧼮膥)

銝?1-2 鈭箏𣪧<E7AE8F><EFBFBD><E7AC94><EFBFBD><E597A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A983>𡁏𧋦<F0A1818F><F0A78BA6><EFBFBD>摮䀝蛹 deploy.sh<73>? #!/bin/bash
set -e

# ================= <20>滨蔭<E6BBA8>?=================
ACR_REGISTRY="registry.cn-hangzhou.aliyuncs.com"
NAMESPACE="clinical-research"
TIMESTAMP=$(date +%Y%m%d%H%M)

# 憸𡏭𠧧
GREEN='\033[0;32m'
NC='\033[0m'

function build_and_push() {
SERVICE_NAME=$1
DIR_NAME=$2

echo \-e "${GREEN}\>\>\> 撘<>憪𧢲<E686AA>撱?$SERVICE\_NAME ...${NC}"  
  
\# 餈𥕦<E9A488><F0A595A6><EFBFBD>  
cd $DIR\_NAME  
  
\# 1\. <20><><EFBFBD>𨅯<EFBFBD>  
IMAGE\_URL="$ACR\_REGISTRY/$NAMESPACE/$SERVICE\_NAME:$TIMESTAMP"  
docker build \-t $IMAGE\_URL .  
  
\# 2\. <20><EFBFBD><E588B8><EFBFBD><EFBFBD>? 
echo \-e "${GREEN}\>\>\> <20><EFBFBD><E588B8><EFBFBD><EFBFBD><EFBFBD> ACR ...${NC}"  
docker push $IMAGE\_URL  
  
\# 3\. 颲枏枂<E69E8F>湔鰵<E6B994><E9B0B5><EFBFBD> (憒<><E68692>摰㕑<E691B0>鈭?aliyun-cli <20>臭誑<E887AD>芸𢆡<E88AB8>湔鰵嚗<E9B0B5><EFBFBD><EFBFBD><E8B9B1>?  
echo \-e "${GREEN}\>\>\> <20>?$SERVICE\_NAME <20>𨅯<EFBFBD>撌脣停蝏?${NC}"  
echo $IMAGE\_URL  
echo "霂瑕銁 SAE <20><EFBFBD><E689B9><EFBFBD> \[$SERVICE\_NAME\] <20><><EFBFBD><EFBFBD><EFBFBD><E8AE90>祆凒<E7A586>唬蛹: $TIMESTAMP"  
  
\# <20>𧼮<EFBFBD><F0A7BCAE>寧𤌍敶? 
cd ..  
echo "----------------------------------------"  

}

# ================= 銝餅<E98A9D>蝔?=================

# 1. <20>函蔡 Python 敺格<E695BA><E6A0BC>? # build_and_push "extraction-service" "extraction_service"

# 2. <20>函蔡 Node.js <20>𡒊垢 (霈啣<E99C88><E595A3><EFBFBD><EFBFBD>甇?Prisma)
# cp -r prisma backend/prisma
build_and_push "backend-service" "backend"
# rm -rf backend/prisma

# 3. <20>函蔡<E587BD>滨垢
# build_and_push "frontend-service" "frontend-v2"

echo -e "${GREEN}<7D><> <20><><EFBFBD><EFBFBD>撱箔遙<E7AE94><EFBFBD><E288AA><EFBFBD>${NC}"

*<EFBFBD><EFBFBD> <20>喲睸<E596B2><EFBFBD> 4嚗鐾SS <20><><EFBFBD>銝舘楝敺<E6A59D><E695BA><EFBFBD>?

銝箔<EFBFBD><EFBFBD>脫迫<EFBFBD><EFBFBD>辣瘛瑚僚嚗<EFBFBD>遣霈桀銁 Bucket <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝖桃<E89D96><E6A183><EFBFBD>蝏𤘪<E89D8F><EFBFBD><EFBFBD><EFBFBD> IAM Policy <20>𣂼<EFBFBD><F0A382BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E39A81>? <EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝏𤘪<EFBFBD>:

clinical-research-files/
<0A><EFBFBD><E98EBF><EFBFBD> pkb/ # 銝芯犖<E88AAF><EFBFBD>摨𤘪<E691A8>隞? <0A>? <20><EFBFBD><E5A999><EFBFBD> {userId}/ # <20>厩鍂<E58EA9><EFBFBD>蝳? <0A><EFBFBD><E98EBF><EFBFBD> asl/ # <20><>讃蝑偦<E89D91><EFBFBD>隞? <0A>? <20><EFBFBD><E5A999><EFBFBD> {projectId}/ # <20>厰★<E58EB0><EFBFBD>蝳? <0A><EFBFBD><E98EBF><EFBFBD> dc/ # <20>唳旿皜<E697BF><E79A9C><EFBFBD><EFBFBD>
<0A>? <20><EFBFBD><E5A999><EFBFBD> {tempId}/ # 銝湔𧒄銝𠹺<E98A9D>
<0A><EFBFBD><E5A999><EFBFBD> system/ # 蝟餌<E89D9F><EFBFBD><E99F8F>

摨𠉛鍂隞<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:

  • <EFBFBD><EFBFBD>霂餃<EFBFBD>: Bucket <20><><EFBFBD>霈曆蛹 Private<EFBFBD>?
  • <EFBFBD>滨垢霈輸䔮: <20>𡒊垢雿輻鍂 ossClient.signatureUrl() <20><><EFBFBD>撣行<E692A3><E8A18C><EFBFBD><EFBFBD><EFBFBD>?URL (憒?1 撠𤩺𧒄) 餈𥪜<E9A488>蝏坔<E89D8F>蝡胯<E89DA1>?銝亦<EFBFBD><EFBFBD>滨垢<EFBFBD>湔𦻖<EFBFBD><EFBFBD><EFBFBD><EFBFBD> URL 霈輸䔮<E8BCB8>?