Frazer2810's picture
Update tools.py
04ef9ec verified
raw
history blame
969 Bytes
# tools.py – Wikipedia + arXiv helpers
from smolagents import Tool
import wikipedia, arxiv
MAX_CHARS = 20_000 # evita prompt enormi
class WikipediaTool(Tool):
name = "wiki"
description = "Return full content (truncated) of the most relevant Wikipedia page."
def __call__(self, query: str) -> str:
try:
page = wikipedia.page(query, auto_suggest=True, redirect=True)
return page.content[:MAX_CHARS]
except (wikipedia.PageError, wikipedia.DisambiguationError):
return ""
class ArxivTool(Tool):
name = "arxiv"
description = "Return title + abstract of the most recent arXiv paper that matches the query."
def __call__(self, query: str) -> str:
search = arxiv.Search(query=query, max_results=1,
sort_by=arxiv.SortCriterion.SubmittedDate)
paper = next(search.results(), None)
return f"{paper.title}\n{paper.summary}" if paper else ""