从零搭建AI辅助诊断系统:环境准备与部署验证
AI辅助诊断系统搭建的核心,是把开源模型、推理服务和前端问答界面串成一条可访问的链路。
本文以一台 Linux 云服务器为例,用 Docker 部署一个支持症状描述和基础健康问答的本地系统,适合零基础用户跟着操作。
先确认服务器和账号条件
这套方案对硬件有最低要求,不是所有轻量服务器都能跑。
建议先检查以下条件:
- 操作系统:Ubuntu 22.04 或 Debian 12,本文命令以 Ubuntu 为例。
- 内存:至少 8 GB,推荐 16 GB。模型加载会占用大量内存,低于 8 GB 容易在推理时被系统终止。
- 磁盘:至少 40 GB 可用空间,模型文件通常有数 GB 到十几 GB。
- 网络:服务器能访问 Docker Hub 和模型下载源。如果下载慢,可以提前换国内镜像源。
- 账号权限:拥有
sudo权限的普通用户,不建议直接用 root 长期操作。
登录服务器后先更新软件包并安装基础工具:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git nano
执行完没有报错,说明基础环境正常。
安装 Docker 并验证运行状态
AI 辅助诊断系统涉及模型服务和 Web 前端,用 Docker 可以避免手动配 Python 依赖。
安装命令如下:
curl -fsSL https://get.docker.com | sudo sh
sudo systemctl enable docker
sudo systemctl start docker
装完后用下面两条命令确认 Docker 可用:
docker --version
sudo docker run hello-world
如果第二条命令输出了 Hello from Docker!,说明容器运行时正常。
看到 permission denied 时,把当前用户加入 docker 组再重新登录:
sudo usermod -aG docker $USER
启动模型推理服务
这里选用支持 OpenAI 兼容接口的开源推理服务镜像,方便后续接入不同前端。
先拉取镜像并启动容器:
docker pull ghcr.io/ggerganov/llama.cpp:server
mkdir -p ~/ai-diagnosis/models
cd ~/ai-diagnosis
把下载好的模型文件放进 models 目录。
模型文件需要从模型发布页获取,本文不提供具体下载链接,避免版本失效。
假设模型文件名为 model.gguf,启动命令为:
docker run -d \
--name diagnosis-llm \
-p 8080:8080 \
-v ~/ai-diagnosis/models:/models \
ghcr.io/ggerganov/llama.cpp:server \
-m /models/model.gguf \
--host 0.0.0.0 \
--port 8080 \
-c 2048
启动后用 docker logs -f diagnosis-llm 查看日志,出现监听端口或模型加载完成的提示,说明推理服务已经就绪。
再用 curl 发一条测试请求:
curl http://127.0.0.1:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"messages":[{"role":"user","content":"头痛可能有哪些常见原因?"}]}'
能返回一段文本,就说明模型服务可用。
接入前端问答页面并验证
如果只想先跑通接口,可以跳过前端,直接用上面的 curl 测试。
需要网页界面时,再启动一个轻量 Web 容器,把请求转发到推理服务。
用 Nginx 做反向代理的配置片段如下:
server {
listen 80;
server_name your-domain.com;
location /v1/ {
proxy_pass http://127.0.0.1:8080/v1/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
保存到 /etc/nginx/conf.d/diagnosis.conf 后执行 sudo nginx -t 检查语法,再 sudo systemctl reload nginx 生效。
浏览器访问服务器 IP 或域名,能打开页面并提交问题,说明链路打通。
容易踩坑的几个地方
- 模型加载失败:先看
docker logs diagnosis-llm,常见原因是模型路径写错或文件不完整,重新核对-m参数和挂载目录。 - 内存不足被终止:
docker ps -a看到容器状态为Exited,用dmesg | grep -i kill确认是否触发 OOM,必要时升级内存或换更小的量化模型。 - 端口冲突:8080 被占用时,把
-p 8080:8080改成-p 8081:8080,同时更新 Nginx 的proxy_pass端口。 - 接口返回 404:检查请求路径是否带
/v1/chat/completions,以及 Nginx 的location是否匹配。
上线前还要做什么
这套系统只能作为技术验证,不能替代医生诊断。
正式对外使用前,至少补充三件事:在页面显著位置标注“仅供参考,不构成医疗建议”;
对用户输入做长度和敏感内容限制;
记录服务日志并定期检查异常请求。
AI 辅助诊断系统搭建完成后,建议先在内部环境试运行,确认模型回答范围和稳定性,再决定是否开放访问。