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]"。
典型工作流程
- 运行 Neo4j(安装 APOC 库)。
- 创建知识图谱 – 使用
SimpleKGPipeline(或更可配置的Pipeline)输入原始文本/PDF,指定节点/关系模式,让 LLM 提取和嵌入实体。 - 创建向量索引 – 在
Chunk标签(或你存储嵌入的任何标签)上使用create_vector_index创建向量索引。 - 填充索引 – 使用
upsert_vectors填充嵌入。 - 查询 – 实例化
VectorRetriever、LLM 包装器(例如OpenAILLM)和GraphRAG对象,然后用自然语言问题调用search()。
文档与示例
- 完整文档:https://neo4j.com/docs/neo4j-graphrag-python/
- 博客教程涵盖知识图谱构建、混合检索和 Text2Cypher 检索器。
- 丰富的
examples/文件夹包含每个步骤的现成脚本。
开发与贡献
- 使用
uv工具进行依赖管理;运行uv sync --group dev设置开发环境。 - 使用 Ruff(lint)和 MyPy(类型检查)保证代码质量。
- 贡献需要签署 Neo4j 的 CLA。
适用人群
- 希望用结构化图上下文增强 LLM 响应的数据工程师或机器学习工程师。
- 已经使用 Neo4j 并需要无缝桥接到生成式 AI 的团队。
- 探索结合向量相似性和图语义的混合检索策略的研究人员。
所有细节均直接取自仓库的 README;未推断任何额外功能。
相关
- 项目
- 项目
- 项目
- 项目
- 项目