- logging improvement and simplification (no more graylog)
- Traicie Selection Specialist Round Trip - Session improvements + debugging enabled - Tone of Voice & Langauge Level definitions introduced
This commit is contained in:
@@ -4,7 +4,8 @@ from typing import Dict, Any, List
|
||||
from flask import current_app
|
||||
|
||||
from common.extensions import cache_manager
|
||||
from common.models.interaction import SpecialistRetriever
|
||||
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
|
||||
@@ -17,7 +18,9 @@ class BaseSpecialistExecutor(ABC):
|
||||
|
||||
def __init__(self, tenant_id: int, specialist_id: int, session_id: str, task_id: str):
|
||||
self.tenant_id = tenant_id
|
||||
self.tenant = Tenant.query.get_or_404(tenant_id)
|
||||
self.specialist_id = specialist_id
|
||||
self.specialist = Specialist.query.get_or_404(specialist_id)
|
||||
self.session_id = session_id
|
||||
self.task_id = task_id
|
||||
self.tuning = False
|
||||
@@ -96,6 +99,37 @@ class BaseSpecialistExecutor(ABC):
|
||||
def update_progress(self, processing_type, data) -> None:
|
||||
self.ept.send_update(self.task_id, processing_type, data)
|
||||
|
||||
def _replace_system_variables(self, text: str) -> str:
|
||||
"""
|
||||
Replace all system variables in the text with their corresponding values.
|
||||
System variables are in the format 'tenant_<attribute_name>'
|
||||
|
||||
Args:
|
||||
text: The text containing system variables to replace
|
||||
|
||||
Returns:
|
||||
str: The text with all system variables replaced
|
||||
"""
|
||||
if not text:
|
||||
return text
|
||||
|
||||
from common.utils.model_utils import replace_variable_in_template
|
||||
|
||||
# Find all tenant_* variables and replace them with tenant attribute values
|
||||
# Format of variables: tenant_name, tenant_code, etc.
|
||||
result = text
|
||||
|
||||
# Get all attributes of the tenant object
|
||||
tenant_attrs = vars(self.tenant)
|
||||
|
||||
# Replace all tenant_* variables
|
||||
for attr_name, attr_value in tenant_attrs.items():
|
||||
variable = f"tenant_{attr_name}"
|
||||
if variable in result:
|
||||
result = replace_variable_in_template(result, variable, str(attr_value))
|
||||
|
||||
return result
|
||||
|
||||
@abstractmethod
|
||||
def execute_specialist(self, arguments: SpecialistArguments) -> SpecialistResult:
|
||||
"""Execute the specialist's logic"""
|
||||
|
||||
Reference in New Issue
Block a user