Spaces:
Runtime error
Runtime error
| from tools import ( | |
| all_tools, | |
| analyze_youtube_video, | |
| extract_number_from_text, | |
| search_wikipedia, | |
| check_commutativity_table | |
| ) | |
| class BasicAgent: | |
| def __init__(self): | |
| self.tool_registry = { | |
| "analyze_youtube_video": (analyze_youtube_video, "url"), | |
| "extract_number_from_text": (extract_number_from_text, "text"), | |
| "search_wikipedia": (search_wikipedia, "query"), | |
| "check_commutativity_table": (check_commutativity_table, "table_text"), | |
| } | |
| def __call__(self, question: str) -> str: | |
| try: | |
| tool, input_key = self.select_tool(question) | |
| return tool.invoke({input_key: question}) | |
| except Exception as e: | |
| return f"Error: {e}" | |
| def select_tool(self, question: str): | |
| q = question.lower() | |
| if "youtube.com" in q or "youtu.be" in q or "in the video" in q: | |
| return self.tool_registry["analyze_youtube_video"] | |
| elif "how many" in q or "number of" in q: | |
| return self.tool_registry["extract_number_from_text"] | |
| elif "wikipedia" in q or "encyclopedia" in q or "who is" in q: | |
| return self.tool_registry["search_wikipedia"] | |
| elif "commutative" in q or "counter-examples" in q: | |
| return self.tool_registry["check_commutativity_table"] | |
| return self.tool_registry["extract_number_from_text"] # fallback | |