所有项目图谱实验 / 疾病知识图谱问答

疾病知识图谱问答把病、症、药放进一张图里。

stu-neoj4 的图谱实验。以疾病为中心,接入症状、药物、科室、检查、宜忌食物等 8 类实体和 11 种关系;PaddleNLP 做抽取,GLM 把问句写成 Cypher,再交给带历史的问答链和可调度天气、图谱查询的 Agent。

Neo4jPaddleNLPLangChainCypher
NEO4J / DISEASE GRAPH
DiseaseSymptomDrugFoodDept

它在解决什么

stu-neoj4 是把医疗问答从“关键词匹配”换成“图上推理”的练习。传统检索很难跨实体:一种病连着症状、药物、科室、宜吃和忌吃。把这些写成 Neo4j 里的点和边,再用大模型把自然语言转成 Cypher,问答才有可检查的路径。

图长什么样

图谱以疾病为中心,辐射 8 类实体、11 种关系:

节点 关系
Disease → Symptom DISEASE_SYMPTOM
Disease → Check / Cureway / Drug / Department 检查、疗法、药物、科室
Disease → Food / Dishes 宜吃 DISEASE_DO_EAT、忌吃 DISEASE_NOT_EAT
Disease → Category 分类

建库脚本在 create_data/,节点和关系从 CSV 写入。连接封装在 Util/Neo4jUtil.py

从问句到回答

练习是按脚本拆开的,不是一上来就做完整服务:

  • PaddleNLP 的 PP-UIE / uie-base 做命名实体识别。
  • GLM 把抽取结果或用户提问写成 Cypher。
  • 一条带历史的问答链:生成查询 → 执行 → 组织回答,并做医疗 / 非医疗意图分流,减少凭空编造。
  • 高德天气和图谱查询封装成 LangChain Tool,交给 create_agent 自己调度。

它证明“自然语言 → 图查询 → 回答”这条路走得通,但还停在脚本和原型,没有登录、没有前端,也没有后来 MediAtlas 里的证据门槛。

和后面怎么接

MediAtlas 沿用了疾病图谱,但把任意 Cypher 收成参数化只读查询。检索不再只靠图,而是图、BM25 和向量一起走。这个练习留下的是实体关系和“先查图、再说话”的习惯。

MUSIC
专辑封面

Moonlit Current

Between Tides · 原创环境音

0:000:00

进页播放环境音,可在上方关掉。

MY MUSIC

我的歌单

正在准备搜索索引…

选择Enter 打开Esc 关闭