目前知识图谱接入仅支持 Neo4j 数据库,后续会支持其他数据库。
Neo4j 是一个开源的图数据库,用于存储和查询图数据。
使用 Docker 快速安装和启动 Neo4j:
连接配置信息:
安装完成后,访问 http://localhost:7474 进入 Neo4j 浏览器界面。
在系统的【向量配置】模块中,点击"新增"按钮来添加 Neo4j 向量存储配置。
进入【向量配置】页面,点击"新增"按钮,选择 Neo4j 向量模式
填写 Neo4j 数据库连接信息:
配置向量维度参数,该参数必须与您计划使用的向量模型维度保持一致
向量维度配置关键说明: 向量维度设置非常重要,它必须与您后续使用的向量模型输出维度完全匹配。例如:
建议根据您的具体需求选择合适的模型:
在配置 Neo4j 向量存储后,您需要在知识库中启用 Neo4j 配置。进入知识库管理页面,选择需要配置的知识库。
向量模型维度匹配说明: 在选择向量模型时,必须确保模型的输出维度与之前在 Neo4j 向量配置中设置的维度完全一致:
在知识库列表中找到需要配置的知识库,点击进入详情页面
在知识库配置中找到向量存储选项,选择之前创建的 Neo4j 向量配置
根据 Neo4j 配置中设置的向量维度,选择对应维度的向量模型:
确认配置无误后,保存知识库设置
使用 Neo4j 知识图谱存储的知识库,会自动为文档生成切片关系图谱。系统将文档内容解析为不同的知识切片,并建立它们之间的关联关系,形成直观的知识图谱结构。
传统 RAG 依赖文本匹配进行检索,难以处理需要跨文档信息汇总的全局性问题。知识图谱通过将文档切片组织为实体-关系网络,实现了:
当前版本的关系图主要体现文档切片与整篇文档之间的层级关系(Parent-Child 结构),确保检索时能够追溯切片的完整上下文。后续版本将支持更丰富的语义关系识别,包括实体抽取、关系推理和社区聚类等 GraphRAG 能力。
Neo4jEmbeddingStrategy 会按顺序执行两个阶段:先完成切片向量入库,再执行关系图谱入库。这样可以保证检索侧先拿到可用的向量数据,随后再补齐文档级的图结构和父子关系。
如果阶段 1 失败,整个 processEmbedding 会进入异常处理并将切片标记为失败,阶段 2 不会继续执行。只有切片向量入库完成后,才会开始图谱构建。
这一阶段的目标是为每个切片单独生成向量,并写入 Neo4j 向量存储,用于后续相似度检索。实现上会先临时切换为不依赖 parentId 的简单实体创建查询,然后逐个切片生成 embedding、写入元数据,并把返回的向量 ID 回写到切片记录中。
这一阶段的目标是基于整篇文档生成图谱结构。系统会把全部切片内容重新拼装成文档正文,按配置决定是否追加摘要,再通过 Neo4jSummaryGraphIngestor 按段切分文档、生成节点与关系,并最终把文档的图谱状态标记为已完成。
从实现上看,阶段 1 解决的是“让每个切片可检索”,阶段 2 解决的是“让切片之间有结构”。因此 Neo4j 在该方案中同时承担了向量检索存储和图谱关系存储两类职责,前者面向召回,后者面向上下文关联和多跳推理。