zasharepw77 commited on
Commit
64278c5
·
1 Parent(s): 12bc5a3

Json agent

Browse files
Files changed (2) hide show
  1. _001_app.py +83 -0
  2. app.py +3 -81
_001_app.py ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from smolagents import CodeAgent, DuckDuckGoSearchTool, FinalAnswerTool, HfApiModel, Tool, tool, VisitWebpageTool
2
+ import os
3
+
4
+ @tool
5
+ def suggest_menu(occasion: str) -> str:
6
+ """
7
+ Предлагает меню на основе случая.
8
+ Args:
9
+ occasion: Тип случая для вечеринки (casual, formal, superhero).
10
+ """
11
+ if occasion == "casual":
12
+ return "Пицца, закуски и напитки."
13
+ elif occasion == "formal":
14
+ return "3-ходовой ужин с вином и десертом."
15
+ elif occasion == "superhero":
16
+ return "Буфет с высокоэнергетической и здоровой едой."
17
+ else:
18
+ return "Пользовательское меню для дворецкого."
19
+
20
+ @tool
21
+ def catering_service_tool(query: str) -> str:
22
+ """
23
+ Этот инструмент возвращает самый рейтинговый сервис кейтеринга в Готэм-Сити.
24
+
25
+ Args:
26
+ query: Поисковый запрос для поиска сервисов кейтеринга.
27
+ """
28
+ # Примерный список сервисов кейтеринга и их рейтингов
29
+ services = {
30
+ "Gotham Catering Co.": 4.9,
31
+ "Wayne Manor Catering": 4.8,
32
+ "Gotham City Events": 4.7,
33
+ }
34
+
35
+ # Найти самый рейтинговый сервис кейтеринга (симуляция фильтрации поискового запроса)
36
+ best_service = max(services, key=services.get)
37
+
38
+ return best_service
39
+
40
+ class SuperheroPartyThemeTool(Tool):
41
+ name = "superhero_party_theme_generator"
42
+ description = """
43
+ Этот инструмент предлагает творческие идеи вечеринок на тему супергероев на основе категории.
44
+ понимает такие категории:
45
+ "classic heroes"
46
+ "villain masquerade"
47
+ "futuristic Gotham"
48
+ Он возвращает уникальную идею вечеринки."""
49
+
50
+ inputs = {
51
+ "category": {
52
+ "type": "string",
53
+ "description": "Тип вечеринки супергероев (например, 'классические герои', 'маскарад злодеев', 'футуристический Готэм').",
54
+ }
55
+ }
56
+
57
+ output_type = "string"
58
+
59
+ def forward(self, category: str):
60
+ themes = {
61
+ "classic heroes": "Гала Лиги Справедливости: Гости приходят одетыми в своих любимых героев DC с тематическими коктейлями, такими как 'Панч Криптонита'.",
62
+ "villain masquerade": "Бал злодеев Готэма: Таинственный маскарад, где гости одеваются как классические злодеи Бэтмена.",
63
+ "futuristic Gotham": "Ночь Нео-Готэма: Вечеринка в стиле киберпанка, вдохновленная Бэтменом из будущего, с неоновыми украшениями и футуристическими гаджетами."
64
+ }
65
+
66
+ return themes.get(category.lower(), "Идея тематической вечеринки не найдена. Попробуйте 'классические герои', 'маскарад злодеев' или 'футуристический Готэм'.")
67
+
68
+
69
+ # Альфред, дворецкий, готовит меню для вечеринки
70
+ agent = CodeAgent(
71
+ tools=[
72
+ DuckDuckGoSearchTool(),
73
+ VisitWebpageTool(),
74
+ suggest_menu,
75
+ catering_service_tool,
76
+ SuperheroPartyThemeTool()
77
+ ],
78
+ model=HfApiModel(token=os.getenv('hf_token')),
79
+ max_steps=10,
80
+ verbosity_level=2
81
+ )
82
+
83
+ agent.run("Дайте мне лучшее меню для вечеринки в особняке Уэйна. Идея вечеринки - тема 'маскарад злодеев'")
app.py CHANGED
@@ -1,83 +1,5 @@
1
- from smolagents import CodeAgent, DuckDuckGoSearchTool, FinalAnswerTool, HfApiModel, Tool, tool, VisitWebpageTool
2
- import os
3
 
