
在互联网医院、在线问诊、陪诊平台中,越来越多团队开始接入大模型。

但很快就会踩坑:
所以真正能上线商用的 AI 问诊系统,一定不是“纯对话机器人”,而是:
大模型 + 医疗知识库 + 分诊规则引擎 + 医疗业务系统 的组合架构
本文从 系统架构 → 核心模块 → 关键代码实现 → 落地经验,完整拆解一套可商用的 AI 问诊系统开发方案。
推荐标准分层架构:
用户层(小程序 / App / H5)
↓
问诊对话服务(Chat Service)
↓
AI能力层
├─ 大模型推理(LLM)
├─ 医疗知识库(RAG)
├─ 症状识别NLP
├─ 分诊规则引擎
↓
业务系统层
├─ 医生排班
├─ 挂号系统
├─ 电子病历
├─ 处方系统
├─ 支付系统核心思想只有一句话:
👉 LLM 负责理解语言,知识库负责提供事实,规则引擎负责决策。
千万不要让大模型直接“做判断”。
医疗场景不能依赖模型“记忆”,必须:
所以必须使用:
RAG(Retrieval-Augmented Generation)
流程:
问题 → 向量检索 → 找到医学资料 → 拼接Prompt → 再交给大模型生成示例(Python + FAISS):
from sentence_transformers import SentenceTransformer
import faiss
import numpy as np
model = SentenceTransformer("moka-ai/m3e-base")
docs = [
"发烧超过38.5度持续三天建议就医",
"胸闷胸痛可能与心血管疾病有关",
"儿童咳嗽超过一周需排查肺炎"
]
embeddings = model.encode(docs)
index = faiss.IndexFlatL2(768)
index.add(np.array(embeddings).astype("float32"))def search_knowledge(query):
q_emb = model.encode([query])
D, I = index.search(np.array(q_emb).astype("float32"), 3)
return [docs[i] for i in I[0]]def build_prompt(question, knowledge):
context = "\n".join(knowledge)
return f"""
你是一名专业医生助理,只能依据以下医学资料回答:
资料:
{context}
问题:
{question}
请给出安全、保守、医学合规的建议。
"""这样就避免模型“胡说八道”。

真实线上系统不会每次都完整对话。
必须:
import redis
import json
r = redis.Redis()
def save_session(uid, msg):
key = f"chat:{uid}"
history = r.get(key)
history = json.loads(history) if history else []
history.append(msg)
r.set(key, json.dumps(history), ex=3600)import re
def extract_symptoms(text):
rules = {
"发烧": r"发烧|高烧",
"咳嗽": r"咳嗽|咳痰",
"胸痛": r"胸痛|胸闷"
}
result = []
for k, pattern in rules.items():
if re.search(pattern, text):
result.append(k)
return result输出:
["发烧", "咳嗽"]方便后续自动分诊。
注意:
👉 分诊必须规则化,不能交给大模型。
示例规则:
TRIAGE_RULES = {
("发烧", "咳嗽"): "呼吸内科",
("胸痛",): "心内科",
}
def triage(symptoms):
for rule, dept in TRIAGE_RULES.items():
if all(s in symptoms for s in rule):
return dept
return "全科"输出:
呼吸内科然后自动推荐医生 + 排班。
示例(OpenAI API 风格):
from openai import OpenAI
client = OpenAI()
def ask_llm(prompt):
res = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}],
temperature=0.2
)
return res.choices[0].message.contentdef chat(uid, question):
knowledge = search_knowledge(question)
prompt = build_prompt(question, knowledge)
answer = ask_llm(prompt)
symptoms = extract_symptoms(question)
dept = triage(symptoms)
return {
"answer": answer,
"department": dept
}前端展示:
AI建议:多喝水,观察体温变化,如持续发烧建议就医
推荐科室:呼吸内科这才是可商用结果,而不是单纯聊天。
实战中你一定要注意:
否则:
上线容易,合规审核一定过不了。

一句话总结:
真正的 AI 问诊系统不是 AI 多聪明,而是:
大模型只是“语言接口”,不是核心决策者。
如果你在做:
这种 RAG + 规则引擎 + 医疗系统集成架构 才是长期可持续方案
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。