一、項目介绍
摘 要
随着人工智能技术在医疗健康领域的深入应用,智能问诊系统逐渐成为缓解医疗资源紧张、提升健康服务可及性的重要手段。中医问诊依赖丰富的临床经验和辨证知识,传统中医诊疗面临着知识传承困难、问诊流程不规范等问题。本文设计并实现了一个基于 ChatGLM3 的中医问诊系统,采用前后端分离架构,后端基于 FastAPI 框架,前端基于 Vue 3 框架,数据库采用 MySQL。系统引入检索增强生成技术,通过 Sentence‑Transformer 模型对中医知识库进行向量化编码并构建 FAISS 索引,在用户问诊时检索相关知识片段,与对话历史、槽位摘要等信息共同输入大语言模型生成回复。系统实现了用户多轮问诊、会话管理、中医建议生成、知识库管理、模型配置与切换等核心功能,支持阿里云在线模型与本地 ChatGLM3‑6B 模型两种推理方式,并提供了管理员后台总览、数据管理和检索模式切换等能力。测试结果表明,系统能够按照中医问诊流程引导用户补充关键信息,并基于知识库内容生成具有可解释性的回复,达到了预期的设计目标。
关键词:中医问诊;ChatGLM3;检索增强生成;知识库;FastAPI
本文主要研究内容
本文的主要研究内容包括以下几个方面。第一,分析中医问诊的业务流程和核心需求,设计系统的功能架构和技术方案。第二,构建中医知识库管理系统,支持知识库的创建、激活、停用以及文档的上传、分块和向量化索引。第三,设计基于槽位填充的对话状态管理模块,实现症状、持续时间、严重程度等关键信息的提取和问诊流程的引导。第四,实现检索增强生成模块,在用户发送消息时根据槽位摘要检索相关知识片段,并将检索结果与对话历史一同输入模型生成回复。第五,开发基于 FastAPI 的后端服务,提供用户认证、会话管理、消息处理、知识库管理、模型配置等接口。第六,开发基于 Vue 3 的前端界面,实现登录、问诊对话、历史查看、知识库管理、模型管理等功能模块。第七,对系统进行功能测试和性能评估,验证系统的可用性和有效性。
ChatGLM3大语言模型
ChatGLM3大语言模型是由清华大学知识工程实验室研发的开源对话模型,其中 ChatGLM3-6B 版本凭借适中的参数量与优秀的中文理解能力,成为本项目核心推理引擎,该模型经过海量中文语料预训练,对中医专业术语、症状描述等垂直领域内容具备良好的适配性,同时支持轻量化部署,能够在普通 GPU 甚至高性能 CPU 环境下完成推理,兼顾本地部署的隐私性与云端调用的便捷性,在系统中主要承担多轮问诊对话生成、症状信息理解、问诊建议输出等关键任务,还可通过调整温度、Top P 等推理参数,平衡回复的专业性与多样性,适配中医问诊严谨且贴合场景的交互需求。
检索增强生成技术
检索增强生成(RAG)技术是解决大模型知识幻觉、提升垂直领域回答可信度的核心技术,其核心逻辑为在模型生成回复前先从专业知识库中检索相关知识片段,将知识依据与用户问题共同输入模型,使生成内容具备真实可靠的参考来源,在本项目中,RAG 技术结合中医问诊知识密集型的特点,通过 Sentence‑Transformers 完成中医知识文本的向量编码,借助 FAISS 向量数据库构建高效索引,同时支持向量优先、关键词优先、纯向量、纯关键词四种混合检索策略,能够根据不同症状描述灵活调整检索方式,精准召回症状对应的证型、治法、调护原则等中医知识,再将检索结果融入提示词模板引导模型生成回复,有效避免无依据的内容输出,同时为用户端展示知识依据提供数据支撑。
系统功能需求分析
本系统的用户角色分为普通用户和管理员两类,不同角色具有不同的功能需求。
普通用户的功能需求包括:注册和登录系统;创建新的中医问诊会话;在会话中输入病情描述,接收系统的问诊回复;查看当前会话的问诊流程状态、已提取的槽位摘要、命中的知识标题;生成针对当前会话的中医建议;查看历史会话列表,浏览过往的对话摘要。
管理员的功能需求包括:查看系统总览数据,包括用户数、会话数、知识库数量、风险会话占比等;管理知识库,支持创建知识库、上传文档、激活或停用知识库、删除知识库;在知识库内搜索知识片段;查看全平台所有用户的会话数据,支持按关键词筛选和删除会话;查看系统运行日志;配置阿里云在线模型和本地 ChatGLM3 模型的参数;切换系统当前使用的推理模型;测试模型连通性;切换知识库检索模式,包括向量优先、关键词优先、纯向量、纯关键词四种方式。
系统还应满足一些通用的功能需求,如请求参数校验、异常处理和日志记录等,确保系统的健壮性和可维护性。
二、文档介绍
## 三、項目设计与实现
结 论
本文设计并实现了一个基于 ChatGLM3 的中医问诊系统,围绕中医问诊的业务特点和技术需求,完成了系统的需求分析、架构设计、数据库设计、功能实现和测试验证。系统采用前后端分离架构,后端基于 FastAPI 提供 RESTful 接口,前端基于 Vue 3 构建用户界面,使用 MySQL 存储业务数据。系统核心功能包括用户认证、多轮问诊对话、对话状态管理、知识库检索增强、模型切换与配置、管理员数据管理等。
系统的主要创新点在于将检索增强生成技术与中医知识库相结合,通过向量检索在对话过程中动态召回相关知识片段,作为大语言模型生成回复的依据,提升了回复的专业性和可解释性。系统设计了基于槽位填充的对话状态管理机制,能够按照中医问诊的逻辑顺序引导用户补充关键信息,并识别风险信号。系统支持本地 ChatGLM3 模型与阿里云在线模型的灵活切换,满足了不同部署环境的需求。知识库管理功能允许管理员上传文档、管理知识条目,使知识库可以持续更新,具有良好的可维护性。
经过功能测试,系统能够正确完成用户注册登录、多轮问诊、知识检索、中医建议生成、知识库管理、模型配置与切换等各项功能。流式回复功能为用户提供了良好的交互体验,右侧状态面板直观展示了问诊进度和知识依据。测试结果表明系统达到了预期的设计目标。
本系统仍存在一些不足之处。第一,槽位提取主要依赖关键词匹配,对于表述多样或非典型的症状描述可能漏提或误提,未来可以考虑引入轻量级的中文医疗命名实体识别模型来提升提取的准确性和覆盖范围。第二,知识检索目前仅支持文本分块和向量相似度搜索,尚未利用知识图谱的结构化信息,未来可以将中医证候、方剂、药材等知识构建为知识图谱,实现基于图结构的推理检索。第三,系统目前仅支持单一知识库激活,在实际应用中可能需要同时检索多个知识库,未来可以支持多知识库联合检索并按相关性融合结果。
通过持续改进,本系统有望在中医健康教育、辅助问诊等场景中发挥更大的实用价值。本文的研究成果也为中医智能化领域的后续工作提供了一个可复用的工程参考。