diff --git a/apps/api/src/services/nvidia_provider.py b/apps/api/src/services/nvidia_provider.py index 162e53ab4..5dd279d88 100644 --- a/apps/api/src/services/nvidia_provider.py +++ b/apps/api/src/services/nvidia_provider.py @@ -780,6 +780,20 @@ class NvidiaProvider: logger.warning("nvidia_chat_timeout", error=str(e)) return f"Timeout: {e}", False, 0, 0.0 + except httpx.HTTPStatusError as e: + # 2026-03-31 ogt: 記錄完整響應體以診斷 400 錯誤 + self._circuit_breaker.record_failure() + NVIDIA_REQUESTS_TOTAL.labels(status="error", tool_name="chat").inc() + response_text = e.response.text if e.response else "No response body" + logger.warning( + "nvidia_chat_failed", + error=str(e), + error_type="HTTPStatusError", + status_code=e.response.status_code if e.response else None, + response_body=response_text[:500], # 截斷避免日誌過大 + ) + return str(e), False, 0, 0.0 + except Exception as e: self._circuit_breaker.record_failure() NVIDIA_REQUESTS_TOTAL.labels(status="error", tool_name="chat").inc()