Files
AIclinicalresearch/docs/05-部署文档/19-日常更新快速操作手册.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

15 KiB
Raw Blame History

AI銝游<EFBFBD><EFBFBD>𠉛弦撟喳蝱 - <20>亙虜<E4BA99>湔鰵敹恍<E695B9><E6818D><EFBFBD>雿𨀣<E99BBF><F0A880A3>?

**<2A><><EFBFBD><EFBFBD>?*嚗𡁏𠯫撣詨<E692A3><E8A9A8>賣凒<E8B3A3><EFBFBD>敹恍<E695B9><E6818D><EFBFBD>雿𨀣<E99BBF><F0A880A3>? **<2A><EFBFBD><E6A0BC><EFBFBD>**嚗𡁜<E59A97><F0A1819C>穃𣪧<E7A983><EFBFBD><E9BA84><EFBFBD>蝏港犖<E6B8AF><EFBFBD><E5A1A9>I<EFBFBD><EFBFBD>
<EFBFBD>湔鰵<EFBFBD>園𡢿嚗?025-12-25
**<2A><EFBFBD>**嚗𡁶<E59A97>撠讐移<E8AE90><EFBFBD><E6BABB><EFBFBD><EFBFBD>桐縑<E6A190><EFBFBD><E887AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>湔𦻖憭滚<E686AD><E6BB9A><EFBFBD>


<EFBFBD>㴓 雿輻鍂霂湔<E99C82>

**<2A><EFBFBD><EFBFBD><E78DA2><EFBFBD>鍂鈭?*嚗?

  • <EFBFBD>?<3F>亙虜<E4BA99><EFBFBD><E8A098>湔鰵嚗<E9B0B5><EFBFBD>嫣誨<E5ABA3><E8AAA8><EFBFBD><EFBFBD>湔鰵<E6B994>函蔡嚗?
  • <EFBFBD>?敹恍<E695B9>蠘翮隞<E7BFAE><E99A9E>瘥誩予/瘥誩𪂹<E8AAA9>湔鰵嚗?
  • <EFBFBD>?<3F><EFBFBD><EFBD81><EFBFBD><EFBFBD><E59A97>隞碶犖<E7A2B6>䨝I敹恍<E695B9><EFBFBD><E785BA><EFBFBD>

**銝漤<E98A9D><E6BCA4>鍂鈭?*嚗?

  • <EFBFBD>?擐𡝗活摰峕㟲<E5B395>函蔡嚗<E894A1><EFBFBD>?17-摰峕㟲<E5B395>函蔡摰墧<E691B0><E5A2A7><EFBFBD>-2025<32>?md嚗?
  • <EFBFBD>?<3F><EFBFBD><E887AC><EFBFBD>靽格㺿嚗<E3BABF><EFBFBD>𧢲𧋦<F0A7A2B2><F0A78BA6>﹝蝚?<3F><><EFBFBD>
  • <EFBFBD>?<3F><EFBFBD><E6A185>埝䰻嚗<E4B0BB><EFBFBD>?15-Node.js<6A>𡒊垢-<2D>函蔡<E587BD>𣂼<EFBFBD><F0A382BC><EFBFBD>.md嚗?

<EFBFBD>𣑐 銝<><E98A9D><EFBFBD><EFBFBD>蝵桐縑<E6A190><EFBFBD><EFBFBD>粉5<E7B289><35><EFBFBD>嚗?

1.1 ACR<43>𨅯<EFBFBD>隞枏<E99A9E>靽⊥<E99DBD>

**<2A><EFBFBD><E9A483><EFBFBD>**嚗?

Registry: crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com
<0A><EFBFBD><E586BD>? gofeng117@163.com
撖<><E69296>: fengzhibo117

**<2A>𨅯<EFBFBD><F0A885AF><EFBFBD><E595A3><EFBFBD>**嚗?

# <20><EFBFBD><E7A589><EFBFBD><EFBFBD>𧋦<EFBFBD>唳綫<E594B3><E7B6AB>鍂嚗?
crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/<隞枏<E99A9E><E69E8F>?:<<3C><>𧋦<EFBFBD>?

# VPC<50><EFBFBD>嚗𠄎AE<41><EFBFBD><E58CA7><EFBFBD>
crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/<隞枏<E99A9E><E69E8F>?:<<3C><>𧋦<EFBFBD>?

**3銝芷<E98A9D><E88AB7><EFBFBD>摨?*嚗?

  • python-extraction - Python敺格<E695BA><E6A0BC>?
  • backend-service - Node.js<6A>𡒊垢
  • ai-clinical_frontend-nginx - <20>滨垢Nginx

1.2 SAE摨𠉛鍂靽⊥<E99DBD>

摨𠉛鍂<EFBFBD>滨妍 <EFBFBD>滚𦛚 敶枏<EFBFBD><EFBFBD><EFBFBD>𧋦 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
python-extraction-test Python敺格<EFBFBD><EFBFBD>? v1.0 172.17.173.66:8000
nodejs-backend-test Node.js<6A>𡒊垢 v1.3 172.17.173.73:3001
frontend-nginx-service <EFBFBD>滨垢Nginx v1.0 172.17.173.72:80

