hashiruAI / src /tools /default_tools /google_search_tool.py
helloparthshah's picture
maming desc and system prompt better
4f43fb0
import importlib
__all__ = ['GoogleSearchTool']
class GoogleSearchTool():
dependencies = ["googlesearch-python==1.3.0"]
inputSchema = {
"name": "GoogleSearchTool",
"description": "Provides a list of URLs from google search results based on a query string. Use the urls then to get the content of the page.",
"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": ["query"],
}
}
def run(self, **kwargs):
print("Running web search")
website = kwargs.get("website")
query = kwargs.get("query")
if not query:
return {
"status": "error",
"message": "Missing required parameters: 'query'",
"output": None
}
search_query = query
if website:
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,
}