Spaces:
Sleeping
Sleeping
File size: 3,749 Bytes
80b7c0b f19915e ba25068 9b5b26a c19d193 6aae614 8fe992b 9b5b26a 5df72d6 bd2724d 0f42e34 9b5b26a 6f5a8b1 75bdc27 6f5a8b1 f41e826 6f5a8b1 f41e826 9b5b26a 6f5a8b1 f41e826 75bdc27 6f5a8b1 9b5b26a f41e826 409ce53 6f5a8b1 f41e826 e024006 75bdc27 e024006 1b9cff8 e024006 820499e e024006 817246b e024006 9b5b26a 8c01ffb 6aae614 ae7a494 e121372 bf6d34c 29ec968 fe328e0 13d500a 8c01ffb 9b5b26a 8c01ffb 861422e 9b5b26a 8c01ffb 8fe992b 1b9cff8 8c01ffb 80b7c0b 8fe992b 9b5b26a 8c01ffb | 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 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | import os
from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel,load_tool,tool
from PIL import Image
import datetime
import requests
import pytz
import yaml
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI
# Below is an example of a tool that does nothing. Amaze us with your creativity !
from smolagents.agent_types import AgentImage # 🔑 Импортируем AgentImage
from smolagents.agent_types import AgentImage
from PIL import Image
@tool
def get_weather(
city: str,
) -> str:
"""
Отдает прогноз погоды по заданому городу.
Пример:
>>> get_weather("какая погода в Токио?")
<str>
Args:
city: название города - str
Returns:
str: прогноз погоды.
"""
try:
url = f"https://wttr.in/{city}?format=3"
response = requests.get(url, timeout=10)
response.raise_for_status()
return f"Current weather in {city}: {response.text.strip()}"
except Exception as e:
return f"Error fetching weather for {city}: {str(e)}"
@tool
def get_universities_by_country(
country: str,
) -> str:
"""
Ищет список университетов для указанной страны с помощью HipoLabs API.
Пример использования:
>>> get_universities_by_country("Belarus")
>>> get_universities_by_country("Russian Federation")
Args:
country: Название страны обязательно на английском языке (например, 'Belarus', 'Canada', 'United States').
"""
try:
url = f"http://universities.hipolabs.com/search?country={country}"
response = requests.get(url, timeout=10)
response.raise_for_status()
data = response.json()
names = [uni["name"] for uni in data]
return f"Университеты в {country}: {names}"
except Exception as e:
return f"Error fetching weather for {country}: {str(e)}"
@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)}"
final_answer = FinalAnswerTool()
# If the agent does not answer, the model is overloaded, please use another model or the following Hugging Face Endpoint that also contains qwen2.5 coder:
# model_id='https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud'
model = HfApiModel(
max_tokens=2096,
temperature=0.5,
model_id='Qwen/Qwen2.5-Coder-32B-Instruct',# it is possible that this model may be overloaded
custom_role_conversions=None,
)
# 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=[final_answer, get_weather, get_universities_by_country], ## 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() |