Timothy Jaeryang Baek 3 ماه پیش
والد
کامیت
80388855f4
3فایلهای تغییر یافته به همراه5 افزوده شده و 5 حذف شده
  1. 3 3
      backend/open_webui/routers/configs.py
  2. 1 1
      backend/open_webui/utils/middleware.py
  3. 1 1
      backend/open_webui/utils/tools.py

+ 3 - 3
backend/open_webui/routers/configs.py

@@ -144,7 +144,7 @@ class ToolServerConnection(BaseModel):
     path: str
     path: str
     type: Optional[str] = "openapi"  # openapi, mcp
     type: Optional[str] = "openapi"  # openapi, mcp
     auth_type: Optional[str]
     auth_type: Optional[str]
-    headers: Optional[dict]
+    headers: Optional[dict | str] = None
     key: Optional[str]
     key: Optional[str]
     config: Optional[dict]
     config: Optional[dict]
 
 
@@ -286,7 +286,7 @@ async def verify_tool_servers_config(
                     if token:
                     if token:
                         headers = {"Authorization": f"Bearer {token}"}
                         headers = {"Authorization": f"Bearer {token}"}
 
 
-                    if form_data.headers:
+                    if form_data.headers and isinstance(form_data.headers, dict):
                         if headers is None:
                         if headers is None:
                             headers = {}
                             headers = {}
                         headers.update(form_data.headers)
                         headers.update(form_data.headers)
@@ -332,7 +332,7 @@ async def verify_tool_servers_config(
             if token:
             if token:
                 headers = {"Authorization": f"Bearer {token}"}
                 headers = {"Authorization": f"Bearer {token}"}
 
 
-            if form_data.headers:
+            if form_data.headers and isinstance(form_data.headers, dict):
                 if headers is None:
                 if headers is None:
                     headers = {}
                     headers = {}
                 headers.update(form_data.headers)
                 headers.update(form_data.headers)

+ 1 - 1
backend/open_webui/utils/middleware.py

@@ -1380,7 +1380,7 @@ async def process_chat_payload(request, form_data, user, metadata, model):
                             oauth_token = None
                             oauth_token = None
 
 
                     connection_headers = mcp_server_connection.get("headers", None)
                     connection_headers = mcp_server_connection.get("headers", None)
-                    if connection_headers:
+                    if connection_headers and isinstance(connection_headers, dict):
                         for key, value in connection_headers.items():
                         for key, value in connection_headers.items():
                             headers[key] = value
                             headers[key] = value
 
 

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

@@ -180,7 +180,7 @@ async def get_tools(
                                 )
                                 )
 
 
                         connection_headers = tool_server_connection.get("headers", None)
                         connection_headers = tool_server_connection.get("headers", None)
-                        if connection_headers:
+                        if connection_headers and isinstance(connection_headers, dict):
                             for key, value in connection_headers.items():
                             for key, value in connection_headers.items():
                                 headers[key] = value
                                 headers[key] = value