neo4j/neo4j-graphrag-python

Neo4j GraphRAG for Python

Neo4j GraphRAG Python 패키지

개요 – Neo4j 데이터베이스 위에 그래프 검색 증강 생성(GraphRAG) 애플리케이션을 구축할 수 있는 공식 Python 라이브러리입니다. 원시 텍스트나 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 등)로 선호하는 모델 공급자를 선택할 수 있습니다.
  • 실험적 KG 구축 도구 – 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()를 호출합니다.

문서 및 예제

  • 전체 문서: https://neo4j.com/docs/neo4j-graphrag-python/
  • 블로그 튜토리얼은 KG 구축, 하이브리드 검색, Text2Cypher 검색기를 다룹니다.
  • 풍부한 examples/ 폴더에는 각 단계에 대한 실행 가능한 스크립트가 포함되어 있습니다.

개발 및 기여

  • 종속성 관리를 위해 uv 도구를 사용합니다. 개발 환경을 설정하려면 uv sync --group dev를 실행하세요.
  • 코드 품질은 Ruff(lint)와 MyPy(타입 검사)로 보장됩니다.
  • 기여하려면 Neo4j의 CLA에 서명해야 합니다.

대상 사용자

  • 구조화된 그래프 컨텍스트로 LLM 응답을 강화하려는 데이터 엔지니어 또는 ML 엔지니어.
  • 이미 Neo4j를 사용 중이며 생성 AI로의 원활한 연결이 필요한 팀.
  • 벡터 유사성과 그래프 의미론을 결합한 하이브리드 검색 전략을 탐구하는 연구자.

모든 세부 사항은 저장소의 README에서 직접 가져왔습니다. 추가 기능은 추론되지 않았습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트