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]".
일반적인 워크플로우
- Neo4j 실행 (APOC 라이브러리 설치).
- 지식 그래프 생성 –
SimpleKGPipeline(또는 더 구성 가능한Pipeline)을 사용하여 원시 텍스트/PDF를 입력하고, 노드/관계 스키마를 지정하고, LLM이 엔터티를 추출하고 임베딩하도록 합니다. - 벡터 인덱스 생성 –
Chunk레이블(또는 임베딩을 저장하는 모든 레이블)에create_vector_index를 사용하여 벡터 인덱스를 생성합니다. - 인덱스 채우기 –
upsert_vectors로 임베딩을 채웁니다. - 쿼리 –
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에서 직접 가져왔습니다. 추가 기능은 추론되지 않았습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트