|
|
from typing import List |
|
|
|
|
|
from bio_requests.rag_request import RagRequest |
|
|
from dto.bio_document import BaseBioDocument |
|
|
|
|
|
|
|
|
class BaseSearchService: |
|
|
_registry = [] |
|
|
|
|
|
def __init_subclass__(cls, **kwargs): |
|
|
super().__init_subclass__(**kwargs) |
|
|
BaseSearchService._registry.append(cls) |
|
|
|
|
|
@classmethod |
|
|
def get_subclasses(cls): |
|
|
return cls._registry |
|
|
|
|
|
def __init__(self): |
|
|
self.data_source = "Base" |
|
|
pass |
|
|
|
|
|
async def filter_search(self, rag_request: RagRequest) -> List[BaseBioDocument]: |
|
|
if self.data_source in rag_request.data_source: |
|
|
return await self.search(rag_request) |
|
|
return [] |
|
|
|
|
|
async def search(self, rag_request: RagRequest) -> List[BaseBioDocument]: |
|
|
return [] |
|
|
|