File size: 2,125 Bytes
deea75c 2d0962c deea75c 2d0962c b3e64c8 2d0962c deea75c 2d0962c deea75c ff43154 | 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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | import logging
from typing import Any
from fastapi import WebSocket
from models.session_state import SessionConfig
from models.conversation_profile import ConversationProfile
class RuntimeContext:
def __init__(
self,
session_id: str,
websocket: WebSocket,
event_bus: Any,
queue_registry: Any,
task_supervisor: Any,
cleanup_manager: Any,
session_config: SessionConfig,
conversation_profile: ConversationProfile,
logger: logging.Logger,
tts_model: Any = None,
nv_client: Any = None,
groq_client: Any = None,
get_voice_state: Any = None,
run_transcription: Any = None,
clean_and_check_text: Any = None,
available_voices: Any = None,
persona_system_prompts: Any = None,
audio_buffer: Any = None,
):
self.session_id = session_id
self.websocket = websocket
self.event_bus = event_bus
self.queue_registry = queue_registry
self.task_supervisor = task_supervisor
self.cleanup_manager = cleanup_manager
self.session_config = session_config
self.conversation_profile = conversation_profile
self.logger = logger
# Singletons & Callbacks
self.tts_model = tts_model
self.nv_client = nv_client
self.groq_client = groq_client
self.get_voice_state = get_voice_state
self.run_transcription = run_transcription
self.clean_and_check_text = clean_and_check_text
self.available_voices = available_voices or {}
self.persona_system_prompts = persona_system_prompts or {}
self.audio_buffer = audio_buffer
self.turn_id = ""
# Managers & Services
self.turn_manager: Any = None
self.transcript_stabilizer: Any = None
self.vad_service: Any = None
self.asr_service: Any = None
self.llm_service: Any = None
self.tts_service: Any = None
self.sentence_accumulator: Any = None
self.error_handler: Any = None
self.memory_service: Any = None
|