ragent-chatbot / tools /wikipedia_tool.py
shafiqul1357's picture
upload source code
633bb91 verified
raw
history blame
1.67 kB
import wikipediaapi
from datetime import datetime
from tools.base_tool import BaseTool
class WikipediaTool(BaseTool):
"""A tool for fetching Wikipedia summaries."""
def __init__(self):
super().__init__(
name="wikipedia",
description=(
"Use this tool to get general knowledge or definitions about well-known people, places, or concepts from Wikipedia. "
"Works best when the query is a specific topic or name like 'Albert Einstein' or 'blockchain'. "
"Use this if the question is not document-related and RAG is not helpful."
)
)
self.wiki_api = wikipediaapi.Wikipedia(user_agent="chatbot_user")
def run(self, query: str) -> str:
"""Fetches summary information from Wikipedia for a given topic."""
if not query or not query.strip():
return "Error: Query cannot be empty."
try:
page = self.wiki_api.page(query)
if page.exists():
today = datetime.now().strftime("%Y-%m-%d")
return f"(Today is {today}) {page.summary.strip()}"
return f"Error: No Wikipedia page found for '{query}'."
except Exception as e:
return f"Error: An error occurred while searching Wikipedia: {str(e)}"
# === For standalone testing ===
if __name__ == "__main__":
wikipedia_tool = WikipediaTool()
queries = ["Julian Alvarez"]
for query in queries:
result = wikipedia_tool.run(query)
if result:
print(f"Result for '{query}':\n{result}\n")
else:
print(f"No result found for '{query}'\n")