Spaces:
Building
Building
Update state_orchestrator.py
Browse files- state_orchestrator.py +14 -5
state_orchestrator.py
CHANGED
@@ -318,12 +318,21 @@ class StateOrchestrator:
|
|
318 |
async def _handle_tts_completed(self, event: Event):
|
319 |
"""Handle TTS completion"""
|
320 |
session_id = event.session_id
|
321 |
-
|
|
|
|
|
|
|
|
|
|
|
322 |
|
323 |
-
log_info(f"🔊 TTS completed", session_id=session_id, state=current_state)
|
324 |
|
325 |
if current_state == ConversationState.PREPARING_WELCOME:
|
326 |
await self.transition_to(session_id, ConversationState.PLAYING_WELCOME)
|
|
|
|
|
|
|
|
|
327 |
elif current_state == ConversationState.PREPARING_RESPONSE:
|
328 |
await self.transition_to(session_id, ConversationState.PLAYING_RESPONSE)
|
329 |
|
@@ -447,7 +456,7 @@ class StateOrchestrator:
|
|
447 |
# Get session context (DÜZELTME: _sessions yerine sessions)
|
448 |
context = self.sessions.get(session_id)
|
449 |
if not context:
|
450 |
-
|
451 |
return False
|
452 |
|
453 |
# Get current state from context
|
@@ -455,7 +464,7 @@ class StateOrchestrator:
|
|
455 |
|
456 |
# Check if transition is valid
|
457 |
if new_state not in self.VALID_TRANSITIONS.get(current_state, set()):
|
458 |
-
|
459 |
return False
|
460 |
|
461 |
# Update state
|
@@ -463,7 +472,7 @@ class StateOrchestrator:
|
|
463 |
context.state = new_state
|
464 |
context.last_activity = datetime.utcnow()
|
465 |
|
466 |
-
|
467 |
|
468 |
# Emit state transition event
|
469 |
await self._event_bus.publish(
|
|
|
318 |
async def _handle_tts_completed(self, event: Event):
|
319 |
"""Handle TTS completion"""
|
320 |
session_id = event.session_id
|
321 |
+
context = self.sessions.get(session_id)
|
322 |
+
|
323 |
+
if not context:
|
324 |
+
return
|
325 |
+
|
326 |
+
current_state = context.state
|
327 |
|
328 |
+
log_info(f"🔊 TTS completed", session_id=session_id, state=current_state.value)
|
329 |
|
330 |
if current_state == ConversationState.PREPARING_WELCOME:
|
331 |
await self.transition_to(session_id, ConversationState.PLAYING_WELCOME)
|
332 |
+
|
333 |
+
# Welcome audio frontend'te çalınacak, biz sadece state'i güncelliyoruz
|
334 |
+
# Frontend audio bitince bize audio_playback_completed gönderecek
|
335 |
+
|
336 |
elif current_state == ConversationState.PREPARING_RESPONSE:
|
337 |
await self.transition_to(session_id, ConversationState.PLAYING_RESPONSE)
|
338 |
|
|
|
456 |
# Get session context (DÜZELTME: _sessions yerine sessions)
|
457 |
context = self.sessions.get(session_id)
|
458 |
if not context:
|
459 |
+
log_info(f"❌ Session not found for state transition | session_id={session_id}")
|
460 |
return False
|
461 |
|
462 |
# Get current state from context
|
|
|
464 |
|
465 |
# Check if transition is valid
|
466 |
if new_state not in self.VALID_TRANSITIONS.get(current_state, set()):
|
467 |
+
log_info(f"❌ Invalid state transition | session_id={session_id}, current={current_state.value}, requested={new_state.value}")
|
468 |
return False
|
469 |
|
470 |
# Update state
|
|
|
472 |
context.state = new_state
|
473 |
context.last_activity = datetime.utcnow()
|
474 |
|
475 |
+
log_info(f"✅ State transition | session_id={session_id}, {old_state.value} → {new_state.value}")
|
476 |
|
477 |
# Emit state transition event
|
478 |
await self._event_bus.publish(
|