Browse Source

fix: use run_in_threadpool for search_web to prevent blocking

Used fastapi's run_in_threadpool function to execute the search_web function,
preventing the synchronous function from blocking the entire web search process.
Youggls 3 months ago
parent
commit
9669cd3454
1 changed files with 5 additions and 2 deletions
  1. 5 2
      backend/open_webui/routers/retrieval.py

+ 5 - 2
backend/open_webui/routers/retrieval.py

@@ -1477,8 +1477,11 @@ async def process_web_search(
         logging.info(
             f"trying to web search with {request.app.state.config.WEB_SEARCH_ENGINE, form_data.query}"
         )
-        web_results = search_web(
-            request, request.app.state.config.WEB_SEARCH_ENGINE, form_data.query
+        web_results = await run_in_threadpool(
+            search_web,
+            request,
+            request.app.state.config.WEB_SEARCH_ENGINE,
+            form_data.query,
         )
     except Exception as e:
         log.exception(e)