DeepFire commited on
Commit
f1ec6f3
·
1 Parent(s): ae7a494

add tool to fetch stock price

Browse files
Files changed (2) hide show
  1. app.py +13 -8
  2. requirements.txt +1 -0
app.py CHANGED
@@ -3,20 +3,25 @@ import datetime
3
  import requests
4
  import pytz
5
  import yaml
 
6
  from tools.final_answer import FinalAnswerTool
7
 
8
  from Gradio_UI import GradioUI
9
 
10
- # Below is an example of a tool that does nothing. Amaze us with your creativity !
11
  @tool
12
- def my_custom_tool(arg1:str, arg2:int)-> str: #it's import to specify the return type
13
- #Keep this format for the description / args / args description but feel free to modify the tool
14
- """A tool that does nothing yet
15
  Args:
16
- arg1: the first argument
17
- arg2: the second argument
18
  """
19
- return "What magic will you build ?"
 
 
 
 
 
 
 
20
 
21
  @tool
22
  def get_current_time_in_timezone(timezone: str) -> str:
@@ -55,7 +60,7 @@ with open("prompts.yaml", 'r') as stream:
55
 
56
  agent = CodeAgent(
57
  model=model,
58
- tools=[final_answer], ## add your tools here (don't remove final answer)
59
  max_steps=6,
60
  verbosity_level=1,
61
  grammar=None,
 
3
  import requests
4
  import pytz
5
  import yaml
6
+ import yfinance as yf
7
  from tools.final_answer import FinalAnswerTool
8
 
9
  from Gradio_UI import GradioUI
10
 
 
11
  @tool
12
+ def get_stock_price(ticker: str) -> str:
13
+ """A tool that fetches the current stock price for a given ticker symbol.
 
14
  Args:
15
+ ticker: A string representing the stock ticker symbol (e.g., 'AAPL').
 
16
  """
17
+ try:
18
+ # Create ticker object
19
+ stock = yf.Ticker(ticker)
20
+ # Get current price
21
+ current_price = stock.info['regularMarketPrice']
22
+ return f"The current price of {ticker} is: ${current_price:.2f}"
23
+ except Exception as e:
24
+ return f"Error fetching price for ticker '{ticker}': {str(e)}"
25
 
26
  @tool
27
  def get_current_time_in_timezone(timezone: str) -> str:
 
60
 
61
  agent = CodeAgent(
62
  model=model,
63
+ tools=[final_answer, get_stock_price], ## add your tools here (don't remove final answer)
64
  max_steps=6,
65
  verbosity_level=1,
66
  grammar=None,
requirements.txt CHANGED
@@ -3,3 +3,4 @@ smolagents
3
  requests
4
  duckduckgo_search
5
  pandas
 
 
3
  requests
4
  duckduckgo_search
5
  pandas
6
+ yfinance