Sborole-Final-Assignment / tools /WebSearchTool.py
Sborole's picture
Update tools/WebSearchTool.py
0ae9a64 verified
raw
history blame
993 Bytes
from smolagents import Tool
from serpapi.google_search import GoogleSearch
import os
class SerpApiSearchTool(Tool):
name = "web_search"
description = "Use SerpAPI (Google search) to get reliable snippets."
inputs = {
"query": {"type": "string"}
}
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."