import math import os import re from bs4 import BeautifulSoup import httpx from smolagents import CodeAgent from tools import search_tool from gemini_model import GeminiApiModel class SmolAgent: """ A simple agent using the custom GeminiApiModel. Replace the __call__ method with your actual agent logic using Hugging Face libraries (e.g., smolagents, transformers, inference API). """ def __init__(self): model = GeminiApiModel(model_id="gemini-2.0-flash") self.agent = CodeAgent( tools=[search_tool], model=model, max_steps=5, verbosity_level=0, additional_authorized_imports=["httpx", "math", "os", "re", "bs4"], ) print("SmolAgent initialized with GeminiApiModel.") # Initialize any required components here # e.g., load a model, tokenizer, setup API clients def __call__(self, question: str) -> str: """ Processes the input question and returns an answer. This is where the core agent logic should reside. """ print(f"SmolAgent received question (first 50 chars): {question[:50]}...") # --- Agent Logic --- # The CodeAgent will now use GeminiApiModel internally answer = self.agent.run(question) # ------------------------- print(f"SmolAgent returning answer (first 50 chars): {str(answer)[:50]}...") return str(answer)