Browse Source

enh: allow plaintext for external tool servers

Timothy Jaeryang Baek 1 month ago
parent
commit
f890fe6901
1 changed files with 14 additions and 2 deletions
  1. 14 2
      backend/open_webui/utils/tools.py

+ 14 - 2
backend/open_webui/utils/tools.py

@@ -626,7 +626,13 @@ async def execute_tool_server(
                     if response.status >= 400:
                         text = await response.text()
                         raise Exception(f"HTTP error {response.status}: {text}")
-                    return await response.json()
+
+                    try:
+                        response_data = await response.json()
+                    except Exception:
+                        response_data = await response.text()
+
+                    return response_data
             else:
                 async with request_method(
                     final_url,
@@ -636,7 +642,13 @@ async def execute_tool_server(
                     if response.status >= 400:
                         text = await response.text()
                         raise Exception(f"HTTP error {response.status}: {text}")
-                    return await response.json()
+
+                    try:
+                        response_data = await response.json()
+                    except Exception:
+                        response_data = await response.text()
+
+                    return response_data
 
     except Exception as err:
         error = str(err)