Spaces:
Sleeping
Sleeping
File size: 2,561 Bytes
bfa6896 9b5b26a c19d193 6aae614 9b5b26a bfa6896 9b5b26a 358dd78 9b5b26a 358dd78 9b5b26a 358dd78 bfa6896 358dd78 bfa6896 358dd78 bfa6896 9b5b26a bfa6896 9b5b26a 8c01ffb bfa6896 6aae614 ae7a494 bfa6896 e121372 bfa6896 13d500a 8c01ffb bfa6896 9b5b26a 8c01ffb bfa6896 861422e bfa6896 8c01ffb 8fe992b bfa6896 8c01ffb 861422e 8fe992b bfa6896 |
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 78 79 80 81 82 83 84 85 86 87 |
from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool
import datetime
import pytz
import yaml
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI
# Tool 1: Solve Python coding problems and explain the solution
@tool
def solve_code_problem_with_explanation(problem_statement: str) -> str:
"""A tool that solves basic Python coding problems and explains the solution using the Qwen model.
Args:
problem_statement: A description of a Python problem to solve (e.g., 'Write a function to check if a number is prime.')
"""
try:
prompt = f"""You are a helpful AI assistant that solves Python coding problems and explains the solution.
Problem:
{problem_statement}
Return:
1. A working Python function.
2. A short explanation of how the function works.
Format your response like this:
# Code
<your function here>
# Explanation
<your explanation here>
"""
response = model.run(prompt)
return response
except Exception as e:
return f"Error generating solution: {str(e)}"
# Tool 2: Get current time in a timezone
@tool
def get_current_time_in_timezone(timezone: str) -> str:
"""A tool that fetches the current local time in a specified timezone.
Args:
timezone: A string representing a valid timezone (e.g., 'America/New_York').
"""
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 Tool
final_answer = FinalAnswerTool()
# Load model (Qwen2.5 Coder)
model = HfApiModel(
max_tokens=2096,
temperature=0.5,
model_id='Qwen/Qwen2.5-Coder-32B-Instruct', # This must be available in the Space environment
custom_role_conversions=None,
)
# Optional: Import tool from remote tool hub
image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
# Load prompt templates
with open("prompts.yaml", 'r') as stream:
prompt_templates = yaml.safe_load(stream)
# Define the agent
agent = CodeAgent(
model=model,
tools=[final_answer, solve_code_problem_with_explanation, get_current_time_in_timezone],
max_steps=6,
verbosity_level=1,
grammar=None,
planning_interval=None,
name=None,
description=None,
prompt_templates=prompt_templates
)
# Launch the Gradio UI
GradioUI(agent).launch()
|