First_agent_template / tools /search_wikipedia.py
Ark4u's picture
Deploy ArkAssistant smolagent (Hugging Face Agents Course Unit 1)
2acf84f verified
Raw History Blame Contribute Delete
1.14 kB
from urllib.parse import quote
import requests
from smolagents import tool
@tool
def search_wikipedia(query: str) -> str:
"""Fetches an encyclopedic summary of a topic from Wikipedia.
Args:
query: The subject or topic name to search on Wikipedia (e.g., 'Alan Turing', 'Artificial intelligence').
"""
try:
encoded_query = quote(query)
url = f"https://en.wikipedia.org/api/rest_v1/page/summary/{encoded_query}"
headers = {"User-Agent": "HF-Agents-Course-ArkAssistant/1.0"}
resp = requests.get(url, headers=headers, timeout=10)
if resp.status_code == 200:
data = resp.json()
extract = data.get("extract", "")
title = data.get("title", query)
if extract:
return f"**{title}**: {extract}"
return f"No extract available for '{query}'."
if resp.status_code == 404:
return f"No Wikipedia article found for '{query}'."
return f"Wikipedia query returned status code {resp.status_code}."
except Exception as e:
return f"Error querying Wikipedia for '{query}': {str(e)}"