This commit is contained in:
Timothy Jaeryang Baek
2026-06-01 09:30:15 -07:00
parent 229e65b9f0
commit b64fd988f0

View File

@@ -18,7 +18,7 @@ from uuid import uuid4
from aiocache import cached
from fastapi import HTTPException, Request
from fastapi.responses import HTMLResponse
from fastapi.responses import HTMLResponse, JSONResponse
from open_webui.config import (
CACHE_DIR,
CODE_INTERPRETER_BLOCKED_MODULES,
@@ -1332,7 +1332,8 @@ async def chat_completion_tools_handler(
tool_function_name = tool_call.get('name', None)
if tool_function_name not in tools:
return body, {}
log.warning(f'Tool "{tool_function_name}" not found')
return
tool_function_params = tool_call.get('parameters', {})
@@ -1520,6 +1521,18 @@ async def chat_web_search_handler(request: Request, form_data: dict, extra_param
user,
)
# generate_queries returns a JSONResponse on error (e.g. model not
# found, chat completion failure). Extract the error detail and
# re-raise so the outer except block falls back to using the raw
# user message as the search query.
if isinstance(res, JSONResponse):
try:
error_body = json.loads(res.body)
detail = error_body.get('detail', 'Query generation failed')
except Exception:
detail = 'Query generation failed'
raise Exception(detail)
response = res['choices'][0]['message']['content']
try:
@@ -1851,6 +1864,15 @@ async def chat_image_generation_handler(request: Request, form_data: dict, extra
user,
)
# Handle JSONResponse from error paths
if isinstance(res, JSONResponse):
try:
error_body = json.loads(res.body)
detail = error_body.get('detail', 'Image prompt generation failed')
except Exception:
detail = 'Image prompt generation failed'
raise Exception(detail)
response = res['choices'][0]['message']['content']
try:
@@ -4577,6 +4599,8 @@ async def streaming_chat_response_handler(response, ctx):
except Exception as e:
tool_result = str(e)
else:
tool_result = f'Error: Tool "{tool_function_name}" not found.'
tool_result, tool_result_files, tool_result_embeds = await process_tool_result(
request,