smart-bot-factory 0.1.2__py3-none-any.whl → 0.1.3__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 +51 -0
- smart_bot_factory/admin/__init__.py +16 -0
- smart_bot_factory/admin/admin_logic.py +430 -0
- smart_bot_factory/admin/admin_manager.py +141 -0
- smart_bot_factory/admin/admin_migration.sql +136 -0
- smart_bot_factory/admin/admin_tester.py +151 -0
- smart_bot_factory/admin/timeout_checker.py +499 -0
- smart_bot_factory/analytics/__init__.py +7 -0
- smart_bot_factory/analytics/analytics_manager.py +355 -0
- smart_bot_factory/cli.py +642 -0
- smart_bot_factory/config.py +235 -0
- smart_bot_factory/configs/growthmed-helper/env_example.txt +1 -0
- smart_bot_factory/configs/growthmed-helper/prompts/1sales_context.txt +9 -0
- smart_bot_factory/configs/growthmed-helper/prompts/2product_info.txt +582 -0
- smart_bot_factory/configs/growthmed-helper/prompts/3objection_handling.txt +66 -0
- smart_bot_factory/configs/growthmed-helper/prompts/final_instructions.txt +232 -0
- smart_bot_factory/configs/growthmed-helper/prompts/help_message.txt +28 -0
- smart_bot_factory/configs/growthmed-helper/prompts/welcome_message.txt +7 -0
- smart_bot_factory/configs/growthmed-helper/welcome_file/welcome_file_msg.txt +16 -0
- 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/configs/growthmed-october-24/prompts/1sales_context.txt +16 -0
- smart_bot_factory/configs/growthmed-october-24/prompts/2product_info.txt +582 -0
- smart_bot_factory/configs/growthmed-october-24/prompts/3objection_handling.txt +66 -0
- smart_bot_factory/configs/growthmed-october-24/prompts/final_instructions.txt +212 -0
- smart_bot_factory/configs/growthmed-october-24/prompts/help_message.txt +28 -0
- smart_bot_factory/configs/growthmed-october-24/prompts/welcome_message.txt +8 -0
- smart_bot_factory/configs/growthmed-october-24/reports/test_20250924_064229.txt +818 -0
- smart_bot_factory/configs/growthmed-october-24/reports/test_20250924_064335.txt +32 -0
- smart_bot_factory/configs/growthmed-october-24/reports/test_20250924_064638.txt +35 -0
- smart_bot_factory/configs/growthmed-october-24/tests/quick_scenarios.yaml +66 -0
- smart_bot_factory/configs/growthmed-october-24/tests/realistic_scenarios.yaml +108 -0
- smart_bot_factory/configs/growthmed-october-24/tests/scenario_examples.yaml +46 -0
- smart_bot_factory/configs/growthmed-october-24/welcome_file/welcome_file_msg.txt +16 -0
- smart_bot_factory/configs/growthmed-october-24/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/core/__init__.py +22 -0
- smart_bot_factory/core/bot_utils.py +693 -0
- smart_bot_factory/core/conversation_manager.py +536 -0
- smart_bot_factory/core/decorators.py +229 -0
- smart_bot_factory/core/message_sender.py +249 -0
- smart_bot_factory/core/states.py +14 -0
- smart_bot_factory/creation/__init__.py +8 -0
- smart_bot_factory/creation/bot_builder.py +329 -0
- smart_bot_factory/creation/bot_testing.py +986 -0
- smart_bot_factory/database/database_structure.sql +57 -0
- smart_bot_factory/database/schema.sql +1094 -0
- smart_bot_factory/handlers/handlers.py +583 -0
- smart_bot_factory/integrations/__init__.py +9 -0
- smart_bot_factory/integrations/openai_client.py +435 -0
- smart_bot_factory/integrations/supabase_client.py +592 -0
- smart_bot_factory/setup_checker.py +476 -0
- smart_bot_factory/utils/__init__.py +9 -0
- smart_bot_factory/utils/debug_routing.py +103 -0
- smart_bot_factory/utils/prompt_loader.py +427 -0
- smart_bot_factory/uv.lock +2004 -0
- smart_bot_factory-0.1.3.dist-info/METADATA +126 -0
- smart_bot_factory-0.1.3.dist-info/RECORD +59 -0
- smart_bot_factory-0.1.3.dist-info/licenses/LICENSE +24 -0
- smart_bot_factory-0.1.2.dist-info/METADATA +0 -31
- smart_bot_factory-0.1.2.dist-info/RECORD +0 -4
- {smart_bot_factory-0.1.2.dist-info → smart_bot_factory-0.1.3.dist-info}/WHEEL +0 -0
- {smart_bot_factory-0.1.2.dist-info → smart_bot_factory-0.1.3.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
ОТЧЕТ ТЕСТИРОВАНИЯ: GROWTHMED-OCTOBER-24
|
|
2
|
+
Время: 2025-09-24 06:43:35
|
|
3
|
+
Сценариев: 1
|
|
4
|
+
|
|
5
|
+
УСПЕШНОСТЬ СЦЕНАРИЕВ: 0.0% (0/1)
|
|
6
|
+
УСПЕШНОСТЬ ШАГОВ: 66.7% (2/3)
|
|
7
|
+
|
|
8
|
+
═══════════════════════════════════════════════════════════════
|
|
9
|
+
СПИСОК ОШИБОК:
|
|
10
|
+
═══════════════════════════════════════════════════════════════
|
|
11
|
+
ФАЙЛ: fixes_elina.yaml | СЦЕНАРИЙ: Имя на русском языке
|
|
12
|
+
СТАТУС: 2/3 шагов пройдено
|
|
13
|
+
|
|
14
|
+
ШАГ 1 ❌:
|
|
15
|
+
Ввод: "1"
|
|
16
|
+
Ожидаемые: ['имя', 'профиль']
|
|
17
|
+
Запрещенные: ['не помню']
|
|
18
|
+
|
|
19
|
+
❌ НЕ НАЙДЕНЫ: имя, профиль
|
|
20
|
+
Ответ: "Похоже, вы ответили "1". Вы интересуетесь конференцией GrowthMED (24-25 октября 2025 в Москве) или это обозначение другого варианта? Пожалуйста, напишите один из вариантов: "Да, интересует", "Не слыша..."
|
|
21
|
+
|
|
22
|
+
ШАГ 2 ✅:
|
|
23
|
+
Ввод: "Элина, медицинский маркетолог, клиника Тест"
|
|
24
|
+
Ожидаемые: ['элина', 'спасибо', 'конференц']
|
|
25
|
+
Запрещенные: []
|
|
26
|
+
|
|
27
|
+
ШАГ 3 ✅:
|
|
28
|
+
Ввод: "Маркетинг"
|
|
29
|
+
Ожидаемые: ['маркетинг']
|
|
30
|
+
Запрещенные: ['elina']
|
|
31
|
+
|
|
32
|
+
-------------------------------------------------------------------
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
ОТЧЕТ ТЕСТИРОВАНИЯ: GROWTHMED-OCTOBER-24
|
|
2
|
+
Время: 2025-09-24 06:46:38
|
|
3
|
+
Сценариев: 1
|
|
4
|
+
|
|
5
|
+
УСПЕШНОСТЬ СЦЕНАРИЕВ: 0.0% (0/1)
|
|
6
|
+
УСПЕШНОСТЬ ШАГОВ: 33.3% (1/3)
|
|
7
|
+
|
|
8
|
+
═══════════════════════════════════════════════════════════════
|
|
9
|
+
СПИСОК ОШИБОК:
|
|
10
|
+
═══════════════════════════════════════════════════════════════
|
|
11
|
+
ФАЙЛ: fixes_elina.yaml | СЦЕНАРИЙ: Имя на русском языке
|
|
12
|
+
СТАТУС: 1/3 шагов пройдено
|
|
13
|
+
|
|
14
|
+
ШАГ 1 ❌:
|
|
15
|
+
Ввод: "1"
|
|
16
|
+
Ожидаемые: ['имя', 'профиль']
|
|
17
|
+
Запрещенные: ['не помню']
|
|
18
|
+
|
|
19
|
+
❌ НЕ НАЙДЕНЫ: имя, профиль
|
|
20
|
+
Ответ: "Понял. Вас интересует конференция GrowthMED 24–25 октября в Москве? Напишите, пожалуйста: Да, интересует / Не слышал / Уже купил билет / Не интересно."
|
|
21
|
+
|
|
22
|
+
ШАГ 2 ❌:
|
|
23
|
+
Ввод: "Элина, медицинский маркетолог, клиника Тест"
|
|
24
|
+
Ожидаемые: ['элина', 'спасибо', 'конференц']
|
|
25
|
+
Запрещенные: []
|
|
26
|
+
|
|
27
|
+
❌ НЕ НАЙДЕНЫ: спасибо
|
|
28
|
+
Ответ: "Приятно познакомиться, Элина. Вы — медицинский маркетолог клиники Тест — всё верно? Коротко уточню перед продолжением: есть ли у вас конкретная цель на конференции (например: улучшить конверсию лидов..."
|
|
29
|
+
|
|
30
|
+
ШАГ 3 ✅:
|
|
31
|
+
Ввод: "Маркетинг"
|
|
32
|
+
Ожидаемые: ['маркетинг']
|
|
33
|
+
Запрещенные: ['elina']
|
|
34
|
+
|
|
35
|
+
-------------------------------------------------------------------
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
scenarios:
|
|
2
|
+
- name: "Быстрое решение по участию"
|
|
3
|
+
steps:
|
|
4
|
+
- user_input: "Привет, срочно нужна информация о конференции"
|
|
5
|
+
expected_keywords: ["привет", "информация", "конференци"]
|
|
6
|
+
forbidden_keywords: ["не спешите"]
|
|
7
|
+
|
|
8
|
+
- user_input: "Завтра улетаю в командировку, успею зарегистрироваться?"
|
|
9
|
+
expected_keywords: ["успеете", "регистрация", "быстро"]
|
|
10
|
+
forbidden_keywords: ["поздно", "не успеете"]
|
|
11
|
+
|
|
12
|
+
- name: "Студент медвуза интересуется будущим"
|
|
13
|
+
steps:
|
|
14
|
+
- user_input: "Здравствуйте, я студент 5 курса медуниверситета"
|
|
15
|
+
expected_keywords: ["здравствуйте", "студент", "медицин"]
|
|
16
|
+
forbidden_keywords: ["рано для вас"]
|
|
17
|
+
|
|
18
|
+
- user_input: "Стоит ли уже сейчас думать о бизнесе в медицине?"
|
|
19
|
+
expected_keywords: ["стоит", "перспектив", "будущее"]
|
|
20
|
+
forbidden_keywords: ["рано думать"]
|
|
21
|
+
|
|
22
|
+
- user_input: "Есть ли льготы для студентов?"
|
|
23
|
+
expected_keywords: ["льготы", "студент", "скидк"]
|
|
24
|
+
forbidden_keywords: ["полная стоимость"]
|
|
25
|
+
|
|
26
|
+
- name: "Иностранный врач в России"
|
|
27
|
+
steps:
|
|
28
|
+
- user_input: "Hello, I am foreign doctor working in Moscow"
|
|
29
|
+
expected_keywords: ["hello", "добро пожаловать", "moscow"]
|
|
30
|
+
forbidden_keywords: ["только на русском"]
|
|
31
|
+
|
|
32
|
+
- user_input: "Is conference in English or Russian language?"
|
|
33
|
+
expected_keywords: ["language", "english", "translation"]
|
|
34
|
+
forbidden_keywords: ["только русский"]
|
|
35
|
+
|
|
36
|
+
- user_input: "I want to understand Russian medical business"
|
|
37
|
+
expected_keywords: ["business", "russian", "understand"]
|
|
38
|
+
forbidden_keywords: ["сложно будет"]
|
|
39
|
+
|
|
40
|
+
- name: "Пенсионер-врач ищет активность"
|
|
41
|
+
steps:
|
|
42
|
+
- user_input: "Добрый день, я врач на пенсии уже 3 года"
|
|
43
|
+
expected_keywords: ["добрый день", "пенси", "врач"]
|
|
44
|
+
forbidden_keywords: ["не актуально"]
|
|
45
|
+
|
|
46
|
+
- user_input: "Хочу быть в курсе современных тенденций"
|
|
47
|
+
expected_keywords: ["современн", "тенденци", "актуальн"]
|
|
48
|
+
forbidden_keywords: ["устарело"]
|
|
49
|
+
|
|
50
|
+
- user_input: "Подходит ли конференция для неработающих врачей?"
|
|
51
|
+
expected_keywords: ["подходит", "для всех", "врачей"]
|
|
52
|
+
forbidden_keywords: ["только для практикующих"]
|
|
53
|
+
|
|
54
|
+
- name: "Технический директор медцентра"
|
|
55
|
+
steps:
|
|
56
|
+
- user_input: "Здравствуйте, я отвечаю за IT в медицинском центре"
|
|
57
|
+
expected_keywords: ["здравствуйте", "it", "медицинск"]
|
|
58
|
+
forbidden_keywords: ["не ваша тема"]
|
|
59
|
+
|
|
60
|
+
- user_input: "Есть ли секции по цифровизации медицины?"
|
|
61
|
+
expected_keywords: ["цифровизация", "технологи", "it"]
|
|
62
|
+
forbidden_keywords: ["только бизнес"]
|
|
63
|
+
|
|
64
|
+
- user_input: "Интересуют телемедицина и электронные карты"
|
|
65
|
+
expected_keywords: ["телемедицина", "электронн", "карты"]
|
|
66
|
+
forbidden_keywords: ["не рассматриваем"]
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
scenarios:
|
|
2
|
+
- name: "Директор клиники интересуется эффективностью"
|
|
3
|
+
steps:
|
|
4
|
+
- user_input: "Здравствуйте, я директор частной клиники в Казани"
|
|
5
|
+
expected_keywords: ["здравствуйте", "директор", "клиника"]
|
|
6
|
+
forbidden_keywords: ["не понял", "непонятно"]
|
|
7
|
+
|
|
8
|
+
- user_input: "У нас 15 врачей, выручка падает уже полгода"
|
|
9
|
+
expected_keywords: ["понимаю", "проблема", "выручка"]
|
|
10
|
+
forbidden_keywords: ["не знаю", "ничем не помогу"]
|
|
11
|
+
|
|
12
|
+
- user_input: "Поможет ли ваша конференция решить финансовые проблемы?"
|
|
13
|
+
expected_keywords: ["поможет", "финансов", "решени"]
|
|
14
|
+
forbidden_keywords: ["не уверен", "может быть"]
|
|
15
|
+
|
|
16
|
+
- user_input: "Сколько это стоит и когда окупится?"
|
|
17
|
+
expected_keywords: ["стоимость", "рубл", "окупаемость"]
|
|
18
|
+
forbidden_keywords: ["дорого", "не окупится"]
|
|
19
|
+
|
|
20
|
+
- name: "Молодой врач сомневается в пользе"
|
|
21
|
+
steps:
|
|
22
|
+
- user_input: "Привет, я врач-терапевт, работаю 2 года"
|
|
23
|
+
expected_keywords: ["привет", "врач", "терапевт"]
|
|
24
|
+
forbidden_keywords: ["не интересно"]
|
|
25
|
+
|
|
26
|
+
- user_input: "Честно говоря, не верю в подобные мероприятия"
|
|
27
|
+
expected_keywords: ["понимаю", "скептицизм"]
|
|
28
|
+
forbidden_keywords: ["согласен", "действительно"]
|
|
29
|
+
|
|
30
|
+
- user_input: "Что конкретно я получу за эти деньги?"
|
|
31
|
+
expected_keywords: ["получите", "конкретно", "знания"]
|
|
32
|
+
forbidden_keywords: ["ничего особенного"]
|
|
33
|
+
|
|
34
|
+
- user_input: "А если мне не понравится?"
|
|
35
|
+
expected_keywords: ["гарантии", "возврат"]
|
|
36
|
+
forbidden_keywords: ["ничего не вернем"]
|
|
37
|
+
|
|
38
|
+
- name: "Руководитель сети клиник ищет масштабирование"
|
|
39
|
+
steps:
|
|
40
|
+
- user_input: "Добрый день! У меня сеть из 8 клиник в Москве"
|
|
41
|
+
expected_keywords: ["добрый день", "сеть", "клиник"]
|
|
42
|
+
forbidden_keywords: ["не подходит"]
|
|
43
|
+
|
|
44
|
+
- user_input: "Хочу открыть еще 5 филиалов в следующем году"
|
|
45
|
+
expected_keywords: ["масштабирование", "развитие", "филиал"]
|
|
46
|
+
forbidden_keywords: ["рано", "не стоит"]
|
|
47
|
+
|
|
48
|
+
- user_input: "Есть ли на конференции кейсы по франчайзингу?"
|
|
49
|
+
expected_keywords: ["франчайзинг", "кейсы", "масштаб"]
|
|
50
|
+
forbidden_keywords: ["нет таких"]
|
|
51
|
+
|
|
52
|
+
- user_input: "Можно ли получить персональную консультацию?"
|
|
53
|
+
expected_keywords: ["консультация", "персональн", "индивидуальн"]
|
|
54
|
+
forbidden_keywords: ["только общая"]
|
|
55
|
+
|
|
56
|
+
- name: "Главврач государственной больницы с ограниченным бюджетом"
|
|
57
|
+
steps:
|
|
58
|
+
- user_input: "Здравствуйте, я главврач областной больницы"
|
|
59
|
+
expected_keywords: ["здравствуйте", "главврач", "больниц"]
|
|
60
|
+
forbidden_keywords: ["частная практика"]
|
|
61
|
+
|
|
62
|
+
- user_input: "У нас государственное финансирование, бюджет ограничен"
|
|
63
|
+
expected_keywords: ["понимаю", "бюджет", "ограничен"]
|
|
64
|
+
forbidden_keywords: ["не подходит"]
|
|
65
|
+
|
|
66
|
+
- user_input: "Есть ли льготные условия для госучреждений?"
|
|
67
|
+
expected_keywords: ["льготы", "скидк", "условия"]
|
|
68
|
+
forbidden_keywords: ["льгот нет"]
|
|
69
|
+
|
|
70
|
+
- user_input: "Можно ли отправить нескольких врачей от больницы?"
|
|
71
|
+
expected_keywords: ["можно", "группов", "врачей"]
|
|
72
|
+
forbidden_keywords: ["только одного"]
|
|
73
|
+
|
|
74
|
+
- name: "Стоматолог планирует открытие собственной клиники"
|
|
75
|
+
steps:
|
|
76
|
+
- user_input: "Привет! Я стоматолог, работаю в найме 5 лет"
|
|
77
|
+
expected_keywords: ["привет", "стоматолог", "лет"]
|
|
78
|
+
forbidden_keywords: ["не для вас"]
|
|
79
|
+
|
|
80
|
+
- user_input: "Планирую открыть свою клинику в следующем году"
|
|
81
|
+
expected_keywords: ["открыти", "клинику", "планы"]
|
|
82
|
+
forbidden_keywords: ["не советую"]
|
|
83
|
+
|
|
84
|
+
- user_input: "Боюсь не справиться с управлением и маркетингом"
|
|
85
|
+
expected_keywords: ["поможем", "управлени", "маркетинг"]
|
|
86
|
+
forbidden_keywords: ["сложно будет"]
|
|
87
|
+
|
|
88
|
+
- user_input: "Есть ли программа для начинающих предпринимателей?"
|
|
89
|
+
expected_keywords: ["программа", "начинающ", "предпринимател"]
|
|
90
|
+
forbidden_keywords: ["только для опытных"]
|
|
91
|
+
|
|
92
|
+
- name: "Опытный бизнесмен ищет новые возможности"
|
|
93
|
+
steps:
|
|
94
|
+
- user_input: "Здравствуйте, у меня успешный бизнес в IT"
|
|
95
|
+
expected_keywords: ["здравствуйте", "бизнес", "успешн"]
|
|
96
|
+
forbidden_keywords: ["не подходит"]
|
|
97
|
+
|
|
98
|
+
- user_input: "Думаю инвестировать в медицину, перспективно ли?"
|
|
99
|
+
expected_keywords: ["перспективн", "медицина", "инвестици"]
|
|
100
|
+
forbidden_keywords: ["не стоит"]
|
|
101
|
+
|
|
102
|
+
- user_input: "Какие направления сейчас самые прибыльные?"
|
|
103
|
+
expected_keywords: ["прибыльн", "направлени", "доходн"]
|
|
104
|
+
forbidden_keywords: ["не знаю"]
|
|
105
|
+
|
|
106
|
+
- user_input: "Сколько нужно вложить для старта?"
|
|
107
|
+
expected_keywords: ["вложени", "стартов", "капитал"]
|
|
108
|
+
forbidden_keywords: ["очень много"]
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
scenarios:
|
|
2
|
+
- name: "Первое знакомство с потенциальным клиентом"
|
|
3
|
+
steps:
|
|
4
|
+
- user_input: "Здравствуйте"
|
|
5
|
+
expected_keywords: ["здравствуйте", "зовут"]
|
|
6
|
+
forbidden_keywords: ["пока", "до свидания"]
|
|
7
|
+
|
|
8
|
+
- user_input: "Сколько стоит участие?"
|
|
9
|
+
expected_keywords: ["рубл", "пакет", "минимум"]
|
|
10
|
+
forbidden_keywords: ["бесплатно", "даром"]
|
|
11
|
+
|
|
12
|
+
- user_input: "Это дорого для меня"
|
|
13
|
+
expected_keywords: ["понимаю", "инвестиция"]
|
|
14
|
+
forbidden_keywords: ["согласен", "дешево"]
|
|
15
|
+
|
|
16
|
+
- name: "Скептично настроенный клиент"
|
|
17
|
+
steps:
|
|
18
|
+
- user_input: "Привет, расскажите про конференцию"
|
|
19
|
+
expected_keywords: ["конференция", "growthmed"]
|
|
20
|
+
forbidden_keywords: ["не знаю", "отмена"]
|
|
21
|
+
|
|
22
|
+
- user_input: "А точно ли это поможет моему бизнесу?"
|
|
23
|
+
expected_keywords: ["поможет", "результат", "опыт"]
|
|
24
|
+
forbidden_keywords: ["не уверен", "гарантий нет"]
|
|
25
|
+
|
|
26
|
+
- user_input: "Думаю, это пустая трата времени"
|
|
27
|
+
expected_keywords: ["понимаю", "ценность"]
|
|
28
|
+
forbidden_keywords: ["пустая трата", "согласен", "действительно"]
|
|
29
|
+
|
|
30
|
+
- name: "Клиент интересуется деталями"
|
|
31
|
+
steps:
|
|
32
|
+
- user_input: "Добрый день, можете помочь?"
|
|
33
|
+
expected_keywords: ["помочь", "рад"]
|
|
34
|
+
forbidden_keywords: ["не могу", "отказ"]
|
|
35
|
+
|
|
36
|
+
- user_input: "Где будет проходить конференция?"
|
|
37
|
+
expected_keywords: ["москв", "адрес"]
|
|
38
|
+
forbidden_keywords: ["не знаю где"]
|
|
39
|
+
|
|
40
|
+
- user_input: "Кто будет выступать?"
|
|
41
|
+
expected_keywords: ["эксперт", "спикер"]
|
|
42
|
+
forbidden_keywords: ["не знаем", "секрет"]
|
|
43
|
+
|
|
44
|
+
- user_input: "Какие гарантии результата?"
|
|
45
|
+
expected_keywords: ["результат", "опыт"]
|
|
46
|
+
forbidden_keywords: ["никаких гарантий"]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
🎯 **Чеклист соблюдения 152-ФЗ для медицинских клиник**
|
|
2
|
+
|
|
3
|
+
Актуальные требования и практические рекомендации для безопасной работы с персональными данными пациентов.
|
|
4
|
+
|
|
5
|
+
📋 **В чеклисте:** политики, согласия, техзащита, самопроверка
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
**Кстати, вопрос:** Слышали об одной из крупнейших конференций в РФ по росту медицинского бизнеса GrowthMED 24-25 октября в Москве?
|
|
10
|
+
|
|
11
|
+
1) Не слышал(а)
|
|
12
|
+
2) Да, интересует
|
|
13
|
+
3) Уже купил(а) билет
|
|
14
|
+
4) Слышал(а), но не интересно
|
|
15
|
+
|
|
16
|
+
**Просто напишите один из вариантов** — это поможет мне лучше вам помочь! 😊
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Core модули smart_bot_factory
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from ..core.bot_utils import setup_utils_handlers, parse_ai_response, process_events
|
|
6
|
+
from ..core.decorators import event_handler, schedule_task
|
|
7
|
+
from ..core.message_sender import send_message_by_ai, send_message_by_human
|
|
8
|
+
from ..core.states import UserStates, AdminStates
|
|
9
|
+
from ..core.conversation_manager import ConversationManager
|
|
10
|
+
|
|
11
|
+
__all__ = [
|
|
12
|
+
'setup_utils_handlers',
|
|
13
|
+
'parse_ai_response',
|
|
14
|
+
'process_events',
|
|
15
|
+
'event_handler',
|
|
16
|
+
'schedule_task',
|
|
17
|
+
'send_message_by_ai',
|
|
18
|
+
'send_message_by_human',
|
|
19
|
+
'UserStates',
|
|
20
|
+
'AdminStates',
|
|
21
|
+
'ConversationManager'
|
|
22
|
+
]
|