|  | @@ -12,6 +12,7 @@ from core.tools.entities.tool_entities import ToolInvokeMessage
 | 
	
		
			
				|  |  |  from core.tools.errors import ToolProviderCredentialValidationError
 | 
	
		
			
				|  |  |  from core.tools.tool.tool import Tool
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +API_TOOL_DEFAULT_TIMEOUT = (10, 60)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  class ApiTool(Tool):
 | 
	
		
			
				|  |  |      api_bundle: ApiBasedToolBundle
 | 
	
	
		
			
				|  | @@ -211,19 +212,19 @@ class ApiTool(Tool):
 | 
	
		
			
				|  |  |          
 | 
	
		
			
				|  |  |          # do http request
 | 
	
		
			
				|  |  |          if method == 'get':
 | 
	
		
			
				|  |  | -            response = ssrf_proxy.get(url, params=params, headers=headers, cookies=cookies, timeout=10, follow_redirects=True)
 | 
	
		
			
				|  |  | +            response = ssrf_proxy.get(url, params=params, headers=headers, cookies=cookies, timeout=API_TOOL_DEFAULT_TIMEOUT, follow_redirects=True)
 | 
	
		
			
				|  |  |          elif method == 'post':
 | 
	
		
			
				|  |  | -            response = ssrf_proxy.post(url, params=params, headers=headers, cookies=cookies, data=body, timeout=10, follow_redirects=True)
 | 
	
		
			
				|  |  | +            response = ssrf_proxy.post(url, params=params, headers=headers, cookies=cookies, data=body, timeout=API_TOOL_DEFAULT_TIMEOUT, follow_redirects=True)
 | 
	
		
			
				|  |  |          elif method == 'put':
 | 
	
		
			
				|  |  | -            response = ssrf_proxy.put(url, params=params, headers=headers, cookies=cookies, data=body, timeout=10, follow_redirects=True)
 | 
	
		
			
				|  |  | +            response = ssrf_proxy.put(url, params=params, headers=headers, cookies=cookies, data=body, timeout=API_TOOL_DEFAULT_TIMEOUT, follow_redirects=True)
 | 
	
		
			
				|  |  |          elif method == 'delete':
 | 
	
		
			
				|  |  | -            response = ssrf_proxy.delete(url, params=params, headers=headers, cookies=cookies, data=body, timeout=10, allow_redirects=True)
 | 
	
		
			
				|  |  | +            response = ssrf_proxy.delete(url, params=params, headers=headers, cookies=cookies, data=body, timeout=API_TOOL_DEFAULT_TIMEOUT, allow_redirects=True)
 | 
	
		
			
				|  |  |          elif method == 'patch':
 | 
	
		
			
				|  |  | -            response = ssrf_proxy.patch(url, params=params, headers=headers, cookies=cookies, data=body, timeout=10, follow_redirects=True)
 | 
	
		
			
				|  |  | +            response = ssrf_proxy.patch(url, params=params, headers=headers, cookies=cookies, data=body, timeout=API_TOOL_DEFAULT_TIMEOUT, follow_redirects=True)
 | 
	
		
			
				|  |  |          elif method == 'head':
 | 
	
		
			
				|  |  | -            response = ssrf_proxy.head(url, params=params, headers=headers, cookies=cookies, timeout=10, follow_redirects=True)
 | 
	
		
			
				|  |  | +            response = ssrf_proxy.head(url, params=params, headers=headers, cookies=cookies, timeout=API_TOOL_DEFAULT_TIMEOUT, follow_redirects=True)
 | 
	
		
			
				|  |  |          elif method == 'options':
 | 
	
		
			
				|  |  | -            response = ssrf_proxy.options(url, params=params, headers=headers, cookies=cookies, timeout=10, follow_redirects=True)
 | 
	
		
			
				|  |  | +            response = ssrf_proxy.options(url, params=params, headers=headers, cookies=cookies, timeout=API_TOOL_DEFAULT_TIMEOUT, follow_redirects=True)
 | 
	
		
			
				|  |  |          else:
 | 
	
		
			
				|  |  |              raise ValueError(f'Invalid http method {method}')
 | 
	
		
			
				|  |  |          
 |