""" 기본 검색기 인터페이스 """ from abc import ABC, abstractmethod from typing import List, Dict, Any, Union, Tuple class BaseRetriever(ABC): """검색 인터페이스를 정의하는 추상 기본 클래스""" @abstractmethod def search(self, query: str, top_k: int = 5, **kwargs) -> List[Dict[str, Any]]: """ 주어진 쿼리에 대해 검색을 수행하고 결과를 반환합니다. Args: query: 검색 쿼리 top_k: 반환할 상위 결과 수 **kwargs: 추가 검색 매개변수 Returns: 검색 결과 목록 (각 결과는 딕셔너리 형태) """ pass @abstractmethod def add_documents(self, documents: List[Dict[str, Any]]) -> None: """ 검색기에 문서를 추가합니다. Args: documents: 추가할 문서 목록 (각 문서는 딕셔너리 형태) """ pass def get_relevant_documents(self, query: str, top_k: int = 5, **kwargs) -> List[Dict[str, Any]]: """ search 메서드의 별칭 Args: query: 검색 쿼리 top_k: 반환할 상위 결과 수 **kwargs: 추가 검색 매개변수 Returns: 검색 결과 목록 """ return self.search(query, top_k, **kwargs)