从零部署脊柱侧弯 AI 系统到腾讯云
踩坑 10 次后的完整记录
最近完成了一个脊柱侧弯智能分析系统——用 YOLOv8 检测 X 光片上的 18 个椎体,计算 Cobb 角等临床参数,再调用 DeepSeek 生成医学报告。在本地跑得好好的,但部署到腾讯云时踩了一堆坑。这篇文章把整个过程记录下来,方便以后回顾,也希望帮到遇到类似问题的人。
项目做了什么
简单说,你上传一张脊柱 X 光片,系统会:
- 用 YOLOv8-Pose 检测 C7 到 L5 共 18 个椎体
- 计算胸椎/腰椎 Cobb 角、C7 铅垂线偏移、T1 倾斜角
- 可选调用 DeepSeek 或豆包大模型,生成结构化医学报告
技术栈:Flask + YOLOv8 + Matplotlib + DeepSeek API,前端是一个深色主题的单页应用。训练用了 1078 张标注的 X 光片,200 个 epoch。
环境准备
服务器是腾讯云轻量云,OpenCloudOS 系统,宝塔面板管理。关键配置:
- 4 核 CPU / 4GB 内存 / 40GB 磁盘
- Python 3.11 + 宝塔 Python 项目管理器
- Nginx 做反向代理
Python项目管理器 和 Nginx 两个插件。
部署步骤
1. 上传项目
把整个项目文件夹传到 /www/wwwroot/spine/web/,宝塔文件管理器拖拽上传就行。
2. 配置 API Key
千万别把 Key 写死在代码里。项目用了 .env 文件管理敏感信息:
cd /www/wwwroot/spine/web
cp .env.example .env
nano .env # 填入你的 Key
另外在宝塔 Python 项目管理器的「环境变量」里也加上同样的 Key,双保险。
3. 创建虚拟环境
这一步花了我最多时间。核心教训是:用精确版本号,别用最新版。
python3 -m venv venv
source venv/bin/activate
pip install "numpy==1.26.4"
pip install "torch==2.1.2" "torchvision==0.16.2"
pip install "ultralytics==8.0.200"
pip install "matplotlib==3.8.5"
pip install "scipy==1.11.4"
pip install "opencv-python-headless==4.9.0.80"
pip install flask pillow openai python-dotenv volcengine-python-sdk
4. 宝塔配置反向代理
Python 项目管理器跑 Flask(端口 5000),然后新建一个「反向代理」站点,把 80 端口请求转发到 5000。注意:选项目类型时选「反向代理」,不要选「Python 项目」——Python 项目已经在管理器里跑了。
踩过的坑
以下每个问题都折腾了好一阵,按出现顺序排列:
→
dnf install -y mesa-libGL
→ 启动时加
TORCH_FORCE_WEIGHTS_ONLY_LOAD=0
→
pip install ultralytics==8.0.200
→ 重建虚拟环境,全部精确锁版本(见上面第 3 步)
openai 包没装,llm_client 初始化静默失败了。→
pip install openai(DeepSeek)和 pip install volcengine-python-sdk(豆包)
→
dnf install -y google-noto-sans-cjk-fonts + 删除 matplotlib 缓存。同时改代码自动检测可用字体。
最终效果
部署完成后访问地址:caibingchen.site/spine/。域名刚注册好,SSL 也已配置。
整体流程走下来,最大的感受是:Python 依赖管理是部署中最容易出问题的一环。锁定版本号、重建虚拟环境这两招,几乎解决了 80% 的问题。另外,像 API Key 这种敏感信息,环境变量管理是最低成本的正确做法。
以上就是这次部署的全过程。后面打算给系统加上 DICOM 格式支持和患者历史记录功能。
有问题可以邮件交流:2383489382@qq.com。