From ec876e1362111ffa3be4516006e4312ed1e39c31 Mon Sep 17 00:00:00 2001 From: wsb1224 Date: Wed, 10 Jun 2026 15:42:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=89=A3=E8=B4=B9=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E6=97=A0=E6=9D=A1=E4=BB=B6=E7=BB=88=E6=AD=A2=E8=AF=AD?= =?UTF-8?q?=E9=9F=B3=E4=BC=9A=E8=AF=9D=EF=BC=9A=E4=BB=85=E4=BD=99=E9=A2=9D?= =?UTF-8?q?=E4=B8=8D=E8=B6=B3=E6=97=B6=E6=89=8D=E7=BB=88=E6=AD=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原逻辑 if True: 导致数据库瞬时错误也终止整个语音事件循环, AI 回复被中途截断。改为仅当 reason == insufficient_tokens 时 才终止,其他扣费错误(如 DB 超时)不中断会话。 Co-Authored-By: Claude Opus 4.7 (1M context) --- backend/api/voice_chat_router.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/api/voice_chat_router.py b/backend/api/voice_chat_router.py index 0f973b4..668eb36 100644 --- a/backend/api/voice_chat_router.py +++ b/backend/api/voice_chat_router.py @@ -1283,7 +1283,7 @@ async def receive_events_loop( except Exception: pass # 扣费失败时终止事件循环(余额不够最低消费也要停) - if True: + if charge_result.get("reason") == "insufficient_tokens": logger.warning( f"[VOICE_TOKEN_EXHAUSTED] user_id={user_id} mode={charge_mode} " f"remaining={remaining}, breaking event loop and closing"