**SAE<41><EFBFBD><E689B9>?*嚗冴ttps://sae.console.aliyun.com/


1.3 <20><>𧋦<EFBFBD><EFBFBD><E79181>?

**霂凋<E99C82><E5878B>𣇉<EFBFBD><F0A38789>?*嚗䫤v銝餌<E98A9D><E9A48C>?甈∠<E79488><E288A0>?靽株恥<E6A0AA>

v1.0 <20>?擐𡝗活<F0A19D97>函蔡
v1.1 <20>?<3F><EFBFBD><E8A098>湔鰵
v1.2 <20>?<3F><EFBFBD><E8A098>湔鰵
v1.3 <20>?<3F><EFBFBD><E8A098>湔鰵
v2.0 <20>?<3F>滚之<E6BB9A>湔鰵

撱箄悅嚗𡁏<EFBFBD>甈⊥凒<EFBFBD><EFBFBD><EFBFBD>甈∠<EFBFBD><EFBFBD>砍噡嚗ǒ1.3 <20>?v1.4嚗?


<EFBFBD><EFBFBD> 鈭䎚<E988AD><E48E9A><EFBFBD>衹ode.js<6A>𡒊垢嚗<E59EA2><E59A97>撣貊鍂嚗争<E59A97>潃鐥<E6BD83>潃鐥<E6BD83>

甇仿炊1嚗𡁏𧋦<EFBFBD><EFBFBD>撱綽<EFBFBD>5<EFBFBD><EFBFBD><EFBFBD>嚗?

# 餈𥕦<E9A488><F0A595A6>𡒊垢<F0A1928A><EFBFBD>
cd D:\MyCursor\AIclinicalresearch\backend

# 蝻𤥁<E89DBB>TypeScript
npm run build

# 撉諹<E69289>蝻𤥁<E89DBB>蝏𤘪<E89D8F>
dir dist
# 摨磰砲<E7A3B0><EFBFBD>嚗餜ndex.js, common/, modules/ 蝑?

# <20><>遣Docker<65>𨅯<EFBFBD><EFBFBD><E59A97><EFBFBD>砍噡<E7A08D><EFBFBD>嚗?
docker build -t backend-service:v1.4 .

<EFBFBD><EFBFBD>園𡢿嚗?<3F><><EFBFBD>


甇仿炊2嚗𡁏綫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ACR嚗?0<><30><EFBFBD>嚗?

# 1. <20><EFBFBD>ACR嚗<52><E59A97>甈⊿<E79488><EFBFBD><E996AC>
docker login --username=gofeng117@163.com \
  --password=fengzhibo117 \
  crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com

# 2. <20>𤘪<EFBFBD>蝑?
docker tag backend-service:v1.4 \
  crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v1.4

# 3. <20><EFBFBD><E588B8><EFBFBD><EFBFBD>?
docker push \
  crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v1.4

# 蝑匧<E89D91><E58CA7><EFBFBD><E588B8><EFBFBD><EFBFBD><EFBFBD>蝥?0<><30><EFBFBD>嚗屸<E59A97><E5B1B8>讐漲838MB嚗?
# <20><EFBFBD> "digest: sha256:..." 銵函內<E587BD>𣂼<EFBFBD>

<EFBFBD><EFBFBD>園𡢿嚗?0<><30><EFBFBD>


甇仿炊3嚗𡁜銁SAE<EFBFBD>湔鰵摨𠉛鍂嚗?<3F><><EFBFBD>嚗?

