Update deployment documents for the 0310 SAE release, including new backend/frontend service IPs, latest image versions, and a fresh 0310 deployment summary. Also reset the pending deployment checklist after successful rollout and include the ASL navigation toggle adjustment. Made-with: Cursor
31 KiB
31 KiB
🚀 AI临床研究平台 - 阿里云SAE最新真实状态记录
文档用途:记录阿里云SAE服务器最新真实状态 + 每次部署记录
最后更新:2026-03-10
维护人员:开发团队
说明:本文档准确记录SAE上所有应用的当前状态,包括内网地址、镜像版本、用户名密码等关键资源信息
📊 一、当前部署状态一览
| 服务名称 | 部署状态 | 镜像版本 | 部署位置 | 最后更新时间 |
|---|---|---|---|---|
| PostgreSQL数据库 | ✅ 运行中 | PostgreSQL 15 + 插件 | RDS | 2026-03-10 |
| 前端Nginx服务 | ✅ 运行中 | v2.8 | SAE | 2026-03-10 |
| Python微服务 | ✅ 运行中 | v1.2 | SAE | 2026-02-27 |
| Node.js后端 | ✅ 运行中 | v2.11 | SAE | 2026-03-10 |
| R统计引擎 | ✅ 运行中 | v1.0.5 | SAE | 2026-03-09 |
| Dify AI服务 | ⚠️ 已废弃 | - | - | 使用pgvector替代 |
🔑 二、阿里云资源信息
2.1 ACR容器镜像仓库
基本信息:
- 命名空间:
ai-clinical - Registry地址(公网):
crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com - Registry地址(VPC):
crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com - 用户名:
gofeng117@163.com - 密码:
fengzhibo117
镜像仓库列表:
| 仓库名称 | 最新版本 | 镜像大小 | VPC地址 |
|---|---|---|---|
| python-extraction | v1.2 | ~1.1GB | crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/python-extraction:v1.2 |
| ssa-r-statistics | v1.0.5 | ~2.1GB | crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ssa-r-statistics:v1.0.5 |
| ai-clinical_frontend-nginx | v2.8 | ~100MB | crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v2.8 |
| backend-service | v2.11 | ~900MB | crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v2.11 |
2.2 VPC网络与NAT网关
VPC信息:
- VPC ID:
vpc-2ze055cptkew9c38w4r06 - VPC名称:
ai-clinical-vpc - 网段:
172.17.0.0/16 - 地域:华北2(北京)
- 交换机1:
vsw-2zevacop039bxrmj6yc0c(可用区F) - 交换机2:
vsw-2zehoeyw9ldncymcyvfwq(可用区A) - 安全组ID:
sg-2zedk6fi8sgmmcwdu7tu
NAT网关信息:
- NAT网关名称:
NAT_airesearch - NAT网关ID:
ngw-2zeec9ulzgw7ywvx1pst6 - 公网IP(EIP):
182.92.176.14 - SNAT表ID:
stb-2zesszmzx1qpwf1cb2bry
2.3 RDS PostgreSQL数据库
实例信息:
- 实例ID:
pgm-2zex1m2y3r23hdn5 - 规格:2核4GB(pg.n2.2c.1m)
- 存储空间:100GB(SSD云盘)
- PostgreSQL版本:15.0
- 内网地址:
pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432 - 外网地址:
pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com(⚠️ 已关闭) - 最大连接数:400
- 时区:Asia/Shanghai
- 白名单:172.17.0.0/16(VPC网段)
数据库配置:
- 数据库名:
ai_clinical_research - 用户名:
airesearch - 密码:
Xibahe@fengzhibo117 - 字符集:UTF8
- 排序规则:en_US.utf8
连接字符串:
postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research
⚠️ 注意:密码中的 @ 需要URL编码为 %40
数据库环境(2026-01-27更新):
| 数据库 | 环境 | Schema数量 | 表数量 | 插件 | 用途 |
|---|---|---|---|---|---|
ai_clinical_research_test |
测试环境(当前) | 16 | 86 | pg_bigm, pgvector | SAE测试环境(26个迁移已应用) |
ai_clinical_research |
生产环境(备用) | 11 | ~34 | pg_bigm, pgvector | 未来正式上线 |
Schema架构(16个业务Schema - 测试数据库):
| Schema名称 | 功能模块 | 表数量 | 说明 |
|---|---|---|---|
platform_schema |
平台核心 | 19 | 用户、权限、任务队列(pg-boss) |
aia_schema |
AI智能问答 | 3 | AI项目、对话、消息 |
asl_schema |
系统文献筛查 | 7 | 项目、文献、筛查记录 |
pkb_schema |
个人知识库 | 5 | 知识库、文档、批处理 |
dc_schema |
数据清洗 | 6 | 工具A/B/C数据处理 |
iit_schema |
IIT Manager Agent | 22 | IIT项目管理、QC质控引擎、审计日志 |
agent_schema |
Agent框架 | 6 | Agent定义、会话、追踪 |
ekb_schema |
企业知识库 | 3 | 知识库、文档、向量 |
capability_schema |
通用能力 | 2 | Prompt模板、版本 |
protocol_schema |
方案设计 | 2 | 研究方案生成 |
admin_schema |
系统管理 | 2 | 操作日志 |
rvw_schema |
文献回顾 | 1 | 审查任务 |
ssa_schema |
智能统计分析 | 11 | 工作流、分析结果、报告生成 |
st_schema |
统计工具 | 0 | 预留 |
common_schema |
公共模块 | 0 | 预留 |
public |
兼容旧数据 | 2 | 旧表兼容 |
2.4 SAE Serverless应用
命名空间:
- 命名空间ID:
cn-beijing:test-airesearch - 地域:华北2(北京)
已部署应用列表:
| 应用名称 | 状态 | 规格 | 实例数 | 端口 | 内网地址 | 镜像版本 |
|---|---|---|---|---|---|---|
| r-statistics-test | ✅ 运行中 | 1核2GB | 1 | 8080 | http://172.17.197.26:8080 |
v1.0.5 |
| python-extraction-test | ✅ 运行中 | 2核4GB | 1 | 8000 | http://172.17.173.102:8000 |
v1.2 |
| nodejs-backend-test | ✅ 运行中 | 2核4GB | 1 | 3001 | http://172.17.173.110:3001 |
v2.11 |
| frontend-nginx-service | ✅ 运行中 | 0.5核1GB | 1 | 80 | http://172.17.197.28:80 |
v2.8 |
环境变量配置:
Node.js后端(nodejs-backend-test):
NODE_ENV=production
PORT=3001
DATABASE_URL=postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research_test?connection_limit=18&pool_timeout=10
# Python微服务地址
EXTRACTION_SERVICE_URL=http://172.17.173.102:8000
# R统计引擎地址
R_SERVICE_URL=http://172.17.197.26:8080
# OSS配置
OSS_ACCESS_KEY_ID=LTAI5tB2Dt3NdvBL3G7nYGv7
OSS_ACCESS_KEY_SECRET=1iSN9k39RkApP93QjUhC1DcPIeMG4V
OSS_BUCKET=ai-clinical-research
OSS_ENDPOINT=oss-cn-beijing-internal.aliyuncs.com
OSS_REGION=cn-beijing
STORAGE_TYPE=oss
# JWT密钥
JWT_SECRET=8a3f9e7c2d1b5a4e6f8c9d0a3b5e7f1c2a4b6c8d0e2f4a6b8c0d2e4f6a8b0c2d4
JWT_EXPIRES_IN=7d
# LLM API Keys
DEEPSEEK_API_KEY=sk-7f8cc37a79fa4799860b38fc7ba2e150
DASHSCOPE_API_KEY=sk-75b4ff29a14a49e79667a331034f3298
# CloseAI配置
CLOSEAI_API_KEY=sk-cu0iepbXYGGx2jc7BqP6ogtSWmP6fk918qV3RUdtGC3Ed1po
CLOSEAI_OPENAI_BASE_URL=https://api.openai-proxy.org/v1
CLOSEAI_CLAUDE_BASE_URL=https://api.openai-proxy.org/anthropic
# Deep Research
UNIFUNCS_API_KEY=sk-2fNwqUH7...
# MinerU PDF提取
MINERU_API_BASE=https://mineru.net/api/v4
# Postgres-Only架构
QUEUE_TYPE=pgboss
CACHE_TYPE=postgres
# 企业微信配置
WECHAT_CORP_ID=ww6ab493470ab4f377
WECHAT_AGENT_ID=1000002
WECHAT_CORP_SECRET=AZIVxMtoLb0rEszXS81e4dBRl-I9kgTjygIS0cFfENU
# 旧系统 MySQL 连接(Legacy Bridge)
LEGACY_MYSQL_HOST=8.154.22.149
LEGACY_MYSQL_PORT=3306
LEGACY_MYSQL_USER=root
LEGACY_MYSQL_DATABASE=xzyx_online
前端Nginx(frontend-nginx-service):
BACKEND_SERVICE_HOST=172.17.173.110
BACKEND_SERVICE_PORT=3001
Python微服务(python-extraction-test):
LOG_LEVEL=INFO
TEMP_DIR=/tmp/extraction_service
2.5 OSS对象存储
Bucket信息:
- Bucket名称:
ai-clinical-research - 地域:华北2(北京)
- 存储类型:标准存储
- 访问控制:私有
- 存储冗余类型:同城冗余存储
- 内网Endpoint:
oss-cn-beijing-internal.aliyuncs.com - 公网Endpoint:
oss-cn-beijing.aliyuncs.com - Bucket域名(内网):
ai-clinical-research.oss-cn-beijing-internal.aliyuncs.com - 创建时间:2025-12-16 20:22
RAM用户访问凭证:
- RAM用户名:
oss-bucket-put-object@1991407246109125.onaliyun.com - AccessKeyId:
LTAI5tB2Dt3NdvBL3G7nYGv7 - AccessKeySecret:
1iSN9k39RkApP93QjUhC1DcPIeMG4V - UID:
203256565888301026 - 创建时间:2025-12-16 20:31:41
⚠️ 安全警告:AccessKey是敏感信息,请勿提交到公开Git仓库!
存储用途:
/uploads/pdfs/- PDF文件上传/uploads/docx/- Word文档上传/uploads/txt/- 文本文件上传/exports/- 导出文件临时存储
2.6 CLB负载均衡器
公网访问地址:
- 公网IP:
8.140.53.236 - 访问地址:
http://8.140.53.236/ - 域名绑定:
https://iit.xunzhengyixue.com/(已备案) - 后端服务器:
172.17.173.80:80(前端Nginx) - 监听端口:80(HTTP)
📦 三、已部署服务详情
3.1 PostgreSQL数据库
- 部署时间:2025-12-24
- 部署方式:
pg_dump全量导出 → RDS导入 - 数据迁移时长:约12秒(90MB SQL文件)
- 验证状态:✅ Schema完整、数据一致、关系正确
- 备份文件:
AIclinicalresearch/rds_init_20251224_154529.sql(90MB) - RDS自动备份:每日凌晨2点(保留7天)
3.2 前端Nginx服务
当前部署版本:v2.8
镜像信息:
- 仓库名称:
ai-clinical_frontend-nginx - 镜像版本:
v2.8✅(当前部署版本) - 镜像大小:约50MB
- 基础镜像:
nginx:alpine - 构建时间:2026-03-05
- 镜像摘要:sha256:6cb9e8be2bcd21fd8ccfe09dabdbb04d64c252fd9a5b5b3a55d5ba6fb52dcde1
部署状态:
- ✅ 已成功部署到SAE(2026-03-05)
- ✅ 服务运行正常(内网地址:http://172.17.197.28:80)
- ✅ 企业微信域名验证文件已部署(WW_verify_YnhsQBwI0ARnNoG0.txt)
v2.5版本更新内容:
- ✅ 前端 bug 修复和 UI 优化(基于测试反馈,0305 三次迭代)
- ⚠️ 部署后内网地址变更:172.17.173.105 → 172.17.173.107
Git文件结构:
AIclinicalresearch/frontend-v2/
├── Dockerfile ✅ 已提交Git(多阶段构建)
├── .dockerignore ✅ 已提交Git(优化构建上下文)
├── nginx.conf ✅ 已提交Git(Nginx配置)
├── docker-entrypoint.sh ✅ 已提交Git(启动脚本,Unix换行符)
└── public/
└── WW_verify_YnhsQBwI0ARnNoG0.txt ✅ 企业微信域名验证文件
3.3 Node.js后端服务
当前部署版本:v2.11
镜像信息:
- 仓库名称:
backend-service - 镜像版本:
v2.11✅(已部署) - 镜像大小:~838MB
- 基础镜像:
node:alpine - 构建时间:2026-03-05
- 构建策略:改进版方案B(本地编译+Docker打包)
- 镜像摘要:sha256:45886ffd90edbaf6b9a57c1938f14b076fdae175b5d8e53caebabdd8c7ef8b7c
技术架构:
- Node.js版本:22.x
- Prisma版本:6.17.0
- ORM:Prisma(支持多Schema)
- Web框架:Fastify
- 队列系统:pg-boss(Postgres-Only架构)
- 缓存系统:PostgreSQL(替代Redis)
部署状态:
- ✅ 已成功部署到SAE(2026-03-05)
- ✅ 服务运行正常(内网地址:http://172.17.173.110:3001)
- ✅ 健康检查通过
Git文件结构:
AIclinicalresearch/backend/
├── Dockerfile ✅ 已提交Git(改进版方案B:本地编译+Docker打包)
├── .dockerignore ✅ 已提交Git(优化构建上下文)
├── prisma/schema.prisma ✅ 已同步RDS(32个模型+30+关系字段)
└── tsconfig.json ✅ 已优化(排除测试文件)
3.4 Python微服务
当前部署版本:v1.2
镜像信息:
- 仓库名称:
python-extraction - 镜像版本:
v1.2✅(已部署) - 镜像大小:~1.1GB
- 基础镜像:
python:3-slim - 构建时间:2026-02-27
功能模块:
- ✅ PDF文本提取:PyMuPDF
- ✅ Docx文档提取:Mammoth + python-docx
- ✅ 数据清洗(DC工具):pandas / numpy / polars
- ✅ 语言检测:langdetect
- ✅ 数据取证(RVW V2.0):scipy(T检验、卡方检验逆向计算)
部署状态:
- ✅ 已部署到SAE(2026-02-27)
- ✅ 应用运行正常(2个worker进程,2核4GB)
- ✅ 内网访问地址:
http://172.17.173.102:8000 - ✅ 健康检查通过
Git文件结构:
AIclinicalresearch/extraction_service/
├── Dockerfile ✅ 已提交Git(多阶段构建 + 阿里云源)
├── .dockerignore ✅ 已提交Git(优化构建上下文)
└── requirements-prod.txt ✅ 已提交Git(精简依赖列表)
🔄 四、部署历史记录
2026-03-10(0310部署 - 用户直授权限体系 + 运营看板增强)
部署概览
- 部署时间:2026-03-10
- 部署范围:数据库迁移(1项)+ 数据 seed(1项)+ Node.js后端 + 前端Nginx
- 主要变更:用户直授权限、运营埋点与看板增强、AIA附件格式优化、RVW执行链路提速
数据库更新
- ✅ 迁移执行:
20260309_add_user_permissions_table - ✅ Seed 执行:
ops:user-ops权限写入platform_schema.permissions - ✅ 迁移状态:RDS 26/26,Schema Up To Date
Node.js后端更新(v2.10 → v2.11)
- ✅ 镜像推送:
backend-service:v2.11 - ✅ 内网地址变更:
172.17.173.109→172.17.173.110
前端Nginx更新(v2.7 → v2.8)
- ✅ 镜像推送:
ai-clinical_frontend-nginx:v2.8 - ✅ 内网地址变更:
172.17.197.27→172.17.197.28 - ✅ 环境变量同步:
BACKEND_SERVICE_HOST=172.17.173.110
2026-03-09(0309二次部署 - DB补迁移 + R修复 + 后端/前端升级)
部署概览
- 部署时间:2026-03-09(第二轮)
- 部署范围:数据库迁移(1项) + R统计引擎 + Node.js后端 + 前端Nginx
- 主要变更:AIA 附件持久化、R 包诊断与错误映射修复、SSE 稳定性与用户友好重试
数据库变更(1项)
- ✅ 应用迁移:
20260309_add_aia_attachments_persistence - ✅ 迁移状态:RDS 25/25,Schema Up To Date
- ✅ 备份文件:
backup_before_be_fe_deploy_20260309.dump(约 47.99MB)
R统计引擎更新(v1.0.2 → v1.0.5)
- ✅ 新增
/api/v1/debug/packages运行时包诊断接口 - ✅ 构建期关键包完整性校验(缺包即构建失败)
- ✅ 修复错误映射占位符未替换与
%||%操作符缺失 - ✅ 内网地址变更:
172.17.197.22→172.17.197.26
Node.js后端更新(v2.9 → v2.10)
- ✅ 部署 BE 变更(SSE 头部修复、优雅停机、AIA 附件链路稳定性、缓存护栏、短信能力)
- ✅ 内网地址变更:
172.17.173.108→172.17.173.109
前端Nginx更新(v2.6 → v2.7)
- ✅ 部署 FE 变更(Nginx SSE 兼容 + SSA 网络异常友好提示与自动重试)
- ✅ 内网地址变更:
172.17.197.23→172.17.197.27
环境变量同步
- ✅
nodejs-backend-test:R_SERVICE_URL=http://172.17.197.26:8080 - ✅
frontend-nginx-service:BACKEND_SERVICE_HOST=172.17.173.109
2026-03-09(0309部署 - 数据库4迁移 + R/后端/前端全量更新)
部署概览
- 部署时间:2026-03-09
- 部署范围:数据库迁移(4项) + 种子数据(3项) + R统计引擎 + Node.js后端 + 前端Nginx
- 主要变更:RVW 4维评审 + SSA Agent 优化 + IIT 去重护栏 + 认证互踢强一致 + 全局心跳
数据库变更(7项)
- ✅ DB-1:modules 表 seed 新增 ASL_SR 模块
- ✅ DB-2:RVW Prompt 新增 DATA_VALIDATION + CLINICAL
- ✅ DB-3:ReviewTask 新增 error_details JSONB 字段
- ✅ DB-4:SSA execution_mode 默认改为 agent + 历史数据更新
- ✅ DB-5:SSA Agent Prompt 种子数据(PLANNER + CODER)
- ✅ DB-6:IIT eQuery open 去重护栏 + 唯一索引
- ✅ DB-7:users 表新增 token_version 列(单账号互踢强一致)
R统计引擎更新(v1.0.1 → v1.0.2)
- ✅ 新增
/api/v1/execute-code端点 + 结构化错误处理 + AST 语法预检 - ✅ 镜像推送:
ssa-r-statistics:v1.0.2 - ✅ 内网地址变更:
172.17.173.101→172.17.197.22
Node.js后端更新(v2.8 → v2.9)
- ✅ 13 项变更:Deep Research V2 + ASL_SR 中间件 + RVW 4维评审 + SSA Agent 优化 + IIT 幂等 + 认证互踢
- ✅ 镜像推送:
backend-service:v2.9 - ✅ 内网地址变更:
172.17.173.106→172.17.173.108
前端Nginx更新(v2.5 → v2.6)
- ✅ 10 项变更:ASL 手风琴导航 + Deep Research 历史 + RVW 4Tab + SSA Agent UI + 全局心跳互踢
- ✅ 镜像推送:
ai-clinical_frontend-nginx:v2.6 - ✅ 内网地址变更:
172.17.173.107→172.17.197.23
环境变量同步
- ✅
nodejs-backend-test的R_SERVICE_URL更新为http://172.17.197.22:8080 - ✅
frontend-nginx-service的BACKEND_SERVICE_HOST更新为172.17.173.108 - ℹ️ CLB 由阿里云自动更新,无需手动操作
文档产出
- ✅
0309部署/01-数据库部署完成总结.md(完整版) - ✅
00-阿里云SAE最新真实状态记录.md(更新) - ✅
03-待部署变更清单.md(清零移入历史)
2026-03-05(0305部署 - 登录踢人 + 权限体系升级 + SSA双通道 + UI优化)
部署概览
- 部署时间:2026-03-05
- 部署范围:数据库数据更新(1项) + Node.js后端 + 前端Nginx
- 主要变更:登录踢人机制、模块权限体系升级、SSA Agent双通道、前端UI精简
数据库数据更新(1项)
- ✅ DB-1:modules 表 seed 更新(新增 RM、AIA_PROTOCOL,IIT→CRA质控)
- ⏭️ DB-2:RVW Prompt 更新(用户指定不执行)
- ⏭️ DB-3:SSA 双通道表结构(待后续部署)
Node.js后端更新(v2.4 → v2.6)
- ✅ 登录踢人机制:同一手机号只能一人同时在线(JWT tokenVersion)
- ✅ 模块权限一致性修复 + 校验放宽 + user_modules 独立生效
- ✅ SSA 双通道架构:Agent 模式 4 服务 + ChatHandler 分流
- ✅ 批量导入用户增加 autoInheritModules + 模块校验
- ✅ 镜像构建推送:
backend-service:v2.6(digest: sha256:17dc3b3b...) - ✅ SAE部署成功,内网地址变更:
172.17.197.32→172.17.197.36
前端Nginx更新(v2.0 → v2.3)
- ✅ ASL 模块 UI 精简 + 默认进入智能文献检索
- ✅ AIA Protocol Agent 按权限动态显示 + 链接修正
- ✅ 首页重定向到
/ai-qa+ PKB 隐藏科室选择 - ✅ 被踢出提示 + 运营端模块权限弹窗 + 批量导入重构
- ✅ 镜像构建推送:
ai-clinical_frontend-nginx:v2.3(digest: sha256:db031053...) - ✅ SAE部署成功,内网地址变更:
172.17.197.32→172.17.173.104
环境变量同步
- ✅
frontend-nginx-service的BACKEND_SERVICE_HOST更新为172.17.197.36 - ℹ️ CLB 由阿里云自动更新,无需手动操作
二次热修部署(同日)
- ✅ SSA 双通道数据库迁移:ssa_sessions 新增 execution_mode + ssa_agent_executions 表
- ✅ 前端/后端 bug 修复(基于测试反馈)
- ✅ 后端 v2.6 → v2.7 → v2.8,前端 v2.3 → v2.4 → v2.5
- ✅ 后端内网地址最终:
172.17.173.106 - ✅ 前端内网地址最终:
172.17.173.107
文档产出
- ✅
0305部署/01-部署完成总结.md - ✅
00-阿里云SAE最新真实状态记录.md(更新) - ✅
01-日常更新操作手册.md(更新) - ✅
03-待部署变更清单.md(清零移入历史)
2026-03-02(0302部署 - 数据库迁移6个 + IIT V3.1 QC引擎全面升级)
部署概览
- 部署时间:2026-03-02
- 部署范围:数据库迁移(6个) + Node.js后端 + 前端Nginx 全量更新
- 主要变更:IIT V3.1 QC引擎架构全面升级、GCP报表、D1-D7七维分类体系
数据库迁移(6个)
- ✅ SSA 表类型精度对齐 + 清理重复 FK
- ✅ Phase 2: user_mappings/projects RBAC + UserRole 加 IIT_OPERATOR
- ✅ IIT projects 加 is_demo 标记
- ✅ 新建 qc_field_status 五级坐标表 + qc_logs/equery 加 instance_id
- ✅ 新建 qc_event_status 事件聚合表 + record_summary 加 13 列
- ✅ qc_project_stats 加健康度评分 9 列
- ✅ RDS 表数量:84 → 86(新增 qc_field_status、qc_event_status)
- ✅ 本地 vs RDS 模式对比:iit_schema + ssa_schema 442 列完全一致
Node.js后端更新(v2.3 → v2.4)
- ✅ IIT V3.1 QC 引擎:QcExecutor / QcAggregator / CompletenessEngine / ProtocolDeviationEngine / HealthScoreEngine
- ✅ D1-D7 七维分类体系 + 五级坐标标准化
- ✅ GCP 报表 API:D1 筛选入选 / D2 完整性 / D3D4 eQuery 生命周期 / D6 方案偏离
- ✅ 项目级 cronExpression 调度器重构
- ✅ 镜像构建推送:
backend-service:v2.4(digest: sha256:7848b1b5...) - ✅ SAE部署成功,内网地址变更:
172.17.197.30→172.17.197.32
前端Nginx更新(v1.9 → v2.0)
- ✅ Dashboard 健康度评分 + D1-D7 维度条 + 热力图 record×event 矩阵
- ✅ GCP 报表重构为 5 Tab(执行摘要 + D1/D2/D3D4/D6)
- ✅ 新增 GCP 组件:EligibilityTable / CompletenessTable / EqueryLogTable / DeviationLogTable
- ✅ 管理端 QcDetailDrawer / RiskHeatmap / 方案偏离弹窗升级
- ✅ 镜像构建推送:
ai-clinical_frontend-nginx:v2.0(digest: sha256:ad24ccde...) - ✅ SAE部署成功,内网地址变更:
172.17.197.31→172.17.197.32
环境变量同步
- ✅
frontend-nginx-service的BACKEND_SERVICE_HOST更新为172.17.197.32 - ℹ️ CLB 由阿里云自动更新,无需手动操作
文档产出
- ✅
0302部署/01-部署完成总结.md - ✅
00-阿里云SAE最新真实状态记录.md(更新) - ✅
01-日常更新操作手册.md(更新) - ✅
03-待部署变更清单.md(清零移入历史)
2026-02-28(0228部署 - Node.js后端 + 前端更新 - 旧系统集成上线)
部署概览
- 部署时间:2026-02-28
- 部署范围:Node.js后端 + 前端Nginx 更新
- 主要变更:旧系统集成(Wrapper Bridge)上线、ASL图表/Meta分析、IIT AI对话页等
Node.js后端更新(v2.2 → v2.3)
- ✅ 新增模块:Legacy Bridge(旧系统集成认证服务)
- ✅ 新增依赖:
mysql2(连接旧系统MySQL) - ✅ 新增环境变量:
LEGACY_MYSQL_HOST、LEGACY_MYSQL_PORT、LEGACY_MYSQL_USER、LEGACY_MYSQL_DATABASE - ✅ 新增 API:
POST /api/v1/legacy/auth(旧系统Token注入) - ✅ 镜像构建推送:
backend-service:v2.3(digest: sha256:6e25d13c...) - ✅ SAE部署成功,内网地址变更:
172.17.197.28→172.17.197.30
前端Nginx更新(v1.8 → v1.9)
- ✅ 新增模块:Legacy System iframe嵌入(研究管理 + 统计工具)
- ✅ 新增组件:
LegacySystemPage、ResearchManagement、StatisticalTools - ✅ 镜像构建推送:
ai-clinical_frontend-nginx:v1.9(digest: sha256:ff3c1915...) - ✅ SAE部署成功,内网地址变更:
172.17.197.29→172.17.197.31
环境变量同步
- ✅
frontend-nginx-service的BACKEND_SERVICE_HOST更新为172.17.197.30 - ℹ️ CLB 由阿里云自动更新,无需手动操作
文档产出
- ✅
0228部署/01-部署完成总结.md - ✅
00-阿里云SAE最新真实状态记录.md(更新)
2026-02-27(0227部署 - 数据库迁移 + R统计引擎 + Python更新)
部署概览
- 部署时间:2026-02-27
- 部署范围:数据库Schema迁移、R统计引擎全新部署、Python微服务更新
- 主要变更:6个Prisma迁移(含1个drift补丁)、新增R Docker服务、Python新增scipy
数据库迁移
- ✅ 应用 5 个业务迁移 + 1 个drift补丁迁移
- ✅ RDS 表数量从 63 增至 84(新增 21 张表)
- ✅ 同步 Seed 数据:SSA工具库 13条 + IIT技能库 8条
- ✅ 已有数据完整性验证通过(Prompt模板、用户数据零丢失)
R统计引擎(全新部署)
- ✅ 镜像构建并推送:
ssa-r-statistics:v1.0.1(~1.8GB) - ✅ SAE应用创建:
r-statistics-test,1核2GB - ✅ 内网地址:
http://172.17.173.101:8080 - ✅ 内置 13 个统计工具(描述统计、T检验、卡方检验、回归、Meta分析等)
- ✅ 健康检查配置完成(HTTP /health)
Python微服务更新(v1.1 → v1.2)
- ✅ 新增依赖:scipy(RVW V2.0 数据取证)
- ✅ 新增代码:forensics 数据取证模块
- ✅ 实例规格升级:1核2GB → 2核4GB
- ✅ 内网地址变更:
172.17.173.84→172.17.173.102
文档产出
- ✅
0227部署/01-数据库迁移方案.md - ✅
0227部署/02-部署完成总结.md - ✅
00-阿里云SAE最新真实状态记录.md(更新)
2026-01-27(0126部署 - 数据库升级 + 全量服务更新)🎉
部署概览
- 部署时间:2026-01-26 ~ 2026-01-27(跨2天)
- 部署范围:数据库、Python、后端、前端全量更新
- 主要变更:数据库插件、环境分离、代码恢复、ES Module修复
数据库升级
- ✅ 创建测试数据库
ai_clinical_research_test - ✅ 安装 pg_bigm 插件(v1.2,中文全文检索)
- ✅ 安装 pgvector 插件(v0.8.0,向量存储)
- ✅ 本地数据库迁移到RDS(17.51MB,63个表,16个Schema)
- ✅ Prisma Schema同步(63个模型)
- ✅ 两个数据库都安装插件
Python微服务更新(v1.0 → v1.1)
- ✅ 新增依赖:pymupdf4llm(替代nougat)、openpyxl、pypandoc、python-pptx
- ✅ Dockerfile添加pandoc系统依赖
- ✅ SAE部署成功,新IP:172.17.173.84
Node.js后端更新(v1.3 → v1.7)
- ✅ 修复pino-pretty生产环境错误(条件加载)
- ✅ 修复ES Module导入路径(添加.js扩展名)
- ✅ 环境变量更新:DATABASE_URL、EXTRACTION_SERVICE_URL、OSS配置
- ✅ 移除废弃变量:REDIS_URL、DIFY_API_URL、DIFY_API_KEY
- ✅ SAE部署成功,新IP:172.17.173.89
前端Nginx更新(v1.2 → v1.3)
- ✅ 修复Dockerfile构建(跳过TypeScript类型检查)
- ✅ 代码恢复(从本地备份恢复空文件)
- ✅ 环境变量更新:BACKEND_SERVICE_HOST
- ✅ SAE部署成功,新IP:172.17.173.90
解决的关键问题
- ✅ 大量空文件恢复(前端/后端)
- ✅ Prisma Schema与数据库不一致
- ✅ pino-pretty在生产环境失败
- ✅ ES Module导入路径缺少.js扩展名
- ✅ TypeScript类型检查阻塞构建
文档产出
- ✅ 部署总体计划
- ✅ 数据库升级方案
- ✅ OSS环境配置方案
- ✅ Python/后端/前端部署方案
- ✅ IIT回调地址修复方案
- ✅ 0126部署状态真实记录
- ✅ 数据库开发规范v2.0
部署成果
- 🎉 数据库成功分离测试/生产环境
- 🎉 全量服务更新至最新代码
- 🎉 所有关键Bug已修复
- 🎉 完整部署文档体系建立
2026-01-01(前端v1.2部署 - 企业微信域名验证)✅
部署背景
- 目的:为企业微信接入配置可信域名,需要在前端根目录部署域名验证文件
- 域名:https://iit.xunzhengyixue.com/
- 验证文件:WW_verify_YnhsQBwI0ARnNoG0.txt
部署过程与问题修复
-
问题发现:前端v1.1部署失败,容器启动后立即退出
- ❌ 现象:SAE日志为空,容器状态显示"崩溃或退出"
- ❌ 错误:
exec /docker-entrypoint.sh: no such file or directory
-
根本原因分析:
- 🔍
docker-entrypoint.sh使用了Windows换行符(CRLF\r\n) - 🔍 Linux容器的bash解释器无法识别CRLF格式的脚本
- 🔍 这是一个典型的跨平台开发问题
- 🔍
-
解决方案:
- ✅ 将
docker-entrypoint.sh转换为Unix换行符(LF\n) - ✅ 使用PowerShell命令批量转换
- ✅ 本地Docker测试验证通过
- ✅ 将
-
镜像构建与推送:
- ✅ 重新构建镜像标记为v1.2(23.7秒)
- ✅ 推送到ACR成功(digest: 1b444d3d...)
- ✅ 镜像包含企业微信验证文件
-
SAE部署成功:
- ✅ 部署镜像版本:v1.2
- ✅ 环境变量配置:
BACKEND_SERVICE_HOST=172.17.197.30,BACKEND_SERVICE_PORT=3001 - ✅ 容器启动正常,健康检查通过
- ✅ 新内网地址:
http://172.17.173.80:80 - ⚠️ IP地址变化:172.17.173.72 → 172.17.173.80
技术要点总结
-
Windows换行符问题:
- 原因:Git在Windows上默认转换为CRLF
- 解决:使用
.gitattributes或手动转换 - 验证:
(Get-Content file -Raw) -match "\r`n"`
-
容器调试技巧:
- 本地测试:
docker run --rm -e KEY=VALUE image:tag - 查看日志:
docker logs container_name - 进入容器:
docker exec -it container sh
- 本地测试:
-
SAE部署最佳实践:
- 环境变量必须配置完整
- 本地先验证镜像可正常运行
- 部署后IP可能变化,需要更新依赖服务的配置
部署结果
- ✅ 前端服务v1.2部署成功
- ✅ 企业微信验证文件可访问
- ✅ 系统整体运行正常
- ⚠️ 需要注意:内网地址已更新,依赖前端的服务需要调整配置
2025-12-25(完整部署成功日)🎉
上午:Node.js后端部署
- ✅ Node.js后端成功部署到SAE(v1.3)
- ✅ 修复Alpine Linux bash路径问题(/bin/bash → /bin/sh)
- ✅ 修复config目录缺失问题(Dockerfile补充COPY config)
- ✅ 修复pino-pretty生产环境问题(条件启用)
- ✅ 修复healthCheck ES Module兼容性(require → import)
- ✅ 生成强JWT密钥(64位十六进制)
中午:前端Nginx部署
- ✅ 前端Nginx成功部署到SAE(v1.0)
- ✅ 前端服务运行正常(内网地址:http://172.17.173.72:80)
- ✅ 前端到后端代理验证通过
- ✅ 完整链路测试通过(前端→后端→数据库)
下午:环境变量修复与CLB配置
- ✅ 发现工具C的7大功能报错(connect ECONNREFUSED 127.0.0.1:8000)
- ✅ 排查并修复关键问题:环境变量名错误
- 代码使用:
EXTRACTION_SERVICE_URL - 错误配置:
PYTHON_SERVICE_URL - 正确配置:
EXTRACTION_SERVICE_URL=http://172.17.173.66:8000
- 代码使用:
- ✅ Node.js后端重新部署,IP地址更新为:http://172.17.173.73:3001
- ✅ 更新前端Nginx环境变量:BACKEND_SERVICE_HOST=172.17.197.30
- ✅ 配置CLB负载均衡器,获得公网访问地址:http://8.140.53.236/
- ✅ 工具C的7大功能全部测试通过
- ✅ 文献筛查模块测试通过
- ✅ 完整系统部署成功验证 🎉
2025-12-24(初始部署)
- ✅ PostgreSQL数据库部署完成
- ✅ 前端Nginx Docker镜像构建并推送至ACR
- ✅ Python微服务Docker镜像构建并推送至ACR
- ✅ Python微服务成功部署到SAE(内网地址:172.17.173.66:8000)
- ✅ 解决ACR镜像拉取权限问题(配置镜像仓库认证)
- ✅ Node.js后端Prisma反向同步完成(32个模型,手动补全30+关系字段)
- ✅ Node.js后端TypeScript编译修复完成(修复200+错误→0错误)
- ✅ Node.js后端Docker镜像构建成功(838MB,改进版方案B)
- ✅ Node.js后端镜像推送至ACR(v1.0)
提示:本文档记录SAE服务器的最新真实状态,每次部署后必须更新!
最后更新:2026-03-10
当前版本:前端v2.8 | 后端v2.11 | Python v1.2 | R统计v1.0.5 | PostgreSQL 15