Spaces:
Building
Building
Update stt/stt_lifecycle_manager.py
Browse files- stt/stt_lifecycle_manager.py +24 -0
stt/stt_lifecycle_manager.py
CHANGED
@@ -49,6 +49,7 @@ class STTLifecycleManager:
|
|
49 |
self.event_bus.subscribe(EventType.STT_STARTED, self._handle_stt_start)
|
50 |
self.event_bus.subscribe(EventType.STT_STOPPED, self._handle_stt_stop)
|
51 |
self.event_bus.subscribe(EventType.AUDIO_CHUNK_RECEIVED, self._handle_audio_chunk)
|
|
|
52 |
self.event_bus.subscribe(EventType.SESSION_ENDED, self._handle_session_ended)
|
53 |
|
54 |
def _setup_resource_pool(self):
|
@@ -280,6 +281,29 @@ class STTLifecycleManager:
|
|
280 |
error_message=str(e)
|
281 |
)
|
282 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
283 |
async def _handle_session_ended(self, event: Event):
|
284 |
"""Clean up STT resources when session ends"""
|
285 |
session_id = event.session_id
|
|
|
49 |
self.event_bus.subscribe(EventType.STT_STARTED, self._handle_stt_start)
|
50 |
self.event_bus.subscribe(EventType.STT_STOPPED, self._handle_stt_stop)
|
51 |
self.event_bus.subscribe(EventType.AUDIO_CHUNK_RECEIVED, self._handle_audio_chunk)
|
52 |
+
self.event_bus.subscribe(EventType.SESSION_STARTED, self._handle_session_started)
|
53 |
self.event_bus.subscribe(EventType.SESSION_ENDED, self._handle_session_ended)
|
54 |
|
55 |
def _setup_resource_pool(self):
|
|
|
281 |
error_message=str(e)
|
282 |
)
|
283 |
|
284 |
+
async def _handle_session_started(self, event: Event):
|
285 |
+
"""Initialize LLM for session at start"""
|
286 |
+
session_id = event.session_id
|
287 |
+
|
288 |
+
try:
|
289 |
+
# Create LLM instance when session starts
|
290 |
+
resource_id = f"llm_{session_id}"
|
291 |
+
llm_instance = await self.resource_manager.acquire(
|
292 |
+
resource_id=resource_id,
|
293 |
+
session_id=session_id,
|
294 |
+
resource_type=ResourceType.LLM_CONTEXT,
|
295 |
+
cleanup_callback=self._cleanup_llm_instance
|
296 |
+
)
|
297 |
+
|
298 |
+
# Create session
|
299 |
+
llm_session = LLMSession(session_id, llm_instance)
|
300 |
+
self.llm_sessions[session_id] = llm_session
|
301 |
+
|
302 |
+
log_info(f"✅ LLM initialized for session", session_id=session_id)
|
303 |
+
|
304 |
+
except Exception as e:
|
305 |
+
log_error(f"❌ Failed to initialize LLM", session_id=session_id, error=str(e))
|
306 |
+
|
307 |
async def _handle_session_ended(self, event: Event):
|
308 |
"""Clean up STT resources when session ends"""
|
309 |
session_id = event.session_id
|