*<EFBFBD><EFBFBD>1嚗阳eb<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?

  1. <EFBFBD><EFBFBD>SAE嚗冴ttps://sae.console.aliyun.com/
  2. 餈𥕦<EFBFBD>摨𠉛鍂嚗䫤nodejs-backend-test`
  3. <EFBFBD>孵稬<EFBFBD><EFBFBD>蝵脣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
  4. <EFBFBD>滨蔭<EFBFBD><EFBFBD>㺭嚗?
    <EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD>: <EFBFBD>㗇𥋘 backend-service
    <EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD>𧋦: <EFBFBD>㗇𥋘 v1.4
    
  5. <EFBFBD>孵稬<EFBFBD>霈扎<EFBFBD>?
  6. 蝑匧<EFBFBD><EFBFBD>函蔡摰峕<EFBFBD><EFBFBD>漲5-8<><38><EFBFBD>嚗?

<EFBFBD><EFBFBD>2嚗𡁜𦶢隞方<EFBFBD><EFBFBD><EFBFBD>蝥改<EFBFBD>

# 雿輻鍂<E8BCBB><EFBFBD>鈭飈LI
aliyun sae DeployApplication \
  --AppId <摨𠉛鍂ID> \
  --ImageUrl crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v1.4

<EFBFBD><EFBFBD>園𡢿嚗?<3F><><EFBFBD><EFBFBD><EFBFBD> + 5-8<><38><EFBFBD>蝑匧<E89D91><E58CA7>函蔡


甇仿炊4嚗𡁻<EFBFBD><EFBFBD><EFBFBD>蝵莎<EFBFBD>2<EFBFBD><EFBFBD><EFBFBD>嚗?

# 1. <20><EFBFBD>摨𠉛鍂<F0A0899B><EFBFBD>?
# SAE<41><EFBFBD><E689B9>?<3F>?摰硺<E691B0><E7A1BA>函蔡 <20>?<3F><EFBFBD><E59786><EFBFBD>銝?"Running"

# 2. <20><EFBFBD><E4BAA6><EFBFBD><EFBFBD>霈文鍳<E69687><EFBFBD><E586BD><EFBFBD><EFBFBD>
# SAE<41><EFBFBD><E689B9>?<3F>?<3F><EFBFBD><E4BA99>亥砭 <20>?摨磰砲<E7A3B0><EFBFBD>嚗?
# "<22><> AI銝游<E98A9D><E6B8B8>𠉛弦撟喳蝱 - <20>𡒊垢<F0A1928A>滚𦛚<E6BB9A>典鍳<E585B8><EFBFBD><E586BD><EFBFBD><EFBFBD>"

# 3. <20>亙熒璉<E78692><E79289>?
curl http://172.17.173.73:3001/health
# <20><EFBFBD><EFBFBD><E69C9E><EFBFBD>
curl http://8.140.53.236/api/v1/health

# 4. <20><EFBFBD>瘚贝<E7989A>
# 霈輸䔮<E8BCB8>滨垢嚗冴ttp://8.140.53.236/
# 瘚贝<E7989A><E8B49D>湔鰵<E6B994><E9B0B5><EFBFBD><EFBFBD>?

<EFBFBD><EFBFBD>園𡢿嚗?<3F><><EFBFBD>


摰峕㟲瘚<EFBFBD><EFBFBD><EFBFBD>園𡢿

甇仿炊 <EFBFBD><EFBFBD> <EFBFBD>園𡢿
1 <EFBFBD>砍𧑐<EFBFBD><EFBFBD> 5<EFBFBD><EFBFBD><EFBFBD>
2 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? 10<EFBFBD><EFBFBD><EFBFBD>
3 SAE<EFBFBD>函蔡 3<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + 5-8<><38><EFBFBD>蝑匧<E89D91>
4 撉諹<EFBFBD> 2<EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>餉恣 - 20-25<32><35><EFBFBD>

<EFBFBD>綫 銝剹<E98A9D><E589B9><EFBFBD><EFBFBD>蝡烤ginx嚗<78>活撣貊鍂嚗争<E59A97>潃鐥<E6BD83>潃?

甇仿炊1嚗𡁏𧋦<EFBFBD><EFBFBD>撱綽<EFBFBD>10<EFBFBD><EFBFBD><EFBFBD>嚗?

# 餈𥕦<E9A488><F0A595A6>滨垢<E6BBA8><EFBFBD>
cd D:\MyCursor\AIclinicalresearch\frontend-v2

# <20><>遣Docker<65>𨅯<EFBFBD><EFBFBD><E59A97><EFBFBD>砍噡<E7A08D><EFBFBD>嚗?
docker build -t ai-clinical_frontend-nginx:v1.1 .

# 瘜冽<E7989C>嚗鋽ockerfile隡朞䌊<E69C9E><EFBFBD>銵?npm run build

<EFBFBD><EFBFBD>園𡢿嚗?0<><30><EFBFBD><EFBFBD><E59A97><EFBFBD>俘eact<63><74>遣嚗?


甇仿炊2嚗𡁏綫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ACR嚗?<3F><><EFBFBD>嚗?

# 1. <20>𤘪<EFBFBD>蝑?
docker tag ai-clinical_frontend-nginx:v1.1 \
  crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v1.1

# 2. <20><EFBFBD><E588B8><EFBFBD><EFBFBD>?
docker push \
  crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v1.1

# 蝑匧<E89D91><E58CA7><EFBFBD><E588B8><EFBFBD><EFBFBD><EFBFBD>蝥?<3F><><EFBFBD>嚗屸<E59A97><E5B1B8>讐漲50MB嚗?

<EFBFBD><EFBFBD>園𡢿嚗?<3F><><EFBFBD>


甇仿炊3嚗𡁜銁SAE<EFBFBD>湔鰵摨𠉛鍂嚗?<3F><><EFBFBD>嚗?

  1. <EFBFBD><EFBFBD>SAE嚗冴ttps://sae.console.aliyun.com/
  2. 餈𥕦<EFBFBD>摨𠉛鍂嚗䫤frontend-nginx-service`
  3. <EFBFBD>孵稬<EFBFBD><EFBFBD>蝵脣<EFBFBD><EFBFBD><EFBFBD>?
  4. <EFBFBD>㗇𥋘<EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD>𧋦嚗䫤v1.1`
  5. 蝖株恕<EFBFBD>函蔡

<EFBFBD><EFBFBD>園𡢿嚗?<3F><><EFBFBD><EFBFBD><EFBFBD> + 3-5<><35><EFBFBD>蝑匧<E89D91>


甇仿炊4嚗𡁻<EFBFBD><EFBFBD><EFBFBD>蝵莎<EFBFBD>1<EFBFBD><EFBFBD><EFBFBD>嚗?

# 霈輸䔮<E8BCB8>滨垢
open http://8.140.53.236/

# <20>?
curl http://8.140.53.236/

摰峕㟲<EFBFBD>園𡢿嚗𡁶漲15-20<32><30><EFBFBD>


<EFBFBD><EFBFBD> <20><EFBFBD><E49C98><EFBFBD>訐ython敺格<E695BA><E6A0BC><EFBFBD><EFBFBD><E9A2B2><EFBFBD><EFBFBD>潃鐥<E6BD83>潃?

甇仿炊1嚗𡁏𧋦<EFBFBD><EFBFBD>撱綽<EFBFBD>15<EFBFBD><EFBFBD><EFBFBD>嚗?

# 餈𥕦<E9A488>Python<6F>滚𦛚<E6BB9A><EFBFBD>
cd D:\MyCursor\AIclinicalresearch\extraction_service

# <20><>遣Docker<65>𨅯<EFBFBD>
docker build -t python-extraction:v1.1 .

<EFBFBD><EFBFBD>園𡢿嚗?5<><35><EFBFBD><EFBFBD><E59A97><EFBFBD><EFBFBD>憭改<E686AD>


甇仿炊2嚗𡁏綫<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧶏<EFBFBD>10<EFBFBD><EFBFBD><EFBFBD>嚗?

# <20>𤘪<EFBFBD>蝑?
docker tag python-extraction:v1.1 \
  crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/python-extraction:v1.1

# <20><EFBFBD>?
docker push \
  crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/python-extraction:v1.1

<EFBFBD><EFBFBD>園𡢿嚗?0<><30><EFBFBD><EFBFBD><E59A97><EFBFBD>讐漲1.1GB嚗?


甇仿炊3嚗锭AE<EFBFBD>函蔡嚗?<3F><><EFBFBD>嚗?

  1. 餈𥕦<EFBFBD>摨𠉛鍂嚗䫤python-extraction-test`
  2. <EFBFBD>函蔡<EFBFBD><EFBFBD><EFBFBD>穿<EFBFBD>v1.1