4
- @tool
5
- def suggest_menu(occasion: str) -> str:
6
- """
7
- Предлагает меню на основе случая.
8
- Args:
9
- occasion: Тип случая для вечеринки (casual, formal, superhero).
10
- """
11
- if occasion == "casual":
12
- return "Пицца, закуски и напитки."
13
- elif occasion == "formal":
14
- return "3-ходовой ужин с вином и десертом."
15
- elif occasion == "superhero":
16
- return "Буфет с высокоэнергетической и здоровой едой."
17
- else:
18
- return "Пользовательское меню для дворецкого."
19
 
20
- @tool
21
- def catering_service_tool(query: str) -> str:
22
- """
23
- Этот инструмент возвращает самый рейтинговый сервис кейтеринга в Готэм-Сити.
24
-
25
- Args:
26
- query: Поисковый запрос для поиска сервисов кейтеринга.
27
- """
28
- # Примерный список сервисов кейтеринга и их рейтингов
29
- services = {
30
- "Gotham Catering Co.": 4.9,
31
- "Wayne Manor Catering": 4.8,
32
- "Gotham City Events": 4.7,
33
- }
34
-
35
- # Найти самый рейтинговый сервис кейтеринга (симуляция фильтрации поискового запроса)
36
- best_service = max(services, key=services.get)
37
-
38
- return best_service
39
-
40
- class SuperheroPartyThemeTool(Tool):
41
- name = "superhero_party_theme_generator"
42
- description = """
43
- Этот инструмент предлагает творческие идеи вечеринок на тему супергероев на основе категории.
44
- понимает такие категории:
45
- "classic heroes"
46
- "villain masquerade"
47
- "futuristic Gotham"
48
- Он возвращает уникальную идею вечеринки."""
49
-
50
- inputs = {
51
- "category": {
52
- "type": "string",
53
- "description": "Тип вечеринки супергероев (например, 'классические герои', 'маскарад злодеев', 'футуристический Готэм').",
54
- }
55
- }
56
-
57
- output_type = "string"
58
-
59
- def forward(self, category: str):
60
- themes = {
61
- "classic heroes": "Гала Лиги Справедливости: Гости приходят одетыми в своих любимых героев DC с тематическими коктейлями, такими как 'Панч Криптонита'.",
62
- "villain masquerade": "Бал злодеев Готэма: Таинственный маскарад, где гости одеваются как классические злодеи Бэтмена.",
63
- "futuristic Gotham": "Ночь Нео-Готэма: Вечеринка в стиле киберпанка, вдохновленная Бэтменом из будущего, с неоновыми украшениями и футуристическими гаджетами."
64
- }
65
-
66
- return themes.get(category.lower(), "Идея тематической вечеринки не найдена. Попробуйте 'классические герои', 'маскарад злодеев' или 'футуристический Готэм'.")
67
-
68
-
69
- # Альфред, дворецкий, готовит меню для вечеринки
70
- agent = CodeAgent(
71
- tools=[
72
- DuckDuckGoSearchTool(),
73
- VisitWebpageTool(),
74
- suggest_menu,
75
- catering_service_tool,
76
- SuperheroPartyThemeTool()
77
- ],
78
- model=HfApiModel(token=os.getenv('hf_token')),
79
- max_steps=10,
80
- verbosity_level=2
81
- )
82
-
83
- agent.run("Дайте мне лучшее меню для вечеринки в особняке Уэйна. Идея вечеринки - тема 'маскарад злодеев'")
 
1
+ from smolagents import ToolCallingAgent, DuckDuckGoSearchTool, HfApiModel
 
2
 
3
+ agent = ToolCallingAgent(tools=[DuckDuckGoSearchTool()], model=HfApiModel(token=os.getenv('hf_token')))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
 
5
+ agent.run("Search for the best music recommendations for a party at the Wayne's mansion.")