Spaces:
Paused
Paused
Update websocket_handler.py
Browse files- websocket_handler.py +23 -3
websocket_handler.py
CHANGED
|
@@ -837,14 +837,34 @@ async def generate_and_stream_tts(
|
|
| 837 |
log_info("🛑 TTS streaming cancelled", session_id=session.session.session_id)
|
| 838 |
raise
|
| 839 |
except Exception as e:
|
|
|
|
| 840 |
log_error(
|
| 841 |
f"❌ TTS generation error",
|
| 842 |
-
error=
|
| 843 |
traceback=traceback.format_exc(),
|
| 844 |
session_id=session.session.session_id
|
| 845 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 846 |
if session.is_websocket_active:
|
| 847 |
await websocket.send_json({
|
| 848 |
-
"type": "
|
| 849 |
-
"
|
|
|
|
| 850 |
})
|
|
|
|
| 837 |
log_info("🛑 TTS streaming cancelled", session_id=session.session.session_id)
|
| 838 |
raise
|
| 839 |
except Exception as e:
|
| 840 |
+
error_msg = str(e)
|
| 841 |
log_error(
|
| 842 |
f"❌ TTS generation error",
|
| 843 |
+
error=error_msg,
|
| 844 |
traceback=traceback.format_exc(),
|
| 845 |
session_id=session.session.session_id
|
| 846 |
)
|
| 847 |
+
|
| 848 |
+
# Quota hatası için özel handling
|
| 849 |
+
if "quota_exceeded" in error_msg:
|
| 850 |
+
if session.is_websocket_active:
|
| 851 |
+
await websocket.send_json({
|
| 852 |
+
"type": "tts_error",
|
| 853 |
+
"message": "TTS servisinin kredi limiti aşıldı. Yanıt sadece metin olarak gösterilecek.",
|
| 854 |
+
"error_type": "quota_exceeded"
|
| 855 |
+
})
|
| 856 |
+
else:
|
| 857 |
+
if session.is_websocket_active:
|
| 858 |
+
await websocket.send_json({
|
| 859 |
+
"type": "error",
|
| 860 |
+
"message": f"TTS error: {error_msg}"
|
| 861 |
+
})
|
| 862 |
+
|
| 863 |
+
# TTS hatası durumunda idle'a dön
|
| 864 |
+
await session.change_state(ConversationState.IDLE)
|
| 865 |
if session.is_websocket_active:
|
| 866 |
await websocket.send_json({
|
| 867 |
+
"type": "state_change",
|
| 868 |
+
"from": "processing_tts",
|
| 869 |
+
"to": "idle"
|
| 870 |
})
|