摰峕㟲<EFBFBD>園𡢿嚗𡁶漲30<EFBFBD><EFBFBD><EFBFBD>


<EFBFBD><EFBFBD> 鈭𢛵<E988AD><F0A29BB5><EFBFBD>寧㴓憓<E3B493><E68693><EFBFBD>𧶏<EFBFBD>擃㗛<E69383><E3979B><EFBFBD>嚗争<E59A97>潃鐥<E6BD83>潃鐥<E6BD83>

<EFBFBD>喲睸閫<EFBFBD><EFBFBD>

**<2A>𩤃<EFBFBD> <20><EFBFBD>**嚗帋耨<E5B88B>寧㴓憓<E3B493><E68693><EFBFBD>𤩺𧒄嚗䔶蝙<E494B6><EFBFBD><EFBFBD><E99EBE><EFBFBD><E887AC><EFBFBD>𡢅<EFBFBD>銝滩<E98A9D><E6BBA9><EFBFBD><EFBFBD>蝵脣<E89DB5><E884A3><EFBFBD>𡢅<EFBFBD>

<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>? IP<EFBFBD>臬炏<EFBFBD>?
<EFBFBD>滚鍳摨𠉛鍂 <20>? 靽格㺿<EFBFBD>滨蔭 <EFBFBD>?銝滢<E98A9D><E6BBA2>?
<EFBFBD>函蔡摨𠉛鍂 <20>? <EFBFBD>湔鰵<EFBFBD>𨅯<EFBFBD> <EFBFBD>?隡𡁜<E99AA1><F0A1819C>?

<EFBFBD><EFBFBD>甇仿炊嚗?<3F><><EFBFBD>嚗?

  1. <EFBFBD><EFBFBD>SAE嚗冴ttps://sae.console.aliyun.com/
  2. 餈𥕦<EFBFBD>撖孵<EFBFBD>摨𠉛鍂嚗<EFBFBD><EFBFBD> nodejs-backend-test嚗?
  3. <EFBFBD>孵稬<EFBFBD>𣂼<EFBFBD><EFBFBD><EFBFBD>蝵柴<EFBFBD><EFBFBD><EFBFBD>鞟㴓憓<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
  4. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗𣬚<EFBFBD><EFBFBD><EFBFBD><EFBFBD>颲㻫<EFBFBD>?
  5. 靽格㺿<EFBFBD><EFBFBD><EFBFBD>?
  6. <EFBFBD>孵稬<EFBFBD>𣂷<EFBFBD>摮塩<EFBFBD>?
  7. <EFBFBD>孵稬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𡢅<EFBFBD><EFBFBD>𩤃<EFBFBD> 銝齿糓"<22>函蔡摨𠉛鍂"嚗<><E59A97>
  8. 蝑匧<EFBFBD><EFBFBD>滚鍳摰峕<EFBFBD><EFBFBD>漲2-3<><33><EFBFBD>嚗?

撣貊鍂<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

**Node.js<6A>𡒊垢<F0A1928A>喲睸<E596B2><EFBFBD>**嚗?

