feat: emit ttsDeliveryStatus SSE diagnostics
Made-with: Cursor
This commit is contained in:
parent
02002f3576
commit
cd2fffc651
1 changed files with 24 additions and 0 deletions
|
|
@ -848,6 +848,12 @@ class TeamsbotService:
|
||||||
# 4a: Voice response (TTS -> Audio to bot)
|
# 4a: Voice response (TTS -> Audio to bot)
|
||||||
if sendVoice:
|
if sendVoice:
|
||||||
try:
|
try:
|
||||||
|
await _emitSessionEvent(sessionId, "ttsDeliveryStatus", {
|
||||||
|
"status": "requested",
|
||||||
|
"hasWebSocket": websocket is not None,
|
||||||
|
"message": "TTS generation requested",
|
||||||
|
"timestamp": getIsoTimestamp(),
|
||||||
|
})
|
||||||
logger.info(
|
logger.info(
|
||||||
f"Session {sessionId}: TTS requested (websocket_available={websocket is not None})"
|
f"Session {sessionId}: TTS requested (websocket_available={websocket is not None})"
|
||||||
)
|
)
|
||||||
|
|
@ -877,12 +883,30 @@ class TeamsbotService:
|
||||||
},
|
},
|
||||||
}))
|
}))
|
||||||
logger.info(f"Session {sessionId}: TTS audio dispatched to bot")
|
logger.info(f"Session {sessionId}: TTS audio dispatched to bot")
|
||||||
|
await _emitSessionEvent(sessionId, "ttsDeliveryStatus", {
|
||||||
|
"status": "dispatched",
|
||||||
|
"hasWebSocket": True,
|
||||||
|
"message": "TTS audio dispatched to bot",
|
||||||
|
"timestamp": getIsoTimestamp(),
|
||||||
|
})
|
||||||
else:
|
else:
|
||||||
logger.warning(
|
logger.warning(
|
||||||
f"Session {sessionId}: TTS audio generated but cannot be played (bot websocket unavailable, likely fallback mode)"
|
f"Session {sessionId}: TTS audio generated but cannot be played (bot websocket unavailable, likely fallback mode)"
|
||||||
)
|
)
|
||||||
|
await _emitSessionEvent(sessionId, "ttsDeliveryStatus", {
|
||||||
|
"status": "unavailable",
|
||||||
|
"hasWebSocket": False,
|
||||||
|
"message": "TTS audio generated but bot websocket unavailable",
|
||||||
|
"timestamp": getIsoTimestamp(),
|
||||||
|
})
|
||||||
except Exception as ttsErr:
|
except Exception as ttsErr:
|
||||||
logger.warning(f"TTS failed for session {sessionId}: {ttsErr}")
|
logger.warning(f"TTS failed for session {sessionId}: {ttsErr}")
|
||||||
|
await _emitSessionEvent(sessionId, "ttsDeliveryStatus", {
|
||||||
|
"status": "failed",
|
||||||
|
"hasWebSocket": websocket is not None,
|
||||||
|
"message": str(ttsErr),
|
||||||
|
"timestamp": getIsoTimestamp(),
|
||||||
|
})
|
||||||
if not sendChat:
|
if not sendChat:
|
||||||
sendChat = True # Fallback to chat if voice-only and TTS failed
|
sendChat = True # Fallback to chat if voice-only and TTS failed
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue