Spaces:
Sleeping
Sleeping
File size: 4,123 Bytes
64278c5 |
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 |
from smolagents import CodeAgent, DuckDuckGoSearchTool, FinalAnswerTool, HfApiModel, Tool, tool, VisitWebpageTool
import os
@tool
def suggest_menu(occasion: str) -> str:
"""
Предлагает меню на основе случая.
Args:
occasion: Тип случая для вечеринки (casual, formal, superhero).
"""
if occasion == "casual":
return "Пицца, закуски и напитки."
elif occasion == "formal":
return "3-ходовой ужин с вином и десертом."
elif occasion == "superhero":
return "Буфет с высокоэнергетической и здоровой едой."
else:
return "Пользовательское меню для дворецкого."
@tool
def catering_service_tool(query: str) -> str:
"""
Этот инструмент возвращает самый рейтинговый сервис кейтеринга в Готэм-Сити.
Args:
query: Поисковый запрос для поиска сервисов кейтеринга.
"""
# Примерный список сервисов кейтеринга и их рейтингов
services = {
"Gotham Catering Co.": 4.9,
"Wayne Manor Catering": 4.8,
"Gotham City Events": 4.7,
}
# Найти самый рейтинговый сервис кейтеринга (симуляция фильтрации поискового запроса)
best_service = max(services, key=services.get)
return best_service
class SuperheroPartyThemeTool(Tool):
name = "superhero_party_theme_generator"
description = """
Этот инструмент предлагает творческие идеи вечеринок на тему супергероев на основе категории.
понимает такие категории:
"classic heroes"
"villain masquerade"
"futuristic Gotham"
Он возвращает уникальную идею вечеринки."""
inputs = {
"category": {
"type": "string",
"description": "Тип вечеринки супергероев (например, 'классические герои', 'маскарад злодеев', 'футуристический Готэм').",
}
}
output_type = "string"
def forward(self, category: str):
themes = {
"classic heroes": "Гала Лиги Справедливости: Гости приходят одетыми в своих любимых героев DC с тематическими коктейлями, такими как 'Панч Криптонита'.",
"villain masquerade": "Бал злодеев Готэма: Таинственный маскарад, где гости одеваются как классические злодеи Бэтмена.",
"futuristic Gotham": "Ночь Нео-Готэма: Вечеринка в стиле киберпанка, вдохновленная Бэтменом из будущего, с неоновыми украшениями и футуристическими гаджетами."
}
return themes.get(category.lower(), "Идея тематической вечеринки не найдена. Попробуйте 'классические герои', 'маскарад злодеев' или 'футуристический Готэм'.")
# Альфред, дворецкий, готовит меню для вечеринки
agent = CodeAgent(
tools=[
DuckDuckGoSearchTool(),
VisitWebpageTool(),
suggest_menu,
catering_service_tool,
SuperheroPartyThemeTool()
],
model=HfApiModel(token=os.getenv('hf_token')),
max_steps=10,
verbosity_level=2
)
agent.run("Дайте мне лучшее меню для вечеринки в особняке Уэйна. Идея вечеринки - тема 'маскарад злодеев'") |