First_agent_template / tools /get_pl_data.py
pkduongsu's picture
Upload get_pl_data.py
62f88b0 verified
from smolagents import tool
import requests
import os
from dotenv import load_dotenv
load_dotenv()
headers = {
"x-rapidapi-key": os.getenv("RAPID_API_KEY"),
"x-rapidapi-host": "free-api-live-football-data.p.rapidapi.com"
}
@tool
def get_pl_standings() -> dict: # return the current Premier League standings
"""A tool that returns the current Premier League standings.
Args:
None
Returns:
The current Premier League standings in JSON.
"""
url = "https://free-api-live-football-data.p.rapidapi.com/football-get-standing-all"
querystring = {"leagueid":"47"}
try:
response = requests.get(url, headers=headers, params=querystring)
response.raise_for_status()
return response.json()
except Exception as e:
return f"Error fetching Premier League standings: {str(e)}"
@tool
def get_matches_by_date(date:str) -> dict: # return all matches in the current Premier League season by date
"""A tool that returns all matches in the current Premier League season by date.
Args:
date: The date in the format 'YYYYMMDD'.
Returns:
All matches in the current Premier League season by date in JSON.
"""
url = "https://free-api-live-football-data.p.rapidapi.com/football-get-matches-by-date"
querystring = {"date": date}
try:
response = requests.get(url, headers=headers, params=querystring)
response.raise_for_status()
return response.json()
except Exception as e:
return f"Error fetching Premier League standings: {str(e)}"
@tool
def get_head_to_head(eventid: str) -> dict: #return head to head records by the event (match) id
"""A tool that returns the head to head records by the event (match) id.
Args:
eventid: The event (match) id.
Returns:
The head to head records in JSON.
"""
url = "https://free-api-live-football-data.p.rapidapi.com/football-get-head-to-head"
querystring = {"eventid": eventid}
try:
response = requests.get(url, headers=headers, params=querystring)
response.raise_for_status()
return response.json()
except Exception as e:
return f"Error fetching Premier League standings: {str(e)}"
@tool
def get_all_teams() -> dict:
"""A tool that returns all teams in the Premier League.
Args:
None
Returns:
All teams in the Premier League in JSON.
"""
url = "https://free-api-live-football-data.p.rapidapi.com/football-get-list-all-team"
querystring = {"leagueid":"47"}
try:
response = requests.get(url, headers=headers, params=querystring)
response.raise_for_status()
return response.json()
except Exception as e:
return f"Error fetching Premier League standings: {str(e)}"
@tool
def get_all_players_by_team(teamid: str) -> dict:
"""A tool that returns all players by team.
Args:
teamid: The team id.
Returns:
All players by team in JSON.
"""
url = "hhttps://free-api-live-football-data.p.rapidapi.com/football-get-list-player"
querystring = {"teamid": teamid}
try:
response = requests.get(url, headers=headers, params=querystring)
response.raise_for_status()
return response.json()
except Exception as e:
return f"Error fetching Premier League standings: {str(e)}"
@tool
def get_player_details_by_id(playerid: str) -> dict:
"""A tool that returns player details by player id.
Args:
playerid: The player id.
Returns:
Player details in JSON.
"""
url = "https://free-api-live-football-data.p.rapidapi.com/football-get-player-detail"
querystring = {"playerid": playerid}
try:
response = requests.get(url, headers=headers, params=querystring)
response.raise_for_status()
return response.json()
except Exception as e:
return f"Error fetching Premier League standings: {str(e)}"
@tool
def get_home_lineup(eventid: str) -> dict:
"""A tool that returns the home team lineup by event (match) id.
Args:
eventid: The event (match) id.
Returns:
The home team lineup in JSON.
"""
url = "https://free-api-live-football-data.p.rapidapi.com/football-get-hometeam-lineup"
querystring = {"eventid": eventid}
try:
response = requests.get(url, headers=headers, params=querystring)
response.raise_for_status()
return response.json()
except Exception as e:
return f"Error fetching Premier League standings: {str(e)}"
@tool
def get_away_lineup(eventid: str) -> dict:
"""A tool that returns the away team lineup by event (match) id.
Args:
eventid: The event (match) id.
Returns:
The away team lineup in JSON.
"""
url = "https://free-api-live-football-data.p.rapidapi.com/football-get-awayteam-lineup"
querystring = {"eventid": eventid}
try:
response = requests.get(url, headers=headers, params=querystring)
response.raise_for_status()
return response.json()
except Exception as e:
return f"Error fetching Premier League standings: {str(e)}"
@tool
def get_top_goalscorers() -> dict:
"""A tool that returns the top goalscorers in the Premier League.
Args:
None
Returns:
The top goalscorers in JSON.
"""
url = "https://free-api-live-football-data.p.rapidapi.com/football-get-top-players-by-goals"
querystring = {"leagueid":"47"}
try:
response = requests.get(url, headers=headers, params=querystring)
response.raise_for_status()
return response.json()
except Exception as e:
return f"Error fetching Premier League standings: {str(e)}"
@tool
def get_top_assisters() -> dict:
"""A tool that returns the top assisters in the Premier League.
Args:
None
Returns:
The top assisters in JSON.
"""
url = "https://free-api-live-football-data.p.rapidapi.com/football-get-top-players-by-assists"
querystring = {"leagueid":"47"}
try:
response = requests.get(url, headers=headers, params=querystring)
response.raise_for_status()
return response.json()
except Exception as e:
return f"Error fetching Premier League standings: {str(e)}"
@tool
def get_top_rated_players() -> dict:
"""A tool that returns the top rated players in the Premier League.
Args:
None
Returns:
The top rated players in JSON.
"""
url = "https://free-api-live-football-data.p.rapidapi.com/football-get-top-players-by-rating"
querystring = {"leagueid":"47"}
try:
response = requests.get(url, headers=headers, params=querystring)
response.raise_for_status()
return response.json()
except Exception as e:
return f"Error fetching Premier League standings: {str(e)}"