from typing import Any, Optional | |
from smolagents.tools import Tool | |
from gradio_client import Client | |
class BroadfieldWebsearch(Tool): | |
client = Client("broadfield-dev/browser") | |
name = "broadfield_web_search" | |
description = "Searches the web with common web search engines." | |
inputs = {'query': {'type': 'any', 'description': 'The query terms to use for the web search.'}} | |
output_type = "any" | |
def forward(self, query: Any) -> Any: | |
result = result = self.client.predict( | |
action="Search", | |
query=query, | |
browser_name="firefox", | |
search_engine_name="Ecosia", | |
api_name="/web_browse" | |
) | |
return result['markdown_content'] | |
def __init__(self, *args, **kwargs): | |
self.is_initialized = False | |