{"library":"neo4j-graphrag","title":"Neo4j GraphRAG Python Client","description":"The neo4j-graphrag library provides Pythonic access and utilities for integrating with Neo4j's GraphRAG (Retrieval Augmented Generation) features. It simplifies building Knowledge Graphs from unstructured text, performing vector embeddings, and executing RAG queries against a Neo4j graph database. The current version is 1.14.1, with a release cadence that is quite active, often seeing minor releases monthly.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install neo4j-graphrag","pip install neo4j-graphrag[openai,vertexai,ollama]"],"cli":null},"imports":["from neo4j_graphrag.graph_rag_pipeline import GraphRAGPipeline","from neo4j_graphrag.knowledge_graph_builder import SimpleKGPipeline","from neo4j_graphrag.llm import OpenAILLM","from neo4j_graphrag.llm import VertexAILLM","from neo4j_graphrag.retrievers import Neo4jStore"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom neo4j import GraphDatabase\nfrom neo4j_graphrag.graph_rag_pipeline import GraphRAGPipeline\nfrom neo4j_graphrag.llm import OpenAILLM\n\n# --- Configuration (Set environment variables or replace placeholders) ---\nNEO4J_URI = os.environ.get(\"NEO4J_URI\", \"bolt://localhost:7687\")\nNEO4J_USERNAME = os.environ.get(\"NEO4J_USERNAME\", \"neo4j\")\nNEO4J_PASSWORD = os.environ.get(\"NEO4J_PASSWORD\", \"password\")\nNEO4J_DATABASE = os.environ.get(\"NEO4J_DATABASE\", \"neo4j\")\nOPENAI_API_KEY = os.environ.get(\"OPENAI_API_KEY\", \"\") # Required for OpenAILLM\n\nif not all([NEO4J_URI, NEO4J_USERNAME, NEO4J_PASSWORD, OPENAI_API_KEY]):\n    print(\"Warning: Please set NEO4J_URI, NEO4J_USERNAME, NEO4J_PASSWORD, and OPENAI_API_KEY environment variables for a runnable example.\")\n    print(\"Using default values for Neo4j, which may not connect without a running instance.\")\n    print(\"OpenAI API key is missing. The LLM initialization might fail or proceed without API calls.\")\n\ntry:\n    # 1. Initialize Neo4j Driver\n    driver = GraphDatabase.driver(NEO4J_URI, auth=(NEO4J_USERNAME, NEO4J_PASSWORD))\n    # Verify connection to ensure Neo4j is reachable and credentials are correct\n    driver.verify_connectivity()\n    print(\"Neo4j connection verified successfully.\")\n\n    # 2. Initialize your chosen LLM (e.g., OpenAI)\n    llm = OpenAILLM(api_key=OPENAI_API_KEY)\n\n    # 3. Initialize the GraphRAG pipeline\n    # This pipeline is designed to work with a knowledge graph. For best results,\n    # ensure your Neo4j database has relevant data, possibly built using SimpleKGPipeline.\n    pipeline = GraphRAGPipeline(\n        llm=llm,\n        graph_driver=driver,\n        database=NEO4J_DATABASE\n    )\n\n    # 4. Ask a question to the pipeline\n    question = \"Who is the CEO of Neo4j?\"\n    print(f\"\\nQuestion: {question}\")\n    response = pipeline.query(question)\n\n    print(f\"Answer: {response.answer}\")\n\nexcept Exception as e:\n    print(f\"An error occurred during quickstart: {e}\")\nfinally:\n    if 'driver' in locals():\n        driver.close()\n        print(\"Neo4j driver closed.\")","lang":"python","description":"This quickstart demonstrates how to set up and use the `GraphRAGPipeline` with an OpenAI LLM to query a Neo4j knowledge graph. It requires Neo4j to be running and accessible, and an OpenAI API key. Ensure `NEO4J_URI`, `NEO4J_USERNAME`, `NEO4J_PASSWORD`, and `OPENAI_API_KEY` environment variables are set.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"1.11.0","pypi_latest":"1.16.0","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":11.3,"avg_import_s":null,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"neo4j-graphrag","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"258.9M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"openai,vertexai,ollama","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"276.2M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"neo4j-graphrag","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":10.8,"import_time_s":null,"mem_mb":null,"disk_size":"250M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"openai,vertexai,ollama","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":12.5,"import_time_s":null,"mem_mb":null,"disk_size":"267M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"neo4j-graphrag","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"274.2M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"openai,vertexai,ollama","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"292.6M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"neo4j-graphrag","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":10,"import_time_s":null,"mem_mb":null,"disk_size":"263M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"openai,vertexai,ollama","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":11.8,"import_time_s":null,"mem_mb":null,"disk_size":"281M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"neo4j-graphrag","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"259.6M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"openai,vertexai,ollama","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"277.7M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"neo4j-graphrag","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":9.7,"import_time_s":null,"mem_mb":null,"disk_size":"249M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"openai,vertexai,ollama","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":10.9,"import_time_s":null,"mem_mb":null,"disk_size":"266M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"neo4j-graphrag","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"258.4M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"openai,vertexai,ollama","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"276.5M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"neo4j-graphrag","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":9.7,"import_time_s":null,"mem_mb":null,"disk_size":"247M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"openai,vertexai,ollama","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":11.3,"import_time_s":null,"mem_mb":null,"disk_size":"265M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"neo4j-graphrag","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"257.1M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"openai,vertexai,ollama","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"274.3M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"neo4j-graphrag","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":11.8,"import_time_s":null,"mem_mb":null,"disk_size":"253M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"openai,vertexai,ollama","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":14.1,"import_time_s":null,"mem_mb":null,"disk_size":"270M"}]}}