hashiruAI / tools /web_search_tool.py
Kunal Pai
Add tools for searching arXiv, web, and Wikipedia
f1acfc4
raw
history blame
1.86 kB
import importlib
__all__ = ['WebSearchTool']
class WebSearchTool():
dependencies = ["googlesearch-python==1.3.0"]
inputSchema = {
"name": "WebSearchTool",
"description": "Searches a specific website for a given query using Google search.",
"parameters": {
"type": "object",
"properties": {
"website": {
"type": "string",
"description": "The website domain to search in (e.g., 'stackoverflow.com').",
},
"query": {
"type": "string",
"description": "The query string to search for on the website.",
}
},
"required": ["website", "query"],
}
}
def __init__(self):
pass
def run(self, **kwargs):
print("Running web search")
website = kwargs.get("website")
query = kwargs.get("query")
if not website or not query:
return {
"status": "error",
"message": "Missing required parameters: 'website' and 'query'",
"output": None
}
search_query = f"site:{website} {query}"
results = []
googlesearch = importlib.import_module("googlesearch")
try:
for result in googlesearch.search(search_query, num_results=10):
if "/search?num=" not in result:
results.append(result)
return {
"status": "success",
"message": "Search completed successfully",
"output": results,
}
except Exception as e:
return {
"status": "error",
"message": f"Search failed: {str(e)}",
"output": None,
}