# Python<6F>滚𦛚<E6BB9A><EFBFBD><EFBFBD><E59A97>儭?<3F><EFBFBD><E3979B><EFBFBD>憿餌移蝖殷<E89D96>嚗?
EXTRACTION_SERVICE_URL=http://172.17.173.66:8000

# <20>唳旿摨栞<E691A8><E6A09E>?
DATABASE_URL=postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research

# LLM API撖<49>𤨎
DEEPSEEK_API_KEY=sk-...
DASHSCOPE_API_KEY=sk-...

**<2A>滨垢Nginx<6E>喲睸<E596B2><EFBFBD>**嚗?

# <20>𡒊垢<F0A1928A>滚𦛚<E6BB9A><EFBFBD>
BACKEND_SERVICE_HOST=172.17.173.73
BACKEND_SERVICE_PORT=3001

**摰峕㟲<E5B395><EFBFBD><E887AC><EFBFBD><EFBFBD><E79A9C>**嚗?

  • <EFBFBD><EFBFBD> 11-Node.js<6A>𡒊垢-SAE<41>函蔡<E587BD>滨蔭皜<E894AD><E79A9C>.md

<EFBFBD><EFBFBD> <20><EFBFBD><E58786><EFBFBD>𧢲𠯫敹梹<E695B9><E6A2B9>亙虜餈鞟輕嚗争<E59A97>潃鐥<E6BD83>潃?

SAE<EFBFBD><EFBFBD><EFBFBD>唳䰻<EFBFBD>?

  1. <EFBFBD><EFBFBD>SAE嚗冴ttps://sae.console.aliyun.com/
  2. 餈𥕦<EFBFBD>撖孵<EFBFBD>摨𠉛鍂
  3. <EFBFBD>孵稬<EFBFBD>鞉𠯫敹埈䰻霂<EFBFBD>?
  4. <EFBFBD>㗇𥋘<EFBFBD>園𡢿<EFBFBD><EFBFBD>
  5. <EFBFBD><EFBFBD>摰墧𧒄<EFBFBD><EFBFBD>

撣貊鍂<EFBFBD><EFBFBD><EFBFBD>喲睸摮?

<EFBFBD><EFBFBD>臬𢆡嚗?

# Node.js<6A>𡒊垢
"<22><> AI銝游<E98A9D><E6B8B8>𠉛弦撟喳蝱 - <20>𡒊垢<F0A1928A>滚𦛚<E6BB9A>典鍳<E585B8><EFBFBD><E586BD><EFBFBD><EFBFBD>"
"Server listening at http://172.17.173.73:3001"

# Python<6F>滚𦛚
"Uvicorn running on http://0.0.0.0:8000"
"Application startup complete"

# <20>滨垢Nginx
"Starting Frontend Nginx Service"
"Backend Service: 172.17.173.73:3001"

撣貉<EFBFBD><EFBFBD>躰秤嚗?

# <20><EFBFBD><E887AC><EFBFBD><E3979B><EFBFBD>
"EXTRACTION_SERVICE_URL"
"connect ECONNREFUSED"

# <20>唳旿摨栞<E691A8><E6A09E>仿䔮憸?
"Can't reach database server"
"Connection timeout"

# <20>𨅯<EFBFBD><F0A885AF><EFBFBD>
"ENOENT: no such file or directory"
"Error: unable to determine transport target"

<EFBFBD><EFBFBD><><E98A9D><EFBFBD><EFBFBD>皛𡁏<E79A9B>雿頣<E99BBF>蝝扳<E89D9D><EFBFBD><E4BAA4><EFBFBD>潃鐥<E6BD83>潃?

<EFBFBD><EFBFBD>𧒄<EFBFBD><EFBFBD><EFBFBD><EFBFBD>皛𡄯<EFBFBD>

  • <EFBFBD>?<3F><EFBFBD><E59581><EFBFBD>銝仿<E98A9D>Bug
  • <EFBFBD>?<3F><EFBFBD>銝滨泵<E6BBA8><E6B3B5><EFBFBD><EFBFBD>?
  • <EFBFBD>?<3F><EFBFBD>銝钅<E98A9D><E99285>擧遬

<EFBFBD><EFBFBD>甇仿炊嚗?<3F><><EFBFBD>嚗?

  1. <EFBFBD><EFBFBD>SAE嚗冴ttps://sae.console.aliyun.com/
  2. 餈𥕦<EFBFBD>撖孵<EFBFBD>摨𠉛鍂
  3. <EFBFBD>孵稬<EFBFBD><EFBFBD>蝵脣<EFBFBD><EFBFBD><EFBFBD>?
  4. <EFBFBD>㗇𥋘<EFBFBD><EFBFBD><EFBFBD>砍噡<EFBFBD><EFBFBD> v1.3嚗?
  5. 蝖株恕<EFBFBD>函蔡
  6. 蝑匧<EFBFBD><EFBFBD><EFBFBD>摰峕<EFBFBD><EFBFBD>漲5<EFBFBD><EFBFBD><EFBFBD>嚗?

撉諹<EFBFBD><EFBFBD><EFBFBD>

