Timothy Jaeryang Baek 4 semanas atrás
pai
commit
f11bdc6ab5
1 arquivos alterados com 7 adições e 0 exclusões
  1. 7 0
      backend/open_webui/utils/tools.py

+ 7 - 0
backend/open_webui/utils/tools.py

@@ -119,6 +119,8 @@ async def get_tools(
                     function_name = spec["name"]
 
                     auth_type = tool_server_connection.get("auth_type", "bearer")
+
+                    cookies = {}
                     headers = {}
 
                     if auth_type == "bearer":
@@ -126,10 +128,12 @@ async def get_tools(
                             f"Bearer {tool_server_connection.get('key', '')}"
                         )
                     elif auth_type == "session":
+                        cookies = request.cookies
                         headers["Authorization"] = (
                             f"Bearer {request.state.token.credentials}"
                         )
                     elif auth_type == "oauth":
+                        cookies = request.cookies
                         oauth_token = None
                         try:
                             oauth_token = (
@@ -145,6 +149,7 @@ async def get_tools(
                             f"Bearer {oauth_token.get('access_token', '')}"
                         )
                     elif auth_type == "request_headers":
+                        cookies = request.cookies
                         headers.update(dict(request.headers))
 
                     headers["Content-Type"] = "application/json"
@@ -154,6 +159,7 @@ async def get_tools(
                             return await execute_tool_server(
                                 url=tool_server_data["url"],
                                 headers=headers,
+                                cookies=cookies,
                                 name=function_name,
                                 params=kwargs,
                                 server_data=tool_server_data,
@@ -635,6 +641,7 @@ async def get_tool_servers_data(
 async def execute_tool_server(
     url: str,
     headers: Dict[str, str],
+    cookies: Dict[str, str],
     name: str,
     params: Dict[str, Any],
     server_data: Dict[str, Any],