|
|
|
|
|
|
|
|
|
|
|
|
|
|
from core.rag.datasource.retrieval_service import RetrievalService |
|
|
from core.rag.datasource.retrieval_service import RetrievalService |
|
|
from core.rag.entities.context_entities import DocumentContext |
|
|
from core.rag.entities.context_entities import DocumentContext |
|
|
|
|
|
from core.rag.entities.metadata_entities import MetadataCondition |
|
|
from core.rag.models.document import Document as RetrievalDocument |
|
|
from core.rag.models.document import Document as RetrievalDocument |
|
|
from core.rag.retrieval.retrieval_methods import RetrievalMethod |
|
|
from core.rag.retrieval.retrieval_methods import RetrievalMethod |
|
|
from core.tools.utils.dataset_retriever.dataset_retriever_base_tool import DatasetRetrieverBaseTool |
|
|
from core.tools.utils.dataset_retriever.dataset_retriever_base_tool import DatasetRetrieverBaseTool |
|
|
|
|
|
|
|
|
args_schema: type[BaseModel] = DatasetRetrieverToolInput |
|
|
args_schema: type[BaseModel] = DatasetRetrieverToolInput |
|
|
description: str = "use this to retrieve a dataset. " |
|
|
description: str = "use this to retrieve a dataset. " |
|
|
dataset_id: str |
|
|
dataset_id: str |
|
|
|
|
|
metadata_filtering_conditions: MetadataCondition |
|
|
|
|
|
|
|
|
@classmethod |
|
|
@classmethod |
|
|
def from_dataset(cls, dataset: Dataset, **kwargs): |
|
|
def from_dataset(cls, dataset: Dataset, **kwargs): |
|
|
|
|
|
|
|
|
tenant_id=dataset.tenant_id, |
|
|
tenant_id=dataset.tenant_id, |
|
|
dataset_id=dataset.id, |
|
|
dataset_id=dataset.id, |
|
|
description=description, |
|
|
description=description, |
|
|
|
|
|
metadata_filtering_conditions=MetadataCondition(), |
|
|
**kwargs, |
|
|
**kwargs, |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dataset_id=dataset.id, |
|
|
dataset_id=dataset.id, |
|
|
query=query, |
|
|
query=query, |
|
|
external_retrieval_parameters=dataset.retrieval_model, |
|
|
external_retrieval_parameters=dataset.retrieval_model, |
|
|
|
|
|
metadata_condition=self.metadata_filtering_conditions, |
|
|
) |
|
|
) |
|
|
for external_document in external_documents: |
|
|
for external_document in external_documents: |
|
|
document = RetrievalDocument( |
|
|
document = RetrievalDocument( |