Spaces:
Sleeping
Sleeping
File size: 1,425 Bytes
6575706 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
"""
๊ธฐ๋ณธ ๊ฒ์๊ธฐ ์ธํฐํ์ด์ค
"""
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)
|