Spaces:
Runtime error
Runtime error
File size: 2,476 Bytes
1bdb9ca 7019820 1bdb9ca 7019820 1bdb9ca 1c8477e 7019820 2f27d2b 7019820 2f27d2b 7019820 1c8477e 7019820 1c8477e 7019820 1c8477e 1538faf ae95e7f 7019820 1c8477e 7019820 1bdb9ca 7019820 1c8477e ae95e7f 1bdb9ca ae95e7f 1bdb9ca ae95e7f 1538faf 1bdb9ca ae95e7f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | from smolagents import CodeAgent, HfApiModel, tool
import datetime
import pytz
import yaml
import gradio as gr
import os
from tools.final_answer import FinalAnswerTool
# Custom tool: Get current time in a timezone
@tool
def get_current_time_in_timezone(timezone: str) -> str:
"""Fetches the current local time in a specified timezone.
Args:
timezone: A string representing a valid timezone (e.g., 'America/New_York').
Returns:
A string with the current local time in the specified timezone, or an error message if the timezone is invalid.
"""
try:
tz = pytz.timezone(timezone)
local_time = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S")
return f"The current local time in {timezone} is: {local_time}"
except Exception as e:
return f"Error fetching time for timezone '{timezone}': {str(e)}"
final_answer = FinalAnswerTool()
if not os.getenv("HF_TOKEN"):
raise ValueError("HF_TOKEN environment variable not set. Please add it as a secret in Spaces settings.")
with open("prompts.yaml", 'r') as stream:
prompt_templates = yaml.safe_load(stream)
try:
model = HfApiModel(
max_tokens=2096,
temperature=0.5,
model_id='Qwen/Qwen2.5-Coder-32B-Instruct',
custom_role_conversions=None,
)
except Exception as e:
print(f"Error with Qwen model: {e}. Falling back to alternative endpoint.")
model = HfApiModel(
max_tokens=2096,
temperature=0.5,
model_id='https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud',
custom_role_conversions=None,
)
agent = CodeAgent(
model=model,
tools=[final_answer, get_current_time_in_timezone],
max_steps=6,
prompt_templates=prompt_templates
)
def chat_with_agent(message, history):
try:
print(f"Processing message: {message}")
response = agent.run(message) if hasattr(agent, 'run') else str(agent)
print(f"Raw response: {response}")
if isinstance(response, dict):
return response.get("output", response.get("final_answer", str(response)))
return str(response)
except Exception as e:
print(f"Error in chat_with_agent: {e}")
return f"Error: {str(e)}"
demo = gr.ChatInterface(
fn=chat_with_agent,
title="CodeAgent Chat",
description="Interact with a problem-solving agent.",
)
if __name__ == "__main__":
demo.launch(server_name="0.0.0.0", server_port=7860) |