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
|
@@ -0,0 +1,466 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: smart-bot-factory
|
|
3
|
+
Version: 0.1.5
|
|
4
|
+
Summary: Библиотека для создания умных чат-ботов
|
|
5
|
+
Author-email: Kopatych <herousplay@gmail.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
License-File: LICENSE
|
|
8
|
+
Keywords: chatbot,cli,openai,supabase,telegram
|
|
9
|
+
Classifier: Development Status :: 4 - Beta
|
|
10
|
+
Classifier: Environment :: Console
|
|
11
|
+
Classifier: Framework :: AsyncIO
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Topic :: Communications :: Chat
|
|
21
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
|
+
Requires-Python: >=3.9
|
|
23
|
+
Requires-Dist: aiofiles>=23.0.0
|
|
24
|
+
Requires-Dist: aiogram>=3.4.1
|
|
25
|
+
Requires-Dist: click>=8.0.0
|
|
26
|
+
Requires-Dist: openai>=1.12.0
|
|
27
|
+
Requires-Dist: project-root-finder>=1.9
|
|
28
|
+
Requires-Dist: python-dotenv>=1.0.1
|
|
29
|
+
Requires-Dist: pytz>=2023.3
|
|
30
|
+
Requires-Dist: pyyaml>=6.0.2
|
|
31
|
+
Requires-Dist: supabase>=2.3.4
|
|
32
|
+
Description-Content-Type: text/markdown
|
|
33
|
+
|
|
34
|
+
# Smart Bot Factory
|
|
35
|
+
|
|
36
|
+
Инструмент для создания умных чат-ботов с поддержкой AI, административной панели и тестирования.
|
|
37
|
+
|
|
38
|
+
## 🚀 Быстрый старт
|
|
39
|
+
|
|
40
|
+
### Установка
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
pip install smart-bot-factory
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Создание первого бота
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# Создать нового бота
|
|
50
|
+
sbf create my-bot
|
|
51
|
+
|
|
52
|
+
# Запустить бота
|
|
53
|
+
sbf run my-bot
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## 📋 Команды CLI
|
|
57
|
+
|
|
58
|
+
### `sbf create <bot_id> [template]`
|
|
59
|
+
|
|
60
|
+
Создает нового бота с указанным ID.
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# Создать бота с базовым шаблоном
|
|
64
|
+
sbf create my-bot
|
|
65
|
+
|
|
66
|
+
# Создать бота на основе существующего
|
|
67
|
+
sbf create new-bot existing-bot
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Что создается:**
|
|
71
|
+
- 📁 `bots/my-bot/` - папка с конфигурацией бота
|
|
72
|
+
- 📄 `my-bot.py` - файл для запуска бота
|
|
73
|
+
- ⚙️ `.env` - файл конфигурации
|
|
74
|
+
- 📝 Промпты, тесты, файлы из шаблона
|
|
75
|
+
|
|
76
|
+
### `sbf run <bot_id>`
|
|
77
|
+
|
|
78
|
+
Запускает бота в рабочем режиме.
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
sbf run my-bot
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Автоматически:**
|
|
85
|
+
- ✅ Проверяет наличие всех необходимых файлов
|
|
86
|
+
- ⚙️ Загружает конфигурацию из `.env`
|
|
87
|
+
- 🚀 Запускает бота
|
|
88
|
+
|
|
89
|
+
### `sbf test <bot_id> [options]`
|
|
90
|
+
|
|
91
|
+
Запускает тесты бота.
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# Все тесты
|
|
95
|
+
sbf test my-bot
|
|
96
|
+
|
|
97
|
+
# Конкретный файл тестов
|
|
98
|
+
sbf test my-bot scenario_examples.yaml
|
|
99
|
+
|
|
100
|
+
# Подробный вывод
|
|
101
|
+
sbf test my-bot -v
|
|
102
|
+
|
|
103
|
+
# Больше потоков для быстрого тестирования
|
|
104
|
+
sbf test my-bot --max-concurrent 10
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### `sbf list`
|
|
108
|
+
|
|
109
|
+
Показывает список всех доступных ботов.
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
sbf list
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### `sbf config <bot_id>`
|
|
116
|
+
|
|
117
|
+
Открывает конфигурацию бота в редакторе.
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
sbf config my-bot
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### `sbf prompts <bot_id> [options]`
|
|
124
|
+
|
|
125
|
+
Управление промптами бота.
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# Показать список промптов
|
|
129
|
+
sbf prompts my-bot --list
|
|
130
|
+
|
|
131
|
+
# Редактировать промпт
|
|
132
|
+
sbf prompts my-bot --edit system_prompt
|
|
133
|
+
|
|
134
|
+
# Добавить новый промпт
|
|
135
|
+
sbf prompts my-bot --add custom_prompt
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### `sbf copy <source_bot> <new_bot>`
|
|
139
|
+
|
|
140
|
+
Копирует существующего бота как шаблон.
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
# Скопировать бота
|
|
144
|
+
sbf copy my-bot my-bot-v2
|
|
145
|
+
|
|
146
|
+
# Перезаписать существующего бота
|
|
147
|
+
sbf copy my-bot my-bot-v2 --force
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### `sbf rm <bot_id>`
|
|
151
|
+
|
|
152
|
+
Удаляет бота и все его файлы.
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
# Удалить с подтверждением
|
|
156
|
+
sbf rm my-bot
|
|
157
|
+
|
|
158
|
+
# Удалить без подтверждения
|
|
159
|
+
sbf rm my-bot --force
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### `sbf link`
|
|
163
|
+
|
|
164
|
+
Создает UTM-ссылки для бота.
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
sbf link
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### `sbf path`
|
|
171
|
+
|
|
172
|
+
Показывает путь к проекту.
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
sbf path
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
## 🏗️ Структура проекта
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
project/
|
|
182
|
+
├── bots/
|
|
183
|
+
│ └── my-bot/
|
|
184
|
+
│ ├── .env # Конфигурация
|
|
185
|
+
│ ├── prompts/ # Промпты
|
|
186
|
+
│ │ ├── system_prompt.txt
|
|
187
|
+
│ │ ├── welcome_message.txt
|
|
188
|
+
│ │ └── final_instructions.txt
|
|
189
|
+
│ ├── tests/ # Тесты
|
|
190
|
+
│ │ └── scenario_examples.yaml
|
|
191
|
+
│ ├── reports/ # Отчеты тестирования
|
|
192
|
+
│ ├── welcome_files/ # Файлы для приветствия
|
|
193
|
+
│ └── files/ # Дополнительные файлы
|
|
194
|
+
├── my-bot.py # Файл запуска бота
|
|
195
|
+
└── smart_bot_factory/ # Библиотека
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## ⚙️ Конфигурация (.env)
|
|
199
|
+
|
|
200
|
+
```env
|
|
201
|
+
# Telegram
|
|
202
|
+
TELEGRAM_BOT_TOKEN=your_telegram_bot_token_here
|
|
203
|
+
|
|
204
|
+
# Supabase
|
|
205
|
+
SUPABASE_URL=https://your-project.supabase.co
|
|
206
|
+
SUPABASE_KEY=your_supabase_anon_key
|
|
207
|
+
|
|
208
|
+
# OpenAI
|
|
209
|
+
OPENAI_API_KEY=sk-your-openai-api-key
|
|
210
|
+
OPENAI_MODEL=gpt-4
|
|
211
|
+
OPENAI_MAX_TOKENS=1500
|
|
212
|
+
OPENAI_TEMPERATURE=0.7
|
|
213
|
+
|
|
214
|
+
# Администраторы
|
|
215
|
+
ADMIN_TELEGRAM_IDS=123456789,987654321
|
|
216
|
+
ADMIN_SESSION_TIMEOUT_MINUTES=30
|
|
217
|
+
|
|
218
|
+
# Настройки
|
|
219
|
+
DEBUG_MODE=false
|
|
220
|
+
MAX_CONTEXT_MESSAGES=50
|
|
221
|
+
LOG_LEVEL=INFO
|
|
222
|
+
MESSAGE_PARSE_MODE=Markdown
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
## 🧪 Тестирование
|
|
226
|
+
|
|
227
|
+
### Формат тестов (YAML)
|
|
228
|
+
|
|
229
|
+
```yaml
|
|
230
|
+
scenarios:
|
|
231
|
+
- name: "Тест приветствия"
|
|
232
|
+
steps:
|
|
233
|
+
- user_input: "Привет!"
|
|
234
|
+
expected_keywords:
|
|
235
|
+
- ["привет", "здравствуйте", "добро пожаловать"]
|
|
236
|
+
- ["помочь", "помощь"]
|
|
237
|
+
forbidden_keywords: ["пока", "до свидания"]
|
|
238
|
+
|
|
239
|
+
- name: "Тест с синонимами"
|
|
240
|
+
steps:
|
|
241
|
+
- user_input: "Сколько это стоит?"
|
|
242
|
+
expected_keywords:
|
|
243
|
+
- ["стоит", "цена", "стоимость", "сколько"]
|
|
244
|
+
- ["рубл", "пакет", "вариант"]
|
|
245
|
+
forbidden_keywords: ["бесплатно"]
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### Поддержка синонимов
|
|
249
|
+
|
|
250
|
+
В `expected_keywords` можно использовать:
|
|
251
|
+
- **Одно слово:** `["привет"]`
|
|
252
|
+
- **Синонимы:** `[["привет", "здравствуйте", "добро пожаловать"]]`
|
|
253
|
+
- **Смешанный формат:** `["привет", ["здравствуйте", "добро пожаловать"]]`
|
|
254
|
+
|
|
255
|
+
## 🤖 Программирование ботов
|
|
256
|
+
|
|
257
|
+
### Основной файл бота
|
|
258
|
+
|
|
259
|
+
```python
|
|
260
|
+
#!/usr/bin/env python3
|
|
261
|
+
"""
|
|
262
|
+
Бот my-bot - создан с помощью Smart Bot Factory
|
|
263
|
+
"""
|
|
264
|
+
|
|
265
|
+
import asyncio
|
|
266
|
+
from smart_bot_factory.core import event_handler, send_message_by_human
|
|
267
|
+
from smart_bot_factory.creation import BotBuilder
|
|
268
|
+
|
|
269
|
+
# =============================================================================
|
|
270
|
+
# ОБРАБОТЧИКИ СОБЫТИЙ
|
|
271
|
+
# =============================================================================
|
|
272
|
+
|
|
273
|
+
@event_handler("appointment_booking", "Записывает пользователя на прием")
|
|
274
|
+
async def handle_appointment(user_id: int, event_data: dict):
|
|
275
|
+
"""Обработчик записи на прием"""
|
|
276
|
+
await send_message_by_human(
|
|
277
|
+
user_id=user_id,
|
|
278
|
+
message_text="✅ Ваша запись на прием подтверждена!"
|
|
279
|
+
)
|
|
280
|
+
|
|
281
|
+
return {
|
|
282
|
+
"status": "success",
|
|
283
|
+
"appointment_id": "123"
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
# =============================================================================
|
|
287
|
+
# ОСНОВНАЯ ФУНКЦИЯ
|
|
288
|
+
# =============================================================================
|
|
289
|
+
|
|
290
|
+
async def main():
|
|
291
|
+
"""Основная функция запуска бота"""
|
|
292
|
+
try:
|
|
293
|
+
# Создаем и собираем бота
|
|
294
|
+
bot_builder = BotBuilder("my-bot")
|
|
295
|
+
await bot_builder.build()
|
|
296
|
+
|
|
297
|
+
# Запускаем бота
|
|
298
|
+
await bot_builder.start()
|
|
299
|
+
|
|
300
|
+
except Exception as e:
|
|
301
|
+
print(f"❌ Ошибка запуска бота: {e}")
|
|
302
|
+
raise
|
|
303
|
+
|
|
304
|
+
if __name__ == "__main__":
|
|
305
|
+
asyncio.run(main())
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### Обработчики событий
|
|
309
|
+
|
|
310
|
+
```python
|
|
311
|
+
@event_handler("phone_collection", "Собирает номер телефона")
|
|
312
|
+
async def collect_phone(user_id: int, event_data: dict):
|
|
313
|
+
"""Сбор номера телефона"""
|
|
314
|
+
phone = event_data.get('phone')
|
|
315
|
+
# Логика сохранения номера
|
|
316
|
+
|
|
317
|
+
return {
|
|
318
|
+
"status": "success",
|
|
319
|
+
"phone": phone
|
|
320
|
+
}
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
## 👑 Административная панель
|
|
324
|
+
|
|
325
|
+
### Команды для админов
|
|
326
|
+
|
|
327
|
+
- `/admin` - Вход в режим администратора
|
|
328
|
+
- `/чаты` - Показать активные диалоги
|
|
329
|
+
- `/чат <user_id>` - Начать диалог с пользователем
|
|
330
|
+
- `/завершить` - Завершить текущий диалог
|
|
331
|
+
- `/отладка <user_id>` - Отладочная информация
|
|
332
|
+
|
|
333
|
+
### Живой чат
|
|
334
|
+
|
|
335
|
+
Админы могут:
|
|
336
|
+
- 💬 Вести диалоги с пользователями в реальном времени
|
|
337
|
+
- 📊 Видеть историю сообщений
|
|
338
|
+
- ⏰ Автоматическое завершение диалогов по таймауту
|
|
339
|
+
- 🎛️ Управление через кнопки
|
|
340
|
+
|
|
341
|
+
## 📊 Отчеты и аналитика
|
|
342
|
+
|
|
343
|
+
### Тестирование
|
|
344
|
+
|
|
345
|
+
- 📈 Детальные отчеты по каждому тесту
|
|
346
|
+
- ⏱️ Время выполнения тестов
|
|
347
|
+
- 📊 Статистика прохождения
|
|
348
|
+
- 💾 Сохранение отчетов в `bots/my-bot/reports/`
|
|
349
|
+
|
|
350
|
+
### Логирование
|
|
351
|
+
|
|
352
|
+
```bash
|
|
353
|
+
# Уровни логирования
|
|
354
|
+
LOG_LEVEL=DEBUG # Подробная отладка
|
|
355
|
+
LOG_LEVEL=INFO # Основная информация
|
|
356
|
+
LOG_LEVEL=WARNING # Только предупреждения
|
|
357
|
+
LOG_LEVEL=ERROR # Только ошибки
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
## 🔧 Расширенные возможности
|
|
361
|
+
|
|
362
|
+
### UTM-трекинг
|
|
363
|
+
|
|
364
|
+
```bash
|
|
365
|
+
# Генерация UTM-ссылок
|
|
366
|
+
sbf link
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
Поддерживаемые параметры:
|
|
370
|
+
- `utm_source` - источник трафика
|
|
371
|
+
- `utm_medium` - канал
|
|
372
|
+
- `utm_campaign` - кампания
|
|
373
|
+
- `utm_content` - контент
|
|
374
|
+
- `utm_term` - ключевое слово
|
|
375
|
+
|
|
376
|
+
### Файлы и медиа
|
|
377
|
+
|
|
378
|
+
- 📁 `welcome_files/` - файлы для приветствия
|
|
379
|
+
- 📎 `files/` - дополнительные файлы бота
|
|
380
|
+
- 🖼️ Поддержка изображений, документов, видео
|
|
381
|
+
|
|
382
|
+
### Кастомизация промптов
|
|
383
|
+
|
|
384
|
+
```bash
|
|
385
|
+
# Редактирование системного промпта
|
|
386
|
+
sbf prompts my-bot --edit system_prompt
|
|
387
|
+
|
|
388
|
+
# Создание нового промпта
|
|
389
|
+
sbf prompts my-bot --add custom_instructions
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
## 🆘 Поддержка и помощь
|
|
393
|
+
|
|
394
|
+
### Частые проблемы
|
|
395
|
+
|
|
396
|
+
1. **Бот не запускается**
|
|
397
|
+
- Проверьте `.env` файл
|
|
398
|
+
- Убедитесь в правильности токенов
|
|
399
|
+
- Проверьте логи: `LOG_LEVEL=DEBUG`
|
|
400
|
+
|
|
401
|
+
2. **Тесты не проходят**
|
|
402
|
+
- Проверьте формат YAML
|
|
403
|
+
- Используйте `-v` для подробного вывода
|
|
404
|
+
- Убедитесь в корректности ключевых слов
|
|
405
|
+
|
|
406
|
+
3. **Админские функции не работают**
|
|
407
|
+
- Проверьте `ADMIN_TELEGRAM_IDS` в `.env`
|
|
408
|
+
- Убедитесь, что ID указан правильно
|
|
409
|
+
- Используйте `/admin` для входа в режим
|
|
410
|
+
|
|
411
|
+
### Отладка
|
|
412
|
+
|
|
413
|
+
```bash
|
|
414
|
+
# Включить режим отладки
|
|
415
|
+
DEBUG_MODE=true
|
|
416
|
+
|
|
417
|
+
# Подробные логи
|
|
418
|
+
LOG_LEVEL=DEBUG
|
|
419
|
+
|
|
420
|
+
# Тестирование с подробным выводом
|
|
421
|
+
sbf test my-bot -v
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
## 📚 Примеры
|
|
425
|
+
|
|
426
|
+
### Полный цикл разработки
|
|
427
|
+
|
|
428
|
+
```bash
|
|
429
|
+
# 1. Создать бота
|
|
430
|
+
sbf create sales-bot
|
|
431
|
+
|
|
432
|
+
# 2. Настроить конфигурацию
|
|
433
|
+
sbf config sales-bot
|
|
434
|
+
|
|
435
|
+
# 3. Редактировать промпты
|
|
436
|
+
sbf prompts sales-bot --edit system_prompt
|
|
437
|
+
|
|
438
|
+
# 4. Создать тесты
|
|
439
|
+
sbf prompts sales-bot --add test_scenarios
|
|
440
|
+
|
|
441
|
+
# 5. Запустить тесты
|
|
442
|
+
sbf test sales-bot -v
|
|
443
|
+
|
|
444
|
+
# 6. Запустить бота
|
|
445
|
+
sbf run sales-bot
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
### Копирование и модификация
|
|
449
|
+
|
|
450
|
+
```bash
|
|
451
|
+
# Скопировать успешного бота
|
|
452
|
+
sbf copy sales-bot sales-bot-v2
|
|
453
|
+
|
|
454
|
+
# Модифицировать копию
|
|
455
|
+
sbf prompts sales-bot-v2 --edit system_prompt
|
|
456
|
+
|
|
457
|
+
# Протестировать изменения
|
|
458
|
+
sbf test sales-bot-v2
|
|
459
|
+
|
|
460
|
+
# Запустить новую версию
|
|
461
|
+
sbf run sales-bot-v2
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
---
|
|
465
|
+
|
|
466
|
+
**Smart Bot Factory** - создавайте умных ботов быстро и эффективно! 🚀
|
|
@@ -1,59 +1,54 @@
|
|
|
1
|
-
smart_bot_factory/__init__.py,sha256=
|
|
2
|
-
smart_bot_factory/cli.py,sha256=
|
|
1
|
+
smart_bot_factory/__init__.py,sha256=W5k9awLVi0R_N3fSul7VNkKRdSfExZjNb_M2yNzepg8,102
|
|
2
|
+
smart_bot_factory/cli.py,sha256=_o8e89crFQVJr5zwdl4P9X9ZzBaG27X3Rrm3bfLfsM8,37022
|
|
3
3
|
smart_bot_factory/config.py,sha256=kB3G2hGMrrCSOAvlrddf8x43bgfgEaQqOCKOeELAzfM,11640
|
|
4
4
|
smart_bot_factory/setup_checker.py,sha256=fqRzyptyMzcb2I0boUaj0rWLdarqaN6ViX6suwTEeWc,20123
|
|
5
5
|
smart_bot_factory/utm_link_generator.py,sha256=jw7c84Y_ZvLpV4jaBWw0GK3-lCUKIIa8sZ8YNxoWIlc,4166
|
|
6
6
|
smart_bot_factory/admin/__init__.py,sha256=aA8VMXkFn7TiWAMeHzkXCPFGEPxJvL2ECdFASSr7jtU,397
|
|
7
|
-
smart_bot_factory/admin/admin_logic.py,sha256=
|
|
7
|
+
smart_bot_factory/admin/admin_logic.py,sha256=guNhwm_LmliMACN_KX7z7emNwyhkN7UmAhFda7nsVMk,20736
|
|
8
8
|
smart_bot_factory/admin/admin_manager.py,sha256=xlyG9mIjPmtUhS4E9lp36T7o5Kfp5PZpJ-r1QjnSn5g,6394
|
|
9
9
|
smart_bot_factory/admin/admin_migration.sql,sha256=kleMPJBSe2Z7ZZz7rNyOX_yoh4GZivGesqAX90U5PGs,5667
|
|
10
10
|
smart_bot_factory/admin/admin_tester.py,sha256=PGFpf7fmD5Wxea31xR2ZM_A_QpvrB73gsbxvUrHQBkg,6463
|
|
11
11
|
smart_bot_factory/admin/timeout_checker.py,sha256=TzA2FGrxwE8fuhKerGnGrt4qYMEZdIR8x3SQAnIW5YQ,24490
|
|
12
12
|
smart_bot_factory/analytics/__init__.py,sha256=kPkReaG-cch-eDrTXjynTY1BZL4JxPytxKaAvvPZrvU,137
|
|
13
13
|
smart_bot_factory/analytics/analytics_manager.py,sha256=JQgKGkPPt07vI6KYWpa7OAimgl5SyF5cbiM89N4LKIQ,16298
|
|
14
|
-
smart_bot_factory/
|
|
15
|
-
smart_bot_factory/configs/growthmed-helper/prompts/1sales_context.txt,sha256=oB2fyS1gmea_ECELiKauL9eGr0_0JCEdFo5_P5jcYgM,812
|
|
16
|
-
smart_bot_factory/configs/growthmed-helper/prompts/2product_info.txt,sha256=tWP9gdn58vu9BhYpDx1lGuPNT24j5p1XPiCSD-CdXiU,24191
|
|
17
|
-
smart_bot_factory/configs/growthmed-helper/prompts/3objection_handling.txt,sha256=zwUGKp3mp1dAQUPjLQsCsczwRJJOqn9GGvVzVBCpvfY,6985
|
|
18
|
-
smart_bot_factory/configs/growthmed-helper/prompts/final_instructions.txt,sha256=EmzdgZUoidcuS4G8spGdTZ3-ky5ZdX04-VlVUXmb-_g,17628
|
|
19
|
-
smart_bot_factory/configs/growthmed-helper/prompts/help_message.txt,sha256=q_vNNWsq5rU0xbjKWeyD_lKAy7Q9ABpDZfgpgQNHoyo,1914
|
|
20
|
-
smart_bot_factory/configs/growthmed-helper/prompts/welcome_message.txt,sha256=kE_EqEp5-bphCfLgbVm76GFkd04KgluZKh_EjNsWj2o,570
|
|
21
|
-
smart_bot_factory/configs/growthmed-helper/welcome_file/welcome_file_msg.txt,sha256=Db21Mm0r8SBWFdX9EeIF2FZtLQ2cvuwVlSRJd2KEYCg,922
|
|
22
|
-
smart_bot_factory/configs/growthmed-helper/welcome_file/Чек лист по 152ФЗ и 323ФЗ для медицины.pdf,sha256=BiAiQHNnQXJPMsks9AeL6s0beEjRFkRMJLMlAn4WorA,5284954
|
|
14
|
+
smart_bot_factory/clients/__init__.py,sha256=Uqnf_GjPdsWFMkUT1OPJvF4mZ0tRUn33-Xk57iHgX-g,1099
|
|
23
15
|
smart_bot_factory/configs/growthmed-october-24/prompts/1sales_context.txt,sha256=uJ4WviYIr9xJaFdu-APrrmBgIWVwdJymcN04upIviLY,1614
|
|
24
16
|
smart_bot_factory/configs/growthmed-october-24/prompts/2product_info.txt,sha256=tWP9gdn58vu9BhYpDx1lGuPNT24j5p1XPiCSD-CdXiU,24191
|
|
25
17
|
smart_bot_factory/configs/growthmed-october-24/prompts/3objection_handling.txt,sha256=zwUGKp3mp1dAQUPjLQsCsczwRJJOqn9GGvVzVBCpvfY,6985
|
|
26
|
-
smart_bot_factory/configs/growthmed-october-24/prompts/final_instructions.txt,sha256=
|
|
18
|
+
smart_bot_factory/configs/growthmed-october-24/prompts/final_instructions.txt,sha256=UcUsCVIIpOmMzz361IFQIgUGinb47rfRaSlwDzEaiuE,15964
|
|
27
19
|
smart_bot_factory/configs/growthmed-october-24/prompts/help_message.txt,sha256=q_vNNWsq5rU0xbjKWeyD_lKAy7Q9ABpDZfgpgQNHoyo,1914
|
|
28
20
|
smart_bot_factory/configs/growthmed-october-24/prompts/welcome_message.txt,sha256=sGgaYqxYqQYiyfaA-BgUgjbt5Yxx56ZEQEPYTAy7h60,572
|
|
29
21
|
smart_bot_factory/configs/growthmed-october-24/reports/test_20250924_064229.txt,sha256=v24DY1_dL7wvDQzY3JVwc4I_5t5rgSe8IOGuUDzQkH0,58752
|
|
30
22
|
smart_bot_factory/configs/growthmed-october-24/reports/test_20250924_064335.txt,sha256=qLcF79mUuzlpSGlLrYTm2HVYsTym7wqF7ky4tYlU24s,1707
|
|
31
23
|
smart_bot_factory/configs/growthmed-october-24/reports/test_20250924_064638.txt,sha256=dA_svJJXVf2c0KDkeS4BLhg4UVIfzhC1Jba9da-KayM,2055
|
|
32
|
-
smart_bot_factory/configs/growthmed-october-24/tests/quick_scenarios.yaml,sha256=
|
|
24
|
+
smart_bot_factory/configs/growthmed-october-24/tests/quick_scenarios.yaml,sha256=DXGFTPNv22QluZsqkbbKv0SmJlDezKUuWwoDnewqpPI,9716
|
|
33
25
|
smart_bot_factory/configs/growthmed-october-24/tests/realistic_scenarios.yaml,sha256=Z1V540aHgWamPWzzMKfRlSFfUwFQpfF_IKrxnYayJ0M,6897
|
|
34
26
|
smart_bot_factory/configs/growthmed-october-24/tests/scenario_examples.yaml,sha256=bzDulOU4a2LyWlcHzlQU8GYhOky2WTfyizGfjX4ioMY,2436
|
|
35
27
|
smart_bot_factory/configs/growthmed-october-24/welcome_file/welcome_file_msg.txt,sha256=Db21Mm0r8SBWFdX9EeIF2FZtLQ2cvuwVlSRJd2KEYCg,922
|
|
36
28
|
smart_bot_factory/configs/growthmed-october-24/welcome_file/Чек лист по 152ФЗ и 323ФЗ для медицины.pdf,sha256=BiAiQHNnQXJPMsks9AeL6s0beEjRFkRMJLMlAn4WorA,5284954
|
|
37
|
-
smart_bot_factory/core/__init__.py,sha256=
|
|
38
|
-
smart_bot_factory/core/bot_utils.py,sha256=
|
|
39
|
-
smart_bot_factory/core/conversation_manager.py,sha256=
|
|
40
|
-
smart_bot_factory/core/decorators.py,sha256=
|
|
41
|
-
smart_bot_factory/core/
|
|
29
|
+
smart_bot_factory/core/__init__.py,sha256=vJpLq2ElaVcJm7dwXmb-KSkKad-devZ-520PMblBP04,1056
|
|
30
|
+
smart_bot_factory/core/bot_utils.py,sha256=BQwbrNOITPRHlC2cKUHNcyv1vBytvyPL6eGVr9trsrk,42396
|
|
31
|
+
smart_bot_factory/core/conversation_manager.py,sha256=eoHL7MCEz68DRvTVwRwZgf2PWwGv4T6J9D-I-thETi8,28289
|
|
32
|
+
smart_bot_factory/core/decorators.py,sha256=F0zguNxz5G5aWOsOlKg_Kb4s8193PVabpkIpBBHCph8,45251
|
|
33
|
+
smart_bot_factory/core/globals.py,sha256=X_1fxHkZ14WhCtwcjPdClwlu-ErPeTS1-Iq7fkNPuvw,2632
|
|
34
|
+
smart_bot_factory/core/message_sender.py,sha256=QjmJdMLb0PEsnN8jdD5tdZhwboYpMGSf7kSGCNlT00g,10123
|
|
35
|
+
smart_bot_factory/core/router.py,sha256=wEm8r90P8-JpgFwiwTDr6xnrYzi1hOdOGGm1kqZXWxE,8165
|
|
36
|
+
smart_bot_factory/core/router_manager.py,sha256=zDi2BdAB-MPSbjpA50nbMtQiT6cpK0suqtkTXLriWiA,8411
|
|
42
37
|
smart_bot_factory/core/states.py,sha256=AOc19_yAsDW_8md-2oiowjBhuW3bwcsmMxszCXWZZTQ,355
|
|
43
|
-
smart_bot_factory/creation/__init__.py,sha256=
|
|
44
|
-
smart_bot_factory/creation/bot_builder.py,sha256=
|
|
45
|
-
smart_bot_factory/creation/bot_testing.py,sha256=
|
|
38
|
+
smart_bot_factory/creation/__init__.py,sha256=IgDk8GDS3pg7Pw_Et41J33ZmeZIU5dRwQdTmYKXfJfE,128
|
|
39
|
+
smart_bot_factory/creation/bot_builder.py,sha256=ZvQuI_phoaCF_CVwQJ2c0z3RpCwm3oVoxJMsg4OjB34,22371
|
|
40
|
+
smart_bot_factory/creation/bot_testing.py,sha256=JDWXyJfZmbgo-DLdAPk8Sd9FiehtHHa4sLD17lBrTOc,55669
|
|
46
41
|
smart_bot_factory/database/database_structure.sql,sha256=26gFtMC2jdQGQF7Zb_F4Br56rMd4hUDTk9FkNZYneLo,2789
|
|
47
42
|
smart_bot_factory/database/schema.sql,sha256=-6kOmA9QnSkUtmGI2iQRbTvbdiqOhEOQcuz1lJn79mU,28059
|
|
48
|
-
smart_bot_factory/handlers/handlers.py,sha256=
|
|
49
|
-
smart_bot_factory/integrations/__init__.py,sha256=
|
|
43
|
+
smart_bot_factory/handlers/handlers.py,sha256=0ZdiWMwAx-EXx3Fmwk2nilhl76KTuyMCQt2C70Ttlvo,32530
|
|
44
|
+
smart_bot_factory/integrations/__init__.py,sha256=V-6nxjE7LIpAh6QYxJ1c2Uhb4Vn0L9p79e7dLtYFlOo,134
|
|
50
45
|
smart_bot_factory/integrations/openai_client.py,sha256=aMcDrKO0GEx3ZSVEOGDeDtFCDWSXs6biUfgrbRK8yTU,23180
|
|
51
|
-
smart_bot_factory/integrations/supabase_client.py,sha256=
|
|
46
|
+
smart_bot_factory/integrations/supabase_client.py,sha256=IDpmWzcsGv75bPHpUHla5XuFvvpEz2DGU0Npho0pPzw,41298
|
|
52
47
|
smart_bot_factory/utils/__init__.py,sha256=5zNjw491bj5VkOhoEAwh2hjmv8nldyDOTrG7pbGpz6A,285
|
|
53
48
|
smart_bot_factory/utils/debug_routing.py,sha256=BOoDhKBg7UXe5uHQxRk3TSfPfLPOFqt0N7lAo6kjCOo,4719
|
|
54
49
|
smart_bot_factory/utils/prompt_loader.py,sha256=JSn7CsWnToSbHYtURdeuZn7ectyDqQGrPGHN2ixIGkw,19930
|
|
55
|
-
smart_bot_factory-0.1.
|
|
56
|
-
smart_bot_factory-0.1.
|
|
57
|
-
smart_bot_factory-0.1.
|
|
58
|
-
smart_bot_factory-0.1.
|
|
59
|
-
smart_bot_factory-0.1.
|
|
50
|
+
smart_bot_factory-0.1.5.dist-info/METADATA,sha256=o3cjkQ_Z1zjIWmIh7dmO7GXALTxk0s3arQKTVBvPDp4,13195
|
|
51
|
+
smart_bot_factory-0.1.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
52
|
+
smart_bot_factory-0.1.5.dist-info/entry_points.txt,sha256=ybKEAI0WSb7WoRiey7QE-HHfn88UGV7nxLDxXq7b7SU,50
|
|
53
|
+
smart_bot_factory-0.1.5.dist-info/licenses/LICENSE,sha256=OrK3cwdUTzNzIhJvSPtJaVMoYIyC_sSx5EFE_FDMvGs,1092
|
|
54
|
+
smart_bot_factory-0.1.5.dist-info/RECORD,,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
<role>Ты - персональный помощник по росту медицинского бизнеса.</role>
|
|
2
|
-
|
|
3
|
-
<task>твоя задача - проконсультировать о конференции GrowthMED в Москве 24-25 октября,
|
|
4
|
-
рассказать почему и кому она важна и полезна, а также записать человека на конференцию
|
|
5
|
-
или на консультацию с менеджером по конференции.
|
|
6
|
-
|
|
7
|
-
Если же конференция неинтересна или билет уже куплен - выяснить текущие проблемы-цели бизнеса пользователя
|
|
8
|
-
и предложить услуги самого GrowthMED или ее партнеров.
|
|
9
|
-
</task>
|