tussentijdse status voor significante wijzigingen. Bezig aan creatie Dynamic Form in de chat client.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from typing import Dict, Any
|
||||
from typing import Dict, Any, Optional
|
||||
from pydantic import BaseModel, Field, model_validator
|
||||
from eveai_chat_workers.retrievers.retriever_typing import RetrieverArguments
|
||||
from common.extensions import cache_manager
|
||||
@@ -21,6 +21,16 @@ class SpecialistArguments(BaseModel):
|
||||
"extra": "allow"
|
||||
}
|
||||
|
||||
# Structural optional fields available for all specialists
|
||||
question: Optional[str] = Field(
|
||||
None,
|
||||
description="Optional question directed to the specialist"
|
||||
)
|
||||
form_values: Optional[Dict[str, Any]] = Field(
|
||||
None,
|
||||
description="Optional form values filled by the user, keyed by field name"
|
||||
)
|
||||
|
||||
@model_validator(mode='after')
|
||||
def validate_required_arguments(self) -> 'SpecialistArguments':
|
||||
"""Validate that all required arguments for this specialist type are present"""
|
||||
@@ -91,6 +101,16 @@ class SpecialistResult(BaseModel):
|
||||
"extra": "allow"
|
||||
}
|
||||
|
||||
# Structural optional fields available for all specialists
|
||||
answer: Optional[str] = Field(
|
||||
None,
|
||||
description="Optional textual answer from the specialist"
|
||||
)
|
||||
form_request: Optional[Dict[str, Any]] = Field(
|
||||
None,
|
||||
description="Optional form definition to request user input"
|
||||
)
|
||||
|
||||
@model_validator(mode='after')
|
||||
def validate_required_results(self) -> 'SpecialistResult':
|
||||
"""Validate that all required result fields for this specialist type are present"""
|
||||
|
||||
@@ -17,6 +17,7 @@ from eveai_chat_workers.specialists.specialist_typing import SpecialistResult, S
|
||||
from eveai_chat_workers.outputs.traicie.competencies.competencies_v1_1 import Competencies
|
||||
from eveai_chat_workers.specialists.crewai_base_classes import EveAICrewAICrew, EveAICrewAIFlow, EveAIFlowState
|
||||
from common.services.interaction.specialist_services import SpecialistServices
|
||||
from common.extensions import cache_manager
|
||||
|
||||
|
||||
class SpecialistExecutor(CrewAIBaseSpecialistExecutor):
|
||||
@@ -84,15 +85,18 @@ class SpecialistExecutor(CrewAIBaseSpecialistExecutor):
|
||||
# results.competencies = flow_state.competencies
|
||||
|
||||
# self.create_selection_specialist(arguments, flow_state.competencies)
|
||||
for i in range(5):
|
||||
sleep(3)
|
||||
for i in range(3):
|
||||
sleep(1)
|
||||
self.ept.send_update(self.task_id, "Traicie Selection Specialist Processing", {"name": f"Processing Iteration {i}"})
|
||||
|
||||
# flow_results = asyncio.run(self.flow.kickoff_async(inputs=arguments.model_dump()))
|
||||
# flow_state = self.flow.state
|
||||
# results = RoleDefinitionSpecialistResult.create_for_type(self.type, self.type_version)
|
||||
contact_form = cache_manager.specialist_forms_config_cache.get_config("PERSONAL_CONTACT_FORM", "1.0")
|
||||
current_app.logger.debug(f"Contact form: {contact_form}")
|
||||
results = SpecialistResult.create_for_type(self.type, self.type_version,
|
||||
answer=f"Antwoord op uw vraag: {arguments.question}")
|
||||
answer=f"Antwoord op uw vraag: {arguments.question}",
|
||||
form_request=contact_form)
|
||||
|
||||
self.log_tuning(f"Traicie Selection Specialist execution ended", {"Results": results.model_dump()})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user