首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >AI问诊系统开发架构解析:大模型 + 医疗知识库如何落地

AI问诊系统开发架构解析:大模型 + 医疗知识库如何落地

原创
作者头像
万岳教育Lili
发布2026-02-11 15:10:30
发布2026-02-11 15:10:30
2210
举报

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

AI问诊系统开发
AI问诊系统开发

但很快就会踩坑:

  • 大模型胡乱回答医疗问题(幻觉严重)
  • 回答不可控,无法做分诊
  • 无法沉淀为结构化病历
  • 数据合规风险高

所以真正能上线商用的 AI 问诊系统,一定不是“纯对话机器人”,而是:

大模型 + 医疗知识库 + 分诊规则引擎 + 医疗业务系统 的组合架构

本文从 系统架构 → 核心模块 → 关键代码实现 → 落地经验,完整拆解一套可商用的 AI 问诊系统开发方案。


一、整体系统架构设计

推荐标准分层架构:

代码语言:javascript
复制
用户层(小程序 / App / H5)
        ↓
问诊对话服务(Chat Service)
        ↓
AI能力层
   ├─ 大模型推理(LLM)
   ├─ 医疗知识库(RAG)
   ├─ 症状识别NLP
   ├─ 分诊规则引擎
        ↓
业务系统层
   ├─ 医生排班
   ├─ 挂号系统
   ├─ 电子病历
   ├─ 处方系统
   ├─ 支付系统

核心思想只有一句话:

👉 LLM 负责理解语言,知识库负责提供事实,规则引擎负责决策。

千万不要让大模型直接“做判断”。


二、医疗知识库(RAG)落地方案

为什么必须做知识库?

医疗场景不能依赖模型“记忆”,必须:

  • 可追溯
  • 可更新
  • 可审核
  • 可控回答来源

所以必须使用:

RAG(Retrieval-Augmented Generation)

流程:

代码语言:javascript
复制
问题 → 向量检索 → 找到医学资料 → 拼接Prompt → 再交给大模型生成

1. 构建医疗知识向量库

示例(Python + FAISS):

代码语言:javascript
复制
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"))

2. 问题检索

代码语言:javascript
复制
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]]

3. 拼接 Prompt

代码语言:javascript
复制
def build_prompt(question, knowledge):
    context = "\n".join(knowledge)
    return f"""
你是一名专业医生助理,只能依据以下医学资料回答:

资料:
{context}

问题:
{question}

请给出安全、保守、医学合规的建议。
"""

这样就避免模型“胡说八道”。

AI问诊系统开发
AI问诊系统开发

三、问诊对话服务设计

真实线上系统不会每次都完整对话。

必须:

  • 会话上下文管理
  • 多轮追问
  • 症状结构化

1. 会话缓存设计(Redis)

代码语言:javascript
复制
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)

2. 症状结构化抽取(NLP)

代码语言:javascript
复制
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

输出:

代码语言:javascript
复制
["发烧", "咳嗽"]

方便后续自动分诊。


四、智能分诊规则引擎

注意:

👉 分诊必须规则化,不能交给大模型。

示例规则:

代码语言:javascript
复制
TRIAGE_RULES = {
    ("发烧", "咳嗽"): "呼吸内科",
    ("胸痛",): "心内科",
}

def triage(symptoms):
    for rule, dept in TRIAGE_RULES.items():
        if all(s in symptoms for s in rule):
            return dept
    return "全科"

输出:

代码语言:javascript
复制
呼吸内科

然后自动推荐医生 + 排班。


五、调用大模型生成回答

示例(OpenAI API 风格):

代码语言:javascript
复制
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.content

六、完整问诊流程串联

代码语言:javascript
复制
def 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
    }

前端展示:

代码语言:javascript
复制
AI建议:多喝水,观察体温变化,如持续发烧建议就医
推荐科室:呼吸内科

这才是可商用结果,而不是单纯聊天。


七、生产级落地建议(关键经验)

实战中你一定要注意:

  1. 大模型必须私有化或国产化部署
  2. 所有回答加免责声明
  3. 关键决策必须规则化
  4. 病历必须结构化存储
  5. 日志全量审计(合规要求)

否则:

上线容易,合规审核一定过不了。

AI问诊系统开发
AI问诊系统开发

八、总结

一句话总结:

真正的 AI 问诊系统不是 AI 多聪明,而是:

  • 知识库是否权威
  • 规则是否可控
  • 数据是否合规
  • 是否能接入挂号/处方/支付闭环

大模型只是“语言接口”,不是核心决策者。

如果你在做:

  • 互联网医院
  • 陪诊平台
  • 药店问诊
  • 医疗 SaaS
  • 海外医疗平台

这种 RAG + 规则引擎 + 医疗系统集成架构 才是长期可持续方案

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、整体系统架构设计
  • 二、医疗知识库(RAG)落地方案
    • 为什么必须做知识库?
    • 1. 构建医疗知识向量库
    • 2. 问题检索
    • 3. 拼接 Prompt
  • 三、问诊对话服务设计
    • 1. 会话缓存设计(Redis)
    • 2. 症状结构化抽取(NLP)
  • 四、智能分诊规则引擎
  • 五、调用大模型生成回答
  • 六、完整问诊流程串联
  • 七、生产级落地建议(关键经验)
  • 八、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档