diff --git a/backend/open_webui/utils/middleware.py b/backend/open_webui/utils/middleware.py index 79d115351..b0e3b681e 100644 --- a/backend/open_webui/utils/middleware.py +++ b/backend/open_webui/utils/middleware.py @@ -281,10 +281,10 @@ async def chat_completion_tools_handler( await tool_call_handler(result) except Exception as e: - log.exception(f"Error: {e}") + log.debug(f"Error: {e}") content = None except Exception as e: - log.exception(f"Error: {e}") + log.debug(f"Error: {e}") content = None log.debug(f"tool_contexts: {sources}") @@ -1539,6 +1539,8 @@ async def process_chat_response( try: data = json.loads(data) + print(data) + data, _ = await process_filter_functions( request=request, filter_functions=filter_functions, @@ -1560,6 +1562,16 @@ async def process_chat_response( else: choices = data.get("choices", []) if not choices: + error = data.get("error", {}) + if error: + await event_emitter( + { + "type": "chat:completion", + "data": { + "error": error, + }, + } + ) usage = data.get("usage", {}) if usage: await event_emitter( diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index a6337ef8e..16340247d 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -1626,7 +1626,7 @@ : {}) }, `${WEBUI_BASE_URL}/api` - ).catch((error) => { + ).catch(async (error) => { toast.error(`${error}`); responseMessage.error = { @@ -1659,9 +1659,11 @@ console.error(innerError); if ('detail' in innerError) { + // FastAPI error toast.error(innerError.detail); errorMessage = innerError.detail; } else if ('error' in innerError) { + // OpenAI error if ('message' in innerError.error) { toast.error(innerError.error.message); errorMessage = innerError.error.message; @@ -1670,6 +1672,7 @@ errorMessage = innerError.error; } } else if ('message' in innerError) { + // OpenAI error toast.error(innerError.message); errorMessage = innerError.message; }