ahmedmalek185's picture
Update agent.py
8feb1a5 verified
from smolagents import HfApiModel, CodeAgent
from tools import DuckDuckGoSearchTool, get_current_time_in_timezone
import os
class BasicAgent:
def __init__(self):
print("BasicAgent initialized.")
def __call__(self, question: str) -> str:
print(f"Agent received question (first 50 chars): {question[:50]} ...")
# ✅ Using Qwen model from Hugging Face Hub
model = HfApiModel(
max_tokens=2048, # within range for Qwen 1.5 7B
temperature=0.5,
model_id="Qwen/Qwen1.5-7B-Chat", # Free and available via HF Inference
custom_role_conversions=None,
)
agent = CodeAgent(
model=model,
tools=[DuckDuckGoSearchTool(), get_current_time_in_timezone]
)
prompt = f"""You are a general AI assistant. I will ask you a question.
Think step by step if necessary, and use tools if needed.
Finish your answer with the following template:
FINAL ANSWER: [YOUR FINAL ANSWER].
YOUR FINAL ANSWER should be a number OR as few words as possible OR a comma separated list of numbers and/or strings.
If you are asked for a number, don't use commas or symbols like $ or %, unless specified.
If you are asked for a string, don't use articles or abbreviations (e.g. for cities), and write the digits in plain text unless told otherwise.
If you are asked for a comma-separated list, apply the above rules depending on item type.
{question}
"""
try:
answer = agent.run(prompt)
except Exception as e:
print(f"Agent failed: {e}")
answer = "Error: Agent could not complete the request."
print(f"Agent returning answer: {answer}")
return answer