Pārlūkot izejas kodu

enh: tool server data timeout

Timothy Jaeryang Baek 1 mēnesi atpakaļ
vecāks
revīzija
fb0ee1329d
2 mainītis faili ar 8 papildinājumiem un 1 dzēšanām
  1. 5 0
      backend/open_webui/env.py
  2. 3 1
      backend/open_webui/utils/tools.py

+ 5 - 0
backend/open_webui/env.py

@@ -422,6 +422,11 @@ else:
     except Exception:
     except Exception:
         AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST = 10
         AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST = 10
 
 
+
+AIOHTTP_CLIENT_TIMEOUT_TOOL_SERVER_DATA = os.environ.get(
+    "AIOHTTP_CLIENT_TIMEOUT_TOOL_SERVER_DATA", "10"
+)
+
 ####################################
 ####################################
 # OFFLINE_MODE
 # OFFLINE_MODE
 ####################################
 ####################################

+ 3 - 1
backend/open_webui/utils/tools.py

@@ -18,6 +18,7 @@ from langchain_core.utils.function_calling import convert_to_openai_function
 from open_webui.models.tools import Tools
 from open_webui.models.tools import Tools
 from open_webui.models.users import UserModel
 from open_webui.models.users import UserModel
 from open_webui.utils.plugin import load_tools_module_by_id
 from open_webui.utils.plugin import load_tools_module_by_id
+from open_webui.env import AIOHTTP_CLIENT_TIMEOUT_TOOL_SERVER_DATA
 
 
 import copy
 import copy
 
 
@@ -399,7 +400,8 @@ async def get_tool_server_data(token: str, url: str) -> Dict[str, Any]:
 
 
     error = None
     error = None
     try:
     try:
-        async with aiohttp.ClientSession() as session:
+        timeout = aiohttp.ClientTimeout(total=AIOHTTP_CLIENT_TIMEOUT_TOOL_SERVER_DATA)
+        async with aiohttp.ClientSession(timeout=timeout) as session:
             async with session.get(url, headers=headers) as response:
             async with session.get(url, headers=headers) as response:
                 if response.status != 200:
                 if response.status != 200:
                     error_body = await response.json()
                     error_body = await response.json()