Mohsinraza5125's picture
Currency convertor
e3bfa23 verified
raw
history blame
2.41 kB
from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool
import datetime
import requests
import pytz
import yaml
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI
# API Key for Currency Conversion (Use your own key if needed)
CURRENCY_API_KEY = "https://api.exchangerate-api.com/v4/latest/"
@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').
"""
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)}"
@tool
def convert_currency(amount: float, from_currency: str, to_currency: str) -> str:
"""Converts an amount from one currency to another using real-time exchange rates.
Args:
amount: The amount of money to convert.
from_currency: The 3-letter currency code to convert from (e.g., USD).
to_currency: The 3-letter currency code to convert to (e.g., EUR).
"""
try:
response = requests.get(f"{CURRENCY_API_KEY}{from_currency}")
data = response.json()
if "rates" not in data or to_currency not in data["rates"]:
return f"Invalid currency code: {from_currency} or {to_currency}. Please check and try again."
rate = data["rates"][to_currency]
converted_amount = round(amount * rate, 2)
return f"{amount} {from_currency} is equal to {converted_amount} {to_currency} at the rate of {rate}."
except Exception as e:
return f"Error fetching exchange rates: {str(e)}"
final_answer = FinalAnswerTool()
# Model Configuration
# Uncomment the model if needed
# model = HfApiModel(
# max_tokens=2096,
# temperature=0.5,
# model_id='Qwen/Qwen2.5-Coder-32B-Instruct', # Alternative model
# custom_role_conversions=None,
# )
# Define Agent with Currency Converter Tool
agent = CodeAgent(
model=None, # Add your model if required
tools=[final_answer, get_current_time_in_timezone, convert_currency],
max_steps=4,
verbosity_level=1,
)
# Launch UI
GradioUI(agent).launch()
GradioUI(agent).launch()