smart-bot-factory 0.1.4__py3-none-any.whl → 0.1.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of smart-bot-factory might be problematic. Click here for more details.
- smart_bot_factory/__init__.py +0 -30
- smart_bot_factory/admin/admin_logic.py +11 -11
- smart_bot_factory/cli.py +138 -71
- smart_bot_factory/clients/__init__.py +33 -0
- smart_bot_factory/configs/growthmed-october-24/prompts/final_instructions.txt +2 -0
- smart_bot_factory/configs/growthmed-october-24/tests/quick_scenarios.yaml +95 -28
- smart_bot_factory/core/__init__.py +43 -22
- smart_bot_factory/core/bot_utils.py +251 -88
- smart_bot_factory/core/conversation_manager.py +542 -535
- smart_bot_factory/core/decorators.py +943 -230
- smart_bot_factory/core/globals.py +68 -0
- smart_bot_factory/core/message_sender.py +6 -6
- smart_bot_factory/core/router.py +172 -0
- smart_bot_factory/core/router_manager.py +165 -0
- smart_bot_factory/creation/__init__.py +1 -2
- smart_bot_factory/creation/bot_builder.py +116 -8
- smart_bot_factory/creation/bot_testing.py +74 -13
- smart_bot_factory/handlers/handlers.py +10 -2
- smart_bot_factory/integrations/__init__.py +1 -0
- smart_bot_factory/integrations/supabase_client.py +272 -2
- smart_bot_factory-0.1.5.dist-info/METADATA +466 -0
- {smart_bot_factory-0.1.4.dist-info → smart_bot_factory-0.1.5.dist-info}/RECORD +25 -30
- smart_bot_factory/configs/growthmed-helper/env_example.txt +0 -1
- smart_bot_factory/configs/growthmed-helper/prompts/1sales_context.txt +0 -9
- smart_bot_factory/configs/growthmed-helper/prompts/2product_info.txt +0 -582
- smart_bot_factory/configs/growthmed-helper/prompts/3objection_handling.txt +0 -66
- smart_bot_factory/configs/growthmed-helper/prompts/final_instructions.txt +0 -232
- smart_bot_factory/configs/growthmed-helper/prompts/help_message.txt +0 -28
- smart_bot_factory/configs/growthmed-helper/prompts/welcome_message.txt +0 -7
- smart_bot_factory/configs/growthmed-helper/welcome_file/welcome_file_msg.txt +0 -16
- smart_bot_factory/configs/growthmed-helper/welcome_file//342/225/250/320/267/342/225/250/342/225/241/342/225/250/342/225/221 /342/225/250/342/225/227/342/225/250/342/225/225/342/225/244/320/221/342/225/244/320/222 /342/225/250/342/224/220/342/225/250/342/225/233 152/342/225/250/320/264/342/225/250/320/247 /342/225/250/342/225/225 323/342/225/250/320/264/342/225/250/320/247 /342/225/250/342/224/244/342/225/250/342/225/227/342/225/244/320/237 /342/225/250/342/225/235/342/225/250/342/225/241/342/225/250/342/224/244/342/225/250/342/225/225/342/225/244/320/226/342/225/250/342/225/225/342/225/250/342/225/234/342/225/244/320/233.pdf +0 -0
- smart_bot_factory-0.1.4.dist-info/METADATA +0 -126
- {smart_bot_factory-0.1.4.dist-info → smart_bot_factory-0.1.5.dist-info}/WHEEL +0 -0
- {smart_bot_factory-0.1.4.dist-info → smart_bot_factory-0.1.5.dist-info}/entry_points.txt +0 -0
- {smart_bot_factory-0.1.4.dist-info → smart_bot_factory-0.1.5.dist-info}/licenses/LICENSE +0 -0
|
@@ -2,65 +2,132 @@ scenarios:
|
|
|
2
2
|
- name: "Быстрое решение по участию"
|
|
3
3
|
steps:
|
|
4
4
|
- user_input: "Привет, срочно нужна информация о конференции"
|
|
5
|
-
expected_keywords:
|
|
6
|
-
|
|
5
|
+
expected_keywords:
|
|
6
|
+
- ["привет", "здравствуйте", "добро пожаловать", "добрый день"]
|
|
7
|
+
- ["информация", "данные", "подробности", "детали"]
|
|
8
|
+
- ["конференци", "мероприятие", "событие"]
|
|
9
|
+
forbidden_keywords: ["не спешите", "позже", "не торопитесь"]
|
|
7
10
|
|
|
8
11
|
- user_input: "Завтра улетаю в командировку, успею зарегистрироваться?"
|
|
9
|
-
expected_keywords:
|
|
10
|
-
|
|
12
|
+
expected_keywords:
|
|
13
|
+
- ["успеете", "успеете зарегистрироваться", "все получится"]
|
|
14
|
+
- ["регистрация", "запись", "участие"]
|
|
15
|
+
- ["быстро", "срочно", "экспресс", "ускоренно"]
|
|
16
|
+
forbidden_keywords: ["поздно", "не успеете", "время вышло"]
|
|
11
17
|
|
|
12
18
|
- name: "Студент медвуза интересуется будущим"
|
|
13
19
|
steps:
|
|
14
20
|
- user_input: "Здравствуйте, я студент 5 курса медуниверситета"
|
|
15
|
-
expected_keywords:
|
|
16
|
-
|
|
21
|
+
expected_keywords:
|
|
22
|
+
- ["здравствуйте", "привет", "добро пожаловать"]
|
|
23
|
+
- ["студент", "обучающийся", "учащийся"]
|
|
24
|
+
- ["медицин", "медвуз", "университет", "медицинский"]
|
|
25
|
+
forbidden_keywords: ["рано для вас", "еще рано", "не подходит"]
|
|
17
26
|
|
|
18
27
|
- user_input: "Стоит ли уже сейчас думать о бизнесе в медицине?"
|
|
19
|
-
expected_keywords:
|
|
20
|
-
|
|
28
|
+
expected_keywords:
|
|
29
|
+
- ["стоит", "правильно", "хорошая идея", "отличный подход"]
|
|
30
|
+
- ["перспектив", "возможности", "будущее", "карьера"]
|
|
31
|
+
- ["бизнес", "предпринимательство", "дело"]
|
|
32
|
+
forbidden_keywords: ["рано думать", "не стоит", "пока рано"]
|
|
21
33
|
|
|
22
34
|
- user_input: "Есть ли льготы для студентов?"
|
|
23
|
-
expected_keywords:
|
|
24
|
-
|
|
35
|
+
expected_keywords:
|
|
36
|
+
- ["льготы", "скидки", "преференции", "льготные условия"]
|
|
37
|
+
- ["студент", "учащимся", "обучающимся"]
|
|
38
|
+
- ["специальные условия", "уменьшенная стоимость"]
|
|
39
|
+
forbidden_keywords: ["полная стоимость", "без скидок", "обычная цена"]
|
|
25
40
|
|
|
26
41
|
- name: "Иностранный врач в России"
|
|
27
42
|
steps:
|
|
28
43
|
- user_input: "Hello, I am foreign doctor working in Moscow"
|
|
29
|
-
expected_keywords:
|
|
30
|
-
|
|
44
|
+
expected_keywords:
|
|
45
|
+
- ["hello", "hi", "добро пожаловать", "привет"]
|
|
46
|
+
- ["foreign", "иностранный", "зарубежный"]
|
|
47
|
+
- ["moscow", "москва", "россия"]
|
|
48
|
+
forbidden_keywords: ["только на русском", "only russian", "русский язык"]
|
|
31
49
|
|
|
32
50
|
- user_input: "Is conference in English or Russian language?"
|
|
33
|
-
expected_keywords:
|
|
34
|
-
|
|
51
|
+
expected_keywords:
|
|
52
|
+
- ["language", "язык", "english", "английский"]
|
|
53
|
+
- ["translation", "перевод", "переводим", "синхронный перевод"]
|
|
54
|
+
- ["both", "оба языка", "многоязычный"]
|
|
55
|
+
forbidden_keywords: ["только русский", "only russian", "без перевода"]
|
|
35
56
|
|
|
36
57
|
- user_input: "I want to understand Russian medical business"
|
|
37
|
-
expected_keywords:
|
|
38
|
-
|
|
58
|
+
expected_keywords:
|
|
59
|
+
- ["business", "бизнес", "предпринимательство"]
|
|
60
|
+
- ["russian", "российский", "россии"]
|
|
61
|
+
- ["understand", "понять", "изучить", "разобраться"]
|
|
62
|
+
forbidden_keywords: ["сложно будет", "difficult", "не получится"]
|
|
39
63
|
|
|
40
64
|
- name: "Пенсионер-врач ищет активность"
|
|
41
65
|
steps:
|
|
42
66
|
- user_input: "Добрый день, я врач на пенсии уже 3 года"
|
|
43
|
-
expected_keywords:
|
|
44
|
-
|
|
67
|
+
expected_keywords:
|
|
68
|
+
- ["добрый день", "здравствуйте", "привет"]
|
|
69
|
+
- ["пенси", "пенсионер", "на пенсии", "отставной"]
|
|
70
|
+
- ["врач", "доктор", "медицинский работник"]
|
|
71
|
+
forbidden_keywords: ["не актуально", "не подходит", "слишком поздно"]
|
|
45
72
|
|
|
46
73
|
- user_input: "Хочу быть в курсе современных тенденций"
|
|
47
|
-
expected_keywords:
|
|
48
|
-
|
|
74
|
+
expected_keywords:
|
|
75
|
+
- ["современн", "актуальн", "новейш", "передов"]
|
|
76
|
+
- ["тенденци", "тренды", "направления", "развитие"]
|
|
77
|
+
- ["курс", "информирован", "знания", "обучение"]
|
|
78
|
+
forbidden_keywords: ["устарело", "не актуально", "пропустили время"]
|
|
49
79
|
|
|
50
80
|
- user_input: "Подходит ли конференция для неработающих врачей?"
|
|
51
|
-
expected_keywords:
|
|
52
|
-
|
|
81
|
+
expected_keywords:
|
|
82
|
+
- ["подходит", "идеально", "отлично", "рекомендуем"]
|
|
83
|
+
- ["для всех", "всем", "любому", "каждому"]
|
|
84
|
+
- ["врачей", "специалистов", "медиков", "докторов"]
|
|
85
|
+
forbidden_keywords: ["только для практикующих", "не подходит", "не рекомендуется"]
|
|
53
86
|
|
|
54
87
|
- name: "Технический директор медцентра"
|
|
55
88
|
steps:
|
|
56
89
|
- user_input: "Здравствуйте, я отвечаю за IT в медицинском центре"
|
|
57
|
-
expected_keywords:
|
|
58
|
-
|
|
90
|
+
expected_keywords:
|
|
91
|
+
- ["здравствуйте", "привет", "добро пожаловать"]
|
|
92
|
+
- ["it", "информационные технологии", "технологии", "айти"]
|
|
93
|
+
- ["медицинск", "медицинский", "клиника", "медцентр"]
|
|
94
|
+
forbidden_keywords: ["не ваша тема", "не подходит", "не актуально"]
|
|
59
95
|
|
|
60
96
|
- user_input: "Есть ли секции по цифровизации медицины?"
|
|
61
|
-
expected_keywords:
|
|
62
|
-
|
|
97
|
+
expected_keywords:
|
|
98
|
+
- ["цифровизация", "цифровые технологии", "информатизация"]
|
|
99
|
+
- ["технологи", "инновации", "современные решения"]
|
|
100
|
+
- ["it", "программирование", "автоматизация"]
|
|
101
|
+
forbidden_keywords: ["только бизнес", "без технологий", "не рассматриваем"]
|
|
63
102
|
|
|
64
103
|
- user_input: "Интересуют телемедицина и электронные карты"
|
|
65
|
-
expected_keywords:
|
|
66
|
-
|
|
104
|
+
expected_keywords:
|
|
105
|
+
- ["телемедицина", "удаленная медицина", "дистанционные консультации"]
|
|
106
|
+
- ["электронн", "цифровые", "компьютерные"]
|
|
107
|
+
- ["карты", "медицинские карты", "история болезни"]
|
|
108
|
+
forbidden_keywords: ["не рассматриваем", "не актуально", "не обсуждаем"]
|
|
109
|
+
|
|
110
|
+
- name: "Смешанный формат синонимов - демонстрация новых возможностей"
|
|
111
|
+
steps:
|
|
112
|
+
- user_input: "Здравствуйте, хочу узнать подробности о мероприятии"
|
|
113
|
+
expected_keywords:
|
|
114
|
+
- "здравствуйте" # Одиночное слово
|
|
115
|
+
- ["хочу", "интересуюсь", "планирую"] # Группа синонимов
|
|
116
|
+
- ["подробности", "детали", "информация"] # Еще одна группа синонимов
|
|
117
|
+
- "мероприятие" # Еще одно одиночное слово
|
|
118
|
+
forbidden_keywords: []
|
|
119
|
+
|
|
120
|
+
- user_input: "Когда будет конференция и сколько стоит участие?"
|
|
121
|
+
expected_keywords:
|
|
122
|
+
- ["когда", "дата", "время", "расписание"] # Группа синонимов
|
|
123
|
+
- "конференция" # Одиночное слово
|
|
124
|
+
- ["стоит", "цена", "стоимость", "сколько"] # Группа синонимов
|
|
125
|
+
- ["участие", "регистрация", "вход"] # Группа синонимов
|
|
126
|
+
forbidden_keywords: ["не знаю", "неизвестно", "не определились"]
|
|
127
|
+
|
|
128
|
+
- user_input: "Есть ли скидки для студентов и врачей?"
|
|
129
|
+
expected_keywords:
|
|
130
|
+
- ["скидки", "льготы", "преференции"] # Группа синонимов
|
|
131
|
+
- "студентов" # Одиночное слово
|
|
132
|
+
- ["врачей", "докторов", "медиков"] # Группа синонимов
|
|
133
|
+
forbidden_keywords: ["полная стоимость", "без скидок"]
|
|
@@ -1,22 +1,43 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Core модули smart_bot_factory
|
|
3
|
-
"""
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
from
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
"""
|
|
2
|
+
Core модули smart_bot_factory
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
# Импортируем основные компоненты для удобства
|
|
6
|
+
from .globals import (
|
|
7
|
+
get_supabase_client,
|
|
8
|
+
get_openai_client,
|
|
9
|
+
get_config,
|
|
10
|
+
get_admin_manager,
|
|
11
|
+
get_analytics_manager,
|
|
12
|
+
get_conversation_manager,
|
|
13
|
+
get_prompt_loader,
|
|
14
|
+
get_bot,
|
|
15
|
+
get_dp
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
from .decorators import event_handler, schedule_task, global_handler
|
|
19
|
+
from .message_sender import send_message_by_human
|
|
20
|
+
from .router import Router
|
|
21
|
+
from .router_manager import RouterManager
|
|
22
|
+
|
|
23
|
+
__all__ = [
|
|
24
|
+
# Функции получения (для внутреннего использования)
|
|
25
|
+
'get_supabase_client',
|
|
26
|
+
'get_openai_client',
|
|
27
|
+
'get_config',
|
|
28
|
+
'get_admin_manager',
|
|
29
|
+
'get_analytics_manager',
|
|
30
|
+
'get_conversation_manager',
|
|
31
|
+
'get_prompt_loader',
|
|
32
|
+
'get_bot',
|
|
33
|
+
'get_dp',
|
|
34
|
+
# Декораторы
|
|
35
|
+
'event_handler',
|
|
36
|
+
'schedule_task',
|
|
37
|
+
'global_handler',
|
|
38
|
+
# Роутеры
|
|
39
|
+
'Router',
|
|
40
|
+
'RouterManager',
|
|
41
|
+
# Утилиты
|
|
42
|
+
'send_message_by_human'
|
|
43
|
+
]
|