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%)
This commit is contained in:
2026-01-14 19:15:01 +08:00
parent 3d35e9c58b
commit 1b53ab9d52
386 changed files with 52096 additions and 65238 deletions

View File

@@ -1,50 +1,41 @@
# 部署检查清单 - 从0到上线的完整Checklist
# <EFBFBD>函蔡璉<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?- 隞?<3F><EFBFBD>蝥輻<E89DA5>摰峕㟲Checklist
> **文档版本:** v1.0
> **创建日期:** 2025-12-14
> **适用场景:** 首次部署到阿里云生产环境
> **预计时间:** 4-5小时实际操作时间
> **<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧋦嚗?* v1.0
> **<EFBFBD>𥕦遣<EFBFBD><EFBFBD>嚗?* 2025-12-14
> **<EFBFBD><EFBFBD><EFBFBD>箸艶嚗?* 擐𡝗活<F0A19D97>函蔡<E587BD>圈燵<E59C88><EFBFBD><E494B6>煺漣<E785BA><EFBFBD>
> **<EFBFBD><EFBFBD>園𡢿嚗?* 4-5撠𤩺𧒄嚗<F0A79284><E59A97><EFBFBD><EFBFBD><EFBFBD>雿𨀣𧒄<F0A880A3><EFBFBD>
---
## <20><> 雿輻鍂霂湔<E99C82>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵脤◇摨誩<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>甇仿炊嚗峕<EFBFBD>銝芣郊撉文<EFBFBD><EFBFBD><EFBFBD>
- ☐ 复选框(完成后打勾)
- ⏱️ 预计时间
- <EFBFBD>?憭漤<E686AD><EFBFBD><EFBFBD><E59A97><EFBFBD>𣂼<EFBFBD><F0A382BC>枏㗲嚗?- <20><EFBFBD><><EFBFBD>園𡢿
- <20>𩤃<EFBFBD> <20>喲睸瘜冽<E7989C>鈭钅★
- 🔗 参考文档链接
**建议:打印或复制到笔记软件,逐项完成。**
- <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
**撱箄悅嚗𡁏<E59A97><F0A1818F><EFBFBD>憭滚<E686AD><E6BB9A><EFBFBD>霈啗蔓隞塚<E99A9E><E5A19A>鞾★摰峕<E691B0><E5B395>?*
---
## 阶段1基础设施准备Day 1上午
### 1.1 阿里云账号准备
**实名认证**
## <EFBFBD>嗆挾1嚗𡁜抅蝖<EFBFBD>霈暹鴌<EFBFBD><EFBFBD><EFBFBD>嚗㇄ay 1銝𠰴<E98A9D>嚗?
### 1.1 <20><EFBFBD>鈭𤏸揭<F0A48FB8><EFBFBD>憭?
<EFBFBD>?**摰𧼮<E691B0>霈方<E99C88>**
- <20><EFBFBD> 5<><35><EFBFBD>
- <20><EFBFBD>鈭烐綉<E78390>嗅蝱 > 韐血噡蝞∠<E89D9E> > 摰𧼮<E691B0>霈方<E99C88>
- ⚠️ 企业认证需要营业执照
**账号充值**
- <EFBFBD>𩤃<EFBFBD><><E99AA1>霈方<E99C88><E696B9><EFBFBD><EFBFBD>𨯫銝𡁏<E98A9D><F0A1818F>?
<EFBFBD>?**韐血噡<E8A180><E599A1><EFBFBD>?*
- <20><EFBFBD> 2<><32><EFBFBD>
- 建议充值¥500首月成本约¥1,200
- 费用中心 > 充值
**开通服务**
- 撱箄悅<EFBFBD><EFBFBD><EFBFBD><EFBFBD>瞼500嚗<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祉漲瞼1,200嚗?- 韐寧鍂銝剖<E98A9D> > <20><><EFBFBD>?
<EFBFBD>?**撘<><E69298>𡁏<EFBFBD><F0A1818F>?*
- <20><EFBFBD> 5<><35><EFBFBD>
- 需要开通的服务:
- ✅ SAEServerless应用引擎
- ✅ RDS云数据库
- ✅ OSS对象存储
- ✅ VPC专有网络
- ✅ NAT网关
- ✅ ACR容器镜像服务
- ✅ ECS云服务器Dify用
- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𡁶<EFBFBD><EFBFBD>滚𦛚嚗? - <20>?SAE嚗𠄎erverless摨𠉛鍂撘閙<E69298>嚗? - <20>?RDS嚗<53><E59A97><EFBFBD>唳旿摨橒<E691A8>
- <EFBFBD>?OSS嚗<53>笆鞊<E99E8A><E288AA><EFBFBD>
- <EFBFBD>?VPC嚗<43><E59A97><EFBFBD><EFBFBD>蝏頣<E89D8F>
- <EFBFBD>?NAT蝵穃<E89DB5>
- <EFBFBD>?ACR嚗<52><EFBFBD><EFBFBD><E588B8>𤩺<EFBFBD><F0A4A9BA><EFBFBD>
- <EFBFBD>?ECS嚗<53><E59A97><EFBFBD>滚𦛚<E6BB9A><EFBFBD>Dify<66><EFBFBD>
**创建RAM子账号可选但推荐**
<EFBFBD>?**<2A>𥕦遣RAM摮鞱揭<E99EB1><EFBFBD><E79880><EFBFBD><EFBFBD><E58A90><EFBFBD>嚗?*
- <20><EFBFBD> 10<31><30><EFBFBD>
- RAM霈輸䔮<E8BCB8><EFBFBD> > <20><EFBFBD> > <20>𥕦遣<F0A595A6><EFBFBD>
- <20><><EFBFBD>嚗鋫liyunSAEFullAccess, AliyunRDSFullAccess, AliyunOSSFullAccess
@@ -52,108 +43,88 @@
---
### 1.2 VPC网络配置 ⭐⭐⭐⭐⭐
**创建VPC**
### 1.2 VPC蝵𤑳<EFBFBD><EFBFBD>滨蔭 潃鐥<E6BD83>潃鐥<E6BD83>潃?
<EFBFBD>?**<2A>𥕦遣VPC**
- <20><EFBFBD> 5<><35><EFBFBD>
- VPC控制台 > 创建VPC
- VPC<EFBFBD><EFBFBD><EFBFBD>?> <20>𥕦遣VPC
- <20>滨妍嚗惨iclinical-vpc-prod
- 网段172.16.0.0/12
- 地域cn-hangzhou(杭州)或就近地域
**创建交换机**
- 蝵烐挾嚗?72.16.0.0/12
- <EFBFBD><EFBFBD>嚗䬙n-hangzhou<EFBFBD>㜺撌痹<EFBFBD><EFBFBD>硋停餈穃𧑐<EFBFBD>?
<EFBFBD>?**<2A>𥕦遣鈭斗揢<E69697>?*
- <20><EFBFBD> 3<><33><EFBFBD>
- VPC详情 > 交换机 > 创建交换机
- 名称aiclinical-vsw-prod
- VPC霂行<EFBFBD> > 鈭斗揢<E69697>?> <20>𥕦遣鈭斗揢<E69697>?- <20>滨妍嚗惨iclinical-vsw-prod
- <20>舐鍂<E88890><EFBFBD><E7B6BD>𤩺㦤<F0A4A9BA>舐鍂<E88890>
- 网段172.16.0.0/20
- 蝵烐挾嚗?72.16.0.0/20
**⭐ 创建NAT网关必需**
<EFBFBD>?**潃?<3F>𥕦遣NAT蝵穃<E89DB5><EFBFBD><E59A97><EFBFBD><EFBFBD><EFBFBD><E59A97>**
- <20><EFBFBD> 15<31><35><EFBFBD>
- VPC控制台 > NAT网关 > 创建NAT网关
- VPC<EFBFBD><EFBFBD><EFBFBD>?> NAT蝵穃<E89DB5> > <20>𥕦遣NAT蝵穃<E89DB5>
- VPC嚗惨iclinical-vpc-prod
- 鈭斗揢<E69697><EFBFBD>aiclinical-vsw-prod
- 规格:小型
- 计费方式:按使用量计费
- ⚠️ **没有NAT网关所有AI功能都会超时**
- 🔗 参考:`07-关键配置补充说明.md` 第1节
**创建并绑定EIP**
- <EFBFBD>聢嚗𡁜<EFBFBD><EFBFBD>?- 霈∟晶<E2889F><EFBFBD>嚗𡁏<E59A97>雿輻鍂<E8BCBB>讛恣韐?- <20>𩤃<EFBFBD> **瘝⊥<E7989D>NAT蝵穃<E89DB5>嚗峕<E59A97><E5B395>𡅅I<F0A18585><EFBFBD><E8A098><EFBFBD><EFBFBD>𧒄嚗?*
- <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>`07-<2D>喲睸<E596B2>滨蔭銵亙<E98AB5>霂湔<E99C82>.md` 蝚?<3F>?
<EFBFBD>?**<2A>𥕦遣撟嗥<E6929F>摰鍃IP**
- <20><EFBFBD> 5<><35><EFBFBD>
- NAT蝵穃<E89DB5>霂行<E99C82> > 撘寞<E69298><EFBFBD>蝵飡P > 蝏穃<E89D8F>EIP
- <20>𥕦遣<F0A595A6>蚩IP
- 撣血捐嚗𡁏<E59A97>雿輻鍂瘚<E98D82><E7989A>
- 霈啣<E99C88>EIP<49><EFBFBD>嚗噔_______________
**配置SNAT条目**
<EFBFBD>?**<2A>滨蔭SNAT<41>∠𤌍**
- <20><EFBFBD> 3<><33><EFBFBD>
- NAT蝵穃<E89DB5>霂行<E99C82> > SNAT蝞∠<E89D9E> > <20>𥕦遣SNAT<41>∠𤌍
- 鈭斗揢<E69697><EFBFBD>aiclinical-vsw-prod
- <20><EFBFBD>IP嚗𡁜<E59A97><F0A1819C><EFBFBD>撱箇<E692B1>EIP
- <20>𩤃<EFBFBD> 餈嗘<E9A488>甇亥悟SAE<41>臭誑霈輸䔮<E8BCB8><EFBFBD>
**创建安全组**
<EFBFBD>?**<2A>𥕦遣摰匧<E691B0>蝏?*
- <20><EFBFBD> 5<><35><EFBFBD>
- ECS控制台 > 安全组 > 创建安全组
- 名称aiclinical-sg-prod
- ECS<EFBFBD><EFBFBD><EFBFBD>?> 摰匧<E691B0>蝏?> <20>𥕦遣摰匧<E691B0>蝏?- <20>滨妍嚗惨iclinical-sg-prod
- VPC嚗惨iclinical-vpc-prod
- <20>交䲮<E4BAA4>𤏸<EFBFBD><F0A48FB8><EFBFBD>
- 允许 80/TCP 来源172.16.0.0/12VPC内网
- 允许 22/TCP 来源您的办公室IPSSH管理
- 拒绝 所有 来源0.0.0.0/0
- <EFBFBD><EFBFBD> 80/TCP <EFBFBD><EFBFBD>嚗?72.16.0.0/12嚗ĀPC<EFBFBD><EFBFBD><EFBFBD>嚗? - <20><>捂 22/TCP <20><EFBFBD>嚗𡁏<E59A97><F0A1818F><EFBFBD><EFBFBD><EFBFBD>砍恕IP嚗𠄎SH蝞∠<E89D9E>嚗? - <20><EFBFBD> <20><><EFBFBD>?<3F><EFBFBD>嚗?.0.0.0/0
---
### 1.3 RDS PostgreSQL 15 <20>函蔡
**创建RDS实例**
- ⏱️ 10分钟等待创建15分钟
- RDS控制台 > 创建实例
<EFBFBD>?**<2A>𥕦遣RDS摰硺<E691B0>**
- <EFBFBD><EFBFBD> 10<31><30><EFBFBD><EFBFBD><E59A97><EFBFBD><E695BA>撱?5<><35><EFBFBD>嚗?- RDS<44><EFBFBD><E689B9>?> <20>𥕦遣摰硺<E691B0>
- <20>唳旿摨梶掩<E6A2B6><EFBFBD>PostgreSQL
- 版本15
- 规格rds.pg.s2.large2核4GB
- 存储100GB SSD
- <EFBFBD><EFBFBD>𧋦嚗?5
- <EFBFBD>聢嚗鬏ds.pg.s2.large嚗?<3F>?GB嚗?- 摮睃<E691AE>嚗?00GB SSD
- VPC嚗惨iclinical-vpc-prod
- 鈭斗揢<E69697><EFBFBD>aiclinical-vsw-prod
- 霈啣<E99C88><E595A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗鬏m-____________.pg.rds.aliyuncs.com
**配置白名单**
<EFBFBD>?**<2A>滨蔭<E6BBA8><EFBFBD><E8B3A2>?*
- <20><EFBFBD> 2<><32><EFBFBD>
- RDS实例详情 > 数据安全性 > 白名单设置
- 添加白名单分组sae-vpc
- IP地址172.16.0.0/12VPC网段
- ⚠️ **必须用VPC网段不能用单机IP**
- RDS摰硺<EFBFBD>霂行<EFBFBD> > <20>唳旿摰匧<E691B0><E58CA7>?> <20><EFBFBD><E8B3A2>閗挽蝵?- 瘛餃<E7989B><E9A483><EFBFBD><E8B3A2><EFBFBD><EFBFBD><E89D8F>sae-vpc
- IP<EFBFBD><EFBFBD>嚗?72.16.0.0/12嚗ĀPC蝵烐挾嚗?- <20>𩤃<EFBFBD> **敹<><EFBFBD>汲PC蝵烐挾嚗䔶<E59A97><E494B6>賜鍂<E8B39C>閙㦤IP嚗?*
- <20><> <20><><EFBFBD><EFBFBD><EFBFBD>`PostgreSQL<51>函蔡蝑𣇉裦-<2D><EFBFBD><E8A9A8><EFBFBD>.md`
**创建数据库账号**
<EFBFBD>?**<2A>𥕦遣<F0A595A6>唳旿摨栞揭<E6A09E>?*
- <20><EFBFBD> 3<><33><EFBFBD>
- RDS摰硺<E691B0>霂行<E99C82> > 韐血噡蝞∠<E89D9E> > <20>𥕦遣韐血噡
- 韐血噡<E8A180><EFBFBD>aiclinical_rw
-<><E69296>嚗𡄯<E59A97>16雿滚撩撖<E692A9><E69296>嚗諹扇敶訫<E695B6><EFBFBD><E69296>蝞∠<E89D9E><E288A0><EFBFBD>
- 账号类型:普通账号
- 授权数据库:稍后创建
- 韐血噡蝐餃<EFBFBD>嚗𡁏芦<EFBFBD>朞揭<EFBFBD>?- <20><><EFBFBD><EFBFBD>唳旿摨橒<E691A8>蝔滚<E89D94><E6BB9A>𥕦遣
**创建数据库**
<EFBFBD>?**<2A>𥕦遣<F0A595A6>唳旿摨?*
- <20><EFBFBD> 2<><32><EFBFBD>
- RDS实例详情 > 数据库管理 > 创建数据库
- 数据库名ai_clinical_research
- RDS摰硺<EFBFBD>霂行<EFBFBD> > <20>唳旿摨梶恣<E6A2B6>?> <20>𥕦遣<F0A595A6>唳旿摨?- <20>唳旿摨枏<E691A8>嚗惨i_clinical_research
- 摮㛖泵<E39B96><E6B3B5><EFBFBD>UTF8
- <20><><EFBFBD>韐血噡嚗惨iclinical_rw嚗<77><EFBFBD><EFBFBD>
**配置自动备份**
<EFBFBD>?**<2A>滨蔭<E6BBA8>芸𢆡憭<F0A286A1>**
- <20><EFBFBD> 3<><33><EFBFBD>
- RDS摰硺<E691B0>霂行<E99C82> > 憭<><EFBFBD><EFBFBD> > 憭<>遢霈曄蔭
- 数据备份保留7天
- 日志备份保留7天 必须开启支持PITR
- 备份周期:每天
- 备份时间02:00-04:00凌晨
- <EFBFBD>唳旿憭<EFBFBD>遢靽萘<EFBFBD>嚗?憭?- <20><EFBFBD><EFBFBD>遢靽萘<E99DBD>嚗?憭抬<E686AD><E68AAC>𩤃<EFBFBD><>◆撘<E29786><E69298><EFBFBD><E88D94><EFBFBD>PITR嚗?- 憭<><EFBFBD><EFBFBD>嚗𡁏<E59A97>憭?- 憭<><EFBFBD>園𡢿嚗?2:00-04:00嚗<30><E59A97><EFBFBD><EFBFBD>
**导入数据库(pg_dump**
<EFBFBD>?**撖澆<E69296><E6BE86>唳旿摨橒<E691A8>pg_dump嚗?*
- <20><EFBFBD> 5<><35><EFBFBD>
- 本地执行:
```bash
# 1. 导出本地数据库
docker exec ai-clinical-postgres pg_dump -U postgres -d ai_clinical_research \
- <EFBFBD>砍𧑐<EFBFBD><EFBFBD>嚗? ```bash
# 1. 撖澆枂<E6BE86>砍𧑐<E7A08D>唳旿摨? docker exec ai-clinical-postgres pg_dump -U postgres -d ai_clinical_research \
--format=plain --no-owner --no-acl --encoding=UTF8 \
> backup_$(date +%Y%m%d_%H%M%S).sql
@@ -164,9 +135,8 @@
-d ai_clinical_research \
-f backup_20251214_100000.sql
```
- 🔗 参考:`PostgreSQL部署策略-摸底报告.md` 第4节
☐ **验证数据库导入**
- <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>`PostgreSQL<EFBFBD>函蔡蝑𣇉裦-<2D><EFBFBD><E8A9A8><EFBFBD>.md` 蝚?<3F>?
<EFBFBD>?**撉諹<E69289><E8ABB9>唳旿摨枏紡<E69E8F>?*
- <20><EFBFBD> 3<><33><EFBFBD>
- 餈墧𦻖RDS嚗峕<E59A97>銵䕘<E98AB5>
```sql
@@ -174,8 +144,7 @@
\dn
-- 摨磰砲<E7A3B0><EFBFBD>10銝杵chema
-- 验证表数量
SELECT schemaname, COUNT(*)
-- 撉諹<EFBFBD>銵冽㺭<EFBFBD>? SELECT schemaname, COUNT(*)
FROM pg_tables
WHERE schemaname NOT IN ('pg_catalog', 'information_schema')
GROUP BY schemaname;
@@ -183,80 +152,68 @@
-- 撉諹<E69289><E8ABB9>唳旿
SELECT COUNT(*) FROM platform_schema.users;
-- 应该有3条或你的实际数量
-- 摨磰砲<EFBFBD>?<3F><EFBFBD><E288B4><EFBFBD><E7A2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧶏<EFBFBD>
```
---
### 1.4 OSS撖寡情摮睃<E691AE><E79D83>滨蔭
☐ **创建OSS Bucket**
<EFBFBD>?**<2A>𥕦遣OSS Bucket**
- <20><EFBFBD> 5<><35><EFBFBD>
- OSS控制台 > Bucket列表 > 创建Bucket
- OSS<EFBFBD><EFBFBD><EFBFBD>?> Bucket<EFBFBD>𡑒” > <20>𥕦遣Bucket
- Bucket<65>滨妍嚗惨iclinical-data-prod
- <20><EFBFBD>嚗䬙n-hangzhou嚗<75><E59A97>VPC<50><43>𧑐<EFBFBD><F0A79190><EFBFBD>
- 读写权限私有Private 必须私有
- 版本控制:关闭
- 服务端加密:关闭(可选)
- 霂餃<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗𡁶<EFBFBD><EFBFBD><EFBFBD>Private嚗争<EFBFBD>儭?敹<>◆蝘<E29786><E89D98>
- <EFBFBD><EFBFBD>𧋦<EFBFBD><EFBFBD>嚗𡁜<EFBFBD><EFBFBD>?- <20>滚𦛚蝡臬<E89DA1><EFBFBD><E69296><EFBFBD>喲𡡒嚗<F0A1A192><EFBFBD><EFBFBD>
☐ **配置生命周期规则(可选)**
<EFBFBD>?**<2A>滨蔭<E6BBA8>笔𦶢<E7AC94><EFBFBD><EFBFBD><E996AB><EFBFBD><EFBFBD><EFBFBD>**
- <20><EFBFBD> 3<><33><EFBFBD>
- Bucket霂行<E99C82> > <20><EFBFBD>霈曄蔭 > <20>笔𦶢<E7AC94><EFBFBD>
- 閫<><E996AB><EFBFBD>滨妍嚗飱elete-temp-files
- 摨𠉛鍂<F0A0899B><E98D82>凒嚗鮁ploads/temp/
- 操作:删除
- 天数30天临时文件30天后自动删除
☐ **创建RAM角色推荐**
- <EFBFBD><EFBFBD>嚗𡁜<EFBFBD><EFBFBD>?- 憭拇㺭嚗?0憭抬<E686AD>銝湔𧒄<E6B994><F0A79284>辣30憭拙<E686AD><E68B99>芸𢆡<E88AB8>𣳇膄嚗?
<EFBFBD>?**<2A>𥕦遣RAM閫坿𠧧嚗<F0A0A7A7><EFBFBD><EFBFBD>**
- <20><EFBFBD> 10<31><30><EFBFBD>
- RAM霈輸䔮<E8BCB8><EFBFBD> > 閫坿𠧧 > <20>𥕦遣閫坿𠧧
- 角色类型:普通服务角色
- 受信服务SAE
- 閫坿𠧧蝐餃<EFBFBD>嚗𡁏芦<EFBFBD>𡁏<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?- <20>𦯀縑<F0A6AF80>滚𦛚嚗锭AE
- 閫坿𠧧<E59DBF>滨妍嚗鋫liyunSAEDefaultRole
- <20><><EFBFBD>蝑𣇉裦嚗鋫liyunOSSFullAccess
- ⚠️ 使用RAM角色比AccessKey更安全
☐ **记录OSS配置信息**
- <EFBFBD>𩤃<EFBFBD> 雿輻鍂RAM閫坿𠧧瘥𨀞ccessKey<EFBFBD><EFBFBD><EFBFBD>?
<EFBFBD>?**霈啣<E99C88>OSS<53>滨蔭靽⊥<E99DBD>**
- Bucket<65>滨妍嚗惨iclinical-data-prod
- <20><EFBFBD>嚗䬙n-hangzhou
- <20><><EFBFBD>Endpoint嚗駅ss-cn-hangzhou-internal.aliyuncs.com
- AccessKey ID如果不用RAM角色
- AccessKey Secret如果不用RAM角色
- AccessKey ID嚗𡄯<EFBFBD><EFBFBD><EFBFBD>銝滨鍂RAM閫坿𠧧嚗?- AccessKey Secret嚗𡄯<E59A97><EFBFBD><E68692>銝滨鍂RAM閫坿𠧧嚗?
---
### 1.5 ACR摰孵膥<E5ADB5>𨅯<EFBFBD>隞枏<E99A9E><E69E8F>滨蔭
☐ **创建命名空间**
<EFBFBD>?**<2A>𥕦遣<F0A595A6><EFBFBD>蝛粹𡢿**
- <20><EFBFBD> 3<><33><EFBFBD>
- 摰孵膥<E5ADB5>𨅯<EFBFBD><F0A885AF>滚𦛚 > <20><EFBFBD>蝛粹𡢿 > <20>𥕦遣<F0A595A6><EFBFBD>蝛粹𡢿
- <20><EFBFBD>蝛粹𡢿嚗惨iclinical
- 类型:私有
☐ **配置访问凭证**
- 蝐餃<EFBFBD>嚗𡁶<EFBFBD><EFBFBD>?
<EFBFBD>?**<2A>滨蔭霈輸䔮<E8BCB8><EFBFBD>**
- <20><EFBFBD> 2<><32><EFBFBD>
- 摰孵膥<E5ADB5>𨅯<EFBFBD><F0A885AF>滚𦛚 > 霈輸䔮<E8BCB8><EFBFBD> > 霈曄蔭<E69B84><EFBFBD><EFBFBD><E69296>
- 用户名:(阿里云账号)
- 密码:(设置一个强密码)
- 记录登录命令:
```bash
- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>韐血噡嚗?- 撖<><E69296>嚗𡄯<E59A97>霈曄蔭銝<E894AD>銝芸撩撖<E692A9><E69296>嚗?- 霈啣<E99C88><E595A3><EFBFBD><E9A483>賭誘嚗? ```bash
docker login --username=your-account registry.cn-hangzhou.aliyuncs.com
```
---
## 阶段2核心服务部署Day 1下午
## <EFBFBD>嗆挾2嚗𡁏瓲敹<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵莎<EFBFBD>Day 1銝见<E98A9D>嚗?
### 2.1 Node.js<6A>𡒊垢<F0A1928A>函蔡
☐ **本地代码准备**
<EFBFBD>?**<2A>砍𧑐隞<F0A79190><E99A9E><EFBFBD><EFBFBD><EFBFBD>**
- <20><EFBFBD> 10<31><30><EFBFBD>
- 蝖桐<E89D96><EFBFBD><E99A9E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`git pull origin main`
- 摰㕑<E691B0>靘肽<E99D98>嚗䫤cd backend && npm install`
- 蝻𤥁<E89DBB><EFBFBD><E99A9E>嚗䫤npm run build`
- 撉諹<E69289>蝻𤥁<E89DBB>嚗䫤ls dist/` 摨磰砲<E7A3B0><EFBFBD>霂穃<E99C82><E7A983><EFBFBD>S<EFBFBD><53>
**Prisma反向同步(重要)**
<EFBFBD>?**Prisma<EFBFBD><EFBFBD><EFBFBD>峕郊嚗<EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
- <20><EFBFBD> 5<><35><EFBFBD>
- 餈墧𦻖RDS嚗峕<E59A97>銵䕘<E98AB5>
```bash
@@ -270,21 +227,18 @@
# <20><><EFBFBD>Prisma Client
npx prisma generate
```
- 🔗 参考:`05-Node.js后端-SAE容器部署指南.md` 第4节
☐ **修改HTTP Client超时配置**
- <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>`05-Node.js<EFBFBD>𡒊垢-SAE摰孵膥<EFBFBD>函蔡<EFBFBD><EFBFBD><EFBFBD>.md` 蝚?<3F>?
<EFBFBD>?**靽格㺿HTTP Client頞<74>𧒄<EFBFBD>滨蔭**
- <20><EFBFBD> 5<><35><EFBFBD>
- 蝻𤥁<E89DBB> `backend/src/common/http/httpClient.ts`
- 设置timeout: 120000120秒
- 🔗 参考:`07-关键配置补充说明.md` 第3节
☐ **修改Dify Client容错处理**
- 霈曄蔭timeout: 120000嚗?20蝘𡜐<E89D98>
- <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>`07-<2D>喲睸<E596B2>滨蔭銵亙<E98AB5>霂湔<E99C82>.md` 蝚?<3F>?
<EFBFBD>?**靽格㺿Dify Client摰寥<E691B0><EFBFBD><E686AD>**
- <20><EFBFBD> 5<><35><EFBFBD>
- 蝻𤥁<E89DBB> `backend/src/common/rag/DifyClient.ts`
- 瘛餃<E7989B>銝湔𧒄Key摰寥<E691B0><E5AFA5><EFBFBD>
- 🔗 参考:`07-关键配置补充说明.md` 第2节
☐ **构建Docker镜像**
- <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>`07-<2D>喲睸<E596B2>滨蔭銵亙<E98AB5>霂湔<E99C82>.md` 蝚?<3F>?
<EFBFBD>?**<2A><>遣Docker<65>𨅯<EFBFBD>**
- <20><EFBFBD> 5<><35><EFBFBD>
- ```bash
cd backend
@@ -292,7 +246,7 @@
```
- 撉諹<E69289><E8ABB9>𨅯<EFBFBD>嚗䫤docker images | grep backend`
☐ **本地测试镜像**
<EFBFBD>?**<2A>砍𧑐瘚贝<E7989A><E8B49D>𨅯<EFBFBD>**
- <20><EFBFBD> 5<><35><EFBFBD>
- ```bash
docker run -p 3001:3001 \
@@ -302,32 +256,29 @@
```
- 瘚贝<E7989A><E8B49D>亙熒璉<E78692><E79289><EFBFBD>`curl http://localhost:3001/health`
☐ **推送到ACR**
<EFBFBD>?**<2A><EFBFBD><E588B8><EFBFBD>ACR**
- <20><EFBFBD> 3<><33><EFBFBD>
- ```bash
docker tag backend:v1.0.0 registry.cn-hangzhou.aliyuncs.com/aiclinical/backend:v1.0.0
docker push registry.cn-hangzhou.aliyuncs.com/aiclinical/backend:v1.0.0
```
☐ **创建SAE应用**
<EFBFBD>?**<2A>𥕦遣SAE摨𠉛鍂**
- <20><EFBFBD> 10<31><30><EFBFBD>
- SAE控制台 > 应用列表 > 创建应用
- SAE<EFBFBD><EFBFBD><EFBFBD>?> 摨𠉛鍂<F0A0899B>𡑒” > <20>𥕦遣摨𠉛鍂
- 摨𠉛鍂<F0A0899B>滨妍嚗惨iclinical-backend
- 部署方式:容器镜像
- 镜像地址registry.cn-hangzhou.aliyuncs.com/aiclinical/backend:v1.0.0
- <EFBFBD>函蔡<EFBFBD><EFBFBD>嚗𡁜捆<EFBFBD><EFBFBD><EFBFBD>?- <20>𨅯<EFBFBD><F0A885AF><EFBFBD>嚗鬏egistry.cn-hangzhou.aliyuncs.com/aiclinical/backend:v1.0.0
- VPC嚗惨iclinical-vpc-prod
- 鈭斗揢<E69697><EFBFBD>aiclinical-vsw-prod
- 实例规格1核2GB
- 实例数量最小2最大10
- 摰硺<EFBFBD><EFBFBD>聢嚗?<3F>?GB
- 摰硺<EFBFBD><EFBFBD><EFBFBD>嚗𡁏<EFBFBD>撠?嚗峕<E59A97>憭?0
- <20>亙熒璉<E78692><E79289><EFBFBD>HTTP /health
☐ **配置环境变量(关键)**
<EFBFBD>?**<2A>滨蔭<E6BBA8><EFBFBD><E887AC><EFBFBD><EFBFBD><E59A97><EFBFBD><EFBFBD>**
- <20><EFBFBD> 10<31><30><EFBFBD>
- SAE摨𠉛鍂霂行<E99C82> > <20><EFBFBD><E887AC><EFBFBD>
- 必需变量:
```bash
# 数据库
DATABASE_URL=postgresql://aiclinical_rw:password@rm-xxxxx.pg.rds.aliyuncs.com:5432/ai_clinical_research?connection_limit=10&pool_timeout=10
- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗? ```bash
# <20>唳旿摨? DATABASE_URL=postgresql://aiclinical_rw:password@rm-xxxxx.pg.rds.aliyuncs.com:5432/ai_clinical_research?connection_limit=10&pool_timeout=10
# OSS
STORAGE_TYPE=oss
@@ -336,16 +287,14 @@
OSS_ACCESS_KEY_ID=LTAI5***
OSS_ACCESS_KEY_SECRET=***
# 缓存/队列Postgres-Only
CACHE_TYPE=postgres
# 蝻枏<EFBFBD>/<2F><EFBFBD>嚗㇊ostgres-Only嚗? CACHE_TYPE=postgres
QUEUE_TYPE=pgboss
# Dify(⚠️ 临时值)
# Dify<EFBFBD><EFBFBD>儭?銝湔𧒄<E6B994><EFBFBD>
DIFY_API_URL=http://172.16.x.x/v1
DIFY_API_KEY=temp_placeholder_will_update_later
# Python微服务(稍后填写)
EXTRACTION_SERVICE_URL=http://172.16.x.x:8000 # ⚠️ 使用Python服务的内网IP从SAE控制台获取
# Python敺格<EFBFBD><EFBFBD><EFBFBD>蝔滚<EFBFBD>憛怠<EFBFBD>嚗? EXTRACTION_SERVICE_URL=http://172.16.x.x:8000 # <20>𩤃<EFBFBD> 雿輻鍂Python<6F>滚𦛚<E6BB9A><F0A69B9A><EFBFBD>蝵飡P嚗<50><E59A97>SAE<41><EFBFBD><E689B9>啗繮<E59597><EFBFBD>
# LLM API
DEEPSEEK_API_KEY=sk-***
@@ -353,20 +302,17 @@
# <20><EFBFBD>
NODE_ENV=production
PORT=3001
JWT_SECRET=(生成一个强密钥)
```
JWT_SECRET=<EFBFBD><EFBFBD><EFBFBD>𣂷<EFBFBD>銝芸撩撖<EFBFBD>𤨎嚗? ```
☐ **部署应用**
- ⏱️ 5分钟等待部署10分钟
- SAE控制台 > 部署
<EFBFBD>?**<2A>函蔡摨𠉛鍂**
- <EFBFBD><EFBFBD> 5<><35><EFBFBD><EFBFBD><E59A97><EFBFBD><E695BA>蝵?0<><30><EFBFBD>嚗?- SAE<41><EFBFBD><E689B9>?> <20>函蔡
- 蝑匧<E89D91>摰硺<E691B0><E7A1BA>臬𢆡
- 查看日志:应该看到"数据库连接成功"
- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗𡁜<EFBFBD>霂亦<EFBFBD><EFBFBD>?<3F>唳旿摨栞<E691A8><E6A09E><EFBFBD><E4BAA4>?
☐ **验证后端服务**
<EFBFBD>?**撉諹<E69289><E8ABB9>𡒊垢<F0A1928A>滚𦛚**
- <20><EFBFBD> 3<><33><EFBFBD>
- ```bash
# 健康检查
curl http://aiclinical-backend.sae:3001/health
# <EFBFBD>亙熒璉<EFBFBD><EFBFBD>? curl http://aiclinical-backend.sae:3001/health
# 摨磰砲餈𥪜<E9A488> 200 OK
# 瘚贝<E7989A><E8B49D><EFBFBD>瘜典<E7989C>
@@ -378,48 +324,44 @@
---
### 2.2 Python微服务部署
☐ **本地代码准备**
### 2.2 Python敺格<EFBFBD><EFBFBD><EFBFBD>蝵?
<EFBFBD>?**<2A>砍𧑐隞<F0A79190><E99A9E><EFBFBD><EFBFBD><EFBFBD>**
- <20><EFBFBD> 5<><35><EFBFBD>
- `cd extraction_service`
- 蝖桐<E89D96>requirements.txt甇<74>
☐ **修改DockerfileWorkers限制)**
<EFBFBD>?**靽格㺿Dockerfile嚗Áorkers<EFBFBD>𣂼<EFBFBD>嚗?*
- <20><EFBFBD> 2<><32><EFBFBD>
- 蝻𤥁<E89DBB> `extraction_service/Dockerfile`
- CMD霈曄蔭workers=2
- 🔗 参考:`07-关键配置补充说明.md` 第6节
☐ **构建Docker镜像**
- ⏱️ 10分钟Python镜像较大
- ```bash
- <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>`07-<2D>喲睸<E596B2>滨蔭銵亙<E98AB5>霂湔<E99C82>.md` 蝚?<3F>?
<EFBFBD>?**<2A><>遣Docker<65>𨅯<EFBFBD>**
- <20><EFBFBD> 10<31><30><EFBFBD>嚗㇊ython<6F>𨅯<EFBFBD><EFBFBD>之嚗?- ```bash
cd extraction_service
docker build -t python-service:v1.0.0 .
```
☐ **本地测试镜像**
<EFBFBD>?**<2A>砍𧑐瘚贝<E7989A><E8B49D>𨅯<EFBFBD>**
- <20><EFBFBD> 5<><35><EFBFBD>
- ```bash
docker run -p 8000:8000 python-service:v1.0.0
curl http://localhost:8000/health
```
☐ **推送到ACR**
<EFBFBD>?**<2A><EFBFBD><E588B8><EFBFBD>ACR**
- <20><EFBFBD> 5<><35><EFBFBD>
- ```bash
docker tag python-service:v1.0.0 registry.cn-hangzhou.aliyuncs.com/aiclinical/python-service:v1.0.0
docker push registry.cn-hangzhou.aliyuncs.com/aiclinical/python-service:v1.0.0
```
☐ **创建SAE应用**
<EFBFBD>?**<2A>𥕦遣SAE摨𠉛鍂**
- <20><EFBFBD> 10<31><30><EFBFBD>
- 摨𠉛鍂<F0A0899B>滨妍嚗惨iclinical-python-service
- <20>𨅯<EFBFBD>嚗鬏egistry.cn-hangzhou.aliyuncs.com/aiclinical/python-service:v1.0.0
- 实例规格1核2GB 不要低于2GB
- 实例数量最小1最大3
- 摰硺<EFBFBD><EFBFBD>聢嚗?<3F>?GB嚗<42><E59A97>儭?銝滩<E98A9D>雿𦒘<E99BBF>2GB嚗?- 摰硺<E691B0><E7A1BA><EFBFBD>嚗𡁏<E59A97>撠?嚗峕<E59A97>憭?
☐ **配置环境变量**
<EFBFBD>?**<2A>滨蔭<E6BBA8><EFBFBD><E887AC><EFBFBD>**
- <20><EFBFBD> 3<><33><EFBFBD>
- ```bash
OSS_REGION=cn-hangzhou
@@ -428,56 +370,54 @@
OSS_ACCESS_KEY_SECRET=***
```
☐ **部署并验证**
<EFBFBD>?**<2A>函蔡撟園<E6929F>霂?*
- <20><EFBFBD> 5<><35><EFBFBD>
- <20>函蔡摨𠉛鍂
- 测试:`curl http://172.16.x.x:8000/health`使用实际内网IP
- 瘚贝<EFBFBD>嚗䫤curl http://172.16.x.x:8000/health`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵飡P嚗?
---
### 2.3 <20>滨垢<E6BBA8>函蔡
☐ **本地代码准备**
<EFBFBD>?**<2A>砍𧑐隞<F0A79190><E99A9E><EFBFBD><EFBFBD><EFBFBD>**
- <20><EFBFBD> 10<31><30><EFBFBD>
- `cd frontend-v2`
- `npm install`
- `npm run build`
☐ **修改nginx.conf(文件大小限制)**
<EFBFBD>?**靽格㺿nginx.conf<EFBFBD><EFBFBD>隞嗅之撠誯<EFBFBD><EFBFBD><EFBFBD>**
- <20><EFBFBD> 2<><32><EFBFBD>
- 蝻𤥁<E89DBB> `frontend-v2/nginx.conf.template`
- 瘛餃<E7989B> `client_max_body_size 50M;`
- 🔗 参考:`07-关键配置补充说明.md` 第5节
☐ **构建Docker镜像**
- <20><> <20><><EFBFBD><EFBFBD><EFBFBD>`07-<2D>喲睸<E596B2>滨蔭銵亙<E98AB5>霂湔<E99C82>.md` 蝚?<3F>?
<EFBFBD>?**<2A><>遣Docker<65>𨅯<EFBFBD>**
- <20><EFBFBD> 5<><35><EFBFBD>
- ```bash
cd frontend-v2
docker build -t frontend:v1.0.0 .
```
☐ **推送到ACR**
<EFBFBD>?**<2A><EFBFBD><E588B8><EFBFBD>ACR**
- <20><EFBFBD> 3<><33><EFBFBD>
- ```bash
docker tag frontend:v1.0.0 registry.cn-hangzhou.aliyuncs.com/aiclinical/frontend:v1.0.0
docker push registry.cn-hangzhou.aliyuncs.com/aiclinical/frontend:v1.0.0
```
☐ **创建SAE应用**
<EFBFBD>?**<2A>𥕦遣SAE摨𠉛鍂**
- <20><EFBFBD> 10<31><30><EFBFBD>
- 摨𠉛鍂<F0A0899B>滨妍嚗惨iclinical-frontend
- <20>𨅯<EFBFBD>嚗鬏egistry.cn-hangzhou.aliyuncs.com/aiclinical/frontend:v1.0.0
- 实例规格0.5核1GB
- 实例数量1
- 摰硺<EFBFBD><EFBFBD>聢嚗?.5<EFBFBD>?GB
- 摰硺<EFBFBD><EFBFBD><EFBFBD>嚗?
☐ **配置环境变量**
<EFBFBD>?**<2A>滨蔭<E6BBA8><EFBFBD><E887AC><EFBFBD>**
- <20><EFBFBD> 2<><32><EFBFBD>
- ```bash
BACKEND_SERVICE_HOST=aiclinical-backend.sae
BACKEND_SERVICE_PORT=3001
```
☐ **部署并验证**
<EFBFBD>?**<2A>函蔡撟園<E6929F>霂?*
- <20><EFBFBD> 5<><35><EFBFBD>
- <20>函蔡摨𠉛鍂
- 瘚讛<E7989A><E8AE9B>刻挪<E588BB><EFBFBD>http://<2F>滨垢<E6BBA8><EFBFBD><E7A589><EFBFBD>
@@ -485,28 +425,23 @@
---
## 阶段3Dify服务部署Day 2上午
### 3.1 ECS服务器准备
☐ **创建ECS实例**
- ⏱️ 10分钟等待创建5分钟
- ECS控制台 > 创建实例
- 实例规格ecs.c6.xlarge4核8GB
- 镜像Ubuntu 22.04
## <EFBFBD>嗆挾3嚗鋽ify<EFBFBD>滚𦛚<EFBFBD>函蔡嚗㇄ay 2銝𠰴<E98A9D>嚗?
### 3.1 ECS<43>滚𦛚<E6BB9A><EFBFBD>憭?
<EFBFBD>?**<2A>𥕦遣ECS摰硺<E691B0>**
- <20><EFBFBD> 10<31><30><EFBFBD><EFBFBD><E59A97><EFBFBD><E695BA>撱?<3F><><EFBFBD>嚗?- ECS<43><EFBFBD><E689B9>?> <20>𥕦遣摰硺<E691B0>
- 摰硺<E691B0><EFBFBD>聢嚗塄cs.c6.xlarge嚗?<3F>?GB嚗?- <20>𨅯<EFBFBD>嚗䦧buntu 22.04
- VPC嚗惨iclinical-vpc-prod
- 鈭斗揢<E69697><EFBFBD>aiclinical-vsw-prod
- 摰匧<E691B0><EFBFBD><E89D8F>aiclinical-sg-prod
- 公网IP分配用于管理和Dify访问
- 记录公网IP________________
- <EFBFBD><EFBFBD>IP嚗𡁜<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝞∠<EFBFBD><EFBFBD>㷉ify霈輸䔮嚗?- 霈啣<E99C88><E595A3><EFBFBD>IP嚗噔_______________
**SSH登录ECS**
<EFBFBD>?**SSH<EFBFBD><EFBFBD>ECS**
- <20><EFBFBD> 2<><32><EFBFBD>
- ```bash
ssh root@ECS<43><EFBFBD>IP
```
☐ **安装Docker**
<EFBFBD>?**摰㕑<E691B0>Docker**
- <20><EFBFBD> 5<><35><EFBFBD>
- ```bash
curl -fsSL https://get.docker.com | bash
@@ -515,7 +450,7 @@
docker --version
```
☐ **安装Docker Compose**
<EFBFBD>?**摰㕑<E691B0>Docker Compose**
- <20><EFBFBD> 3<><33><EFBFBD>
- ```bash
curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
@@ -523,7 +458,7 @@
docker-compose --version
```
☐ **配置Swap防止OOM**
<EFBFBD>?**<2A>滨蔭Swap嚗<70>俈甇㏕OM嚗?*
- <20><EFBFBD> 5<><35><EFBFBD>
- ```bash
fallocate -l 4G /swapfile
@@ -533,13 +468,12 @@
echo '/swapfile none swap sw 0 0' >> /etc/fstab
swapon --show
```
- 🔗 参考:`03-Dify-ECS部署完全指南.md` 第4节
- <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>`03-Dify-ECS<EFBFBD>函蔡摰<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.md` 蝚?<3F>?
---
### 3.2 Dify<66>函蔡
☐ **下载Dify**
<EFBFBD>?**銝贝蝸Dify**
- <20><EFBFBD> 5<><35><EFBFBD>
- ```bash
cd /opt
@@ -547,22 +481,19 @@
cd dify/docker
```
☐ **修改docker-compose.yaml(端口安全)**
<EFBFBD>?**靽格㺿docker-compose.yaml<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
- <20><EFBFBD> 5<><35><EFBFBD>
- 蝻𤥁<E89DBB> `docker-compose.yaml`
- Redis蝡臬藁嚗䫤127.0.0.1:6379:6379`
- Weaviate蝡臬藁嚗䫤127.0.0.1:8080:8080`
- ⚠️ 只有Nginx对外80端口
- 🔗 参考:`07-关键配置补充说明.md` 第4节
☐ **配置.env文件**
- <20>𩤃<EFBFBD> <20><EFBFBD>Nginx撖孵<E69296>嚗?0蝡臬藁嚗?- <20><> <20><><EFBFBD><EFBFBD><EFBFBD>`07-<2D>喲睸<E596B2>滨蔭銵亙<E98AB5>霂湔<E99C82>.md` 蝚?<3F>?
<EFBFBD>?**<2A>滨蔭.env<6E><76>辣**
- <20><EFBFBD> 10<31><30><EFBFBD>
- ```bash
cp .env.example .env
vi .env
```
- 关键配置:
```bash
- <EFBFBD>喲睸<EFBFBD>滨蔭嚗? ```bash
# Redis
REDIS_HOST=redis
REDIS_PORT=6379
@@ -572,24 +503,21 @@
DB_PORT=5432
DB_DATABASE=dify
DB_USERNAME=postgres
DB_PASSWORD=(生成强密码)
DB_PASSWORD=<EFBFBD><EFBFBD><EFBFBD>𣂼撩撖<EFBFBD><EFBFBD>嚗?
# Weaviate
WEAVIATE_ENDPOINT=http://weaviate:8080
# <20><EFBFBD>
SECRET_KEY=(生成强密钥)
```
SECRET_KEY=<EFBFBD><EFBFBD><EFBFBD>𣂼撩撖<EFBFBD>𤨎嚗? ```
☐ **启动Dify**
<EFBFBD>?**<2A>臬𢆡Dify**
- <20><EFBFBD> 10<31><30><EFBFBD><EFBFBD><E59A97><E288AA><EFBFBD><EFBFBD><E996AC><EFBFBD><EFBFBD><E39A9A>𧶏<EFBFBD>
- ```bash
docker-compose up -d
docker-compose logs -f
# 等待所有服务启动约2-3分钟
```
# 蝑匧<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝥?-3<><33><EFBFBD>嚗? ```
☐ **验证Dify服务**
<EFBFBD>?**撉諹<E69289>Dify<EFBFBD>滚𦛚**
- <20><EFBFBD> 3<><33><EFBFBD>
- 瘚讛<E7989A><E8AE9B>刻挪<E588BB><EFBFBD>http://ECS<43><EFBFBD>IP
- 摨磰砲<E7A3B0><EFBFBD>Dify甈<E79488>憿菟𢒰
@@ -598,70 +526,62 @@
### 3.3 Dify<66>滨蔭
☐ **注册管理员账号**
<EFBFBD>?**瘜典<E7989C>蝞∠<E89D9E><E288A0>䁅揭<E48185>?*
- <20><EFBFBD> 2<><32><EFBFBD>
- 首次访问会提示注册
- 邮箱admin@your-company.com
- 擐𡝗活霈輸䔮隡𡁏<EFBFBD>蝷箸釣<EFBFBD>?- <20>桃拳嚗惨dmin@your-company.com
- 撖<><E69296>嚗𡄯<E59A97>撘箏<E69298><E7AE8F><EFBFBD><EFBFBD>
☐ **创建API Key**
<EFBFBD>?**<2A>𥕦遣API Key**
- <20><EFBFBD> 3<><33><EFBFBD>
- <20><EFBFBD>Dify
- 霈曄蔭 > API撖<49>𤨎 > <20>𥕦遣撖<E981A3>𤨎
- <20>滨妍嚗鋳ackend Service
- 憭滚<E686AD>API Key嚗惨pp-xxxxxxxxxxxxxxxxxxxxx
- ⚠️ 妥善保存,只显示一次
☐ **更新后端环境变量**
- <EFBFBD>𩤃<EFBFBD> 憒亙<E68692>靽嘥<E99DBD><EFBFBD><EFBFBD>曄內銝<E585A7>甈?
<EFBFBD>?**<2A>湔鰵<E6B994>𡒊垢<F0A1928A><EFBFBD><E887AC><EFBFBD>**
- <20><EFBFBD> 5<><35><EFBFBD>
- SAE控制台 > aiclinical-backend > 环境变量
- 修改:
```bash
- SAE<EFBFBD><EFBFBD><EFBFBD>?> aiclinical-backend > <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- 靽格㺿嚗? ```bash
DIFY_API_URL=http://172.16.x.x/v1 # ECS<43><53><EFBFBD>IP
DIFY_API_KEY=app-xxxxxxxxxxxxxxxxxxxxx # <20><EFBFBD>Key
```
- 靽嘥<E99DBD> > <20>滚鍳摨𠉛鍂
☐ **测试PKB功能**
<EFBFBD>?**瘚贝<E7989A>PKB<4B><EFBFBD>**
- <20><EFBFBD> 5<><35><EFBFBD>
- ```bash
# 创建知识库
curl -X POST http://前端地址/api/v1/pkb/knowledge-bases \
# <EFBFBD>𥕦遣<EFBFBD><EFBFBD>摨? curl -X POST http://<2F>滨垢<E6BBA8><EFBFBD>/api/v1/pkb/knowledge-bases \
-H "Authorization: Bearer USER_TOKEN" \
-d '{"name":"测试知识库"}'
-d '{"name":"瘚贝<EFBFBD><EFBFBD><EFBFBD>摨?}'
# 摨磰砲餈𥪜<E9A488> 200 OK
```
---
## 阶段4端到端测试Day 2下午
## <EFBFBD>嗆挾4嚗𡁶垢<EFBFBD>啁垢瘚贝<EFBFBD>嚗㇄ay 2銝见<E98A9D>嚗?
### 4.1 <20><EFBFBD>瘚贝<E7989A>
☐ **用户注册/登录**
<EFBFBD>?**<2A><EFBFBD>瘜典<E7989C>/<2F><EFBFBD>**
- <20><EFBFBD> 5<><35><EFBFBD>
- 前端注册新用户
- 登录成功
- <EFBFBD>滨垢瘜典<EFBFBD><EFBFBD>啁鍂<EFBFBD>?- <20><EFBFBD><E9A483>𣂼<EFBFBD>
**AI对话AIA模块**
<EFBFBD>?**AI撖寡<EFBFBD>嚗㇁IA璅<EFBFBD>嚗?*
- <20><EFBFBD> 5<><35><EFBFBD>
- <20>𥕦遣憿寧𤌍
- <20>𤏸絲撖寡<E69296>
- 撉諹<E69289>DeepSeek API靚<49><EFBFBD>𣂼<EFBFBD>
☐ **知识库PKB模块**
<EFBFBD>?**<2A><EFBFBD>摨橒<E691A8>PKB璅<E79285>嚗?*
- <20><EFBFBD> 10<31><30><EFBFBD>
- 创建知识库
- 上传PDF文档
- <EFBFBD>𥕦遣<EFBFBD><EFBFBD>摨?- 銝𠹺<E98A9D>PDF<44><46>
- 撉諹<E69289>Dify憭<79><E686AD><EFBFBD>𣂼<EFBFBD>
☐ **文献筛选ASL模块**
<EFBFBD>?**<2A><>讃蝑偦<E89D91><EFBFBD>ASL璅<E79285>嚗?*
- <20><EFBFBD> 10<31><30><EFBFBD>
- 创建筛选项目
- 上传PDF
- <EFBFBD>𥕦遣蝑偦<EFBFBD>厰★<EFBFBD>?- 銝𠹺<E98A9D>PDF
- 撉諹<E69289>Python<6F>滚𦛚閫<F0A69B9A><E996AB><EFBFBD>𣂼<EFBFBD>
☐ **数据清洗DC模块**
<EFBFBD>?**<2A>唳旿皜<E697BF><E79A9C>嚗㇄C璅<E79285>嚗?*
- <20><EFBFBD> 10<31><30><EFBFBD>
- 銝𠹺<E98A9D>Excel
- <20><EFBFBD><EFBFBD><E79A9C>
@@ -671,48 +591,39 @@
### 4.2 <20><EFBFBD>瘚贝<E7989A>
☐ **响应时间**
<EFBFBD>?**<2A><EFBFBD><E6BB9A>園𡢿**
- <20><EFBFBD> 10<31><30><EFBFBD>
- API响应时间 < 2秒
- 页面加载时间 < 3秒
☐ **并发测试**
- API<EFBFBD><EFBFBD><EFBFBD>園𡢿 < 2蝘?- 憿菟𢒰<E88F9F>㰘蝸<E3B098>園𡢿 < 3蝘?
<EFBFBD>?**撟嗅<E6929F>瘚贝<E7989A>**
- <20><EFBFBD> 10<31><30><EFBFBD>
- 雿輻鍂Apache Bench<63>銺Meter
- 模拟10个并发用户
- 验证无错误
- 璅⊥<EFBFBD>10銝芸僎<EFBFBD>𤑳鍂<EFBFBD>?- 撉諹<E69289><E8ABB9>𣳇<EFBFBD>霂?
---
### 4.3 <20>烐綉<E78390>滨蔭
☐ **配置日志收集**
<EFBFBD>?**<2A>滨蔭<E6BBA8><EFBFBD><E4BA99><EFBFBD>**
- <20><EFBFBD> 10<31><30><EFBFBD>
- SAE<41>芸𢆡<E88AB8><EFBFBD>stdout/stderr
- 验证日志可查看
☐ **配置告警规则**
- 撉諹<EFBFBD><EFBFBD><EFBFBD><EFBFBD>舀䰻<EFBFBD>?
<EFBFBD>?**<2A>滨蔭<E6BBA8>𡃏郎閫<E9838E><E996AB>**
- <20><EFBFBD> 15<31><35><EFBFBD>
- 云监控 > 告警规则
- 鈭𤑳<EFBFBD><EFBFBD>?> <20>𡃏郎閫<E9838E><E996AB>
- CPU > 70%
- <20><><EFBFBD> > 80%
- 错误日志 > 10条/分钟
- <EFBFBD>躰秤<EFBFBD><EFBFBD> > 10<31>?<3F><><EFBFBD>
---
## 阶段5优化与文档Day 3
### 5.1 可选优化
☐ **配置SSH隧道开发便利**
## <EFBFBD>嗆挾5嚗帋<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>﹝嚗㇄ay 3嚗?
### 5.1 <20><EFBFBD><EFBFBD><E58A90>?
<EFBFBD>?**<2A>滨蔭SSH<53><EFBFBD><EFBFBD><E59A97><EFBFBD>睲噶<E79DB2><EFBFBD>**
- <20><EFBFBD> 10<31><30><EFBFBD>
- 🔗 参考:`07-关键配置补充说明.md` 第7节
☐ **实现OSS签名URL安全**
- <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>`07-<2D>喲睸<E596B2>滨蔭銵亙<E98AB5>霂湔<E99C82>.md` 蝚?<3F>?
<EFBFBD>?**摰䂿緵OSS蝑曉<E89D91>URL嚗<4C><E59A97><EFBFBD><EFBFBD>**
- <20><EFBFBD> 30<33><30><EFBFBD>
- 🔗 参考:`07-关键配置补充说明.md` 第8节
☐ **配置域名(可选)**
- <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>`07-<2D>喲睸<E596B2>滨蔭銵亙<E98AB5>霂湔<E99C82>.md` 蝚?<3F>?
<EFBFBD>?**<2A>滨蔭<E6BBA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
- <20><EFBFBD> 30<33><30><EFBFBD>
- 韐凋僭<E5878B><EFBFBD>
- <20>滨蔭DNS閫<53><E996AB>
@@ -722,22 +633,20 @@
### 5.2 <20><><EFBFBD><EFBFBD>
☐ **记录配置信息**
<EFBFBD>?**霈啣<E99C88><E595A3>滨蔭靽⊥<E99DBD>**
- <20><EFBFBD> 20<32><30><EFBFBD>
- <20>𥕦遣 `<EFBFBD>函蔡<EFBFBD>滨蔭皜<EFBFBD><EFBFBD>.xlsx`
- 霈啣<E99C88><E595A3><EFBFBD><EFBFBD><EFBFBD><E58CA7><EFBFBD><EFBFBD><EFBFBD>𧑐<EFBFBD><F0A79190><EFBFBD><EFBFBD>ey
☐ **备份配置文件**
<EFBFBD>?**憭<><EFBFBD>滨蔭<E6BBA8><E894AD>**
- <20><EFBFBD> 10<31><30><EFBFBD>
- Dify`.env` `docker-compose.yaml`
- 上传到私有Git仓库或加密存储
**编写运维手册**
- Dify<EFBFBD>?`.env` <EFBFBD>?`docker-compose.yaml`
- 銝𠹺<EFBFBD><EFBFBD><EFBFBD><EFBFBD>滝it隞枏<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
<EFBFBD>?**蝻硋<E89DBB>餈鞟輕<E99E9F><EFBFBD>**
- <20><EFBFBD> 30<33><30><EFBFBD>
- <20>亙虜<E4BA99><EFBFBD><EFBFBD><E7989A>
- <20><><EFBFBD><EFBFBD><E686AD><EFBFBD><E7989A>
- 联系人信息
- <EFBFBD>𠉛頂鈭箔縑<EFBFBD>?
---
## <20><EFBFBD>
@@ -747,37 +656,35 @@
| <20>嗆挾 | 憸<><EFBFBD>園𡢿 | 摰鮋<E691B0><E9AE8B>園𡢿 |
|------|---------|---------|
| <20>嗆挾1嚗𡁜抅蝖<E68A85>霈暹鴌 | 2撠𤩺𧒄 | _______ |
| 阶段2核心服务 | 2小时 | _______ |
| <EFBFBD>嗆挾2嚗𡁏瓲敹<EFBFBD><EFBFBD><EFBFBD>?| 2撠𤩺𧒄 | _______ |
| <20>嗆挾3嚗鋽ify<66>滚𦛚 | 1撠𤩺𧒄 | _______ |
| 阶段4测试 | 1小时 | _______ |
| 阶段5优化 | 可选 | _______ |
| <EFBFBD>嗆挾4嚗𡁏<EFBFBD>霂?| 1撠𤩺𧒄 | _______ |
| <EFBFBD>嗆挾5嚗帋<EFBFBD><EFBFBD>?| <20><EFBFBD>?| _______ |
| **<EFBFBD>餉恣** | **6撠𤩺𧒄** | _______ |
### <20>鞉𧋦蝏蠘恣
| 服务 | 规格 | 月成本 |
| <EFBFBD>滚𦛚 | 閫<>聢 | <20><><EFBFBD><EFBFBD>?|
|------|------|--------|
| SAE前端 | 0.5核1GB×1 | ¥50 |
| SAE后端 | 1核2GB×2 | ¥200 |
| SAE Python | 1核2GB×1 | ¥100 |
| RDS PostgreSQL | 2核4GB | ¥400 |
| ECS Dify | 4核8GB | ¥300 |
| SAE<EFBFBD>滨垢 | 0.5<EFBFBD>?GB<EFBFBD>1 | 50 |
| SAE<EFBFBD>𡒊垢 | 1<EFBFBD>?GB<EFBFBD>2 | 200 |
| SAE Python | 1<EFBFBD>?GB<EFBFBD>1 | 100 |
| RDS PostgreSQL | 2<EFBFBD>?GB | 400 |
| ECS Dify | 4<EFBFBD>?GB | 300 |
| OSS | 50GB | 瞼10 |
| NAT蝵穃<E89DB5> | 撠誩<E692A0>+EIP | 瞼100 |
| **总计** | - | **¥1,160/月** |
| **<EFBFBD>餉恣** | - | **瞼1,160/<EFBFBD>?* |
### 下一步
☐ 观察7天稳定性
☐ 根据监控数据调整资源
☐ 准备故障演练
☐ 编写用户手册
### 銝衤<EFBFBD>甇?
<EFBFBD>?閫<><E996AB>7憭拍迅摰𡁏<E691B0>?<3F>?<3F>寞旿<E5AF9E>烐綉<E78390>唳旿靚<E697BF>㟲韏<E39FB2><E99F8F>
<EFBFBD>?<3F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瞍𠉛<E79E8D>
<EFBFBD>?蝻硋<E89DBB><E7A18B><EFBFBD><E586BD><EFBFBD>
---
**恭喜你已经完成了从0到1的部署** 🎉
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>撌脩<EFBFBD>摰峕<EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>?<3F><><EFBFBD>蝵莎<E89DB5>** <20><>
**<EFBFBD><EFBFBD><EFBFBD>𥕦遣鈭綽<EFBFBD>** AI<41><EFBFBD>
**<EFBFBD><EFBFBD><EFBFBD>擧凒<EFBFBD><EFBFBD>** 2025-12-14
**版本:** v1.0
**<EFBFBD><EFBFBD>𧋦嚗?* v1.0