Spaces:
Running
Running
File size: 2,662 Bytes
714c0a1 3c5c292 714c0a1 3c5c292 714c0a1 30d854b 714c0a1 56dd422 714c0a1 bda794d 714c0a1 |
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 |
from smolagents import CodeAgent,DuckDuckGoSearchTool, HfApiModel,load_tool,tool
import datetime
import requests
import pytz
import yaml
from tools.final_answer import FinalAnswerTool
import traceback
import os
from Gradio_UI import GradioUI
@tool
def nse_stock_price_tool(stock_ticker:str)-> str:
"""A tool that is used to retrieve the latest closing price of a stock based on the stock ticker from the Indian Stock Exchange (NSE).
example: 'RELIANCE.NS'
Args:
stock_ticker: The stock ticker/symbol for the stock listed in NSE. The exact string input needs to be provided to the function.
Returns:
result_string: A string containing the stock_ticker along with the amount in Rupees.
example: "RELIANCE NS: 1237.22 Rupees."
"""
try:
import math
import yfinance as yf
stock_symbol = stock_ticker
data = yf.download(tickers=stock_symbol, period='1d', interval='1m')
if len(data):
latest_data = data.tail(1)
latest_price = latest_data['Close'].values[0]
return (f"{stock_symbol}: {round(latest_price, 2)} Rupees.")
else:
return "INVALID TICKER/STOCK"
except Exception as e:
traceback.print_exc()
return "INVALID REQUEST"
@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:
# Create timezone object
tz = pytz.timezone(timezone)
# Get current time in that 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)}"
HF_TOKEN = os.environ['HF_TOKEN']
final_answer = FinalAnswerTool()
model = HfApiModel(
max_tokens=2096,
temperature=0.5,
model_id='bartowski/DeepSeek-R1-Distill-Qwen-7B-GGUF',
custom_role_conversions=None,
token=HF_TOKEN,
)
# Import tool from Hub
#image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
with open("prompts.yaml", 'r') as stream:
prompt_templates = yaml.safe_load(stream)
agent = CodeAgent(
model=model,
tools=[nse_stock_price_tool, final_answer], ## add your tools here (don't remove final answer)
max_steps=6,
verbosity_level=1,
grammar=None,
planning_interval=None,
name=None,
description=None,
prompt_templates=prompt_templates
)
GradioUI(agent).launch() |