# <20><EFBFBD><E4BAA6><EFBFBD>嚗𣬚霈斤<E99C88><E696A4>?
# <20>𤥁挪<F0A4A581><EFBFBD><E6A180><EFBFBD>瘚贝<E7989A><E8B49D><EFBFBD>

<EFBFBD><20><EFBFBD><E68092><EFBFBD><EFBFBD>格凒<E6A0BC><EFBFBD><E59597>穿<EFBFBD>擃条漣嚗?

銝摸ode.js<6A>𡒊垢<F0A1928A>𥕦遣<F0A595A6>湔鰵<E6B994>𡁏𧋦

<EFBFBD>𥕦遣<EFBFBD><EFBFBD>嚗䫤backend/update-and-deploy.ps1`

# Node.js<6A>𡒊垢銝<E59EA2><E98A9D>格凒<E6A0BC><EFBFBD><E59597>?
# 雿輻鍂<E8BCBB><EFBFBD>: .\update-and-deploy.ps1 v1.5

param(
    [Parameter(Mandatory=$true)]
    [string]$Version
)

Write-Host "========================================" -ForegroundColor Green
Write-Host "撘<>憪𧢲凒<F0A7A2B2>衹ode.js<6A>𡒊垢<F0A1928A><EFBFBD><E59581>? $Version" -ForegroundColor Green
Write-Host "========================================" -ForegroundColor Green

# 1. 蝻𤥁<E89DBB>TypeScript
Write-Host "`n[1/4] 蝻𤥁<E89DBB>TypeScript..." -ForegroundColor Cyan
npm run build
if ($LASTEXITCODE -ne 0) {
    Write-Host "<22>?蝻𤥁<E89DBB>憭梯揖嚗? -ForegroundColor Red
    exit 1
}
Write-Host "<EFBFBD>?蝻𤥁<EFBFBD><EFBFBD>𣂼<EFBFBD>? -ForegroundColor Green

# 2. <20><>遣Docker<65>𨅯<EFBFBD>
Write-Host "`n[2/4] <20><>遣Docker<65>𨅯<EFBFBD>..." -ForegroundColor Cyan
docker build -t backend-service:$Version .
if ($LASTEXITCODE -ne 0) {
    Write-Host "<22>?<3F><>遣憭梯揖嚗? -ForegroundColor Red
    exit 1
}
Write-Host "<EFBFBD>?<EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𣂼<EFBFBD>? -ForegroundColor Green

# 3. <20>𤘪<EFBFBD>蝑?
Write-Host "`n[3/4] <20>𤘪<EFBFBD>蝑?.." -ForegroundColor Cyan
$ImageUrl = "crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:$Version"
docker tag backend-service:$Version $ImageUrl
Write-Host "<22>?<3F><>倌撌脫<E6928C>嚗? -ForegroundColor Green

# 4. <20><EFBFBD><E588B8><EFBFBD>ACR
Write-Host "`n[4/4] <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ACR..." -ForegroundColor Cyan
Write-Host "<EFBFBD><EFBFBD><EFBFBD>𧑐<EFBFBD><EFBFBD>: $ImageUrl" -ForegroundColor Yellow
docker push $ImageUrl
if ($LASTEXITCODE -ne 0) {
    Write-Host "<EFBFBD>?<EFBFBD><EFBFBD><EFBFBD>仃韐伐<EFBFBD>" -ForegroundColor Red
    exit 1
}

Write-Host "`n========================================" -ForegroundColor Green
Write-Host "<EFBFBD>?<EFBFBD>𨅯<EFBFBD>撌脫綫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" -ForegroundColor Green
Write-Host "========================================" -ForegroundColor Green
Write-Host "`n銝衤<EFBFBD>甇交<EFBFBD>雿頣<EFBFBD>" -ForegroundColor Yellow
Write-Host "1. <EFBFBD><EFBFBD>SAE<EFBFBD><EFBFBD><EFBFBD>? https://sae.console.aliyun.com/" -ForegroundColor Yellow
Write-Host "2. 餈𥕦<EFBFBD>摨𠉛鍂: nodejs-backend-test" -ForegroundColor Yellow
Write-Host "3. <EFBFBD>孵稬<EFBFBD><EFBFBD>蝵脣<EFBFBD><EFBFBD><EFBFBD>? -ForegroundColor Yellow
Write-Host "4. <20>㗇𥋘<E39787>𨅯<EFBFBD><F0A885AF><EFBFBD>𧋦: $Version" -ForegroundColor Yellow
Write-Host "5. 蝖株恕<E6A0AA>函蔡" -ForegroundColor Yellow
Write-Host "`n<EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD>嚗ĀPC嚗?" -ForegroundColor Cyan
Write-Host "crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:$Version" -ForegroundColor Cyan

**雿輻鍂<E8BCBB><EFBFBD>**嚗?

cd D:\MyCursor\AIclinicalresearch\backend
.\update-and-deploy.ps1 v1.5

銝箏<EFBFBD>蝡臬<EFBFBD>撱箸凒<EFBFBD><EFBFBD><EFBFBD>?

