前言

普通人就医普遍存在分诊难、报告读不懂、多药联用风险、历年指标无对比四大痛点。市面上产品要么偏重问诊,要么只做零散科普,缺少全流程轻量化辅助工具。
我独立完成全栈项目愈伴HealPal,一套基于大模型+医疗垂直RAG的Web应用,覆盖产品设计、前后端开发、向量库工程化、容器部署全流程,下面精简篇幅并深挖AI、RAG底层实现。

一、产品定位:严守医疗合规边界

核心功能

症状分诊、体检报告OCR解读&多报告对比、药品冲突校验+服药提醒、个人健康档案、就诊清单/急救预案、医院导航与预约、健康问答反馈闭环。

硬性合规红线

禁止输出诊断、不开处方、不连接医疗设备;所有AI回复强制携带医疗免责声明。
覆盖上班族、体检焦虑人群、慢病中老年、备孕养生四类用户,功能完全贴合线下真实就医场景。

二、核心业务流程

  1. 症状咨询
    双层安全校验:规则引擎通过症状组合关键词毫秒识别心梗、中风等急症,直接弹出急救提示,阻断LLM调用;无高危情况后,Agent多轮追问病史、症状时长,结合知识库输出分诊建议。对话采用SSE流式输出,会话自动归档个人档案。

  2. 体检报告解读
    双录入通道:手动录入适配纸质报告;PDF/图片走rapidocr结构化提取指标。内置国标检验参考库,自动划分轻/中/重度异常;双报告对照自动区分好转/恶化指标;多年多病共存场景自动触发深度推理模型做综合研判。

  3. 用药管理
    自动拉取用户全部在服药品,检索药品知识库校验联用禁忌、风险分级;支持多时段自定义服药提醒,标记/撤销服药记录,日志可导出给医生。

  4. 健康档案
    咨询、报告、用药、预约数据自动汇总,衍生就诊清单、个性化急救信息卡;配套预约、反馈、会员额度模块,覆盖完整就医链路。

三、技术栈简述

  • 前端:Vue3+TS+Vite,Element Plus定制健康主题,ECharts指标可视化,Three.js人体热力图,全端响应式适配。
  • 后端:FastAPI异步服务,PostgreSQL 17张业务表;JWT双Token鉴权、阿里云短信、支付宝支付;pdfplumber/rapidocr负责文档解析。

四、AI智能层:LangGraph分层Agent+双模型调度(深度技术)

在这里插入图片描述

1. 前置意图分类路由

采用Few-Shot固定范例Prompt做LLM意图判别,输出标签+置信度,优先级强约束:急症>报告>用药>个人数据>科普。置信度<0.7主动澄清;多意图重叠依靠固定优先级兜底,解决单LLM分类混淆问题。

2. DeepSeek双模型动态调度与推理约束

  • V3通用模型:负责高频轻量场景,速度快、Token成本低;
  • R1深度推理模型:仅多报告对比、多病叠加场景启用。R1无temperature参数、不支持独立system角色,需要手动拼接系统提示至user消息;接口异常自动降级V3并给出提示。

3. ReAct私有数据Tool Agent(核心工程设计)

面向用户私有健康数据查询,实现5个只读工具:档案读取、用药列表、报告指标、异常校验、趋势查询。
Agent遵循标准ReAct循环:Thought→Action→Observation→Answer,全程无数据写权限,从根源规避用户数据篡改风险。区分公共知识库知识与用户私有时序数据,输出高度个性化结论。

4. LangGraph有向状态机编排

四大核心业务全部拆解为可插拔状态节点,以报告解读为例:
指标结构化→异常分级→RAG多路召回→基础解读→【分支判断:多年数据则进入R1推理】→趋势汇总→拼接免责声明→入库持久化
每个节点独立埋点、捕获异常,OCR失败、RAG空召回、LLM超时均有分层兜底文案,不会直接崩溃服务。

5. SSE流式分层事件推送

自定义事件协议:intent识别、emergency预警、rag检索进度、token分片、done完成事件。前端分片渲染,内置断流重连、缓冲区容错,解决大段文本长时间空白等待问题。

五、垂直医疗自研RAG流水线(深挖底层实现,解决LLM幻觉)

在这里插入图片描述

医疗场景裸LLM幻觉具备医疗风险,项目强制所有生成内容必须锚定检索结果,自研全链路RAG,无LangChain封装依赖,可控性拉满。

1. 知识库数据源与分块策略

数据源全部为国内官方公开资料:卫健委指南、WS/T检验国标、NMPA药品库、默沙东中文手册,规避版权爬虫风险。
分两类分块逻辑:
1)结构化JSON(药品/疾病)单条目独立chunk,不切割;
2)长文本PDF/TXT:500字符滑动窗口,100字符overlap,保留跨段落语义。
每条chunk携带元数据:来源、分类、口语化症状别名,优化生活化提问召回效果。

2. BGE-M3量化向量工程化

嵌入模型选用BGE-M3,ONNX int8量化至350MB,后端启动后台预加载模型,消除首冷延迟;输出1024维稠密向量存入ChromaDB持久化向量库,磁盘落地不丢失索引。
BGE-M3原生支持稠密+稀疏双表征,为多路召回提供底层支撑。

3. 向量+BM25双路RRF融合召回

单一路线召回存在明显缺陷:向量检索丢失专业术语,BM25无法理解口语。
并行执行两路检索:

  1. 稠密向量检索:语义匹配,适配日常模糊描述;
  2. BM25稀疏检索:精准匹配药品、指标、疾病标准名词。
    两路结果使用RRF reciprocal rank fusion加权融合,疾病类文档权重×2.5;融合后按文档源去重,严格限制输入LLM上下文长度,降低Token开销与幻觉概率。

六、后台、商业化与部署

  1. 管理后台:权限隔离Admin端,支持文档上传/一键重建向量索引、在线检索测试、用户反馈处理、LLM调用监控(延迟、Token、召回文档统计)、系统健康自检。
  2. 会员额度体系:免费用户限制AI调用次数,月/季/年会员解锁全量功能;支付宝模态框扫码支付,支付回调同步更新会员时效与功能额度。
  3. Docker Compose容器部署:前端Nginx静态托管,反向代理API;专门配置SSE长连接缓冲关闭;开发/生产环境变量隔离;接口限流、LLM调用指数退避三重重试、日志按天滚动。

七、核心踩坑与工程优化

  1. LLM医疗幻觉:强制RAG前置约束上下文,高危场景脱离LLM改用规则引擎拦截;
  2. OCR识别不稳定:双录入通道兜底,原图不压缩,区分PDF/图片两套解析逻辑;
  3. 多轮对话Token溢出:超长历史自动摘要压缩早期对话,仅保留近3轮完整上下文;
  4. 隐私风险:全表user_id数据隔离,手机号加密存储,登出/改密码批量销毁全部Refresh Token;
  5. 向量库维护成本高:可视化后台管理索引,无需命令行操作,实时展示处理进度。

八、项目总结

AI垂直行业落地的核心不是调用LLM接口,而是给大模型建立多层安全边界。医疗场景严谨性要求极高,整套系统依靠三层防护体系保障可靠:规则引擎拦截急症、RAG限制生成范围、Agent管控私有数据读写,叠加多层工程容错保证线上稳定。
完整走完产品到部署全流程后,对LangGraph智能体编排、垂直领域RAG工程化、To C医疗类产品合规设计有完整落地经验。后续计划扩充专科知识库、增加家庭健康档案共享、优化医院POI检索匹配精度。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