Spaces:
Sleeping
Sleeping
File size: 3,961 Bytes
0256c0c 89471f6 fbfac53 0256c0c a3a4a48 0256c0c 48b2b94 0256c0c a3a4a48 0256c0c 48b2b94 0256c0c 48b2b94 0256c0c a3a4a48 0256c0c a3a4a48 0256c0c 48b2b94 0256c0c a3a4a48 0256c0c a3a4a48 0256c0c a3a4a48 0256c0c a3a4a48 0256c0c a3a4a48 0256c0c a3a4a48 0256c0c a3a4a48 0256c0c a3a4a48 0256c0c 48b2b94 0256c0c 704c6ae 0256c0c 704c6ae 0256c0c b201b3e | 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 | from smolagents import CodeAgent, DuckDuckGoSearchTool, FinalAnswerTool, HfApiModel, Tool, tool, VisitWebpageTool
import os
@tool
def suggest_menu(occasion: str) -> str:
"""
Предлагает меню на основе случая.
Args:
occasion: Тип случая для вечеринки.
"""
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 = """
Этот инструмент предлагает творческие идеи вечеринок на тему супергероев на основе категории.
Он возвращает уникальную идею вечеринки."""
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("Дайте мне лучшее меню для вечеринки в особняке Уэйна. Идея вечеринки - тема 'маскарад злодеев'") |