35

LlamaIndex Property Graph: 코드 기반 GraphRAG

Microsoft GraphRAG & LlamaIndex

학습 목표

LlamaIndex: Python 코드 기반의 유연한 GraphRAG PropertyGraphIndex: 엔티티, 청크, 관계 통합 인덱스 4가지 KG Extractor: Schema/Simple/Implicit/Dynamic

LlamaIndex Property Graph: 코드 기반 GraphRAG

LlamaIndex는 MS GraphRAG보다 코드 레벨에서 더 세밀한 제어가 가능합니다. CLI 대신 Python 코드로 모든 단계를 커스터마이징할 수 있습니다.

MS GraphRAG가 "자동 운전"이라면, LlamaIndex는 "수동 운전 + 고급 보조 시스템"


왜 배우는가?

MS GraphRAG vs LlamaIndex 상세 비교

측면MS GraphRAGLlamaIndex Property Graph
인터페이스CLI + Python APIPython API 네이티브
KG 구축완전 자동스키마 정의 가능
검색 방식Local + GlobalSynonym + Vector + Cypher
커뮤니티Leiden 알고리즘 자동직접 구현 필요
저장소Parquet 파일Neo4j, NebulaGraph, 인메모리
학습 곡선낮음 (CLI)중간 (Python)
유연성보통높음
문서 지원텍스트다양한 포맷 (PDF, HTML 등)
엔티티 스키마자동 발견명시적 정의 가능
프로덕션 적합성PoC~중간중간~높음

LlamaIndex 선택 시점:

  • 기존 Python 코드베이스에 통합해야 할 때
  • 커스텀 엔티티/관계 추출 로직이 필요할 때
  • 다양한 데이터 소스를 지원해야 할 때
  • Neo4j와 직접 연동이 필요할 때
  • 검색 전략을 세밀하게 조정해야 할 때

PropertyGraphIndex 아키텍처 상세

에디터 로딩 중...

핵심 개념

핵심 컴포넌트 상세

1. KG Extractors (엔티티/관계 추출기)

추출기설명사용 시나리오
SchemaLLMPathExtractor사전 정의 스키마 기반도메인 특화, 높은 정밀도
SimpleLLMPathExtractor스키마 없이 자유 추출탐색적 분석, PoC
ImplicitPathExtractor텍스트 청크 간 암시적 관계문서 구조 활용
DynamicLLMPathExtractorLLM이 스키마도 자동 결정MS GraphRAG 유사 동작
에디터 로딩 중...

2. Retrievers (검색기)

검색기동작 방식장점
LLMSynonymRetrieverLLM이 동의어 생성 → 엔티티 매칭표현 변형에 강건
VectorContextRetriever임베딩 유사도로 엔티티 검색의미적 유사성 활용
TextToCypherRetriever자연어 → Cypher 변환정확한 구조적 질의
CypherTemplateRetriever미리 정의한 Cypher 템플릿안정적, 예측 가능
에디터 로딩 중...

3. Neo4j와의 연동

에디터 로딩 중...

설치

에디터 로딩 중...
핵심 포인트
  • LlamaIndex: Python 코드 기반의 유연한 GraphRAG
  • PropertyGraphIndex: 엔티티, 청크, 관계 통합 인덱스
  • 4가지 KG Extractor: Schema/Simple/Implicit/Dynamic
  • 4가지 Retriever: Synonym/Vector/TextToCypher/CypherTemplate
  • Neo4jPropertyGraphStore: Neo4j 직접 연동 + Cypher 실행
  • 여러 추출기/검색기를 조합하여 최적 파이프라인 구성