- Revisiting RAG_SPECIALIST
- Adapt Catalogs & Retrievers to use specific types, removing tagging_fields - Adding CrewAI Implementation Guide
This commit is contained in:
@@ -8,8 +8,7 @@ from common.models.interaction import SpecialistRetriever, Specialist
|
||||
from common.models.user import Tenant
|
||||
from common.utils.execution_progress import ExecutionProgressTracker
|
||||
from config.logging_config import TuningLogger
|
||||
from eveai_chat_workers.retrievers.base import BaseRetriever
|
||||
from eveai_chat_workers.retrievers.registry import RetrieverRegistry
|
||||
from eveai_chat_workers.retrievers.base_retriever import BaseRetriever, get_retriever_class
|
||||
from eveai_chat_workers.specialists.specialist_typing import SpecialistArguments, SpecialistResult
|
||||
|
||||
|
||||
@@ -56,20 +55,16 @@ class BaseSpecialistExecutor(ABC):
|
||||
for spec_retriever in specialist_retrievers:
|
||||
# Get retriever configuration from database
|
||||
retriever = spec_retriever.retriever
|
||||
retriever_class = RetrieverRegistry.get_retriever_class(retriever.type)
|
||||
retriever_executor_class = get_retriever_class(retriever.type, retriever.type_version)
|
||||
self.log_tuning("_initialize_retrievers", {
|
||||
"Retriever id": spec_retriever.retriever_id,
|
||||
"Retriever Type": retriever.type,
|
||||
"Retriever Class": str(retriever_class),
|
||||
"Retriever Version": retriever.type_version,
|
||||
})
|
||||
|
||||
retriever_executor = retriever_executor_class(self.tenant_id, spec_retriever.retriever_id)
|
||||
# Initialize retriever with its configuration
|
||||
retrievers.append(
|
||||
retriever_class(
|
||||
tenant_id=self.tenant_id,
|
||||
retriever_id=retriever.id,
|
||||
)
|
||||
)
|
||||
retrievers.append(retriever_executor)
|
||||
|
||||
return retrievers
|
||||
|
||||
@@ -144,7 +139,7 @@ def get_specialist_class(specialist_type: str, type_version: str):
|
||||
if partner:
|
||||
module_path = f"eveai_chat_workers.specialists.{partner}.{specialist_type}.{major_minor}"
|
||||
else:
|
||||
module_path = f"eveai_chat_workers.specialists.{specialist_type}.{major_minor}"
|
||||
module_path = f"eveai_chat_workers.specialists.globals.{specialist_type}.{major_minor}"
|
||||
current_app.logger.debug(f"Importing specialist class from {module_path}")
|
||||
module = importlib.import_module(module_path)
|
||||
return module.SpecialistExecutor
|
||||
|
||||
Reference in New Issue
Block a user