Files
AIclinicalresearch/docs/05-部署文档/01-快速部署SOP-零基础版.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

1039 lines
34 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.
# AI銝游<E98A9D><E6B8B8>𠉛弦撟喳蝱 - <20><EFBFBD>鈭穃翰<E7A983><EFBFBD>蝵淞OP嚗<50><EFBFBD><EFBFBD><E7AE87><EFBFBD><EFBFBD>
> **<2A><><EFBFBD><EFB99D>𧋦嚗?* v1.0
> **<2A>𥕦遣<F0A595A6><EFBFBD>嚗?* 2025-12-16
> **<2A><><EFBFBD>箸艶嚗?* 隞𡡞妟撘<E5A69F>憪钅<E686AA>蝵脣<E89DB5><E884A3><EFBFBD>鈭𡢅<E988AD>銝滚鉄Dify嚗?
> **憸<><EFBFBD>園𡢿嚗?* 3-4撠𤩺𧒄
> **<2A><EFBFBD>嚗?* 蝟餌<E89D9F><E9A48C><EFBFBD><EFBFBD>虜霈輸䔮嚗<E494AE><EFBFBD><EFBFBD><E7A08D>賢虾<E8B3A2>?
---
## <20><> <20>函蔡璉<E894A1><E79289><EFBFBD><E4BAA4>?
<EFBFBD><EFBFBD>憪衤<EFBFBD><EFBFBD><EFBFBD>霂瑞霈歹<EFBFBD>
- [ ] 撌脫<E6928C><E884AB><EFBFBD>鈭𤏸揭<F0A48FB8><EFBFBD>銝𥪜歇摰峕<E691B0>摰𧼮<E691B0>霈方<E99C88>
- [ ] 韐行<E99F90>雿䠷<E99BBF> <20>?500<30><30><EFBFBD>撱箄悅1000<30><30><EFBFBD><EFBFBD><EFBFBD>鉄3銝芣<E98A9D>餈鞱<E9A488>韐寧鍂嚗?- [ ] 撌脣<E6928C><EFBFBD>ocker Desktop嚗<70>鍂鈭擧<E988AD>撱粹<E692B1><E7B2B9>𧶏<EFBFBD>
- [ ] 撌脣<E6928C><EFBFBD>it嚗<74>鍂鈭舘繮<E88898>碶誨<E7A2B6><E8AAA8><EFBFBD>
- [ ] <20>砍𧑐<E7A08D><EFBFBD><EFBFBD>虜餈鞱<E9A488>憿寧𤌍嚗<F0A48C8D><EFBFBD><EFBFBD>撌脣<E6928C>憪见<E686AA>嚗?
---
## <20><> 撌脤<E6928C>蝵脰<E89DB5>皞𣂼翰<F0A382BC><EFBFBD><E7AC94>?
隞乩<EFBFBD><EFBFBD><EFBFBD>撌脩<EFBFBD><EFBFBD>券燵<EFBFBD><EFBFBD>銝𢠃<EFBFBD>蝵脣<EFBFBD><EFBFBD><EFBFBD><EFBFBD>函蔡餈<EFBFBD><EFBFBD>銝剖虾隞亦凒<EFBFBD>乩蝙<EFBFBD><EFBFBD>鈭𥕢縑<EFBFBD><EFBFBD>
### <20>?VPC蝵𤑳<E89DB5>靽⊥<E99DBD>
```yaml
VPC ID: vpc-2ze055cptkew9c38w4r06
VPC<EFBFBD>滨妍: ai-clinical-vpc
蝵烐挾: 172.17.0.0/16
<EFBFBD><EFBFBD>: <EFBFBD>𤾸<EFBFBD>2嚗<EFBFBD><EFBFBD>鈭穿<EFBFBD>
鈭斗揢<EFBFBD>截D: vsw-2zevacop039bxrmj6yc0c (<28>舐鍂<E88890>慚)
vsw-2zehoeyw9ldncymcyvfwq (<28>舐鍂<E88890>態)
摰匧<EFBFBD><EFBFBD>D: sg-2zedk6fi8sgmmcwdu7tu
```
### <20>?RDS PostgreSQL<51>唳旿摨?```yaml
摰硺<EFBFBD>ID: pgm-2zex1m2y3r23hdn5
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432
<EFBFBD>唳旿摨栞揭<EFBFBD>? airesearch
<EFBFBD>唳旿摨枏<EFBFBD><EFBFBD>? Xibahe@fengzhibo117
<EFBFBD>唳旿摨枏<EFBFBD>蝘? ai_clinical_research
<EFBFBD>聢: 2<>?GB (pg.n2.2c.1m)
<EFBFBD><EFBFBD>憭扯<EFBFBD><EFBFBD>交㺭: 400
PostgreSQL<EFBFBD><EFBFBD>𧋦: 15.0
<EFBFBD><EFBFBD><EFBFBD>? 172.17.0.0/16 <20>?<3F>嗅躹: Asia/Shanghai <20>?```
### <20>?SAE<41><EFBFBD>蝛粹𡢿
```yaml
<EFBFBD><EFBFBD>蝛粹𡢿ID: cn-beijing:test-airesearch
<EFBFBD><EFBFBD>: <20>𤾸<EFBFBD>2嚗<32><E59A97>鈭穿<E988AD>
```
### <20>?OSS撖寡情摮睃<E691AE>
```yaml
Bucket<EFBFBD>滨妍: ai-clinical-research
<EFBFBD><EFBFBD>: <20>𤾸<EFBFBD>2嚗<32><E59A97>鈭穿<E988AD>
摮睃<EFBFBD>蝐餃<EFBFBD>: <20><><EFBFBD>摮睃<E691AE>
霂餃<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 蝘<><E89D98>
摮睃<EFBFBD><EFBFBD>𦯀<EFBFBD>蝐餃<EFBFBD>: <20><><EFBFBD><EFBFBD>𦯀<EFBFBD>摮睃<E691AE>
憭𣇉<EFBFBD>Endpoint: oss-cn-beijing.aliyuncs.com
<EFBFBD><EFBFBD><EFBFBD>Endpoint: oss-cn-beijing-internal.aliyuncs.com
Bucket<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵𡢅<EFBFBD>: ai-clinical-research.oss-cn-beijing-internal.aliyuncs.com
<EFBFBD>𥕦遣<EFBFBD>園𡢿: 2025-12-16 20:22 <20>?
# RAM<41><EFBFBD>霈輸䔮<E8BCB8><EFBFBD><EFBFBD>鍂鈭窻SS<53><EFBFBD>嚗?RAM<41><EFBFBD><E586BD>? oss-bucket-put-object@1991407246109125.onaliyun.com
AccessKeyId: LTAI5tB2Dt3NdvBL3G7nYGv7
AccessKeySecret: 1iSN9k39RkApP93QjUhC1DcPIeMG4V
UID: 203256565888301026
<EFBFBD>𥕦遣<EFBFBD>園𡢿: 2025-12-16 20:31:41 <20>?
<EFBFBD>𩤃<EFBFBD> 摰匧<E691B0>霅血<E99C85>嚗鋫ccessKey<65><EFBFBD><E88880>煺縑<E785BA><EFBFBD>霂瑕嚉<E79195>𣂷漱<F0A382B7><EFBFBD><EFBFBD>Git隞枏<E99A9E>嚗?```
### <20>?NAT蝵穃<E89DB5>銝𤾸<E98A9D>蝵𤏸挪<F0A48FB8>?```yaml
NAT蝵穃<EFBFBD><EFBFBD>滨妍: NAT_airesearch
NAT蝵穃<EFBFBD>ID: ngw-2zeec9ulzgw7ywvx1pst6
SNAT銵沉D: stb-2zesszmzx1qpwf1cb2bry
<EFBFBD><EFBFBD>IP(EIP): 182.92.176.14
<EFBFBD>𥕦遣<EFBFBD>園𡢿: 2025-12-16 20:58:12 <20>?
# SNAT<41>∠𤌍<E288A0>滨蔭嚗?<3F><EFBFBD><EFBFBD><E996AC><EFBFBD><EFBFBD><EFBFBD>劐漱<E58A90>㦤嚗?SNAT<41>∠𤌍1:
ID: snat-2zerlp4z0ed2isvq399gn
皞鞟<E79A9E>畾? 172.17.160.0/20
鈭斗揢<E69697>? vsw-2zevacop039bxrmj6yc0c (<28>舐鍂<E88890>慚)
<20><EFBFBD>IP: 182.92.176.14
<20><EFBFBD>? <20>舐鍂 <20>?
SNAT<EFBFBD>∠𤌍2:
ID: snat-2zegvesjxjwmw7j51m89m
皞鞟<E79A9E>畾? 172.17.192.0/20
鈭斗揢<E69697>? vsw-2zehoeyw9ldncymcyvfwq (<28>舐鍂<E88890>態)
<20><EFBFBD>IP: 182.92.176.14
<20><EFBFBD>? <20>舐鍂 <20>?```
### <20>?ACR摰孵膥<E5ADB5>𨅯<EFBFBD><F0A885AF>滚𦛚
```yaml
<EFBFBD>滚𦛚蝐餃<EFBFBD>: 銝芯犖<E88AAF><E78A96><EFBFBD><EFBFBD>滩晶嚗?<3F><EFBFBD>蝛粹𡢿: ai-clinical
<EFBFBD><EFBFBD><EFBFBD>? gofeng117@163.com
Registry撖<EFBFBD><EFBFBD>: fengzhibo117
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com
銝𤘪<EFBFBD>蝵𤑳<EFBFBD><EFBFBD><EFBFBD>: crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com
# <20>𨅯<EFBFBD>隞枏<E99A9E>嚗?銝迎<E98A9D>
隞枏<EFBFBD>1 - <20>滨垢Nginx:
隞枏<E99A9E><E69E8F>滨妍: ai-clinical_frontend-nginx
<20><EFBFBD><E7A589><EFBFBD>: crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx
銝𤘪<E98A9D>蝵𤑳<E89DB5><F0A491B3><EFBFBD>: crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx
隞枏<EFBFBD>2 - Python敺格<E695BA><E6A0BC>?
隞枏<E99A9E><E69E8F>滨妍: python-extraction
<20><EFBFBD><E7A589><EFBFBD>: crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/python-extraction
銝𤘪<E98A9D>蝵𤑳<E89DB5><F0A491B3><EFBFBD>: crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/python-extraction
隞枏<EFBFBD>3 - Node.js<6A>𡒊垢:
隞枏<E99A9E><E69E8F>滨妍: nodejs-backend
<20><EFBFBD><E7A589><EFBFBD>: crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/nodejs-backend
銝𤘪<E98A9D>蝵𤑳<E89DB5><F0A491B3><EFBFBD>: crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/nodejs-backend
<EFBFBD>𩤃<EFBFBD> 摰匧<E691B0>霅血<E99C85>嚗鑹egistry撖<79><E69296><EFBFBD><EFBFBD><E88880>煺縑<E785BA><EFBFBD>霂瑕嚉<E79195>𣂷漱<F0A382B7><EFBFBD><EFBFBD>Git隞枏<E99A9E>嚗?```
### <20>𩤃<EFBFBD><><E695BA>蝵脰<E89DB5>皞?- [x] NAT蝵穃<E89DB5> <20>?撌脣<E6928C>撱綽<E692B1>SNAT撌脤<E6928C>蝵?- [x] OSS摮睃<E691AE>獢?<3F>?撌脣<E6928C>撱?- [x] ACR摰孵膥<E5ADB5>𨅯<EFBFBD>隞枏<E99A9E> <20>?撌脣<E6928C>撱?- [ ] SAE摨𠉛鍂嚗?銝迎<E98A9D>Python/Node.js/Frontend嚗?
---
## <20><20>函蔡<E587BD><EFBFBD>蝔𧢲<E89D94>閫?
```
蝚砌<EFBFBD><EFBFBD>嗆挾嚗𡁻燵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?0<><30><EFBFBD>嚗?<3F><EFBFBD><E98EBF><EFBFBD> <20>𥕦遣VPC蝵𤑳<E89DB5>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>𥕦遣NAT蝵穃<E89DB5><EFBFBD><E59A97><EFBFBD><EFBFBD>嚗?<3F><EFBFBD><E98EBF><EFBFBD> 韐凋僭RDS PostgreSQL
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>𥕦遣OSS摮睃<E691AE>獢?<3F><EFBFBD><E5A999><EFBFBD> <20>𥕦遣SAE摨𠉛鍂嚗?銝芰征摨𠉛鍂嚗?
蝚砌<EFBFBD><EFBFBD>嗆挾嚗𡁏㺭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>30<EFBFBD><EFBFBD><EFBFBD>嚗?<3F><EFBFBD><E98EBF><EFBFBD> 撖澆枂<E6BE86>砍𧑐<E7A08D>唳旿摨?<3F><EFBFBD><E98EBF><EFBFBD> <20><EFBFBD>ECS頝單踎<E596AE><EFBFBD><E7AE84>充DS
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 撖澆<E69296><E6BE86>唳旿<E594B3>訌DS
蝚砌<EFBFBD><EFBFBD>嗆挾嚗鋽ocker<EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?0<><30><EFBFBD>嚗?<3F><EFBFBD><E98EBF><EFBFBD> <20>𥕦遣<F0A595A6><EFBFBD>鈭穃捆<E7A983><EFBFBD><E588B8>𤩺<EFBFBD><F0A4A9BA><EFBFBD>ACR嚗?<3F><EFBFBD><E98EBF><EFBFBD> <20><>遣Python敺格<E695BA><E6A0BC><EFBFBD><E28ABF>?<3F><EFBFBD><E98EBF><EFBFBD> <20><>遣Node.js<6A>𡒊垢<F0A1928A>𨅯<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>滨垢Nginx<6E>𨅯<EFBFBD>
蝚砍<EFBFBD><EFBFBD>嗆挾嚗锭AE摨𠉛鍂<EFBFBD>函蔡嚗?0<><30><EFBFBD>嚗?<3F><EFBFBD><E98EBF><EFBFBD> <20>函蔡Python敺格<E695BA><E6A0BC>?<3F><EFBFBD><E98EBF><EFBFBD> <20>函蔡Node.js<6A>𡒊垢
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>函蔡<E587BD>滨垢Nginx
蝚砌<EFBFBD><EFBFBD>嗆挾嚗𡁻<EFBFBD><EFBFBD><EFBFBD>瘚贝<EFBFBD>嚗?0<><30><EFBFBD>嚗?<3F><EFBFBD><E98EBF><EFBFBD> <20>亙熒璉<E78692><E79289>?<3F><EFBFBD><E98EBF><EFBFBD> <20><EFBFBD>瘚贝<E7989A>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E4BA99>埝䰻
```
**<2A><EFBFBD>霈⊥𧒄<E28AA5><EFBFBD>3.5-4撠𤩺𧒄**
---
## 蝚砌<E89D9A><E7A08C>嗆挾嚗𡁻燵<F0A181BB><EFBFBD><EFBFBD><E99F8F><EFBFBD><EFBFBD><EFBFBD>嚗?0<><30><EFBFBD>嚗?
### 1.1 <20>𥕦遣VPC銝𤘪<E98A9D>蝵𤑳<E89DB5>嚗?0<><30><EFBFBD>嚗?
**<2A><EFBFBD>嚗?* 銝箸<E98A9D><E7AEB8><EFBFBD><EFBFBD><E99F8F><EFBFBD>𣂷<EFBFBD><F0A382B7><EFBFBD><EFBFBD><EFBFBD>𠉛氖<F0A0899B><EFBFBD>
**<2A><EFBFBD>甇仿炊嚗?*
1. <20><EFBFBD><E9A483><EFBFBD>鈭烐綉<E78390>嗅蝱嚗冴ttps://vpc.console.aliyun.com/
2. <20>孵稬<E5ADB5>𣂼<EFBFBD>撱箔<E692B1><E7AE94><EFBFBD>蝏栶<E89D8F>?3. 憛怠<E6869B><E680A0>滨蔭嚗?
```yaml
<EFBFBD>滨妍: ai-clinical-vpc
<EFBFBD><EFBFBD>: <20>𤾸<EFBFBD>2嚗<32><E59A97>鈭穿<E988AD>
IPv4蝵烐挾: 172.17.0.0/16
```
4. <20>𥕦遣鈭斗揢<E69697><EFBFBD>vSwitch嚗㚁<E59A97>
```yaml
<EFBFBD>滨妍: ai-clinical-vswitch-1
<EFBFBD>舐鍂<EFBFBD>? <20>𦯀漪 <20>舐鍂<E88890>
IPv4蝵烐挾: 172.17.0.0/20
```
5. <20>孵稬<E5ADB5>摰𠾼<E691B0>𡢅<EFBFBD>蝑匧<E89D91><E58CA7>𥕦遣摰峕<E691B0><EFBFBD>漲30蝘𡜐<E89D98>
**撉諹<E69289>嚗?* <20>汲PC<50>𡑒”銝剔<E98A9D><E58994>?ai-clinical-vpc"嚗𣬚𠶖<F0A3AC9A><F0A0B696>蛹"<22>舐鍂"
---
### 1.2 <20>𥕦遣NAT蝵穃<E89DB5>嚗?5<><35><EFBFBD>嚗争<E59A97>潃鐥<E6BD83>潃鐥<E6BD83>
**<2A><EFBFBD>嚗?* 銝搴AE摰孵膥<E5ADB5>𣂷<EFBFBD><F0A382B7><EFBFBD>霈輸䔮<E8BCB8><EFBFBD><EFBFBD><E59A97><EFBFBD>求eepSeek/OpenAI API敹<49><E695B9>嚗?
**<2A>𩤃<EFBFBD> <20><EFBFBD>霅血<E99C85>嚗?* 瘝⊥<E7989D>NAT蝵穃<E89DB5>嚗淾I<E6B7BE><EFBFBD>100%頞<>𧒄嚗?
**<2A>?摰鮋<E691B0>NAT蝵穃<E89DB5>靽⊥<E99DBD><EFBFBD><EFBFBD>函蔡嚗㚁<E59A97>**
```yaml
NAT蝵穃<EFBFBD><EFBFBD>滨妍: NAT_airesearch
NAT蝵穃<EFBFBD>ID: ngw-2zeec9ulzgw7ywvx1pst6
<EFBFBD><EFBFBD>: <20>𤾸<EFBFBD>2嚗<32><E59A97>鈭穿<E988AD>
VPC: vpc-2ze055cptkew9c38w4r06
SNAT銵沉D: stb-2zesszmzx1qpwf1cb2bry
<EFBFBD>𥕦遣<EFBFBD>園𡢿: 2025-12-16 20:58:12 <20>?
# 撘寞<E69298><EFBFBD>蝵飡P (EIP)
<EFBFBD><EFBFBD>IP: 182.92.176.14 <20>?
# SNAT<41>∠𤌍<E288A0>滨蔭嚗?<3F><EFBFBD><EFBFBD><E996AC><EFBFBD><EFBFBD><EFBFBD>劐漱<E58A90>㦤嚗?SNAT<41>∠𤌍1:
ID: snat-2zerlp4z0ed2isvq399gn
皞鞟<E79A9E>畾? 172.17.160.0/20
鈭斗揢<E69697>? vsw-2zevacop039bxrmj6yc0c (<28>舐鍂<E88890>慚)
<20><EFBFBD>IP: 182.92.176.14
<20><EFBFBD>? <20>?<3F>舐鍂
SNAT<EFBFBD>∠𤌍2:
ID: snat-2zegvesjxjwmw7j51m89m
皞鞟<E79A9E>畾? 172.17.192.0/20
鈭斗揢<E69697>? vsw-2zehoeyw9ldncymcyvfwq (<28>舐鍂<E88890>態)
<20><EFBFBD>IP: 182.92.176.14
<20><EFBFBD>? <20>?<3F>舐鍂
```
**<2A>𩤃<EFBFBD><><E68692><EFBFBD><EFBFBD><EFBFBD><E996AC><EFBFBD><EFBFBD>撱綽<E692B1><E7B6BD><EFBFBD>甇仿炊嚗?*
1. 餈𥕦<E9A488>NAT蝵穃<E89DB5><E7A983><EFBFBD><E689B9><EFBFBD>https://vpc.console.aliyun.com/nat
2. <20>孵稬<E5ADB5>𣂼<EFBFBD>撱摸AT蝵穃<E89DB5><E7A983>?3. 憛怠<E6869B><E680A0>滨蔭嚗?
```yaml
<EFBFBD><EFBFBD>: <20>𤾸<EFBFBD>2嚗<32><E59A97>鈭穿<E988AD>
VPC: ai-clinical-vpc (vpc-2ze055cptkew9c38w4r06)
<EFBFBD>聢: 撠誩<E692A0><EFBFBD><E59A97>霈歹<E99C88>瞼60/<2F><><EFBFBD>
霈∟晶<EFBFBD><EFBFBD>: <20><EFBFBD>隞䁅晶
```
4. 韐凋僭撘寞<E69298><EFBFBD>蝵飡P嚗𠄌IP嚗㚁<E59A97>
- <20>孵稬<E5ADB5><EFBFBD>摰𡁜撕<F0A1819C><EFBFBD>蝵飡P<E9A3A1>? - <20>㗇𥋘<E39787>鞱揚銋啣僎蝏穃<E89D8F>EIP<49>? - 撣血捐嚗?Mbps嚗<73><E59A97>雿輻鍂瘚<E98D82><E7989A>霈∟晶嚗? - <20>孵稬<E5ADB5>摰𠾼<E691B0>?
5. <20>滨蔭SNAT閫<54><E996AB><EFBFBD>悟SAE<41>質挪<E8B3AA><EFBFBD>蝵𡢅<E89DB5>嚗? - <20>孵稬<E5ADB5>𠩐NAT蝞∠<E89D9E><E288A0><EFBFBD><E78897>𣂼<EFBFBD>撱搴NAT<41>∠𤌍<E288A0>? - <20>㗇𥋘鈭斗揢<E69697><EFBFBD>銝箸<E98A9D>銝芯漱<E88AAF><EFBCB8>𥕦遣SNAT<41>∠𤌍
- 鈭斗揢<E69697>?嚗䫤vsw-2zevacop039bxrmj6yc0c` (<28>舐鍂<E88890>慚)
- 鈭斗揢<E69697>?嚗䫤vsw-2zehoeyw9ldncymcyvfwq` (<28>舐鍂<E88890>態)
- <20>㗇𥋘<E39787><EFBFBD>IP嚗𡁶<E59A97>摰𡁶<E691B0>EIP
- <20>孵稬<E5ADB5>摰𠾼<E691B0>?
**撉諹<E69289>嚗?*
- <20>?NAT蝵穃<E89DB5><E7A983><EFBFBD><E59786>蛹"餈鞱<E9A488>銝?
- <20>?EIP撌脩<E6928C>摰𡄯<E691B0>182.92.176.14
- <20>?SNAT<41>∠𤌍<E288A0><EFBFBD><E59786>蛹"<22>舐鍂"嚗?<3F><EFBFBD>
- <20>?閬<><E996AC><EFBFBD><E988AD><EFBFBD>劐漱<E58A90><EFBCB8><E3A6A4><EFBFBD>畾?
**<2A>鞉𧋦隡啁<E99AA1>嚗?*
- NAT蝵穃<E89DB5>嚗块?0/<2F>?- EIP嚗块?.8/GB瘚<42><E7989A><EFBFBD><E59A97>霈¯?0/<2F><><EFBFBD>
- <20><>恣嚗𡁶漲瞼100/<2F>?
---
### 1.3 韐凋僭RDS PostgreSQL<51>唳旿摨橒<E691A8>20<32><30><EFBFBD>嚗?
**<2A><EFBFBD>嚗?* <20>条恣<E69DA1><E681A3>ostgreSQL<51>唳旿摨橒<E691A8><E6A992><EFBFBD>10銝杵chema<6D>𠉛氖
**<EFBFBD><EFBFBD>甇仿炊嚗?*
1. 餈𥕦<E9A488>RDS<44><EFBFBD><E689B9><EFBFBD>https://rdsnext.console.aliyun.com/
2. <20>孵稬<E5ADB5>𣂼<EFBFBD>撱箏<E692B1>靘卝<E99D98>?3. 憛怠<E6869B><E680A0>滨蔭嚗?
```yaml
隞䁅晶蝐餃<EFBFBD>: <20><><EFBFBD><E58391><EFBFBD><EFBFBD><E59A97><EFBFBD><EFBFBD>?0嚗?<3F><EFBFBD>: <EFBFBD>𤾸<EFBFBD>2嚗<EFBFBD><EFBFBD>鈭穿<EFBFBD>
<EFBFBD>舐鍂<EFBFBD>? <20>𦯀漪 <20>舐鍂<E88890>
<EFBFBD>唳旿摨梶掩<EFBFBD>? PostgreSQL
<EFBFBD><EFBFBD>𧋦: 15
蝟餃<EFBFBD>: <20><EFBFBD><E7AE87><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鞉𧋦嚗䔶<E59A97><E494B6><EFBFBD>銝餃<E98A9D><E9A483><EFBFBD>揢嚗?閫<>:
- CPU: 2<>? - <20><><EFBFBD>: 4GB
- 摮睃<EFBFBD>: 50GB嚗<42><E59A97><EFBFBD>𧄉SSD嚗?蝵𤑳<E89DB5>蝐餃<E89D90>: 銝𤘪<E98A9D>蝵𤑳<E89DB5>嚗ĀPC嚗?VPC: ai-clinical-vpc (vpc-2ze055cptkew9c38w4r06)
鈭斗揢<EFBFBD>? ai-clinical-vswitch-1 (vsw-2zevacop039bxrmj6yc0c)
```
4. 擃条漣<E69DA1>滨蔭嚗?
```yaml
<EFBFBD>唳旿摨栞揭<EFBFBD>? airesearch
<EFBFBD><EFBFBD>: <EFBFBD>挽蝵桀<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>霈啣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>膥嚗<EFBFBD><EFBFBD>嚗䧥ibahe@fengzhibo117嚗?<3F>唳旿摨枏<E691A8>蝘? ai_clinical_research
摮㛖泵<EFBFBD>? UTF8
```
5. <20>孵稬<E5ADB5><EFBFBD><E99E9F>唾揚銋啜<E98A8B>𡢅<EFBFBD>蝑匧<E89D91><E58CA7>𥕦遣嚗<E981A3>漲5<E6BCB2><35><EFBFBD>嚗?
**<2A>𩤃<EFBFBD> <20>喲睸<E596B2>滨蔭嚗<E894AD><E59A97>撱箏<E692B1>嚗㚁<E59A97>**
1. **<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵?*嚗<><E59A97>憿駁<E686BF>蝵殷<E89DB5><E6AEB7><EFBFBD><E8A180><EFBFBD>餈墧𦻖嚗㚁<E59A97>
- 餈𥕦<E9A488>摰硺<E691B0>霂行<E99C82> <20>?<3F>唳旿摰匧<E691B0><E58CA7>?<3F>?<3F><EFBFBD><E8B3A2>閗挽蝵? - <20>孵稬<E5ADB5>𣂷耨<F0A382B7><EFBFBD>? - 瘛餃<E7989B>嚗䫤172.17.0.0/16`嚗<>㟲銝杼PC蝵烐挾嚗䔶<E59A97><EFBFBD><EFBFBD>閙㦤IP嚗<50><E59A97>
- <20>孵稬<E5ADB5>摰𠾼<E691B0>?
2. **<EFBFBD>嗅躹<EFBFBD>滨蔭**嚗<><E59A97><EFBFBD>齿𠯫敹埈𧒄<E59F88><EFBFBD>銋梧<E98A8B>嚗? - 餈𥕦<E9A488>摰硺<E691B0>霂行<E99C82> <20>?<3F><>㺭霈曄蔭
- <20>𦦵揣嚗䫤timezone`
- 靽格㺿<E6A0BC><EFBFBD>`Asia/Shanghai`
- <20>孵稬<E5ADB5><EFBFBD>鈭文<E988AD><E69687><EFBFBD>? - <20>?**撌脤<E6928C>蝵?*嚗<>虾蝏湔擪<E6B994>園𡢿蝒梹<E89D92>02:00-06:00 Asia/Shanghai UTC+8嚗?
**<2A>?摰鮋<E691B0>RDS靽⊥<E99DBD><EFBFBD><EFBFBD>函蔡嚗㚁<E59A97>**
```yaml
摰硺<EFBFBD>ID: pgm-2zex1m2y3r23hdn5
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432
<EFBFBD>唳旿摨栞揭<EFBFBD>? airesearch
<EFBFBD>唳旿摨枏<EFBFBD><EFBFBD>? Xibahe@fengzhibo117
<EFBFBD>唳旿摨枏<EFBFBD>蝘? ai_clinical_research
VPC: vpc-2ze055cptkew9c38w4r06 (172.17.0.0/16)
<EFBFBD><EFBFBD><EFBFBD>D: rg-acfm4nrrfnu6tri
<EFBFBD>: 2<EFBFBD>?GB (pg.n2.2c.1m)
<EFBFBD><EFBFBD>憭扯<EFBFBD><EFBFBD>交㺭: 400
<EFBFBD><EFBFBD>憭兌OPS: 7550
PostgreSQL<EFBFBD><EFBFBD>𧋦: 15.0
摮睃<EFBFBD>蝐餃<EFBFBD>: 擃䀹<EFBFBD><EFBFBD>鈭𤑳<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>? 172.17.0.0/16 <20>?<3F>嗅躹: Asia/Shanghai (UTC+8) <20>?```
**撉諹<E69289>嚗?*
- <EFBFBD>?摰硺<E691B0><E7A1BA><EFBFBD><E59786>蛹"餈鞱<E9A488>銝?
- <EFBFBD>?<3F><EFBFBD><E8B3A2>訫歇<E8A8AB><E6AD87>鉄VPC蝵烐挾 (172.17.0.0/16)
- <EFBFBD>?<3F>嗅躹撌脰挽蝵桐蛹 Asia/Shanghai
- <EFBFBD>?<3F>舐輕<E88890>斗𧒄<E69697><EFBFBD>嚗?2:00-06:00嚗<30><E59A97><EFBFBD>渡輕<E6B8A1><EFBFBD>敶勗<E695B6><E58B97>賢予雿輻鍂嚗?
---
### 1.4 <20>𥕦遣OSS摮睃<E691AE>獢塚<E78DA2>10<31><30><EFBFBD>嚗?
**<2A><EFBFBD>嚗?* 摮睃<EFBFBD><EFBFBD><EFBFBD>讃PDF<EFBFBD><EFBFBD>阮隞嗆<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
**<2A>?摰鮋<E691B0>OSS靽⊥<E99DBD><EFBFBD><EFBFBD>函蔡嚗㚁<E59A97>**
```yaml
Bucket<EFBFBD>滨妍: ai-clinical-research
<EFBFBD><EFBFBD>: <EFBFBD>𤾸<EFBFBD>2嚗<EFBFBD><EFBFBD>鈭穿<EFBFBD>
摮睃<EFBFBD>蝐餃<EFBFBD>: <EFBFBD><EFBFBD><EFBFBD>摮睃<EFBFBD>
霂餃<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
摮睃<EFBFBD><EFBFBD>𦯀<EFBFBD>蝐餃<EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>𦯀<EFBFBD>摮睃<EFBFBD>
憭𣇉<EFBFBD>Endpoint: oss-cn-beijing.aliyuncs.com
<EFBFBD><EFBFBD><EFBFBD>Endpoint: oss-cn-beijing-internal.aliyuncs.com
Bucket<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵𡢅<EFBFBD>: ai-clinical-research.oss-cn-beijing-internal.aliyuncs.com
<EFBFBD>𥕦遣<EFBFBD>園𡢿: 2025-12-16 20:22 <20>?霈輸䔮<E8BCB8><EFBFBD>: <EFBFBD><EFBFBD>辣銝滚虾隞亥◤<EFBFBD><EFBFBD>霈輸䔮 <20>?```
**<2A>𩤃<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>撱綽<EFBFBD><EFBFBD><EFBFBD>甇仿炊嚗?*
1. 餈𥕦<E9A488>OSS<53><EFBFBD><E689B9><EFBFBD>https://oss.console.aliyun.com/
2. <20>孵稬<E5ADB5>𣂼<EFBFBD>撱慷ucket<65>?3. 憛怠<E6869B><E680A0>滨蔭嚗?
```yaml
Bucket<EFBFBD>滨妍: ai-clinical-research嚗<68><E59A97><EFBFBD><E69285><EFBFBD>嚗?<3F><EFBFBD>: <EFBFBD>𤾸<EFBFBD>2嚗<EFBFBD><EFBFBD>鈭穿<EFBFBD>
摮睃<EFBFBD>蝐餃<EFBFBD>: <EFBFBD><EFBFBD><EFBFBD>摮睃<EFBFBD>
霂餃<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>霈歹<EFBFBD>
摮睃<EFBFBD><EFBFBD>𦯀<EFBFBD>蝐餃<EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>𦯀<EFBFBD>摮睃<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>𧋦<EFBFBD><EFBFBD>: 銝滚<EFBFBD><EFBFBD>?```
4. **<2A><EFBFBD><E588BB><EFBFBD>𤌍敶閧<E695B6><E996A7>?*嚗<><E59A97><EFBFBD><EFBFBD><E585B6>芸𢆡<E88AB8>𥕦遣嚗㚁<E59A97>
```
asl/ # AI<41><49>讃蝑偦<E89D91>㗇芋<E39787>? <20><EFBFBD><E98EBF><EFBFBD> source/ # <20><EFBFBD>PDF<44><46>
<20><EFBFBD><E5A999><EFBFBD> extracted/ # 閫<><E996AB>蝏𤘪<E89D8F>JSON
pkb/ # 銝芯犖<E88AAF><EFBFBD>摨𤘪芋<F0A498AA>? <20><EFBFBD><E5A999><EFBFBD> documents/ # <20><EFBFBD>摨𤘪<E691A8>獢?dc/ # <20>唳旿皜<E697BF><E79A9C><E79285>
<20><EFBFBD><E98EBF><EFBFBD> raw/ # <20><EFBFBD><E7AC94>唳旿<E594B3><E697BF>
<20><EFBFBD><E5A999><EFBFBD> cleaned/ # 皜<><E79A9C><EFBFBD>𡒊<EFBFBD><F0A1928A>唳旿
```
5. **OSS霈輸䔮<E8BCB8><E494AE><EFBFBD><EFBFBD>滨蔭**
**<2A>?<3F><EFBFBD>A嚗帋蝙<E5B88B>杗ccessKey嚗<79><EFBFBD>𥕦遣嚗峕綫<E5B395>𣂼<EFBFBD><F0A382BC>煺蝙<E785BA><EFBFBD>**
```yaml
RAM<EFBFBD><EFBFBD>: oss-bucket-put-object@1991407246109125.onaliyun.com
AccessKeyId: LTAI5tB2Dt3NdvBL3G7nYGv7
AccessKeySecret: 1iSN9k39RkApP93QjUhC1DcPIeMG4V
<EFBFBD><EFBFBD><EFBFBD>: OSS Bucket<65><EFBFBD><E59D94><EFBFBD><EFBFBD>
```
**<EFBFBD>𩤃<EFBFBD> 摰匧<E691B0>霅血<E99C85>嚗?*
- AccessKey<65><EFBFBD><E88880>煺縑<E785BA><EFBFBD>蝑匧<E89D91>鈭𤾸<E988AD><F0A4BEB8>?- 霂瑕嚉撠<E59A89>ccessKey<65>𣂷漱<F0A382B7>蚣it隞枏<E99A9E>
- <20>芸銁SAE<41><EFBFBD><E887AC><EFBFBD>銝剝<E98A9D>蝵殷<E89DB5>銝滩<E98A9D><E6BBA9><EFBFBD><EFBFBD><E99A9E>
- 摰𡁏<E691B0>頧格揢AccessKey嚗<79>遣霈格<E99C88>3銝芣<E98A9D>嚗?
**<2A><EFBFBD>B嚗帋蝙<E5B88B>沖AM閫坿𠧧嚗<F0A0A7A7><EFBFBD><EFBFBD>鈭抒㴓憓<E3B493><E68693>**
- 餈𥕦<E9A488>RAM<41><EFBFBD><E689B9><EFBFBD>https://ram.console.aliyun.com/
- <20>𥕦遣閫坿𠧧嚗鋫liyunSAEDefaultRole嚗𠄎AE暺䁅恕閫坿𠧧嚗?- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗鋫liyunOSSFullAccess
- 隡睃飵嚗𡁏<E59A97><F0A1818F><EFBFBD>蝞∠<E89D9E>AccessKey嚗峕凒摰匧<E691B0>
**撉諹<E69289>嚗?*
- <20>?Bucket撌脣<E6928C>撱箸<E692B1><E7AEB8>?- <20>?<3F><><EFBFBD>Endpoint嚗䫤oss-cn-beijing-internal.aliyuncs.com`
- <20>?Bucket<65><EFBFBD>嚗䫤ai-clinical-research.oss-cn-beijing-internal.aliyuncs.com`
- <20>?RAM<41><EFBFBD>撌脣<E6928C>撱綽<E692B1>AccessKey撌脩<E6928C><E884A9>?
---
### 1.5 <20>𥕦遣摰孵膥<E5ADB5>𨅯<EFBFBD><F0A885AF>滚𦛚ACR嚗?<3F><><EFBFBD>嚗?
**<2A><EFBFBD>嚗?* 摮睃<E691AE>Docker<65>𨅯<EFBFBD>嚗䔶<E59A97>SAE<41><EFBFBD><E58CA7>函蔡
**<EFBFBD>?摰鮋<E691B0>ACR靽⊥<E99DBD><EFBFBD><EFBFBD>函蔡嚗㚁<E59A97>**
```yaml
<EFBFBD>滚𦛚蝐餃<EFBFBD>: 銝芯犖<E88AAF><E78A96><EFBFBD><EFBFBD>滩晶嚗?<3F><EFBFBD>蝛粹𡢿: ai-clinical
<EFBFBD><EFBFBD><EFBFBD>? gofeng117@163.com
Registry撖<EFBFBD><EFBFBD>: fengzhibo117
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com
銝𤘪<EFBFBD>蝵𤑳<EFBFBD><EFBFBD><EFBFBD>: crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com
# <20>𨅯<EFBFBD>隞枏<E99A9E>嚗?銝迎<E98A9D>
隞枏<EFBFBD>1 - <20>滨垢Nginx:
隞枏<EFBFBD><EFBFBD>滨妍: ai-clinical_frontend-nginx
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx
銝𤘪<EFBFBD>蝵𤑳<EFBFBD><EFBFBD><EFBFBD>: crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx
蝐餃<EFBFBD>: <EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>? <20>?撌脣<E6928C>撱?
隞枏<EFBFBD>2 - Python敺格<E695BA><E6A0BC>?
隞枏<EFBFBD><EFBFBD>滨妍: python-extraction
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/python-extraction
銝𤘪<EFBFBD>蝵𤑳<EFBFBD><EFBFBD><EFBFBD>: crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/python-extraction
蝐餃<EFBFBD>: <EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>? <20>?撌脣<E6928C>撱?
隞枏<EFBFBD>3 - Node.js<6A>𡒊垢:
隞枏<EFBFBD><EFBFBD>滨妍: nodejs-backend
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/nodejs-backend
銝𤘪<EFBFBD>蝵𤑳<EFBFBD><EFBFBD><EFBFBD>: crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/nodejs-backend
蝐餃<EFBFBD>: <EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>? <20>?撌脣<E6928C>撱?```
**<2A>𩤃<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>撱綽<EFBFBD><EFBFBD><EFBFBD>甇仿炊嚗?*
1. 餈𥕦<E9A488>摰孵膥<E5ADB5>𨅯<EFBFBD><F0A885AF>滚𦛚<E6BB9A><EFBFBD><E689B9><EFBFBD>https://cr.console.aliyun.com/
2. <20>㗇𥋘<E39787>𣂷葵鈭箇<E988AD><E7AE87>𡢅<EFBFBD><F0A1A285>滩晶嚗?3. 霈曄蔭Registry撖<79><E69296><EFBFBD>鍂鈭𥮴ocker login嚗?4. <20>𥕦遣<F0A595A6><EFBFBD>蝛粹𡢿嚗䫤ai-clinical`
5. <20>𥕦遣3銝芷<E98A9D><E88AB7><EFBFBD>摨橒<E691A8>蝐餃<E89D90>嚗𡁶<E59A97><F0A181B6><EFBFBD><EFBFBD><E99A9E>皞琜<E79A9E><E7909C>砍𧑐隞枏<E99A9E>嚗?
**撉諹<E69289>嚗?*
- <EFBFBD>?3銝芯<E98A9D>摨枏<E691A8>撱箸<E692B1><E7AEB8>?- <20>?Registry<72><EFBFBD>嚗䫤crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com`
- <EFBFBD>?銝𤘪<E98A9D>蝵𤑳<E89DB5><F0A491B3><EFBFBD>嚗䫤crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com`
**<2A>𩤃<EFBFBD> 摰匧<EFBFBD>霅血<EFBFBD>嚗?*
- Registry撖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>煺縑<EFBFBD><EFBFBD>蝑匧<EFBFBD>鈭𥟠ocker<EFBFBD>𨅯<EFBFBD>霈輸䔮<EFBFBD><EFBFBD><EFBFBD>
- 霂瑕嚉撠<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鈭文<EFBFBD>Git隞枏<EFBFBD>
- 摰𡁏<EFBFBD>頧格揢撖<EFBFBD><EFBFBD><EFBFBD>遣霈格<EFBFBD>3銝芣<EFBFBD>嚗?
---
## 蝚砌<E89D9A><E7A08C>嗆挾嚗𡁏㺭<F0A1818F><EFBFBD><E6A180><EFBFBD><E598A5><EFBFBD>30<33><30><EFBFBD>嚗?
### 2.1 撖澆枂<E6BE86>砍𧑐<E7A08D>唳旿摨橒<E691A8>5<EFBFBD><35><EFBFBD>嚗?
**<2A>冽𧋦<E586BD>圈★<E59C88>格覔<E6A0BC><EFBFBD><E6A180><EFBFBD>嚗?*
```bash
# 蝖桐<E89D96>Docker甇<72>銁餈鞱<E9A488>
docker ps
# 撖澆枂<E6BE86>唳旿摨?docker exec ai-clinical-postgres pg_dump \
-U postgres \
-d ai_clinical_research \
--no-owner \
--no-acl \
--clean \
--if-exists \
> rds_init.sql
# 撉諹<E69289><E8ABB9><EFBFBD>辣憭批<E686AD><EFBFBD><E59A97>霂交<E99C82><E4BAA4>删蓡KB嚗?ls -lh rds_init.sql
```
**撉諹<E69289>嚗?* `rds_init.sql` <20><>辣摮睃銁嚗䔶<E59A97>憭批<E686AD> > 100KB
---
### 2.2 <20><EFBFBD>ECS頝單踎<E596AE><EFBFBD><E7AE84>充DS嚗?5<><35><EFBFBD>嚗?
**<2A>𩤃<EFBFBD> 銝箔<E98A9D><EFBFBD><E98A8B><EFBFBD><EFBFBD>踵㦤嚗?*
- RDS<44>汲PC<50><43><EFBFBD>嚗峕𧋦<E5B395>啁㩞<E59581><EFBFBD>瘜閧凒<E996A7><EFBFBD><E4BAA5>?- <20><><EFBFBD><E996AC><EFBFBD>蚩CS<43>滚𦛚<E6BB9A><EFBFBD>銝?獢交<E78DA2>"
**<EFBFBD><EFBFBD>甇仿炊嚗?*
**<EFBFBD><EFBFBD>A嚗帋蝙<EFBFBD>函緵<EFBFBD><EFBFBD>ify ECS嚗<53><E59A97><EFBFBD>𨅯歇<F0A885AF><EFBFBD>**
頝唾<EFBFBD>ECS<EFBFBD>𥕦遣甇仿炊嚗𣬚凒<EFBFBD>乩蝙<EFBFBD>求ify<EFBFBD><EFBFBD>CS雿靝蛹頝單踎<EFBFBD><EFBFBD>?
**<EFBFBD><EFBFBD>B嚗𡁜<EFBFBD>撱箔葩<EFBFBD>診CS嚗<EFBFBD><EFBFBD>𣂼<EFBFBD><EFBFBD>煺蝙<EFBFBD><EFBFBD>**
1. 餈𥕦<E9A488>ECS<43><EFBFBD><E689B9><EFBFBD><E5A086>𥕦遣<F0A595A6><EFBFBD>隞䁅晶摰硺<E691B0>嚗?
```yaml
<EFBFBD><EFBFBD>: <EFBFBD>𤾸<EFBFBD>2嚗<EFBFBD><EFBFBD>鈭穿<EFBFBD>
<EFBFBD>聢: ecs.t6-c1m1.large嚗?<3F>?GB嚗𡐿?.05/撠𤩺𧒄嚗?<3F>𨅯<EFBFBD>: Ubuntu 22.04
蝵𤑳<EFBFBD>: ai-clinical-vpc (vpc-2ze055cptkew9c38w4r06) / ai-clinical-vswitch-1
摰匧<EFBFBD>蝏? sg-2zedk6fi8sgmmcwdu7tu嚗<75><E59A97>霈?2蝡臬藁SSH嚗?韐凋僭<E5878B>園鵭: <EFBFBD><EFBFBD>隞䁅晶
```
2. <20>冽𧋦<E586BD><EFBFBD>撱搴SH<53><EFBFBD>嚗?
```bash
# <20>踵揢隞乩<E99A9E><E4B9A9><EFBFBD>㺭嚗?# - ECS_PUBLIC_IP: ECS<43><53><EFBFBD>蝵飡P
ssh -N -L 5433:pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432 \
root@ECS_PUBLIC_IP
# 颲枏<E9A2B2>ECS撖<53><E69296>嚗峕<E59A97><E5B395><EFBFBD><E7AC94>賭誘隡?<3F><EFBFBD>"嚗<>迤撣貊緵鞊∴<E99E8A>
# 靽脲<E99DBD>餈嗘葵蝏<E891B5>垢蝒堒藁<E5A092><EFBFBD>
```
**撉諹<E69289>嚗?* <20><EFBFBD><E69E8F><EFBFBD>蝡荔<E89DA1><E88D94><EFBFBD>嚗?
```bash
# 瘚贝<E7989A>RDS餈墧𦻖嚗<F0A6BB96><E59A97><EFBFBD>SSH<53><EFBFBD>嚗?psql -h localhost -p 5433 -U airesearch -d ai_clinical_research
# 颲枏<E9A2B2><EFBFBD><E69296>嚗䧥ibahe@fengzhibo117
# 憒<><E68692><EFBFBD>𣂼<EFBFBD>餈墧𦻖嚗諹秩<E8ABB9>𡡞银<F0A1A19E>枏歇撱箇<E692B1>
```
---
### 2.3 撖澆<E69296><E6BE86>唳旿<E594B3>訌DS嚗?0<><30><EFBFBD>嚗?
**<2A>冽鰵蝏<E9B0B5>垢蝒堒藁<E5A092><EFBFBD>嚗?*
```bash
# 撖澆<E69296><E6BE86>唳旿嚗<E697BF><E59A97><EFBFBD>SSH<53><EFBFBD>嚗?psql -h localhost -p 5433 \
-U airesearch \
-d ai_clinical_research \
-f rds_init.sql
# 颲枏<E9A2B2><EFBFBD><E69296>嚗䧥ibahe@fengzhibo117
# 撉諹<E69289>撖澆<E69296><E6BE86>𣂼<EFBFBD>
psql -h localhost -p 5433 \
-U airesearch \
-d ai_clinical_research \
-c "\dt platform_schema.*"
# 摨磰砲<E7A3B0><EFBFBD> platform_schema 銝讠<E98A9D>銵?```
**撉諹<E69289>嚗?*
- <20><EFBFBD> `platform_schema.users` 銵?- <20><EFBFBD> `aia_schema.*` 銵?- <20><EFBFBD> `_prisma_migrations` 銵?
**<2A>𩤃<EFBFBD> <20><EFBFBD>嚗?* pg-boss<73>?銝芾”嚗àob/queue蝑㚁<E89D91>銝滚銁撖澆枂<E6BE86><E69E82>辣銝哨<E98A9D>隡𡁜銁摨𠉛鍂擐𡝗活<F0A19D97>臬𢆡<E887AC>嗉䌊<E59789><EFBFBD>撱箝<E692B1>?
---
## 蝚砌<E89D9A><E7A08C>嗆挾嚗鋽ocker<65>𨅯<EFBFBD><F0A885AF><EFBFBD>遣銝擧綫<E693A7><E7B6AB><EFBFBD>60<36><30><EFBFBD>嚗?
### 3.1 <20><EFBFBD><E9A483><EFBFBD>鈭穃捆<E7A983><EFBFBD><E588B8>𤩺<EFBFBD><F0A4A9BA>?
**<2A>冽𧋦<E586BD><EFBFBD>蝡舀<E89DA1>銵䕘<E98AB5>**
```bash
# <20><EFBFBD>ACR銝芯犖<E88AAF><E78A96><EFBFBD>雿輻鍂<E8BCBB><EFBFBD>靽⊥<E99DBD>嚗?docker login --username=gofeng117@163.com crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com
# 颲枏<E9A2B2><EFBFBD><E69296>嚗餎engzhibo117
# <20><EFBFBD> "Login Succeeded" 銵函內<E587BD><EFBFBD><E9A483>𣂼<EFBFBD>
```
**<EFBFBD>𩤃<EFBFBD> 瘜冽<E7989C>鈭钅★嚗?*
- 銝芯犖<E88AAF><E78A96><EFBFBD>刻䌊摰帋<E691B0><E5B88B><EFBFBD>嚗䔶<E59A97><E494B6><EFBFBD><E88880><EFBFBD><EFBFBD> `registry.cn-beijing.aliyuncs.com`
- <20><EFBFBD><E586BD><EFBFBD>`gofeng117@163.com`<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝞勗𧑐<EFBFBD><EFBFBD>嚗?- 撖<><E69296>嚗䫤fengzhibo117`嚗㇌egistry撖<79><E69296>嚗䔶<E59A97><E494B6>舫燵<E888AB><EFBFBD>韐血噡撖<E599A1><E69296>嚗?
---
### 3.2 <20><>遣Python敺格<E695BA><E6A0BC><EFBFBD><E28ABF>𧶏<EFBFBD>15<31><35><EFBFBD>嚗?
**<2A>券★<E588B8>格覔<E6A0BC><EFBFBD><E6A180><EFBFBD>嚗?*
```bash
cd extraction_service
# <20><><EFBFBD>𨅯<EFBFBD><EFBFBD>靽𨌯ockerfile摮睃銁嚗?docker build -t ai-clinical/python-extraction:v1.0.0 .
# <20>𤘪<EFBFBD>蝑橘<E89D91>雿輻鍂<E8BCBB><EFBFBD>ACR<43><EFBFBD>嚗?docker tag ai-clinical/python-extraction:v1.0.0 \
crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/python-extraction:v1.0.0
docker tag ai-clinical/python-extraction:v1.0.0 \
crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/python-extraction:latest
# <20><EFBFBD><E588B8><EFBFBD>ACR
docker push crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/python-extraction:v1.0.0
docker push crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/python-extraction:latest
cd ..
```
**撉諹<E69289>嚗?*
- <20>杗CR<43><EFBFBD><E689B9><EFBFBD><E59581><EFBFBD><E59C88>𧶏<EFBFBD><F0A7B68F><EFBFBD>倌銝?`v1.0.0` <20>?`latest`
- <20>𨅯<EFBFBD><F0A885AF><EFBFBD>嚗䫤crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/python-extraction:v1.0.0`
---
### 3.3 <20><>遣Node.js<6A>𡒊垢<F0A1928A>𨅯<EFBFBD>嚗?0<><30><EFBFBD>嚗?
**<2A>𩤃<EFBFBD> <20><EFBFBD><E6BBA9>滨蔭甇仿炊嚗𡁜<E59A97><F0A1819C>賀risma<6D><EFBFBD>**
```bash
# <20>券★<E588B8>格覔<E6A0BC><EFBFBD><E6A180><EFBFBD>
cp -r prisma backend/
# 撉諹<E69289>
ls backend/prisma/schema.prisma # 摨磰砲摮睃銁
```
**<EFBFBD><EFBFBD><EFBFBD>𨅯<EFBFBD>嚗?*
```bash
cd backend
# <20><><EFBFBD>𨅯<EFBFBD>
docker build -t ai-clinical/nodejs-backend:v1.0.0 .
# <20>𤘪<EFBFBD>蝑曉僎<E69B89><EFBFBD><E588B8><EFBFBD>雿輻鍂<E8BCBB><EFBFBD>ACR<43><EFBFBD>嚗?docker tag ai-clinical/nodejs-backend:v1.0.0 \
crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/nodejs-backend:v1.0.0
docker tag ai-clinical/nodejs-backend:v1.0.0 \
crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/nodejs-backend:latest
docker push crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/nodejs-backend:v1.0.0
docker push crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/nodejs-backend:latest
cd ..
```
**撉諹<E69289>嚗?*
- ACR<43><EFBFBD><E689B9><EFBFBD><E59581>衹ode.js<6A>𨅯<EFBFBD>
- <20>𨅯<EFBFBD><F0A885AF><EFBFBD>嚗䫤crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/nodejs-backend:v1.0.0`
---
### 3.4 <20><><EFBFBD>滨垢Nginx<6E>𨅯<EFBFBD>嚗?5<><35><EFBFBD>嚗?
**<2A>券★<E588B8>格覔<E6A0BC><EFBFBD><E6A180><EFBFBD>嚗?*
```bash
cd frontend-v2
# <20><><EFBFBD>𨅯<EFBFBD><EFBFBD><E59A97><EFBFBD>俘eact<63><74>遣 + Nginx<6E><EFBFBD>嚗?docker build -t ai-clinical/frontend-nginx:v1.0.0 .
# <20>𤘪<EFBFBD>蝑曉僎<E69B89><EFBFBD><E588B8><EFBFBD>雿輻鍂<E8BCBB><EFBFBD>ACR<43><EFBFBD>嚗峕釣<E5B395><EFBFBD>摨枏<E691A8>蝘啣蒂銝见<E98A9D>蝥選<E89DA5>
docker tag ai-clinical/frontend-nginx:v1.0.0 \
crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v1.0.0
docker tag ai-clinical/frontend-nginx:v1.0.0 \
crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:latest
docker push crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v1.0.0
docker push crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:latest
cd ..
```
**<EFBFBD>𩤃<EFBFBD> 瘜冽<E7989C>嚗?* <20>滨垢隞枏<E99A9E><E69E8F>滨妍<E6BBA8>?`ai-clinical_frontend-nginx`<EFBFBD>蒂銝见<EFBFBD>蝥選<EFBFBD>嚗䔶<EFBFBD><EFBFBD>𡒊垢銝滚<EFBFBD><EFBFBD>?
**撉諹<E69289>嚗?*
- ACR<43><EFBFBD><E689B9><EFBFBD><E59581>?銝芷<E98A9D><E88AB7><EFBFBD>摨橒<E691A8>瘥譍葵<E8AD8D><EFBFBD> `v1.0.0` <20>?`latest` <20><>
- <20>滨垢<E6BBA8>𨅯<EFBFBD><F0A885AF><EFBFBD>嚗䫤crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v1.0.0`
---
## 蝚砍<E89D9A><E7A08D>嗆挾嚗锭AE摨𠉛鍂<F0A0899B>函蔡嚗?0<><30><EFBFBD>嚗?
### 4.1 <20>函蔡Python敺格<E695BA><E6A0BC><EFBFBD>15<31><35><EFBFBD>嚗?
**<2A><EFBFBD>甇仿炊嚗?*
1. 餈𥕦<E9A488>SAE<41><EFBFBD><E689B9><EFBFBD>https://sae.console.aliyun.com/
2. <20>孵稬<E5ADB5>𣂼<EFBFBD>撱箏<E692B1><E7AE8F><EFBFBD>?3. <20><EFBFBD><E7AE87>滨蔭嚗?
```yaml
摨𠉛鍂<EFBFBD>滨妍: python-extraction-service
<EFBFBD><EFBFBD>蝛粹𡢿: cn-beijing:test-airesearch嚗<68><EFBFBD>𥕦遣嚗?<3F><EFBFBD>: <EFBFBD>𤾸<EFBFBD>2嚗<EFBFBD><EFBFBD>鈭穿<EFBFBD>
VPC: ai-clinical-vpc (vpc-2ze055cptkew9c38w4r06)
摰匧<EFBFBD>蝏? sg-2zedk6fi8sgmmcwdu7tu
```
4. 摨𠉛鍂<F0A0899B>滨蔭嚗?
```yaml
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 摰孵膥<EFBFBD>𨅯<EFBFBD>
<EFBFBD>𨅯<EFBFBD>: crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/python-extraction:v1.0.0
<EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD>蝑𣇉裦: Always嚗<73><E59A97><EFBFBD><E996AC>嚗?<3F><>𧋦: v1.0.0
```
**<EFBFBD>𩤃<EFBFBD> <20><EFBFBD>嚗?* 雿輻鍂銝芯犖<E88AAF>㇁CR<43><EFBFBD>嚗䔶<E59A97><E494B6><EFBFBD><E88880><EFBFBD><EFBFBD> `registry.cn-beijing.aliyuncs.com`
5. 摨𠉛鍂摰硺<E691B0>嚗?
```yaml
CPU: 1<>?<3F><><EFBFBD>: 2GB
摰硺<EFBFBD><EFBFBD>? 1
```
6. 擃条漣<E69DA1>滨蔭嚗?
```yaml
蝡臬藁: 8000
<EFBFBD>亙熒璉<EFBFBD><EFBFBD>? HTTP
- 頝臬<EFBFBD>: /health
- <EFBFBD><EFBFBD>撱嗉<EFBFBD>: 30蝘? - 頞<>𧒄: 3蝘? - 璉<><E79289>仿𡢿<E4BBBF>? 5蝘?
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD>嗡蛹蝛綽<EFBFBD>Python敺格<EFBFBD><EFBFBD>⊥糓蝥航恣蝞埈<EFBFBD><EFBFBD><EFBFBD>
```
7. <20>孵稬<E5ADB5>𣂼<EFBFBD>撱箝<E692B1>𡢅<EFBFBD>蝑匧<E89D91><E58CA7>函蔡嚗<E894A1>漲5<E6BCB2><35><EFBFBD>嚗?
**撉諹<E69289>嚗?*
- 摨𠉛鍂<F0A0899B><EFBFBD><E59786>蛹"餈鞱<E9A488>銝?
- <20>亙熒璉<E78692><E79289>仿<EFBFBD><EFBFBD>
- 霈啣<E99C88><E595A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>聢撘𧶏<E69298>`172.17.x.x:8000`嚗?
---
### 4.2 <20>函蔡Node.js<6A>𡒊垢嚗?0<><30><EFBFBD>嚗?
**<2A><EFBFBD>甇仿炊嚗?*
1. <20>𥕦遣<F0A595A6><EFBFBD><E595A3><EFBFBD>`nodejs-backend-service`
2. 摨𠉛鍂<F0A0899B>滨蔭嚗?
```yaml
<EFBFBD>𨅯<EFBFBD>: crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/nodejs-backend:v1.0.0
<EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD>蝑𣇉裦: Always
CPU: 2<>?<3F><><EFBFBD>: 4GB
摰硺<EFBFBD><EFBFBD>? 1
蝡臬藁: 3001
```
**<EFBFBD>𩤃<EFBFBD> <20><EFBFBD>嚗?* 雿輻鍂銝芯犖<E88AAF>㇁CR<43><EFBFBD>
3. **<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滨蔭嚗<EFBFBD><EFBFBD>潃鐥<EFBFBD>潃鐥<EFBFBD> <20><EFBFBD>嚗㚁<E59A97>**
```bash
# ==================== <20>唳旿摨㯄<E691A8>蝵?====================
# <20>𩤃<EFBFBD> 瘜冽<E7989C>嚗𡁜<E59A97><F0A1819C><EFBFBD><EFBFBD>?@ 蝚血噡敹<E599A1>◆頧砌<E9A0A7>銝?%40
DATABASE_URL=postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research
# <20>?撌脖蝙<E88496><EFBFBD><E585B8><EFBFBD>DS靽⊥<E99DBD><EFBFBD><E59A97><EFBFBD><EFBFBD>歇頧砌<E9A0A7>嚗?
# ==================== 摮睃<E691AE><E79D83>滨蔭 ====================
STORAGE_TYPE=oss
OSS_REGION=oss-cn-beijing
OSS_BUCKET=ai-clinical-research
OSS_ENDPOINT=oss-cn-beijing-internal.aliyuncs.com
# <20>?OSS<53>滨蔭撌脖蝙<E88496><EFBFBD><E585B8><EFBFBD>ucket靽⊥<E99DBD>
# Bucket<65><EFBFBD>: ai-clinical-research.oss-cn-beijing-internal.aliyuncs.com
# OSS霈輸䔮<E8BCB8><EFBFBD><EFBFBD>䲮獢㇁嚗帋蝙<E5B88B>杗ccessKey嚗?OSS_ACCESS_KEY_ID=LTAI5tB2Dt3NdvBL3G7nYGv7
OSS_ACCESS_KEY_SECRET=1iSN9k39RkApP93QjUhC1DcPIeMG4V
# <20>𩤃<EFBFBD> 瘜冽<E7989C>嚗鋫ccessKey<65><EFBFBD><E88880>煺縑<E785BA><EFBFBD>霂瑕嚉<E79195>𣂷漱<F0A382B7>蚣it嚗?
# OSS霈輸䔮<E8BCB8><EFBFBD><EFBFBD>䲮獢㇂嚗帋蝙<E5B88B>沖AM閫坿𠧧嚗峕凒摰匧<E691B0>嚗?# <20>沒AE<41><EFBFBD><E689B9><EFBFBD>蝵娜AM閫坿𠧧嚗鋫liyunSAEDefaultRole
# 隡睃飵嚗𡁏<E59A97><F0A1818F><EFBFBD><EFBFBD>函㴓憓<E3B493><E68693><EFBFBD>譍葉<E8AD8D>滨蔭AccessKey
# ==================== 敺格<E695BA><E6A0BC>𧑐<E288AA><F0A79190> ====================
EXTRACTION_SERVICE_URL=http://172.17.x.x:8000
# <20>𩤃<EFBFBD> <20>踵揢嚗?72.17.x.x嚗<78><E59A97>Python敺格<E695BA><E6A0BC>⊥綉<E28AA5>嗅蝱<E59785><EFBFBD><E79195><EFBFBD><EFBFBD>IP嚗?
DIFY_API_URL=http://placeholder/v1
DIFY_API_KEY=temp_placeholder
# <20>𩤃<EFBFBD> <20><><EFBFBD><EFBFBD>函蔡Dify嚗䔶蝙<E494B6><EFBFBD>雿滨泵嚗㇊KB璅<E79285>隡朞䌊<E69C9E><EFBFBD><E587BD><EFBFBD>
# ==================== LLM<4C>滨蔭 ====================
DEEPSEEK_API_KEY=sk-xxxxxxxx
# <20>𩤃<EFBFBD> <20>踵揢銝箇<E98A9D>摰䂿<E691B0>DeepSeek API Key
# ==================== 摨𠉛鍂<F0A0899B>滨蔭 ====================
NODE_ENV=production
PORT=3001
```
4. **<EFBFBD>臬𢆡<EFBFBD>賭誘嚗<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗㚁<EFBFBD>**
```bash
/bin/sh -c "npx prisma migrate deploy && node dist/index.js"
```
**<EFBFBD>𩤃<EFBFBD> 霂湔<E99C82>嚗?*
- `npx prisma migrate deploy`嚗𡁻<EFBFBD>蝵脫㺭<EFBFBD><EFBFBD><EFBFBD>
- `node dist/index.js`嚗𡁜鍳<EFBFBD><EFBFBD><EFBFBD>?
5. <20>亙熒璉<E78692><E79289><EFBFBD>
```yaml
頝臬<EFBFBD>: /health
<EFBFBD><EFBFBD>撱嗉<EFBFBD>: 60蝘𡜐<E89D98><F0A19C90>蹱𧒄<E8B9B1><EFBFBD>Prisma餈<61>宏嚗?頞<>𧒄: 5蝘?```
6. <20>孵稬<E5ADB5>𣂼<EFBFBD>撱箝<E692B1>𡢅<EFBFBD>蝑匧<E89D91><E58CA7>函蔡嚗<E894A1>漲10<31><30><EFBFBD>嚗?
**撉諹<E69289>嚗?*
- <EFBFBD><EFBFBD>"摰墧𧒄<E5A2A7><EFBFBD>"嚗𣬚<E59A97><F0A3AC9A><EFBFBD>
```
<EFBFBD>?Prisma migrate deploy 摰峕<E691B0>
<EFBFBD>?pg-boss <20>芸𢆡<E88AB8>𥕦遣6銝芾”
<EFBFBD>?摨𠉛鍂<F0A0899B>臬𢆡<E887AC>𣂼<EFBFBD>嚗𣬚<E59A97><F0A3AC9A>?0.0.0.0:3001
```
- <EFBFBD>亙熒璉<EFBFBD><EFBFBD>仿<EFBFBD><EFBFBD>
- 霈啣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>聢撘𧶏<EFBFBD>`172.17.x.x:3001`嚗?
**<2A>𩤃<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>臬𢆡憭梯揖嚗?*
撣貉<EFBFBD><EFBFBD><EFBFBD>嚗?1. DATABASE_URL<52>躰秤 <20>?璉<><E79289><EFBFBD><E4BA99><EFBFBD><EFBFBD><EFBFBD>DS<44><EFBFBD>
- 敶枏<EFBFBD>RDS嚗䮝gm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com
- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>airesearch
- <EFBFBD><EFBFBD>銝剜<EFBFBD><EFBFBD><EFBFBD>摮㛖泵@嚗𪄇RL銝剝<E98A9D><EFBFBD>蓮銋劐蛹 %40
2. <20><EFBFBD><E8B3A2>閙𧊋<E99699>滨蔭 <20>?<3F>?撌脩霈日<E99C88>蝵殷<E89DB5>172.17.0.0/16
3. Prisma餈<61>宏憭梯揖 <20>?<3F><EFBFBD><E4BAA6><EFBFBD>嚗𣬚霈斗㺭<E69697><EFBFBD><E6A180><EFBFBD><EFBFBD>
**<2A>𩤃<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>摮㛖泵頧砌<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?*
```bash
# <20><EFBFBD><EFBFBD><E69296>嚗䧥ibahe@fengzhibo117
# @ 蝚血噡<E8A180><E599A1><EFBFBD>蓮銋劐蛹 %40
# <20>躰秤<E8BAB0><EFBFBD><EFBFBD><E59A97>撖潸稲餈墧𦻖憭梯揖嚗㚁<E59A97>
DATABASE_URL=postgresql://airesearch:Xibahe@fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research
# 甇<><EFBFBD><EFBFBD>嚗?DATABASE_URL=postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research
```
---
### 4.3 <20>函蔡<E587BD>滨垢Nginx嚗?5<><35><EFBFBD>嚗?
**<2A><EFBFBD>甇仿炊嚗?*
1. <20>𥕦遣<F0A595A6><EFBFBD><E595A3><EFBFBD>`frontend-nginx`
2. 摨𠉛鍂<F0A0899B>滨蔭嚗?
```yaml
<EFBFBD>𨅯<EFBFBD>: crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v1.0.0
<EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD>蝑𣇉裦: Always
CPU: 1<>?<3F><><EFBFBD>: 2GB
摰硺<EFBFBD><EFBFBD>? 1
蝡臬藁: 80
```
**<EFBFBD>𩤃<EFBFBD> <20><EFBFBD>嚗?*
- 雿輻鍂銝芯犖<E88AAF>㇁CR<43><EFBFBD>
- 瘜冽<E7989C>隞枏<E99A9E><E69E8F>滨妍<E6BBA8>?`ai-clinical_frontend-nginx`<EFBFBD>蒂銝见<EFBFBD>蝥選<EFBFBD>
3. **<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滨蔭嚗?*
```bash
# <20>𡒊垢<F0A1928A>滚𦛚<E6BB9A><EFBFBD><EFBFBD><E59A97>蝵𡢅<E89DB5>
BACKEND_SERVICE_HOST=172.17.x.x
BACKEND_SERVICE_PORT=3001
# <20>𩤃<EFBFBD> <20>踵揢嚗?72.17.x.x嚗<78><E59A97>Node.js<6A>𡒊垢<F0A1928A><EFBFBD><E689B9>啗繮<E59597><EFBFBD>蝵飡P嚗?```
4. <20>亙熒璉<E78692><E79289><EFBFBD>
```yaml
頝臬<EFBFBD>: /health
<EFBFBD><EFBFBD>撱嗉<EFBFBD>: 10蝘?頞<>𧒄: 3蝘?```
5. **<2A>滨蔭<E6BBA8><EFBFBD>霈輸䔮嚗<E494AE><E59A97><EFBFBD><E996AC>嚗㚁<E59A97>**
- <20><EFBFBD><E585B8>刻祕<E588BB>?<3F>?<3F>箸𧋦靽⊥<E99DBD> <20>?<3F><EFBFBD>霈輸䔮
- <20>孵稬<E5ADB5>𣂼<EFBFBD><F0A382BC><EFBFBD>? - <20><EFBFBD><E79195><EFBFBD><E7A589><EFBFBD><EFBFBD>聢撘𧶏<E69298>`xxxx.cn-beijing.alicontainer.com`嚗?
6. <20>孵稬<E5ADB5>𣂼<EFBFBD>撱箝<E692B1>𡢅<EFBFBD>蝑匧<E89D91><E58CA7>函蔡嚗<E894A1>漲5<E6BCB2><35><EFBFBD>嚗?
**撉諹<E69289>嚗?*
- 摨𠉛鍂<F0A0899B><EFBFBD><E59786>"餈鞱<E9A488>銝?
- <20><EFBFBD><E69C9E><EFBFBD><E7A589><EFBFBD>霈輸䔮嚗𣬚<E59A97><F0A3AC9A>啁蒈敶閖△<E99696>?
---
## 蝚砌<E89D9A><E7A08C>嗆挾嚗𡁻<E59A97><EFBFBD><E99C82>瘚贝<E7989A>嚗?0<><30><EFBFBD>嚗?
### 5.1 <20>亙熒璉<E78692><E79289>仿<EFBFBD><EFBFBD><E99C82>5<EFBFBD><35><EFBFBD>嚗?
**Python敺格<E695BA><E6A0BC><EFBFBD>**
```bash
# <20>冽𧋦<E586BD><EFBFBD>蝡舀<E89DA1>銵䕘<E98AB5><E49598>踵揢銝箏<E98A9D><E7AE8F><EFBFBD><EFBFBD>蝵穃𧑐<E7A983><F0A79190><EFBFBD><E59A97><EFBFBD>𨅯<EFBFBD><F0A885AF><EFBFBD>嚗?# <20><EFBFBD><EFBFBD>Node.js<6A>𡒊垢<F0A1928A>湔𦻖撉諹<E69289>
# <20>湔𦻖瘚贝<E7989A><EFBFBD><E59A97><EFBFBD>憕ython撘<6E><E69298><EFBFBD><E887AD><EFBFBD>嚗?curl http://python-service-public-url/health
# 憸<><E686B8><EFBFBD><EFBFBD>嚗?{"status":"healthy"}
```
**Node.js<6A>𡒊垢嚗?*
```bash
curl http://backend-public-url/health
# 憸<><E686B8><EFBFBD><EFBFBD>嚗?{"status":"ok","database":"connected","timestamp":"..."}
```
**<EFBFBD>滨垢Nginx嚗?*
```bash
curl http://frontend-public-url/health
# 憸<><E686B8><EFBFBD><EFBFBD>嚗?{"status":"ok"}
```
---
### 5.2 <20><EFBFBD>瘚贝<E7989A>嚗?5<><35><EFBFBD>嚗?
#### 5.2.1 <20><EFBFBD><E586BD><EFBFBD>瘚贝<E7989A>
1. 霈輸䔮<E8BCB8>滨垢<E6BBA8><EFBFBD><E7A589><EFBFBD>嚗䫤http://xxxxx.cn-beijing.alicontainer.com`
2. 雿輻鍂瘚贝<E7989A>韐血噡<E8A180><EFBFBD>嚗? - 韐血噡嚗䫤admin@test.com`
-<><E69296>嚗䫤admin123`嚗<><E59A97>雿䭾𧋦<E4ADBE>唳㺭<E594B3><EFBFBD>銝剔<E98A9D><EFBFBD><E69296>嚗?3. 撉諹<E69289>嚗𡁏<E59A97><F0A1818F>蠘歲頧砍<E9A0A7>銝駁△嚗峕遬蝷箇鍂<E7AE87><EFBFBD>
#### 5.2.2 <20><>讃蝑偦<E89D91><EFBFBD>霂𤏪<E99C82>ASL璅<E79285>嚗?
1. 餈𥕦<E9A488><F0A595A6>𨀂I<F0A88082><EFBFBD><E7AE84><EFBFBD><EFBFBD>烐芋<E78390>?2. <20>𥕦遣<F0A595A6>圈★<E59C88><EFBFBD>
```yaml
憿寧𤌍<E5AFA7>滨妍: 瘚贝<E7989A>憿寧𤌍
<20>𠉛弦銝駁<E98A9D>: 蝟硋倏<E7A18B><E5808F><EFBFBD>? ```
3. 銝𠹺<E98A9D>瘚贝<E7989A><E8B49D><EFBFBD>讃嚗<E8AE83><E59A97><EFBFBD><EFBFBD>辣嚗? 5MB嚗?4. 撉諹<E69289>嚗? - <20><>辣銝𠹺<E98A9D><F0A0B9BA>記SS<53>𣂼<EFBFBD>
- <20>𡒊垢靚<E59EA2>鍂Python<6F>滚𦛚閫<F0A69B9A><E996AB>PDF
- <20>唳旿摨㮖葉<E3AE96><E89189><EFBFBD>霈啣<E99C88>
#### 5.2.3 <20>唳旿皜<E697BF><E79A9C>瘚贝<E7989A>嚗㇄C璅<E79285>嚗?
1. 餈𥕦<E9A488><F0A595A6>鞉㺭<E99E89><EFBFBD>瘣𨰜<E798A3>烐芋<E78390>?2. 銝𠹺<E98A9D>瘚贝<E7989A>Excel<65><6C>
3. 撉諹<E69289>嚗? - OSS銝𠹺<E98A9D><F0A0B9BA>𣂼<EFBFBD>
- Python<6F>滚𦛚憭<F0A69B9A><E686AD><EFBFBD>唳旿
- 銝贝蝸皜<E89DB8><E79A9C>蝏𤘪<E89D8F>
---
### 5.3 <20><EFBFBD><E4BA99>埝䰻嚗?0<><30><EFBFBD>嚗?
#### <20><EFBFBD>SAE摰墧𧒄<E5A2A7><EFBFBD>
**Python敺格<E695BA><E6A0BC><EFBFBD>**
```
SAE<EFBFBD><EFBFBD><EFBFBD>?<3F>?python-extraction-service <20>?<3F><EFBFBD> <20>?摰墧𧒄<E5A2A7><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>臬炏<EFBFBD><EFBFBD>霂舀𠯫敹梹<EFBFBD>ERROR/WARN嚗?```
**Node.js<6A>𡒊垢嚗?*
```
SAE<EFBFBD><EFBFBD><EFBFBD>?<3F>?nodejs-backend-service <20>?<3F><EFBFBD> <20>?摰墧𧒄<E5A2A7><EFBFBD>
<EFBFBD>喲睸<EFBFBD><EFBFBD>嚗?<3F>?Prisma connected
<EFBFBD>?pg-boss started
<EFBFBD>?Server listening on 0.0.0.0:3001
```
**<2A>滨垢Nginx嚗?*
```
SAE<EFBFBD><EFBFBD><EFBFBD>?<3F>?frontend-nginx <20>?<3F><EFBFBD> <20>?霈輸䔮<E8BCB8><EFBFBD>
<EFBFBD><EFBFBD>HTTP霂瑟<EFBFBD><EFBFBD><EFBFBD>嚗?00/404/500<30><EFBFBD><E59786><EFBFBD>嚗?```
---
## <20>辶 撣貉<E692A3><E8B289><EFBFBD>銝舘圾<E88898>單䲮獢?
### <20><EFBFBD>1嚗𡁜<E59A97>蝡舀<E89DA1>瘜閗<E7989C><E99697>交㺭<E4BAA4><EFBFBD>
**<2A><>𠶖嚗?* Node.js<6A><EFBFBD><E4BA99>曄內 `connection timeout` <20>?`FATAL: no pg_hba.conf entry`
**閫<><E996AB><EFBFBD><EFBFBD>嚗?*
1. 璉<><E79289>充DS<44><EFBFBD><E8B3A2>𤏪<EFBFBD>
```
RDS<44><EFBFBD><E689B9>?<3F>?<3F>唳旿摰匧<E691B0><E58CA7>?<3F>?<3F><EFBFBD><E8B3A2>閗挽蝵? 蝖桐<E89D96><E6A190><EFBFBD>鉄嚗?72.17.0.0/16嚗ĀPC蝵烐挾嚗? ```
2. 璉<><E79289>主ATABASE_URL嚗? ```bash
# <20>?甇<><EFBFBD><EFBFBD><EFBFBD>鸌畾𠰴<E795BE>蝚血歇頧砌<E9A0A7>嚗㚁<E59A97>
postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research
# 撣貉<E692A3><E8B289>躰秤嚗? - 撖<><E69296>銝剔<E98A9D> @ 蝚血噡<E8A180>芾蓮銋劐蛹 %40嚗<30><E59A97>撣貉<E692A3><EFBFBD><E59A97>
- RDS<44><EFBFBD><E595A3>躰秤嚗<E7A7A4><E59A97>霂亦鍂<E4BAA6><E98D82><EFBFBD><EFBFBD><EFBFBD>嚗? - <20>唳旿摨枏<E691A8>蝘圈<E89D98>霂?
# <20><EFBFBD>摮㛖泵頧砌<E9A0A7><EFBFBD><E996AB>嚗? @ -> %40
# -> %23
$ -> %24
% -> %25
```
---
### <20><EFBFBD>2嚗𡁜<E59A97>蝡航<E89DA1><E888AA>沌ython敺格<E695BA><E6A0BC><EFBFBD><E2889F>?
**<2A><>𠶖嚗?* <20><EFBFBD><E4BA99>曄內 `ECONNREFUSED` <20>?`timeout`
**閫<><E996AB><EFBFBD><EFBFBD>嚗?*
1. 璉<><E79289>仙ython敺格<E695BA><E6A0BC><EFBFBD>蝵穃𧑐<E7A983><F0A79190>嚗? ```
SAE<41><EFBFBD><E689B9>?<3F>?python-extraction-service <20>?<3F>箸𧋦靽⊥<E99DBD> <20>?<3F><><EFBFBD><EFBFBD><EFBFBD>
憭滚<E686AD>IP<49><EFBFBD><EFBFBD>聢撘𧶏<E69298>172.17.x.x嚗? ```
2. <20>湔鰵Node.js<6A>𡒊垢<F0A1928A><EFBFBD><E887AC><EFBFBD>嚗? ```bash
EXTRACTION_SERVICE_URL=http://172.17.x.x:8000
```
3. <20>滚鍳Node.js<6A>𡒊垢摨𠉛鍂
---
### <20><EFBFBD>3嚗𡁜<E59A97>蝡航<E89DA1><E888AA><EFBFBD>蝡?04
**<2A><>𠶖嚗?* 瘚讛<E7989A><E8AE9B>冽綉<E586BD>嗅蝱<E59785>曄內 `/api/xxx 404`
**閫<><E996AB><EFBFBD><EFBFBD>嚗?*
1. 璉<><E79289><EFBFBD>蝡舐㴓憓<E3B493><E68693><EFBFBD>𧶏<EFBFBD>
```bash
# 蝖株恕 BACKEND_SERVICE_HOST <20>烤ode.js<6A><73><EFBFBD>蝵飡P
BACKEND_SERVICE_HOST=172.17.x.x
BACKEND_SERVICE_PORT=3001
```
2. 璉<><E79289>代ginx<6E>滨蔭嚗<E894AD><EFBFBD><E6AD87><EFBFBD><EFBFBD><E588B8>譍葉嚗㚁<E59A97>
```nginx
location /api/ {
proxy_pass http://${BACKEND_SERVICE_HOST}:${BACKEND_SERVICE_PORT};
}
```
3. <20>滚鍳<E6BB9A>滨垢摨𠉛鍂
---
### <20><EFBFBD>4嚗𡁏<E59A97>隞嗡<E99A9E>隡惩<E99AA1>OSS憭梯揖
**<2A><>𠶖嚗?* 銝𠹺<E98A9D><F0A0B9BA><EFBFBD><EFBFBD>嗆𥁒<E59786>?`OSS access denied`
**閫<><E996AB><EFBFBD><EFBFBD>嚗?*
1. **<2A><EFBFBD>A嚗帋蝙<E5B88B>杗ccessKey嚗<79><EFBFBD>滨蔭嚗?*
```bash
# 蝖株恕Node.js<6A>𡒊垢<F0A1928A><EFBFBD><E887AC><EFBFBD>撌脤<E6928C>蝵殷<E89DB5>
OSS_ACCESS_KEY_ID=LTAI5tB2Dt3NdvBL3G7nYGv7
OSS_ACCESS_KEY_SECRET=1iSN9k39RkApP93QjUhC1DcPIeMG4V
```
**撉諹<E69289><E8ABB9><EFBFBD>嚗?*
- SAE<41><EFBFBD><E689B9>?<3F>?nodejs-backend-service <20>?摨𠉛鍂霈曄蔭 <20>?<3F><EFBFBD><E887AC><EFBFBD>
- 璉<><E79289>交糓<E4BAA4><EFBFBD><E8A180>?`OSS_ACCESS_KEY_ID` <20>?`OSS_ACCESS_KEY_SECRET`
2. **<2A><EFBFBD>B嚗帋蝙<E5B88B>沖AM閫坿𠧧嚗<F0A0A7A7><EFBFBD><EFBFBD>鈭抒㴓憓<E3B493><E68693>**
```
SAE<41><EFBFBD><E689B9>?<3F>?摨𠉛鍂霈曄蔭 <20>?擃条漣霈曄蔭 <20>?RAM閫坿𠧧
<20>㗇𥋘嚗鋫liyunSAEDefaultRole
蝖桐<E89D96>霂亥<E99C82><E4BAA5><EFBFBD> AliyunOSSFullAccess <20><><EFBFBD>
```
**隡睃飵嚗?*
- <20>𣳇<EFBFBD><F0A3B387>函㴓憓<E3B493><E68693><EFBFBD>譍葉<E8AD8D>滨蔭AccessKey
- <20><EFBFBD><E6B8B8><EFBFBD><E58981><EFBFBD>AccessKey瘜<79>蠧憌𡡞埯
- <20><EFBFBD><E88880>芸𢆡頧格揢<E6A0BC><EFBFBD>
3. **璉<><E79289>充AM<41><EFBFBD><E586BD><EFBFBD><EFBFBD>嚗?*
```
RAM<41><EFBFBD><E689B9>?<3F>?<3F><EFBFBD> <20>?oss-bucket-put-object@1991407246109125.onaliyun.com
蝖株恕<E6A0AA><E68195><EFBFBD>嚗䥪utObject嚗<74><E59A97><EFBFBD><EFBFBD><E4BAA4><EFBFBD>
```
---
### <20><EFBFBD>5嚗鋫I<E98BAB><EFBFBD><E8A098><EFBFBD><EFBFBD>鍂嚗㇄eepSeek API頞<49>𧒄嚗?
**<2A><>𠶖嚗?* LLM撖寡<E69296><E5AFA1><EFBFBD><E8A098>仿<EFBFBD> `network timeout`
**閫<><E996AB><EFBFBD><EFBFBD>嚗?*
1. **璉<><E79289>代AT蝵穃<E89DB5>SNAT閫<54><E996AB>嚗?*
```
VPC<50><EFBFBD><E689B9>?<3F>?NAT蝵穃<E89DB5> <20>?NAT_airesearch <20>?SNAT蝞∠<E89D9E>
<20>?撌脩霈日<E99C88>蝵殷<E89DB5>
- 鈭斗揢<E69697>慚 (vsw-2zevacop039bxrmj6yc0c): 172.17.160.0/20 <20>?182.92.176.14 (<28>舐鍂)
- 鈭斗揢<E69697>態 (vsw-2zehoeyw9ldncymcyvfwq): 172.17.192.0/20 <20>?182.92.176.14 (<28>舐鍂)
```
2. **撉諹<E69289><E8ABB9><EFBFBD>霈輸䔮<E8BCB8><EFBFBD>嚗?*
```bash
# <20>沒AE摨𠉛鍂摰硺<E691B0>銝剜<E98A9D><EFBFBD>𦶢隞歹<E99A9E><E6ADB9><EFBFBD>WebIDE嚗㚁<E59A97>
curl https://api.deepseek.com/v1/models
# 摨磰砲餈𥪜<E9A488><E79285><E288AA>𡑒”嚗諹<E59A97><EFBFBD><E494B6>?timeout
```
3. **憒<><E68692>SNAT<41><EFBFBD><E88AB0><EFBFBD><EFBFBD>**
-<><E79289>乍IP<49>臬炏撌脩<E6928C>摰? - 璉<><E79289>兄NAT<41>∠𤌍<E288A0><EFBFBD><E59786><EFBFBD>虫蛹"<22>舐鍂"
- <20>滚鍳SAE摨𠉛鍂
---
## <20><> <20>鞉𧋦隡啁<E99AA1>
| 韏<><E99F8F> | 閫<>聢 | <20><><EFBFBD><EFBFBD>?| 霂湔<E99C82> |
|------|------|-------|------|
| **RDS PostgreSQL** | 2<>?GB/50GB | 瞼200-300 | <20><><EFBFBD><E58391><EFBFBD><EFBFBD>歇韐凋僭嚗车
| **SAE - Python** | 1<>?GB <20> 1摰硺<E691B0> | 瞼60 | <20><EFBFBD>隞䁅晶嚗<E699B6>𤦭<EFBFBD>黑?嚗?|
| **SAE - Node.js** | 2<>?GB <20> 1摰硺<E691B0> | 瞼120 | <20><EFBFBD>隞䁅晶 |
| **SAE - Frontend** | 1<>?GB <20> 1摰硺<E691B0> | 瞼60 | <20><EFBFBD>隞䁅晶 |
| **NAT蝵穃<E89DB5>** | 撠誩<E692A0> | 瞼60 | <20><EFBFBD>韐寧鍂嚗<E98D82><EFBFBD>𥕦遣嚗车
| **EIP瘚<50><E7989A>韐?* | 5Mbps | 瞼40 | <20>劐蝙<E58A90><EFBFBD>霈∟晶嚗<E699B6><EFBFBD>滨蔭嚗车
| **OSS摮睃<E691AE>** | 10GB | 瞼2 | 瞼0.12/GB/<2F><><EFBFBD>撌脣<E6928C>撱綽<E692B1>|
| **ACR摰孵膥<E5ADB5>𨅯<EFBFBD>** | 銝芯犖<E88AAF>?| 瞼0 | <20>滩晶 |
| **<EFBFBD>餉恣** | - | **瞼542-622/<2F>?* | <20><EFBFBD><E598A5><EFBFBD><EFBD81>鞉𧋦 |
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>鞉𧋦撱箄悅嚗?*
1. RDS韐凋僭<E5878B><E583AD><EFBFBD><E58391><EFBFBD><EFBFBD><E59A97><EFBFBD><EFBFBD>?0嚗𣬚賒韐嗽?00/<2F><><EFBFBD>
2.<><E69298>𤑳㴓憓<E3B493>蘨撘<E898A8>1銝杵AE摰硺<E691B0><EFBFBD><E59A97>隞硋<E99A9E>靘讠憬摰孵<E691B0>0嚗?3. 雿輻鍂SAE<41>?<3F>脫𧒄<E884AB>𨀣㦤"<22><EFBFBD><EFBFBD><E59A97>銝𡃏䌊<F0A1838F><EFBFBD><E585B8><EFBFBD>
---
## <20>㴓 銝衤<E98A9D>甇亙極雿?
### <20><EFBFBD>嚗?<3F><EFBFBD>嚗?
- [ ] 蝏穃<E89D8F><E7A983><EFBFBD>銋匧<E98A8B><E58CA7><EFBFBD><E3B5AA><EFBFBD>鈭穃<E988AD><E7A983>齿<EFBFBD><E9BDBF>?+ SAE蝏穃<E89D8F>嚗?- [ ] <20>滨蔭HTTPS霂<53>髡嚗𡿨et's Encrypt<70>滩晶霂<E699B6>髡嚗?- [ ] <20>滨蔭OSS CDN<44>𣳇<EFBFBD><F0A3B387><EFBFBD><EFBFBD>滨垢<E6BBA8><EFBFBD><E8B9B1><EFBFBD>皞𣂼<E79A9E><F0A382BC><EFBFBD><EFBFBD>
- [ ]<><E69298>爹DS<44>芸𢆡憭<F0A286A1>遢嚗<E981A2><EFBFBD><EFBFBD><E6A180>函洵銝<E6B4B5>嚗?
### 銝剜<E98A9D>嚗?銝芣<E98A9D><E88AA3><EFBFBD><EFBFBD>
- [ ] <20>函蔡Dify撟喳蝱嚗<E89DB1><EFBFBD>沌KB銝芯犖<E88AAF><EFBFBD>摨枏<E691A8><E69E8F><EFBFBD>
- [ ] <20>滨蔭<E6BBA8>烐綉<E78390>𡃏郎嚗㇁RMS摨𠉛鍂<F0A0899B>烐綉嚗?- [ ] 隡睃<E99AA1><E79D83>唳旿摨梶揣撘𤏪<E69298><F0A48FAA>𣂼<EFBFBD><F0A382BC>亥砭<E4BAA5><EFBFBD>嚗?- [ ] 摰墧鴌CI/CD<43>芸𢆡<E88AB8><EFBFBD>蝵莎<E89DB5>GitHub Actions嚗?
### <20><EFBFBD>嚗?銝芣<E98A9D><E88AA3>𠬍<EFBFBD>
- [ ] 憭𡁜<E686AD>靘钅<E99D98>蝵莎<E89DB5><E88E8E>𣂼<EFBFBD>擃睃虾<E79D83><EFBFBD><EFBFBD>
- [ ] <20>唳旿摨栞粉<E6A09E><EFBFBD>蝳鳴<E89DB3>RDS銝餃<E98A9D><E9A483><EFBFBD><EFBFBD>
- [ ] OSS<53>笔𦶢<E7AC94><EFBFBD>蝞∠<E89D9E><EFBFBD><EFBFBD><EFBFBD><E586BD><EFBFBD><EFBFBD><EFBFBD>隞塚<E99A9E>
- [ ] <20><EFBFBD>隡睃<E99AA1>銝擧<E98A9D><E693A7><EFBFBD><E7A08C>?
---
## <20><> <20><EFBFBD><E8A9A8><EFBFBD>
- [<EFBFBD>函蔡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>](./00-<2D>函蔡<E587BD><EFBFBD><E59786><EFBFBD>.md)
- [Python敺格<E695BA><E6A0BC><EFBFBD>蝵脫<E89DB5><E884AB>㻩(./04-Python敺格<E695BA><E6A0BC>?SAE摰孵膥<E5ADB5>函蔡<E587BD><E894A1><EFBFBD>.md)
- [Node.js<6A>𡒊垢<F0A1928A>函蔡<E587BD><E894A1><EFBFBD>](./05-Node.js<6A>𡒊垢-SAE摰孵膥<E5ADB5>函蔡<E587BD><E894A1><EFBFBD>.md)
- [<EFBFBD>滨垢Nginx<EFBFBD>函蔡<EFBFBD><EFBFBD><EFBFBD>](./06-<2D>滨垢Nginx-SAE摰孵膥<E5ADB5>函蔡<E587BD><E894A1><EFBFBD>.md)
- [PostgreSQL<EFBFBD>函蔡蝑𣇉裦](./PostgreSQL<51>函蔡蝑𣇉裦-<2D><EFBFBD><E8A9A8><EFBFBD>.md)
- [<EFBFBD>喲睸<EFBFBD>滨蔭銵亙<EFBFBD>霂湔<EFBFBD>](./07-<2D>喲睸<E596B2>滨蔭銵亙<E98AB5>霂湔<E99C82>.md)
- [<5B>函蔡璉<E894A1><E79289><EFBFBD><E4BAA4>騟(./08-<2D>函蔡璉<E894A1><E79289><EFBFBD><E4BAA4>?md)
---
## <20><> 蝝扳<E89D9D><EFBFBD>蝟?
**憒<><E68692><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E996AB><EFBFBD><EFBFBD>䔮憸矋<E686B8>**
1. <20><EFBFBD>SAE摰墧𧒄<E5A2A7><EFBFBD>嚗?0%<25><>䔮憸䁅<E686B8>隞擧𠯫敹𦯀葉<F0A6AF80>𤑳緵嚗?2. 璉<><E79289>亦㴓憓<E3B493><E68693><EFBFBD><EFBFBD>蝵殷<E89DB5>DATABASE_URL<52><4C><EFBFBD><EFBFBD>𧑐<E288AA><F0A79190>蝑㚁<E89D91>
3. 撉諹<E69289>蝵𤑳<E89DB5>餈鮋<E9A488>𡁏<EFBFBD><EFBFBD>VPC<50><43><EFBFBD><EFBFBD><E6BB9A><EFBFBD>AT蝵穃<E89DB5>嚗?4. <20><><EFBFBD><EFBFBD>祕蝏<E7A595><E89D8F>蝵脫<E89DB5><EFBFBD><E78DA2>瘥譍葵璅<E79285><E288AA>厩𡠺蝡讠<E89DA1>摰峕㟲<E5B395><E39FB2><EFBFBD>嚗?
**<2A><><EFBFBD><EFB99D>𧋦嚗?* v1.0
**<EFBFBD><EFBFBD><EFBFBD>擧凒<EFBFBD><EFBFBD>** 2025-12-16
**蝏湔擪<E6B994><E693AA><EFBFBD>** AI銝游<E98A9D><E6B8B8>𠉛弦撟喳蝱<E596B3><E89DB1><EFBFBD>臬𣪧<E887AC>?