FinalAssignment / tools /wikipedia_tool.py
MartinHummel's picture
corrections
b7b5308
# tools/wikipedia_tool.py
import wikipedia
wikipedia.set_lang("en")
def wiki_search(query: str) -> str:
"""
Safe Wikipedia summary tool with disambiguation and fallback protection.
"""
try:
return wikipedia.summary(query, sentences=3)
except wikipedia.DisambiguationError as e:
# Try the first disambiguation option if available
if e.options:
try:
return wikipedia.summary(e.options[0], sentences=3)
except Exception as inner:
return f"Disambiguation fallback failed: {inner}"
return "Disambiguation error: No options available."
except wikipedia.PageError:
search_results = wikipedia.search(query)
if not search_results:
return "No relevant Wikipedia page found."
try:
return wikipedia.summary(search_results[0], sentences=3)
except Exception as inner:
return f"Wikipedia fallback summary error: {inner}"
except Exception as e:
return f"Wikipedia general error: {e}"