<EFBFBD>𥕦遣<EFBFBD><EFBFBD>嚗䫤frontend-v2/update-and-deploy.ps1`

# <20>滨垢Nginx銝<78><E98A9D>格凒<E6A0BC><EFBFBD><E59597>?
param(
    [Parameter(Mandatory=$true)]
    [string]$Version
)

Write-Host "撘<>憪𧢲凒<F0A7A2B2><EFBFBD>蝡烤ginx<6E><EFBFBD><E59581>? $Version" -ForegroundColor Green

# 1. <20><><EFBFBD>𨅯<EFBFBD>
docker build -t ai-clinical_frontend-nginx:$Version .

# 2. <20>𤘪<EFBFBD>蝑曉僎<E69B89><EFBFBD>?
$ImageUrl = "crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:$Version"
docker tag ai-clinical_frontend-nginx:$Version $ImageUrl
docker push $ImageUrl

Write-Host "<22>?摰峕<E691B0><EFBFBD><EFBFBD>沒AE<41><EFBFBD><E689B9><EFBFBD>蝵脩<E89DB5><E884A9>? $Version" -ForegroundColor Green

<EFBFBD><EFBFBD> 銋腈<E98A8B><E88588><EFBFBD><EFBFBD>雿𨀣𧒄<F0A880A3>港摯蝞?

<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>園𡢿 蝑匧<EFBFBD><EFBFBD>園𡢿 <EFBFBD>餉恣
<EFBFBD>湔鰵Node.js<6A>𡒊垢 5<EFBFBD><EFBFBD><EFBFBD> 15-20<32><30><EFBFBD> 20-25<32><35><EFBFBD>
<EFBFBD>湔鰵<EFBFBD>滨垢Nginx 3<EFBFBD><EFBFBD><EFBFBD> 12-18<31><38><EFBFBD> 15-20<32><30><EFBFBD>
<EFBFBD>湔鰵Python<EFBFBD>滚𦛚 3<EFBFBD><EFBFBD><EFBFBD> 25-30<33><30><EFBFBD> 30<EFBFBD><EFBFBD><EFBFBD>
靽格㺿<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<EFBFBD><EFBFBD><EFBFBD> 2-3<><33><EFBFBD> 5<EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD> 0 1<EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧋦 2<EFBFBD><EFBFBD><EFBFBD> 5<EFBFBD><EFBFBD><EFBFBD> 7<EFBFBD><EFBFBD><EFBFBD>

<EFBFBD>𩤃<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>格釣<E6A0BC><EFBFBD>憿?

1. <20><EFBFBD><E887AC><EFBFBD><E3979B><EFBFBD>憿餌移蝖?

# <20>?<3F>躰秤
PYTHON_SERVICE_URL=http://172.17.173.66:8000

# <20>?甇<>
EXTRACTION_SERVICE_URL=http://172.17.173.66:8000

<EFBFBD>躰悌嚗𡁶㴓憓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>◆銝𦒘誨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>


2. <20>滚鍳 vs <20>函蔡

靽格㺿<EFBFBD>滨蔭 <20>?<3F>滚鍳摨𠉛鍂嚗㇆P銝滚<E98A9D>嚗争<E59A97>
<0A>湔鰵隞<E9B0B5><E99A9E> <20>?<3F>函蔡摨𠉛鍂嚗㇆P<E38786><EFBFBD><E888AA><EFBFBD><E79F8B>𩤃<EFBFBD>

撱箄悅嚗𡁜偷<EFBFBD>譍蝙<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>唬誨<EFBFBD>蝻𣇉<EFBFBD>IP


3. 雿輻鍂VPC<50><EFBFBD><E595A3><EFBFBD><E58CA7>𨅯<EFBFBD>

# SAE<41>函蔡<E587BD><EFBFBD>㗇𥋘VPC<50><EFBFBD><EFBFBD><E59A97><EFBFBD><E7989A>韐對<E99F90>
crpi-xxx-vpc.cn-beijing.personal.cr.aliyuncs.com/...

# <20>砍𧑐<E7A08D><EFBFBD><E588B8>𧒄雿輻鍂<E8BCBB><EFBFBD><E7A589><EFBFBD>
crpi-xxx.cn-beijing.personal.cr.aliyuncs.com/...

4. <20><>𧋦<EFBFBD>瑞恣<E7919E>?

**撱箄悅閫<E68285><E996AB>**嚗?

v1.0 - 擐𡝗活<F0A19D97>函蔡
v1.1 - 撠誩<E692A0><E8AAA9>賣凒<E8B3A3>?
v1.2 - 撠誩<E692A0><E8AAA9>賣凒<E8B3A3>?
v2.0 - <20>滚之<E6BB9A><E4B98B>𧋦<EFBFBD><F0A78BA6>

霈啣<EFBFBD><EFBFBD><EFBFBD>𧋦嚗𡁜銁 00-<2D>函蔡餈𥕦漲<F0A595A6><EFBFBD>.md 銝剜凒<E5899C><EFBFBD><E59581>砍噡


<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>虜閫<E8999C>䔮憸?

Q1嚗𡁏綫<EFBFBD><EFBFBD><EFBFBD><EFBFBD>誩仃韐伐<EFBFBD>

<EFBFBD>啗情嚗䫤denied: requested access to the resource is denied`

