realtime / runtime /runtime_context.py
teganmosi
Fix VAD queue corruption, ASR duplicate calls, and LLM TTFT bottlenecks
b3e64c8
Raw
History Blame Contribute Delete
2.13 kB
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