| """ |
| Base classes for retrieval components. |
| """ |
|
|
| from abc import ABC, abstractmethod |
| from typing import List, Optional |
|
|
| from efficient_context.chunking.base import Chunk |
|
|
| class BaseRetriever(ABC): |
| """Base class for content retrieval components.""" |
| |
| @abstractmethod |
| def index_chunks(self, chunks: List[Chunk]) -> None: |
| """ |
| Index chunks for future retrieval. |
| |
| Args: |
| chunks: Chunks to index |
| """ |
| pass |
| |
| @abstractmethod |
| def retrieve(self, query: str, top_k: Optional[int] = None) -> List[Chunk]: |
| """ |
| Retrieve chunks relevant to a query. |
| |
| Args: |
| query: Query to retrieve chunks for |
| top_k: Number of chunks to retrieve |
| |
| Returns: |
| chunks: List of retrieved chunks |
| """ |
| pass |
| |
| @abstractmethod |
| def clear(self) -> None: |
| """Clear all indexed chunks.""" |
| pass |
|
|