| | from smolagents import CodeAgent,DuckDuckGoSearchTool, HfApiModel,load_tool,tool |
| | from meteostat import Stations, Daily |
| | import requests |
| | import yaml |
| | import datetime |
| | from tools.final_answer import FinalAnswerTool |
| |
|
| |
|
| | from Gradio_UI import GradioUI |
| |
|
| | |
| | @tool |
| | def World_temperature(lat: float, lon: float) -> str: |
| | """Fetches the current temperature in a specified location using latitude & longitude. |
| | |
| | Args: |
| | lat: Latitude of the location (e.g., 51.51 for London). |
| | lon: Longitude of the location (e.g., -0.13 for London). |
| | |
| | Returns: |
| | A string with the current temperature. |
| | """ |
| | try: |
| | |
| | stations = Stations().nearby(lat, lon).fetch(1) |
| | station_id = stations.index[0] |
| |
|
| | |
| | today = datetime.datetime.today() |
| | data = Daily(station_id, today, today).fetch() |
| |
|
| | if not data.empty: |
| | temp = data["tavg"].iloc[0] |
| | return f"The current temperature at ({lat}, {lon}) is {temp}°C." |
| | else: |
| | return "No temperature data available for this location." |
| |
|
| | except Exception as e: |
| | return f"Error fetching temperature: {str(e)}" |
| |
|
| |
|
| | final_answer = FinalAnswerTool() |
| |
|
| | |
| | |
| |
|
| | model = HfApiModel( |
| | max_tokens=2096, |
| | temperature=0.5, |
| | model_id='Qwen/Qwen2.5-Coder-32B-Instruct', |
| | custom_role_conversions=None, |
| | ) |
| |
|
| |
|
| | |
| | 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=[final_answer], [World_temperature] |
| | max_steps=6, |
| | verbosity_level=1, |
| | grammar=None, |
| | planning_interval=None, |
| | name=None, |
| | description=None, |
| | prompt_templates=prompt_templates |
| | ) |
| |
|
| |
|
| | GradioUI(agent).launch() |