# 🚀 AI临床研究平台 - 阿里云SAE最新真实状态记录 > **文档用途**:记录阿里云SAE服务器最新真实状态 + 每次部署记录 > **最后更新**:2026-02-27 > **维护人员**:开发团队 > **说明**:本文档准确记录SAE上所有应用的当前状态,包括内网地址、镜像版本、用户名密码等关键资源信息 --- ## 📊 一、当前部署状态一览 | 服务名称 | 部署状态 | 镜像版本 | 部署位置 | 最后更新时间 | |---------|---------|---------|---------|-------------| | **PostgreSQL数据库** | ✅ 运行中 | PostgreSQL 15 + 插件 | RDS | 2026-02-27 | | **前端Nginx服务** | ✅ 运行中 | **v1.8** | SAE | 2026-02-27 | | **Python微服务** | ✅ 运行中 | **v1.2** | SAE | 2026-02-27 | | **Node.js后端** | ✅ 运行中 | **v2.1** | SAE | 2026-02-27 | | **R统计引擎** | ✅ 运行中 | **v1.0.1** | SAE | 2026-02-27 | | **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.1** | ~1.8GB | `crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ssa-r-statistics:v1.0.1` | | **ai-clinical_frontend-nginx** | v1.3 | ~50MB | `crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v1.3` | | **backend-service** | v1.7 | ~838MB | `crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v1.7` | --- ### 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 | **84** | pg_bigm, pgvector | SAE测试环境 | | `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 | 5 | IIT项目、审计日志 | | `agent_schema` | Agent框架 | 6 | Agent定义、会话、追踪 | | `ekb_schema` | 企业知识库 | 3 | 知识库、文档、向量 | | `capability_schema` | 通用能力 | 2 | Prompt模板、版本 | | `protocol_schema` | 方案设计 | 2 | 研究方案生成 | | `admin_schema` | 系统管理 | 2 | 操作日志 | | `rvw_schema` | 文献回顾 | 1 | 审查任务 | | `ssa_schema` | 智能统计分析 | 0 | 预留 | | `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.173.101:8080` | **v1.0.1** | | **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.197.28:3001` | **v2.2** | | **frontend-nginx-service** | ✅ 运行中 | 0.5核1GB | 1 | 80 | `http://172.17.197.29:80` | **v1.8** | **环境变量配置**: **Node.js后端(nodejs-backend-test)**: ```bash NODE_ENV=production PORT=3001 DATABASE_URL=postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research?connection_limit=18&pool_timeout=10 # Python微服务地址 EXTRACTION_SERVICE_URL=http://172.17.173.66:8000 # 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 # 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 # Dify配置 DIFY_API_URL=http://localhost/v1 DIFY_API_KEY=dataset-mfvdiKvQ213NvxWm7RoYMN3c # Postgres-Only架构 QUEUE_TYPE=pgboss CACHE_TYPE=postgres # 企业微信配置 WECHAT_CORP_ID=ww6ab493470ab4f377 WECHAT_AGENT_ID=1000002 WECHAT_CORP_SECRET=AZIVxMtoLb0rEszXS81e4dBRl-I9kgTjygIS0cFfENU ``` **前端Nginx(frontend-nginx-service)**: ```bash BACKEND_SERVICE_HOST=172.17.173.73 BACKEND_SERVICE_PORT=3001 ``` **Python微服务(python-extraction-test)**: ```bash 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服务 **当前部署版本**:v1.2 **镜像信息**: - **仓库名称**:`ai-clinical_frontend-nginx` - **镜像版本**:`v1.2` ✅(当前部署版本) - **镜像大小**:约50MB - **基础镜像**:`nginx:alpine` - **构建时间**:2026-01-01 - **镜像摘要**:sha256:1b444d3d04e0e0e62a50009f165991b7d0192d7e21804aa9a3b3558e5aec7961 **部署状态**: - ✅ 已成功部署到SAE(2026-01-01) - ✅ 服务运行正常(内网地址:http://172.17.173.80:80) - ✅ 企业微信域名验证文件已部署(WW_verify_YnhsQBwI0ARnNoG0.txt) **v1.2版本更新内容**: - ✅ 修复Windows换行符问题(docker-entrypoint.sh CRLF→LF) - ✅ 添加企业微信域名验证文件 - ⚠️ 部署后内网地址已变更:172.17.173.72 → 172.17.173.80 **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后端服务 **当前部署版本**:v1.3 **镜像信息**: - **仓库名称**:`backend-service` - **镜像版本**:`v1.3` ✅(已部署) - **镜像大小**:838MB (压缩后 ~186MB) - **基础镜像**:`node:22-alpine` - **构建时间**:2025-12-25 18:43 - **构建策略**:改进版方案B(本地编译+Docker打包) - **镜像摘要**:sha256:a4ffb61c15af1cd1ed9de187b4464a1aab773918e5b41b4df5b8ad96514f9941 **技术架构**: - **Node.js版本**:22.x - **Prisma版本**:6.17.0 - **ORM**:Prisma(支持多Schema) - **Web框架**:Fastify - **队列系统**:pg-boss(Postgres-Only架构) - **缓存系统**:PostgreSQL(替代Redis) **部署状态**: - ✅ 已成功部署到SAE(2025-12-25 18:55) - ✅ 服务运行正常(内网地址:http://172.17.173.73:3001) - ✅ 健康检查通过 **Git文件结构**: ``` AIclinicalresearch/backend/ ├── Dockerfile ✅ 已提交Git(改进版方案B:本地编译+Docker打包) ├── .dockerignore ✅ 已提交Git(优化构建上下文) ├── prisma/schema.prisma ✅ 已同步RDS(32个模型+30+关系字段) └── tsconfig.json ✅ 已优化(排除测试文件) ``` --- ### 3.4 Python微服务 **当前部署版本**:v1.0 **镜像信息**: - **仓库名称**:`python-extraction` - **镜像版本**:`v1.0` - **镜像大小**:1.12GB - **基础镜像**:`python:3-slim` - **构建时间**:2025-12-24 **功能模块**: - ✅ **PDF文本提取**:PyMuPDF 1.26.7 - ✅ **Docx文档提取**:Mammoth + python-docx - ✅ **数据清洗(DC工具)**:pandas 2.0+ / numpy 1.24+ / polars 0.19+ - ✅ **语言检测**:langdetect - ❌ **Nougat OCR**:已移除(减小镜像1.5GB) **部署状态**: - ✅ 已部署到SAE(2025-12-24) - ✅ 应用运行正常(2个worker进程) - ✅ 内网访问地址:`http://172.17.173.66:8000` - ✅ 健康检查通过 **Git文件结构**: ``` AIclinicalresearch/extraction_service/ ├── Dockerfile ✅ 已提交Git(多阶段构建 + 阿里云源) ├── .dockerignore ✅ 已提交Git(优化构建上下文) └── requirements-prod.txt ✅ 已提交Git(精简依赖列表) ``` --- ## 🔄 四、部署历史记录 ### 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 #### 解决的关键问题 1. ✅ 大量空文件恢复(前端/后端) 2. ✅ Prisma Schema与数据库不一致 3. ✅ pino-pretty在生产环境失败 4. ✅ ES Module导入路径缺少.js扩展名 5. ✅ TypeScript类型检查阻塞构建 #### 文档产出 - ✅ 部署总体计划 - ✅ 数据库升级方案 - ✅ OSS环境配置方案 - ✅ Python/后端/前端部署方案 - ✅ IIT回调地址修复方案 - ✅ 0126部署状态真实记录 - ✅ 数据库开发规范v2.0 #### 部署成果 - 🎉 数据库成功分离测试/生产环境 - 🎉 全量服务更新至最新代码 - 🎉 所有关键Bug已修复 - 🎉 完整部署文档体系建立 --- ### 2026-01-01(前端v1.2部署 - 企业微信域名验证)✅ #### 部署背景 - **目的**:为企业微信接入配置可信域名,需要在前端根目录部署域名验证文件 - **域名**:https://iit.xunzhengyixue.com/ - **验证文件**:WW_verify_YnhsQBwI0ARnNoG0.txt #### 部署过程与问题修复 1. **问题发现**:前端v1.1部署失败,容器启动后立即退出 - ❌ 现象:SAE日志为空,容器状态显示"崩溃或退出" - ❌ 错误:`exec /docker-entrypoint.sh: no such file or directory` 2. **根本原因分析**: - 🔍 `docker-entrypoint.sh` 使用了Windows换行符(CRLF `\r\n`) - 🔍 Linux容器的bash解释器无法识别CRLF格式的脚本 - 🔍 这是一个典型的跨平台开发问题 3. **解决方案**: - ✅ 将 `docker-entrypoint.sh` 转换为Unix换行符(LF `\n`) - ✅ 使用PowerShell命令批量转换 - ✅ 本地Docker测试验证通过 4. **镜像构建与推送**: - ✅ 重新构建镜像标记为v1.2(23.7秒) - ✅ 推送到ACR成功(digest: 1b444d3d...) - ✅ 镜像包含企业微信验证文件 5. **SAE部署成功**: - ✅ 部署镜像版本:v1.2 - ✅ 环境变量配置:`BACKEND_SERVICE_HOST=172.17.173.73`, `BACKEND_SERVICE_PORT=3001` - ✅ 容器启动正常,健康检查通过 - ✅ 新内网地址:`http://172.17.173.80:80` - ⚠️ IP地址变化:172.17.173.72 → 172.17.173.80 #### 技术要点总结 1. **Windows换行符问题**: - 原因:Git在Windows上默认转换为CRLF - 解决:使用 `.gitattributes` 或手动转换 - 验证:`(Get-Content file -Raw) -match "\`r\`n"` 2. **容器调试技巧**: - 本地测试:`docker run --rm -e KEY=VALUE image:tag` - 查看日志:`docker logs container_name` - 进入容器:`docker exec -it container sh` 3. **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.173.73 - ✅ 配置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-02-27 > **当前版本**:前端v1.8 | 后端v2.1 | Python v1.2 | R统计v1.0.1 | PostgreSQL 15