Spaces:
Sleeping
Sleeping
| import json | |
| from pathlib import Path | |
| from smolagents import Agent | |
| from smolagents.core.task import Task | |
| from mistral_hf_wrapper import HuggingFaceModel | |
| # Import tools | |
| from tools import ( | |
| chess_tools, | |
| classifier_tool, | |
| content_retriever_tool, | |
| get_attachments_tool, | |
| google_search_tools, | |
| speech_recognition_tool, | |
| youtube_video_tool, | |
| ) | |
| # Load GAIA task list from metadata.jsonl | |
| def load_tasks(path: str = "metadata.jsonl") -> list[Task]: | |
| with open(path, "r", encoding="utf-8") as f: | |
| return [Task(**json.loads(line)) for line in f] | |
| # Configure Mistral Inference Endpoint wrapper | |
| model = HuggingFaceModel( | |
| endpoint_url="https://api-inference.huggingface.co/models/mistralai/Mistral-7B-Instruct-v0.1" | |
| ) | |
| # List of tool instances | |
| tools = [ | |
| chess_tools.ImageToChessBoardFENTool(), | |
| classifier_tool.ClassifierTool(), | |
| content_retriever_tool.ContentRetrieverTool(), | |
| get_attachments_tool.GetAttachmentTool(), | |
| google_search_tools.GoogleSearchTool(), | |
| google_search_tools.GoogleSiteSearchTool(), | |
| speech_recognition_tool.SpeechRecognitionTool(), | |
| youtube_video_tool.YouTubeVideoTool(), | |
| ] | |
| # Build the agent | |
| agent = Agent( | |
| model=model, | |
| tools=tools, | |
| system_message="You are a helpful AI agent solving GAIA benchmark tasks. Only return the answer, no extra explanation." | |
| ) | |
| # Core solve function | |
| def solve_task(task: Task) -> str: | |
| return agent.run(task.question, task_id=task.task_id) |