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