File size: 2,760 Bytes
41d0338 c19d193 9b5b26a 41d0338 9b5b26a 41d0338 9b5b26a 41d0338 9b5b26a 41d0338 9b5b26a 41d0338 9b5b26a 41d0338 9b5b26a 41d0338 9b5b26a 41d0338 9b5b26a 41d0338 8c01ffb 41d0338 6aae614 e121372 41d0338 13d500a 8c01ffb 861422e 41d0338 8c01ffb 8fe992b 41d0338 8c01ffb 861422e 8fe992b 41d0338 9b5b26a b9aae8f |
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 |
from smolagents import CodeAgent, HfApiModel, tool
import yaml
from Gradio_UI import GradioUI
import requests
# Example tool to analyze waste data (Пример инструмента для анализа данных о вторсырье)
@tool
def analyze_waste_data(data: dict) -> str:
"""Analyzes waste data and provides recommendations.
(Анализирует данные о вторсырье и предоставляет рекомендации.)
Args:
data: A dictionary containing waste data, including types and quantities of waste.
(Словарь с данными о вторсырье, включающий типы и количество отходов.)
"""
# Example analysis of data (Пример анализа данных)
waste_types = data.get("types", {})
recommendations = []
for waste_type, amount in waste_types.items():
if amount > 100: # Example threshold value (Пример порогового значения)
recommendations.append(f"It is necessary to collect {waste_type}.")
# (Необходимо вывезти {waste_type}.)
return "\n".join(recommendations)
# Example tool to visualize collection routes (Пример инструмента для визуализации маршрутов)
@tool
def visualize_collection_routes(locations: list) -> str:
"""Visualizes optimal routes for waste collection.
(Визуализирует оптимальные маршруты для сбора вторсырья.)
Args:
locations: A list of coordinates for container locations.
(Список координат местоположений контейнеров.)
"""
# Example use of a maps API to visualize routes (Пример использования API карт для визуализации маршрутов)
map_url = "https://maps.google.com/?q=" + "&q=".join([f"{lat},{lon}" for lat, lon in locations])
return f"Optimal routes can be viewed at this link: {map_url}"
# (Оптимальные маршруты можно посмотреть по ссылке: {map_url})
# Load model and create agent (Загрузка модели и создание агента)
final_answer = FinalAnswerTool()
model = HfApiModel(
max_tokens=2096,
temperature=0.5,
model_id='Qwen/Qwen2.5-Coder-32B-Instruct',
custom_role_conversions=None,
)
with open("prompts.yaml", 'r') as stream:
prompt_templates = yaml.safe_load(stream)
agent = CodeAgent(
model=model,
tools=[final_answer, analyze_waste_data, visualize_collection_routes],
max_steps=6,
verbosity_level=1,
prompt_templates=prompt_templates
)
GradioUI(agent).launch()
|