import abc
from typing import List
from sqlalchemy.orm import Session
class Retriever(abc.ABC):
"""
Abstract base class for a Retriever.
A retriever is a pluggable component that is responsible for fetching
relevant context for a given query from a specific data source.
"""
@abc.abstractmethod
def retrieve_context(self, query: str, db: Session) -> List[str]:
"""
Fetches context for a given query.
Args:
query (str): The user's query string.
db (Session): The database session.
Returns:
List[str]: A list of text strings representing the retrieved context.
"""
raise NotImplementedError