|
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.") |
|
|
|
|
|
|
|
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]}...") |
|
|
|
|
|
|
|
answer = self.agent.run(question) |
|
|
|
|
|
print(f"SmolAgent returning answer (first 50 chars): {str(answer)[:50]}...") |
|
return str(answer) |
|
|