File size: 754 Bytes
79899c0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
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 []