pedrogaprieto's picture
Create tools.py
a8837ad verified
raw
history blame
919 Bytes
from smolagents import Tool
import requests
import os
class SerperSearchTool(Tool):
name = "serper_search"
description = "Performs a web search using Serper.dev and returns the top result."
inputs = {
"query": {
"type": "string",
"description": "The search query to look up on the web."
}
}
output_type = "string"
def forward(self, query: str) -> str:
headers = {
"X-API-KEY": os.environ['SERPER_API_KEY'],
"Content-Type": "application/json"
}
payload = {
"q": query
}
response = requests.post("https://google.serper.dev/search", headers=headers, json=payload)
data = response.json()
if "organic" in data and data["organic"]:
top = data["organic"][0]
return f"{top['title']}: {top['link']}"
return "No relevant results found."