AI+医疗应用教程:零基础用Flask对接大模型实现症状分诊

很多人搜索AI+医疗应用教程,是想知道怎么把大模型接进医疗场景里跑起来。
这篇文章就带零基础用户做一个最小可用的症状分诊Demo:用Python的Flask框架接收用户描述,调用大模型API返回分诊建议,并在页面上展示。
整个过程不需要GPU,一台普通云服务器或本地电脑就能跑。
需要提前说明:本文做的是技术演示,输出内容不能替代医生诊断,真实上线必须做隐私脱敏和合规评估。

先确认运行环境和前置条件

开始前需要准备三样东西:
一台能联网的电脑(Windows/macOS/Linux均可)、
Python 3.9以上版本、
以及一个大模型服务的API Key(例如OpenAI兼容接口或国产大模型平台,
以你实际选用的平台文档为准)。

检查Python版本:

python3 --version

预期看到 Python 3.9.x 或更高。
如果提示命令不存在,Windows可尝试 python --version,Linux则先安装python3和pip。

接着创建项目目录并安装依赖:

mkdir ai-medical-demo && cd ai-medical-demo
python3 -m venv venv
source venv/bin/activate   # Windows用 venv\Scripts\activate
pip install flask requests python-dotenv

把API Key写进 .env 文件,不要硬编码到代码里:

API_KEY=你的密钥
API_BASE=https://你的服务商接口地址/v1/chat/completions

这里 API_BASE 必须换成你所用平台的完整请求地址,不同平台路径不同,以控制台文档为准。

编写分诊接口和页面

在项目目录新建 app.py,核心逻辑分两块:接收表单、调用模型。
下面是最小示例,模型地址和请求体按OpenAI兼容格式编写,如果你的平台格式不同,需要对照文档调整 messages 字段。

import os
import requests
from flask import Flask, request, render_template
from dotenv import load_dotenv

load_dotenv()
app = Flask(__name__)

SYSTEM_PROMPT = "你是一个医疗分诊助手,只根据用户描述给出可能的科室建议和就医紧急程度,必须声明不能替代医生诊断。"

@app.route("/", methods=["GET", "POST"])
def index():
    answer = ""
    if request.method == "POST":
        symptom = request.form.get("symptom", "").strip()
        if symptom:
            resp = requests.post(
                os.getenv("API_BASE"),
                headers={"Authorization": f"Bearer {os.getenv('API_KEY')}"},
                json={
                    "model": "你的模型名",
                    "messages": [
                        {"role": "system", "content": SYSTEM_PROMPT},
                        {"role": "user", "content": symptom}
                    ]
                },
                timeout=30
            )
            data = resp.json()
            answer = data["choices"][0]["message"]["content"]
    return render_template("index.html", answer=answer)

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000)

再建模板目录 templates/index.html,放一个最简单的表单和结果区:

{% if answer %}
{{ answer }}
{% endif %}

启动服务:

python app.py

浏览器访问 http://服务器IP:5000,输入“头痛两天,无发热”,能看到模型返回的科室建议和免责声明,就说明链路通了。

医疗场景必须注意的避坑点

第一,不要收集真实身份信息。
演示阶段只让用户填症状描述,不要加姓名、身份证、手机号字段;
如果后续要存日志,至少对文本做脱敏,并明确告知用户数据用途。

第二,接口超时和报错要兜底。
上面的 requests.post 设置了30秒超时,实际使用中建议用 try/except 捕获异常,返回“服务繁忙,请稍后再试”,而不是把原始错误堆栈暴露给用户。

第三,模型输出不能直接当诊断结论。
系统提示词里已经要求声明“不能替代医生诊断”,页面上也应固定展示这句提示。
涉及急症描述(如胸痛、呼吸困难)时,应引导用户立即拨打急救电话,而不是等待模型回复。

第四,API Key不要提交到代码仓库。.env 文件应加入 .gitignore,部署到服务器时通过环境变量注入。

验证效果和下一步扩展

验证分三步:先用正常症状描述测试返回格式是否稳定;
再输入空内容或超长文本,确认页面不报错;
最后断开网络或填错API Key,确认前端能显示友好提示。

如果要把这个Demo变成可对外访问的服务,可以用Nginx反向代理5000端口,并配置HTTPS。
命令示例:

sudo nginx -t && sudo systemctl reload nginx

修改Nginx配置后务必先执行 nginx -t 检查语法,通过再重载。

常见疑问

没有医疗背景能跟着做吗? 可以,本文只涉及接口调用和页面展示,不涉及医学判断逻辑,分诊建议完全由模型生成,你只需要保证提示词里写清免责声明。

调用模型需要付费吗? 各平台计费方式不同,有的提供免费额度,有的按token计费,具体以你选用平台的官方说明为准,本文不给出具体价格。

这个Demo能直接上线给患者用吗? 不建议。
真实医疗应用涉及资质、数据安全和隐私合规,本文Demo仅用于技术学习和内部验证,上线前需要咨询合规专业人士。

到这里,一个AI+医疗应用教程的最小闭环就完成了:环境准备、接口编写、避坑处理和结果验证。
你可以在此基础上增加科室映射表、对话历史或前端样式,但每次改动后都建议按上面的验证步骤重新跑一遍。

分享到:
上一篇
AI行业应用清单整理:零基础建立可维护的150个场景库
下一篇
从零搭建AI辅助诊断系统:环境准备与部署验证
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意