This commit is contained in:
anigasan 2025-07-06 12:52:47 -07:00
parent a9c40550de
commit ef332c296e
2 changed files with 7 additions and 8 deletions

View file

@ -20,11 +20,11 @@ class TavilySearchToolConfig(BaseModel):
) )
timeout: float = Field( timeout: float = Field(
default=30.0, default=30.0,
description="HTTP request timeout in seconds", description="HTTP request timeout for the API",
) )
connect_timeout: float = Field( connect_timeout: float = Field(
default=10.0, default=10.0,
description="HTTP connection timeout in seconds", description="HTTP connection timeout in seconds for the API",
) )
@classmethod @classmethod
@ -32,6 +32,6 @@ class TavilySearchToolConfig(BaseModel):
return { return {
"api_key": "${env.TAVILY_SEARCH_API_KEY:=}", "api_key": "${env.TAVILY_SEARCH_API_KEY:=}",
"max_results": 3, "max_results": 3,
"timeout": 30.0, "timeout:" 30.0,
"connect_timeout": 10.0, "connect_timeout": 10.0,
} }

View file

@ -69,11 +69,10 @@ class TavilySearchToolRuntimeImpl(ToolGroupsProtocolPrivate, ToolRuntime, NeedsR
async def invoke_tool(self, tool_name: str, kwargs: dict[str, Any]) -> ToolInvocationResult: async def invoke_tool(self, tool_name: str, kwargs: dict[str, Any]) -> ToolInvocationResult:
api_key = self._get_api_key() api_key = self._get_api_key()
# Configure timeout for external API calls using config values timeout = https.Timeout(timeout=self.config.timeout, connect=self.config.connect_timeout)
timeout = httpx.Timeout(timeout=self.config.timeout, connect=self.config.connect_timeout)
async with httpx.AsyncClient() as client:
async with httpx.AsyncClient(timeout=timeout) as client:
response = await client.post( response = await client.post(
"https://api.tavily.com/search", "https://api.tavily.com/search",
json={"api_key": api_key, "query": kwargs["query"]}, json={"api_key": api_key, "query": kwargs["query"]},