개요
langchain-graph-retriever 패키지의 GraphRetriever는 벡터에 대한 비구조화된 유사도 검색과
메타데이터 속성의 구조화된 순회를 결합한 LangChain retriever를 제공합니다.
이를 통해 기존 vector store에서 그래프 기반 검색이 가능합니다.
Integration 세부 정보
| Retriever | Source | PyPI Package | Latest | Project Page |
|---|---|---|---|---|
| GraphRetriever | github.com/datastax/graph-rag | langchain-graph-retriever | Graph RAG |
장점
- 기존 메타데이터를 기반으로 연결: 추가 처리 없이 기존 메타데이터 필드를 사용합니다. 기존 vector store에서 더 많은 것을 검색하세요!
- 필요에 따라 링크 변경: Edge는 즉석에서 지정할 수 있어, 질문에 따라 다른 관계를 순회할 수 있습니다.
- 플러그형 순회 전략: Eager 또는 MMR과 같은 내장 순회 전략을 사용하거나, 탐색할 노드를 선택하는 사용자 정의 로직을 정의할 수 있습니다.
- 광범위한 호환성: 다양한 vector store에 대한 adapter가 제공되며, 추가 store에 대한 지원도 쉽게 추가할 수 있습니다.
설정
설치
이 retriever는langchain-graph-retriever 패키지에 포함되어 있습니다.
인스턴스화
다음 예제는 동물에 관한 샘플 Document에 대해 그래프 순회를 수행하는 방법을 보여줍니다.사전 요구 사항
Vector store 채우기
이 섹션은 샘플 데이터로 다양한 vector store를 채우는 방법을 보여줍니다. 아래의 vector store 중 하나를 선택하는 데 도움이 필요하거나 사용 중인 vector store에 대한 지원을 추가하려면 Adapter 및 지원되는 Store에 대한 문서를 참조하세요.- AstraDB
- Apache Cassandra
- OpenSearch
- Chroma
- InMemory
astra extra와 함께 langchain-graph-retriever 패키지를 설치하세요:ASTRA_DB_API_ENDPOINT 및 ASTRA_DB_APPLICATION_TOKEN 자격 증명은
AstraDB Vector Store 가이드를 참조하세요.:::note
더 빠른 초기 테스트를 위해 InMemory Vector Store 사용을 고려하세요.
:::그래프 순회
이 graph retriever는 쿼리와 가장 일치하는 단일 동물로 시작한 다음, 동일한habitat 및/또는 origin을 공유하는 다른 동물로 순회합니다.
start_k=1)로 시작하여 5개의 문서(k=5)를 검색하고,
첫 번째 동물로부터 최대 2단계 떨어진 문서로 검색을 제한하는(max_depth=2) 그래프 순회 retriever를 생성합니다.
edges는 메타데이터 값을 순회에 사용할 수 있는 방법을 정의합니다. 이 경우, 모든
동물은 동일한 habitat 및/또는 origin을 가진 다른 동물과 연결됩니다.
capybara, heron, frog, crocodile, newt는 모두
메타데이터에 정의된 대로 동일한 habitat=wetlands를 공유합니다. 이는 Document 관련성과
LLM의 답변 품질을 향상시킬 것입니다.
표준 검색과의 비교
max_depth=0일 때, 그래프 순회 retriever는 표준 retriever처럼 동작합니다:
start_k=5)로 시작하여
순회 없이 반환하는(max_depth=0) retriever를 생성합니다. 이 경우 edge 정의는
무시됩니다.
이는 본질적으로 다음과 동일합니다:
사용법
위의 예제에 따라,invoke는 쿼리에 대한 검색을 시작하는 데 사용됩니다.
API 참조
사용 가능한 모든 매개변수와 고급 구성을 살펴보려면 Graph RAG API 참조를 참조하세요.Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.