项目简介 构建面向中文医疗问诊的 RAG 智能助手:把药品说明书与疾病症状知识图谱统一接入,提供可追溯的问诊答复。 解决单一检索易漏信息、回答缺乏依据的痛点,通过多路召回 + Refine 生成,增强回答准确性与可信度。 主要功能 多工具智能路由:LangChain Agent 自动选择通用问答、向量检索、知识图谱或网络搜索。 多通道召回:Chroma 向量库(药品说明)+ Neo4j 图谱(疾病-症状-药物关系)同时检索并加权融合。 多文档 Refine 生成:逐步吸收多个证据片段,生成结构化、可引用的最终答案。 对话上下文管理:记录最近对话轮次并用 SummarizationMiddleware 控制上下文长度。 上下文追踪:保留本轮检索到的原始证据,方便评测与问题追溯。 搜索兜底:当内部知识无法回答时,自动调用网络搜索并总结结果。 技术栈 语言 / 框架:Python、LangChain LLM / Embedding:OpenAI Chat 模型、OpenAI Embeddings 检索:Chroma(FAISS 后端)、Neo4j 图数据库、轻量级得分归一化+排序 生成策略:多文档 Refine Prompt、LLM 结构化输出、SummarizationMiddleware 其他:py2neo、requests、Gradio(
2.算法设计及优化:
知识图谱:
采用基于大语言模型的实体抽取框架( gpt-5-nano + Pydantic),构建 NER 关系抽取模型,抽取出疾病名称、症状等医疗实体及关系。模型实体抽取F1 score 达到 90.1%。写入 Neo4j 图数据库中,实现 12 种医疗查询模板,构建医疗诊断信息知识图谱。
检索优化:
针对初步检索结果噪声大导致精确度和召回率低的问题,对现有向量检索结果引入知识图谱通道,与 Neo4j 疾病‑症状‑药物关系链路联动,实现多路召回。通过归一化平滑两路得分并加权融合,再交由轻量rerank逻辑筛选 Top-N,上下文噪声显著下降,F1 score从68.5%提升到87.3%
生成优化:
针对生成结果偶尔出现幻觉的情况,保证医疗问答的严谨性,提高回答的准确率和忠诚度。引入多文档场景refine生成优化,有效降低一次性长上下文导致的幻觉,生成准确率达到86.0%,忠诚度从71.3%提升到87.3%
意图识别:
为提高Function call的稳定性。引入动态函数路由,加入CoT+Plan-Execute先规划后调用,工具调用准确率提升至92%,任务完成率提高30%
模型集成:
知识文本向量化存入 FAISS 和 Chroma 向量数据库。采用 LangChain 架构集成向量数据库、知识图谱查询、文本生成功能。结合 prompt,增强生成内容的逻辑性和连贯性,Rouge-L 指标达到39.2%。
项目示意图
