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

107 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# **<2A><><EFBFBD><EFBFBD>函蔡銵亙<E98AB5><E4BA99><EFBFBD><EFBFBD>嚗𡁜銵交<E98AB5><E4BAA4>𡒊<EFBFBD>蝻嗪<E89DBB>**
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧋦: v1.0
<EFBFBD><EFBFBD>: 閫<><E996AB> 5 銝芰𡠺蝡𧢲芋<F0A7A2B2><EFBFBD><E783BE>鞉𧒄<E99E89><F0A79284><EFBFBD>蝏𡏭<E89D8F><F0A18FAD>𡁏<EFBFBD><EFBFBD><E689BC><EFBFBD><EFBFBD><E692A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鞉𧋦<E99E89><EFBFBD><E6A185>?
## **<2A><> <20>喲睸<E596B2><EFBFBD> 1嚗锭AE <20><><EFBFBD>蝵𤏸挪<F0A48FB8>?(靚<>鍂 DeepSeek/OpenAI)**
<EFBFBD>啁𠶖嚗𡁻<EFBFBD>蝵脣銁 VPC <20><><EFBFBD> SAE 暺䁅恕<E48185><EFBFBD>霈輸䔮<E8BCB8><EFBFBD><E7A589>?
<EFBFBD><EFBFBD>嚗𡁜<EFBFBD>蝡航<EFBFBD><EFBFBD>?DeepSeek <20>亙藁隡朞<E99AA1><E69C9E><EFBFBD>Python <20>滚𦛚<E6BB9A><EFBFBD>銝贝蝸<E8B49D><EFBFBD> PDF<44>?
### **<2A><EFBFBD> A嚗鐭AT 蝵穃<E89DB5> (<28><><EFBFBD><EFBFBD>煺漣<E785BA><EFBFBD>嚗峕綫<E5B395>?**
* **<2A><EFBFBD>**嚗𡁜銁 VPC <20><EFBFBD><E689B9><EFBFBD>撱箔<E692B1>銝?**<2A><EFBFBD> NAT 蝵穃<E89DB5>**嚗<>僎蝏穃<E89D8F><EFBFBD>銝?**EIP**<2A><><EFBFBD>蝵?SNAT <20>∠𤌍嚗<F0A48C8D><E59A97>霈訾漱<E8A8BE><EFBCB8><E3A6A4><EFBFBD>摰硺<E691B0>霈輸䔮<E8BCB8><EFBFBD><E7A589>?
* **<2A>鞉𧋦**嚗鐭AT 蝵穃<E89DB5>蝘蠘<E89D98>韐?\+ EIP 瘚<><E7989A>韐?撣血捐韐嫘<E99F90>?
* **隡条<E99AA1>**嚗𡁶迅摰𡄯<E691B0><F0A184AF>𣳇<EFBFBD>靽格㺿摨𠉛鍂<F0A0899B>滨蔭<E6BBA8>?
### **<2A><EFBFBD> B嚗锭AE 蝏穃<E89D8F><E7A983><EFBFBD> IP (<28><><EFBFBD><EFBFBD>)**
* **<2A><EFBFBD>**嚗𡁜銁 SAE 摨𠉛鍂<F0A0899B>滨蔭 \-\> 蝵𤑳<E89DB5><F0A491B3>滨蔭 銝哨<E98A9D><E593A8><EFBFBD><E4BAA6>臬炏<E887AC><EFBFBD><EFBFBD><E69298>?**<2A><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<>?
## **<2A><>儭?<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>?
### **<2A><EFBFBD>甇仿炊**
1. **<EFBFBD>砍𧑐蝏<EFBFBD><EFBFBD><EFBFBD>** (撱箇<E692B1> SSH <20><EFBFBD>):
\# <20><EFBFBD>: ssh \-L <20>砍𧑐蝡臬藁:RDS<44><EFBFBD>:RDS蝡臬藁 root@ECS<EFBFBD><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
* <20><EFBFBD>/撖<><E69296>: RDS <20><><EFBFBD><EFBFBD><E79195>?
* *<2A><EFBFBD>嚗𡁏<E59A97><F0A1818F><EFBFBD><EFBFBD> ECS 頧砍<E9A0A7><E7A08D><EFBFBD>蝵?RDS<44>?
## **<2A><> <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}"
## **<2A><> <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/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> pkb/ \# 銝芯犖<E88AAF><EFBFBD>摨𤘪<E691A8>隞?
<EFBFBD>? <20><EFBFBD><E5A999><EFBFBD> {userId}/ \# <20>厩鍂<E58EA9><EFBFBD>蝳?
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> asl/ \# <20><>讃蝑偦<E89D91><EFBFBD>隞?
<EFBFBD>? <20><EFBFBD><E5A999><EFBFBD> {projectId}/ \# <20>厰★<E58EB0><EFBFBD>蝳?
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> dc/ \# <20>唳旿皜<E697BF><E79A9C><EFBFBD><EFBFBD>
<EFBFBD>? <20><EFBFBD><E5A999><EFBFBD> {tempId}/ \# 銝湔𧒄銝𠹺<E98A9D>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> system/ \# 蝟餌<E89D9F><EFBFBD><E99F8F>
**摨𠉛鍂隞<E98D82><E99A9E><EFBFBD><EFBFBD>**:
* **蝘<><E89D98>霂餃<E99C82>**: Bucket <20><><EFBFBD>霈曆蛹 **Private**<EFBFBD>?
* **<EFBFBD>滨垢霈輸䔮**: <20>𡒊垢雿輻鍂 ossClient.signatureUrl() <20><><EFBFBD>撣行<E692A3><E8A18C><EFBFBD><EFBFBD><EFBFBD>?URL (憒?1 撠𤩺𧒄) 餈𥪜<E9A488>蝏坔<E89D8F>蝡胯<E89DA1>?*銝亦<E98A9D><E4BAA6>滨垢<E6BBA8>湔𦻖<E6B994><EFBFBD><E69C9E><EFBFBD> URL 霈輸䔮<E8BCB8>?*