| """Shared contract for all retriever implementations.""" | |
| from abc import ABC, abstractmethod | |
| from dataclasses import dataclass | |
| from typing import Any | |
| class RetrievalResult: | |
| content: str | |
| metadata: dict[str, Any] | |
| score: float | |
| source_type: str # "document" | "database" | |
| class BaseRetriever(ABC): | |
| async def retrieve( | |
| self, query: str, user_id: str, k: int = 5 | |
| ) -> list[RetrievalResult]: ... | |