neo4j/neo4j-graphrag-python

Neo4j GraphRAG for Python

Neo4j GraphRAG Python 包

它是什么 – 一个官方 Python 库,让你在 Neo4j 数据库之上构建图检索增强生成(GraphRAG)应用。它提供将原始文本或 PDF 转换为知识图谱的流水线、创建和填充向量索引的工具,以及一组结合向量相似性和图遍历的检索器。该库附带许多 LLM 提供商的适配器(OpenAI、Anthropic、Ollama 等),并可选集成外部向量存储,如 Weaviate、Pinecone 和 Qdrant。

主要功能

  • 知识图谱构建 – Pipeline(功能完整)和 SimpleKGPipeline(易于上手)类,使用 LLM 提取实体/关系,嵌入它们,并写入 Neo4j。支持文本和 PDF 源。
  • 向量索引 – 辅助函数用于创建 Neo4j 向量索引和更新嵌入。
  • 混合检索 – 内置 VectorRetriever 和其他检索器,将近似最近邻搜索与图遍历相结合,以提供更丰富的上下文。
  • RAG 执行 – GraphRAG 类将检索器与 LLM 绑定,提供简单的 search(query_text, ...) API,返回生成的答案。
  • 可插拔的 LLM/嵌入后端 – 可选附加组件(openai、anthropic、google-genai、mistralai 等)让你选择偏好的模型提供商。
  • 实验性知识图谱构建工具 – 在 experimental 命名空间下提供额外的流水线和解析器(例如,基于 spaCy 的语义匹配、模糊匹配)。

安装

# 从 PyPI
pip install neo4j-graphrag

# 或通过 conda-forge
conda install -c conda-forge neo4j-graphrag

为所需的 LLM 添加可选附加组件,例如 pip install "neo4j-graphrag[openai]"。

典型工作流程

  1. 运行 Neo4j(安装 APOC 库)。
  2. 创建知识图谱 – 使用 SimpleKGPipeline(或更可配置的 Pipeline)输入原始文本/PDF,指定节点/关系模式,让 LLM 提取和嵌入实体。
  3. 创建向量索引 – 在 Chunk 标签(或你存储嵌入的任何标签)上使用 create_vector_index 创建向量索引。
  4. 填充索引 – 使用 upsert_vectors 填充嵌入。
  5. 查询 – 实例化 VectorRetriever、LLM 包装器(例如 OpenAILLM)和 GraphRAG 对象,然后用自然语言问题调用 search()。

文档与示例

开发与贡献

  • 使用 uv 工具进行依赖管理;运行 uv sync --group dev 设置开发环境。
  • 使用 Ruff(lint)和 MyPy(类型检查)保证代码质量。
  • 贡献需要签署 Neo4j 的 CLA。

适用人群

  • 希望用结构化图上下文增强 LLM 响应的数据工程师或机器学习工程师。
  • 已经使用 Neo4j 并需要无缝桥接到生成式 AI 的团队。
  • 探索结合向量相似性和图语义的混合检索策略的研究人员。

所有细节均直接取自仓库的 README;未推断任何额外功能。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目