Spaces:
Sleeping
Sleeping
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) | |