**閫<><E996AB>**嚗?

# <20>齿鰵<E9BDBF><EFBFBD>ACR
docker login --username=gofeng117@163.com \
  --password=fengzhibo117 \
  crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com

Q2嚗锭AE<EFBFBD>函蔡憭梯揖嚗?

甇仿炊嚗?

  1. <EFBFBD><EFBFBD>摰硺<EFBFBD><EFBFBD><EFBFBD>嚗峕𪄳<EFBFBD><EFBFBD>雿㯄<EFBFBD>霂?
  2. <EFBFBD><EFBFBD><EFBFBD>?15-Node.js<6A>𡒊垢-<2D>函蔡<E587BD>𣂼<EFBFBD><F0A382BC><EFBFBD>.md
  3. <EFBFBD><EFBFBD>亦㴓憓<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵?
  4. 撉諹<EFBFBD><EFBFBD>𨅯<EFBFBD><EFBFBD>臬炏<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?

Q3嚗𡁜<EFBFBD><EFBFBD>賣凒<EFBFBD><EFBFBD>銝滨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>

**<2A><EFBFBD><E888AA><EFBFBD>**嚗?

  • 瘚讛<EFBFBD><EFBFBD><EFBFBD>摮矋<EFBFBD>Ctrl+F5撘箏<E69298><E7AE8F>瑟鰵嚗?
  • SAE<EFBFBD>函蔡<EFBFBD><EFBFBD><EFBFBD>?
  • <EFBFBD><EFBFBD>𧋦<EFBFBD><EFBFBD>㗇𥋘<EFBFBD>躰秤

Q4嚗䥑P<EFBFBD><EFBFBD><EFBFBD>䀹凒鈭<EFBFBD><EFBFBD>𦒘<EFBFBD><EFBFBD><EFBFBD>

甇仿炊嚗?

  1. 霈啣<EFBFBD><EFBFBD><EFBFBD>IP<EFBFBD><EFBFBD>
  2. <EFBFBD>湔鰵靘肽<EFBFBD>霂付P<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
  3. <EFBFBD>滚鍳<EFBFBD><EFBFBD><EFBFBD>滚𦛚
  4. <EFBFBD>湔鰵<EFBFBD><EFBFBD>00-<2D>函蔡餈𥕦漲<F0A595A6><EFBFBD>.md

<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

霂衣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?

  • 摰峕㟲<EFBFBD>函蔡嚗䫤17-摰峕㟲<E5B395>函蔡摰墧<E691B0><E5A2A7><EFBFBD>-2025<32>?md`
  • <EFBFBD><EFBFBD><EFBFBD>亥砭嚗䫤00-<2D>函蔡餈𥕦漲<F0A595A6><EFBFBD>.md`
  • <EFBFBD><EFBFBD><EFBFBD>埝䰻嚗䫤15-Node.js<6A>𡒊垢-<2D>函蔡<E587BD>𣂼<EFBFBD><F0A382BC><EFBFBD>.md`
  • **<2A><>﹝撖潸⏛**嚗䫤README.md <20>?18-<2D>函蔡<E587BD><E894A1>﹝雿輻鍂<E8BCBB><E98D82><EFBFBD>.md`

<EFBFBD><20><EFBFBD>

<EFBFBD>亙虜<EFBFBD><EFBFBD>撣貊鍂<EFBFBD>?銝芣<E98A9D>雿?

  1. <EFBFBD>湔鰵Node.js<6A>𡒊垢嚗?0-25<32><35><EFBFBD>嚗?
  2. **靽格㺿<E6A0BC><EFBFBD><E887AC><EFBFBD>**嚗?<3F><><EFBFBD>嚗?
  3. **<2A><EFBFBD><E4BAA6><EFBFBD>**嚗?<3F><><EFBFBD>嚗?

霈唬<EFBFBD>3銝芸<EFBFBD><EFBFBD><EFBFBD>

  1. <EFBFBD>?**<2A><>𧋦<EFBFBD><EFBFBD><EFBFBD>**嚗鯝1.3 <20>?v1.4 <20>?v1.5
  2. <EFBFBD>?*靽格㺿<EFBFBD>滨蔭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>湔鰵隞<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵?
  3. <EFBFBD>?雿輻鍂VPC<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

蝻𤥁<EFBFBD> <20>?<3F><><20>?<3F><EFBFBD>?<3F>?<3F>函蔡 <20>?撉諹<E69289>嚗?0<><30><EFBFBD><EFBFBD>𧼮<EFBFBD><EFBFBD><E59A97>


**<2A><><EFBFBD>擧凒<E693A7>?*嚗?025-12-25
**蝏湔擪鈭箏<E988AD>**嚗𡁜<E59A97><F0A1819C>穃𣪧<E7A983>? **雿輻鍂<E8BCBB><EFBFBD>**嚗朞窈<E69C9E>𦠜𧒄<F0A6A09C>湔鰵<E6B994><EFBFBD>獢?

*蟡脲<EFBFBD><EFBFBD>湔鰵憿箏⏚嚗? <20><>