Spaces:
Sleeping
Sleeping
| import os | |
| from transformers import pipeline | |
| # Assuming you still want to use your local Flan-T5 model | |
| # from tools.search_tool import search_duckduckgo # REMOVE THIS LINE | |
| # NEW IMPORTS for smolagents | |
| from smolagents import CodeAgent, DuckDuckGoSearchTool | |
| from smolagents import TransformersModel # To use your local Hugging Face model | |
| class GaiaAgent: | |
| def __init__(self, model_id: str = "google/flan-t5-large"): | |
| # Initialize your LLM using smolagents's TransformersModel | |
| # This allows smolagents to manage the interaction with your local model | |
| self.llm_model = TransformersModel(model_id=model_id) | |
| # Initialize the smolagents CodeAgent | |
| # Pass the DuckDuckGoSearchTool directly to the agent's tools list | |
| # You can add other tools here if needed | |
| self.agent = CodeAgent( | |
| model=self.llm_model, | |
| tools=[DuckDuckGoSearchTool()], | |
| # 'add_base_tools=True' can add common basic tools (like a Python interpreter) | |
| # You might need to experiment with this. For now, let's keep it explicit. | |
| add_base_tools=False, | |
| verbose=True # This is helpful for debugging on Hugging Face Spaces logs | |
| ) | |
| def process_task(self, task_description: str) -> str: | |
| # The smolagents agent.run() method handles the entire process | |
| # of planning, tool use, and generating a final answer. | |
| try: | |
| # The agent will decide when to use DuckDuckGoSearchTool based on the prompt | |
| response = self.agent.run(task_description) | |
| return response | |
| except Exception as e: | |
| return f"An error occurred during agent processing: {e}" | |