MihailRus commited on
Commit
59a5782
·
verified ·
1 Parent(s): b2eeb74

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -8
app.py CHANGED
@@ -34,16 +34,19 @@ def get_current_time_in_timezone(timezone: str) -> str:
34
  return f"Error fetching time for timezone '{timezone}': {str(e)}"
35
 
36
 
 
 
 
37
  @tool
38
  def get_weather_by_city(city_name: str) -> str:
39
  """
40
- Возвращает текущую погоду для указанного города в формате: "Температура в [город]: X°C".
41
 
42
- Аргументы:
43
- city_name (str): Название города на английском или русском языке. Например: "Paris" или "Париж".
44
 
45
- Возвращает:
46
- str: Строка с температурой или сообщение об ошибке.
47
  """
48
  # Шаг 1: Получаем координаты города
49
  geocoding_url = f"https://geocoding-api.open-meteo.com/v1/search?name={city_name}&count=1&language=en&format=json"
@@ -54,7 +57,6 @@ def get_weather_by_city(city_name: str) -> str:
54
  geo_response.raise_for_status()
55
  geo_data = geo_response.json()
56
 
57
- # Проверка наличия результатов
58
  if not geo_data.get("results"):
59
  return f"Город '{city_name}' не найден"
60
 
@@ -67,14 +69,13 @@ def get_weather_by_city(city_name: str) -> str:
67
  except KeyError:
68
  return "Некорректный ответ от API геокодинга"
69
 
70
- # Шаг 2: Получаем погоду по координатам
71
  weather_url = f"https://api.open-meteo.com/v1/forecast?latitude={latitude}&longitude={longitude}&current_weather=true"
72
 
73
  try:
74
  weather_response = requests.get(weather_url)
75
  weather_response.raise_for_status()
76
  weather_data = weather_response.json()
77
-
78
  temperature = weather_data["current_weather"]["temperature"]
79
  return f"Текущая температура в {city_name}: {temperature}°C"
80
 
 
34
  return f"Error fetching time for timezone '{timezone}': {str(e)}"
35
 
36
 
37
+ from smolagents import tool
38
+ import requests
39
+
40
  @tool
41
  def get_weather_by_city(city_name: str) -> str:
42
  """
43
+ Возвращает текущую температуру в указанном городе.
44
 
45
+ Args:
46
+ city_name: Название города на английском языке. Примеры: "Berlin".
47
 
48
+ Returns:
49
+ str: Температура в формате "Текущая температура в [город]: X°C" или сообщение об ошибке.
50
  """
51
  # Шаг 1: Получаем координаты города
52
  geocoding_url = f"https://geocoding-api.open-meteo.com/v1/search?name={city_name}&count=1&language=en&format=json"
 
57
  geo_response.raise_for_status()
58
  geo_data = geo_response.json()
59
 
 
60
  if not geo_data.get("results"):
61
  return f"Город '{city_name}' не найден"
62
 
 
69
  except KeyError:
70
  return "Некорректный ответ от API геокодинга"
71
 
72
+ # Шаг 2: Получаем погоду
73
  weather_url = f"https://api.open-meteo.com/v1/forecast?latitude={latitude}&longitude={longitude}&current_weather=true"
74
 
75
  try:
76
  weather_response = requests.get(weather_url)
77
  weather_response.raise_for_status()
78
  weather_data = weather_response.json()
 
79
  temperature = weather_data["current_weather"]["temperature"]
80
  return f"Текущая температура в {city_name}: {temperature}°C"
81