Source code for langchain_mongodb.retrievers.graphrag

from typing import List

from langchain_core.callbacks.manager import CallbackManagerForRetrieverRun
from langchain_core.documents import Document
from langchain_core.retrievers import BaseRetriever

from langchain_mongodb.graphrag.graph import MongoDBGraphStore


[docs] class MongoDBGraphRAGRetriever(BaseRetriever): """RunnableSerializable API of MongoDB GraphRAG.""" graph_store: MongoDBGraphStore """Underlying Knowledge Graph storing entities and their relationships.""" def _get_relevant_documents( self, query: str, *, run_manager: CallbackManagerForRetrieverRun ) -> List[Document]: """Retrieve list of Entities found via traversal of KnowledgeGraph. Each Document's page_content is a string representation of the Entity dict. Description and details are provided in the underlying Entity Graph: :class:`~langchain_mongodb.graphrag.graph.MongoDBGraphStore` Args: query: String to find relevant documents for run_manager: The callback handler to use if desired Returns: List of relevant documents. """ return [Document(str(e)) for e in self.graph_store.similarity_search(query)]