|
|
import logging |
|
|
from enum import Enum |
|
|
from abc import ABC, abstractmethod |
|
|
|
|
|
from llama_index.core.retrievers import BaseRetriever |
|
|
|
|
|
from ..schema import Query, RagResult |
|
|
|
|
|
|
|
|
class RetrieverType(str, Enum): |
|
|
VECTOR = "vector" |
|
|
GRAPH = "graph" |
|
|
|
|
|
|
|
|
class BaseRetrieverWrapper(ABC): |
|
|
"""Base interface for retriever wrappers.""" |
|
|
|
|
|
def __init__(self): |
|
|
self.logger = logging.getLogger(__name__) |
|
|
|
|
|
@abstractmethod |
|
|
def retrieve(self, query: Query) -> RagResult: |
|
|
"""Retrieve results for a query.""" |
|
|
pass |
|
|
|
|
|
@abstractmethod |
|
|
def get_retriever(self) -> BaseRetriever: |
|
|
"""Return the LlamaIndex-compatible retriever.""" |
|
|
pass |