diff --git a/llama_stack/providers/remote/tool_runtime/bing_search/bing_search.py b/llama_stack/providers/remote/tool_runtime/bing_search/bing_search.py index 826d21dd9..f494a7fbb 100644 --- a/llama_stack/providers/remote/tool_runtime/bing_search/bing_search.py +++ b/llama_stack/providers/remote/tool_runtime/bing_search/bing_search.py @@ -7,7 +7,7 @@ import json from typing import Any, Dict, List, Optional -import requests +import httpx from llama_stack.apis.common.content_types import URL from llama_stack.apis.tools import ( @@ -31,7 +31,7 @@ class BingSearchToolRuntimeImpl(ToolsProtocolPrivate, ToolRuntime, NeedsRequestP async def initialize(self): pass - async def register_tool(self, tool: Tool): + async def register_tool(self, tool: Tool) -> None: pass async def unregister_tool(self, tool_id: str) -> None: @@ -77,12 +77,13 @@ class BingSearchToolRuntimeImpl(ToolsProtocolPrivate, ToolRuntime, NeedsRequestP "q": kwargs["query"], } - response = requests.get( - url=self.url, - params=params, - headers=headers, - ) - response.raise_for_status() + async with httpx.AsyncClient() as client: + response = await client.get( + url=self.url, + params=params, + headers=headers, + ) + response.raise_for_status() return ToolInvocationResult(content=json.dumps(self._clean_response(response.json()))) diff --git a/llama_stack/providers/remote/tool_runtime/brave_search/brave_search.py b/llama_stack/providers/remote/tool_runtime/brave_search/brave_search.py index 8ef9f5705..78b47eb56 100644 --- a/llama_stack/providers/remote/tool_runtime/brave_search/brave_search.py +++ b/llama_stack/providers/remote/tool_runtime/brave_search/brave_search.py @@ -6,7 +6,7 @@ from typing import Any, Dict, List, Optional -import requests +import httpx from llama_stack.apis.common.content_types import URL from llama_stack.apis.tools import ( @@ -30,7 +30,7 @@ class BraveSearchToolRuntimeImpl(ToolsProtocolPrivate, ToolRuntime, NeedsRequest async def initialize(self): pass - async def register_tool(self, tool: Tool): + async def register_tool(self, tool: Tool) -> None: pass async def unregister_tool(self, tool_id: str) -> None: @@ -74,8 +74,13 @@ class BraveSearchToolRuntimeImpl(ToolsProtocolPrivate, ToolRuntime, NeedsRequest "Accept": "application/json", } payload = {"q": kwargs["query"]} - response = requests.get(url=url, params=payload, headers=headers) - response.raise_for_status() + async with httpx.AsyncClient() as client: + response = await client.get( + url=url, + params=payload, + headers=headers, + ) + response.raise_for_status() results = self._clean_brave_response(response.json()) content_items = "\n".join([str(result) for result in results]) return ToolInvocationResult( diff --git a/llama_stack/providers/remote/tool_runtime/tavily_search/tavily_search.py b/llama_stack/providers/remote/tool_runtime/tavily_search/tavily_search.py index 57749894a..5b23d94d3 100644 --- a/llama_stack/providers/remote/tool_runtime/tavily_search/tavily_search.py +++ b/llama_stack/providers/remote/tool_runtime/tavily_search/tavily_search.py @@ -7,7 +7,7 @@ import json from typing import Any, Dict, List, Optional -import requests +import httpx from llama_stack.apis.common.content_types import URL from llama_stack.apis.tools import ( @@ -30,7 +30,7 @@ class TavilySearchToolRuntimeImpl(ToolsProtocolPrivate, ToolRuntime, NeedsReques async def initialize(self): pass - async def register_tool(self, tool: Tool): + async def register_tool(self, tool: Tool) -> None: pass async def unregister_tool(self, tool_id: str) -> None: @@ -66,10 +66,12 @@ class TavilySearchToolRuntimeImpl(ToolsProtocolPrivate, ToolRuntime, NeedsReques async def invoke_tool(self, tool_name: str, kwargs: Dict[str, Any]) -> ToolInvocationResult: api_key = self._get_api_key() - response = requests.post( - "https://api.tavily.com/search", - json={"api_key": api_key, "query": kwargs["query"]}, - ) + async with httpx.AsyncClient() as client: + response = await client.post( + "https://api.tavily.com/search", + json={"api_key": api_key, "query": kwargs["query"]}, + ) + response.raise_for_status() return ToolInvocationResult(content=json.dumps(self._clean_tavily_response(response.json()))) diff --git a/llama_stack/providers/remote/tool_runtime/wolfram_alpha/wolfram_alpha.py b/llama_stack/providers/remote/tool_runtime/wolfram_alpha/wolfram_alpha.py index 08529384a..63331e065 100644 --- a/llama_stack/providers/remote/tool_runtime/wolfram_alpha/wolfram_alpha.py +++ b/llama_stack/providers/remote/tool_runtime/wolfram_alpha/wolfram_alpha.py @@ -7,7 +7,7 @@ import json from typing import Any, Dict, List, Optional -import requests +import httpx from llama_stack.apis.common.content_types import URL from llama_stack.apis.tools import ( @@ -31,7 +31,7 @@ class WolframAlphaToolRuntimeImpl(ToolsProtocolPrivate, ToolRuntime, NeedsReques async def initialize(self): pass - async def register_tool(self, tool: Tool): + async def register_tool(self, tool: Tool) -> None: pass async def unregister_tool(self, tool_id: str) -> None: @@ -73,11 +73,12 @@ class WolframAlphaToolRuntimeImpl(ToolsProtocolPrivate, ToolRuntime, NeedsReques "format": "plaintext", "output": "json", } - response = requests.get( - self.url, - params=params, - ) - + async with httpx.AsyncClient() as client: + response = await client.get( + params=params, + url=self.url + ) + response.raise_for_status() return ToolInvocationResult(content=json.dumps(self._clean_wolfram_alpha_response(response.json()))) def _clean_wolfram_alpha_response(self, wa_response):