企业级 Neo4j GraphRAG:向量检索 + 图谱扩散怎么融合?Neo4j GraphRAG 给你答案
2026/5/31 19:44:42 网站建设 项目流程

系列文章目录

第一篇 AI 数据治理:LangChain4J 文本分类器在字段对标中的高级玩法
第二篇 LangChain4J + OpenTelemetry:AI 调用全链路可观测方案


文章目录

  • 系列文章目录
  • 前言:为什么只做向量 RAG 不够用?
  • 一、GraphRAG 的核心设计
    • 1.1 Schema 自检与自修复(Neo4jSchemaService)
    • 1.2 知识库入库(IngestService)
    • 1.3 实体词表(Neo4jEntityService + EntityCatalogService)
    • 1.4 实体链接(Neo4jVectorEntityLinker)
    • 1.5 融合检索问答(GraphRagService)
  • 二、代码实践
    • 2.1 模型接入:Embedding + Chat(LangChain4jConfig)
    • 2.2 Neo4j Driver 与 RAG 参数(Neo4jConfig + RagProperties)
    • 2.3 GraphRAG 问答入口:/api/rag/ask(RagController)
    • 2.4 实体词表自增长:/api/entity/discover + /api/entity/upsert
    • 2.5 Dto
      • 2.5.1 AskResponse
      • 2.5.2 ChunkRef
      • 2.5.3 DiscoverEntitiesResponse
      • 2.5.4 EntityInfo
    • 2.6 融合检索核心:GraphRagService(Vector + Graph + Fusion)
    • 2.5 启动初始化:Schema 自修复 + Seed + Ingest(GraphRagApplication)
  • 三、配置与示例数据
    • 3.1 application.properties
    • 3.2 entities.json
    • 3.3 md文件数据
    • 3.4 Maven 依赖
    • 3.4 discover / upsert / ask 三连测试
      • 3.4.1 discover:自动发现新术语(可选 autoUpsert)
      • 3.4.2 upsert:手动确认后写入 Neo4j 实体词表
      • 3.4.3 ask:走完整 GraphRAG(向量检索 + 图检索融合)
  • 总结

前言:为什么只做向量 RAG 不够用?


很多团队的 RAG 都止步于:切 Chunk → 向量化 → TopK 相似度召回 → 拼上下文 → 让 LLM 回答。这条链路上线很快,但实际落地后经常遇到三个硬问题:

命中不稳定:问题表达一变,向量召回就漂;尤其是术语、代码 token、配置项这类文本。

解释性弱:为什么命中这段?为什么没命中那段?很难从“纯相似度”讲清楚。

词表维护成本高:新术语、新函数、新产品名层出不穷,靠人手补“实体/别名”永远慢半拍。

所以我做了一个工程化的 GraphRAG :
向量检索 + 图检索融合(Fusion),并且提供一条非常关键的闭环:实体自动发现 → 自动入库 → 立即生效。

一、GraphRAG 的核心设计

✅ GraphRAG 全链路 Mermaid 架构图(流程图)

整体链路

  1. 实体提取/实体链接

    • 从用户问题中提取 m

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询