Sborole-Final-Assignment / tools /WebSearchTool.py
Sborole's picture
Update tools/WebSearchTool.py
99c200d verified
raw
history blame
1.1 kB
from smolagents import Tool
from serpapi.google_search import GoogleSearch
import os
class SerpApiSearchTool(Tool):
name = "web_search"
description = "Primary tool: Use SerpAPI to find current info first before Wikipedia."
inputs = {
"query": {
"type": "string",
"description": "The search query to look up via SerpAPI."
}
}
output_type = "string"
def forward(self, query: str) -> str:
params = {
"q": query,
"api_key": os.getenv("SERPAPI_KEY"),
"num": 3
}
search = GoogleSearch(params)
results = search.get_dict()
if "organic_results" not in results:
return "XX record info: No results."
formatted = []
for item in results.get("organic_results", []):
formatted.append(
f"Title: {item.get('title')}\n"
f"Snippet: {item.get('snippet')}\n"
f"URL: {item.get('link')}"
)
return "\n---\n".join(formatted) if formatted else "No record info: No results."