smart-bot-factory 0.3.7__py3-none-any.whl → 0.3.9__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.

Files changed (45) hide show
  1. smart_bot_factory/admin/__init__.py +7 -7
  2. smart_bot_factory/admin/admin_events.py +483 -383
  3. smart_bot_factory/admin/admin_logic.py +234 -158
  4. smart_bot_factory/admin/admin_manager.py +68 -53
  5. smart_bot_factory/admin/admin_tester.py +46 -40
  6. smart_bot_factory/admin/timeout_checker.py +201 -153
  7. smart_bot_factory/aiogram_calendar/__init__.py +11 -3
  8. smart_bot_factory/aiogram_calendar/common.py +12 -18
  9. smart_bot_factory/aiogram_calendar/dialog_calendar.py +126 -64
  10. smart_bot_factory/aiogram_calendar/schemas.py +49 -28
  11. smart_bot_factory/aiogram_calendar/simple_calendar.py +94 -50
  12. smart_bot_factory/analytics/analytics_manager.py +414 -392
  13. smart_bot_factory/cli.py +204 -148
  14. smart_bot_factory/config.py +123 -102
  15. smart_bot_factory/core/bot_utils.py +474 -332
  16. smart_bot_factory/core/conversation_manager.py +287 -200
  17. smart_bot_factory/core/decorators.py +1200 -755
  18. smart_bot_factory/core/message_sender.py +287 -266
  19. smart_bot_factory/core/router.py +170 -100
  20. smart_bot_factory/core/router_manager.py +121 -83
  21. smart_bot_factory/core/states.py +4 -3
  22. smart_bot_factory/creation/__init__.py +1 -1
  23. smart_bot_factory/creation/bot_builder.py +320 -242
  24. smart_bot_factory/creation/bot_testing.py +440 -365
  25. smart_bot_factory/dashboard/__init__.py +1 -3
  26. smart_bot_factory/event/__init__.py +2 -7
  27. smart_bot_factory/handlers/handlers.py +676 -472
  28. smart_bot_factory/integrations/openai_client.py +218 -168
  29. smart_bot_factory/integrations/supabase_client.py +948 -637
  30. smart_bot_factory/message/__init__.py +18 -22
  31. smart_bot_factory/router/__init__.py +2 -2
  32. smart_bot_factory/setup_checker.py +162 -126
  33. smart_bot_factory/supabase/__init__.py +1 -1
  34. smart_bot_factory/supabase/client.py +631 -515
  35. smart_bot_factory/utils/__init__.py +2 -3
  36. smart_bot_factory/utils/debug_routing.py +38 -27
  37. smart_bot_factory/utils/prompt_loader.py +153 -120
  38. smart_bot_factory/utils/user_prompt_loader.py +55 -56
  39. smart_bot_factory/utm_link_generator.py +123 -116
  40. {smart_bot_factory-0.3.7.dist-info → smart_bot_factory-0.3.9.dist-info}/METADATA +3 -1
  41. smart_bot_factory-0.3.9.dist-info/RECORD +59 -0
  42. smart_bot_factory-0.3.7.dist-info/RECORD +0 -59
  43. {smart_bot_factory-0.3.7.dist-info → smart_bot_factory-0.3.9.dist-info}/WHEEL +0 -0
  44. {smart_bot_factory-0.3.7.dist-info → smart_bot_factory-0.3.9.dist-info}/entry_points.txt +0 -0
  45. {smart_bot_factory-0.3.7.dist-info → smart_bot_factory-0.3.9.dist-info}/licenses/LICENSE +0 -0
@@ -1,56 +1,55 @@
1
- """
2
- UserPromptLoader - упрощенный PromptLoader для пользователей библиотеки
3
- с автоматическим поиском prompts_dir от корня проекта
4
- """
5
-
6
- import logging
7
- from pathlib import Path
8
- from .prompt_loader import PromptLoader
9
-
10
- logger = logging.getLogger(__name__)
11
-
12
-
13
- class UserPromptLoader(PromptLoader):
14
- """
15
- PromptLoader для пользователей библиотеки с автоматическим поиском prompts_dir
16
-
17
- Автоматически находит папку prompts для указанного бота от корня проекта
18
- Наследуется от базового PromptLoader - все методы доступны
19
- """
20
-
21
- def __init__(self, bot_id: str, prompts_subdir: str = "prompts"):
22
- """
23
- Инициализация загрузчика промптов с автоматическим поиском
24
-
25
- Args:
26
- bot_id: Идентификатор бота
27
- prompts_subdir: Подпапка с промптами (по умолчанию "prompts")
28
-
29
- Example:
30
- # Автоматически найдет bots/my-bot/prompts
31
- loader = UserPromptLoader("my-bot")
32
-
33
- # Или кастомную подпапку
34
- loader = UserPromptLoader("my-bot", "custom_prompts")
35
-
36
- # Наследование для кастомизации
37
- class MyLoader(UserPromptLoader):
38
- def __init__(self, bot_id):
39
- super().__init__(bot_id)
40
- # Добавить свою логику
41
- self.extra_file = self.prompts_dir / 'extra.txt'
42
- """
43
- from project_root_finder import root
44
-
45
- # Автоматически определяем путь к промптам
46
- prompts_dir = root / "bots" / bot_id / prompts_subdir
47
-
48
- if not prompts_dir.exists():
49
- logger.warning(f"⚠️ Папка промптов не найдена: {prompts_dir}")
50
- logger.warning(f" Создайте папку или проверьте bot_id")
51
-
52
- # Вызываем базовую инициализацию
53
- super().__init__(str(prompts_dir))
54
-
55
- logger.info(f"✅ UserPromptLoader создан для bot_id '{bot_id}': {prompts_dir}")
56
-
1
+ """
2
+ UserPromptLoader - упрощенный PromptLoader для пользователей библиотеки
3
+ с автоматическим поиском prompts_dir от корня проекта
4
+ """
5
+
6
+ import logging
7
+
8
+ from .prompt_loader import PromptLoader
9
+
10
+ logger = logging.getLogger(__name__)
11
+
12
+
13
+ class UserPromptLoader(PromptLoader):
14
+ """
15
+ PromptLoader для пользователей библиотеки с автоматическим поиском prompts_dir
16
+
17
+ Автоматически находит папку prompts для указанного бота от корня проекта
18
+ Наследуется от базового PromptLoader - все методы доступны
19
+ """
20
+
21
+ def __init__(self, bot_id: str, prompts_subdir: str = "prompts"):
22
+ """
23
+ Инициализация загрузчика промптов с автоматическим поиском
24
+
25
+ Args:
26
+ bot_id: Идентификатор бота
27
+ prompts_subdir: Подпапка с промптами (по умолчанию "prompts")
28
+
29
+ Example:
30
+ # Автоматически найдет bots/my-bot/prompts
31
+ loader = UserPromptLoader("my-bot")
32
+
33
+ # Или кастомную подпапку
34
+ loader = UserPromptLoader("my-bot", "custom_prompts")
35
+
36
+ # Наследование для кастомизации
37
+ class MyLoader(UserPromptLoader):
38
+ def __init__(self, bot_id):
39
+ super().__init__(bot_id)
40
+ # Добавить свою логику
41
+ self.extra_file = self.prompts_dir / 'extra.txt'
42
+ """
43
+ from project_root_finder import root
44
+
45
+ # Автоматически определяем путь к промптам
46
+ prompts_dir = root / "bots" / bot_id / prompts_subdir
47
+
48
+ if not prompts_dir.exists():
49
+ logger.warning(f"⚠️ Папка промптов не найдена: {prompts_dir}")
50
+ logger.warning(" Создайте папку или проверьте bot_id")
51
+
52
+ # Вызываем базовую инициализацию
53
+ super().__init__(str(prompts_dir))
54
+
55
+ logger.info(f"✅ UserPromptLoader создан для bot_id '{bot_id}': {prompts_dir}")
@@ -1,116 +1,123 @@
1
- #!/usr/bin/env python3
2
- """
3
- Генератор UTM-ссылок для Telegram ботов
4
- Создает ссылки в формате: @https://t.me/bot?start=source-vk_campaign-summer2025
5
- """
6
-
7
- def get_user_input():
8
- """Получает данные от пользователя через консоль"""
9
- print("🔗 Генератор UTM-ссылок для Telegram")
10
- print("=" * 50)
11
-
12
- # Основные параметры
13
- bot_username = input("Введите username бота (без @): ").strip()
14
- if not bot_username:
15
- print("❌ Username бота обязателен!")
16
- return None
17
-
18
- print("\n📊 Введите UTM-метки (нажмите Enter для пропуска):")
19
-
20
- # UTM параметры (соответствуют полям в базе данных)
21
- utm_source = input("utm_source (источник): ").strip()
22
- utm_medium = input("utm_medium (канал): ").strip()
23
- utm_campaign = input("utm_campaign (кампания): ").strip()
24
- utm_content = input("utm_content (контент): ").strip()
25
- utm_term = input("utm_term (ключевое слово): ").strip()
26
-
27
- print("\n🎯 Сегментация (нажмите Enter для пропуска):")
28
- segment = input("seg (сегмент): ").strip()
29
-
30
- return {
31
- 'bot_username': bot_username,
32
- 'utm_source': utm_source,
33
- 'utm_medium': utm_medium,
34
- 'utm_campaign': utm_campaign,
35
- 'utm_content': utm_content,
36
- 'utm_term': utm_term,
37
- 'segment': segment
38
- }
39
-
40
- def create_utm_string(utm_data):
41
- """Создает строку UTM параметров в формате source-vk_campaign-summer2025_seg-premium"""
42
- utm_parts = []
43
-
44
- # Маппинг полей базы данных на формат без префикса utm
45
- field_mapping = {
46
- 'utm_source': 'source',
47
- 'utm_medium': 'medium',
48
- 'utm_campaign': 'campaign',
49
- 'utm_content': 'content',
50
- 'utm_term': 'term'
51
- }
52
-
53
- for db_field, utm_field in field_mapping.items():
54
- value = utm_data.get(db_field)
55
- if value:
56
- utm_parts.append(f"{utm_field}-{value}")
57
-
58
- # Добавляем сегмент, если указан
59
- segment = utm_data.get('segment')
60
- if segment:
61
- utm_parts.append(f"seg-{segment}")
62
-
63
- return "_".join(utm_parts)
64
-
65
- def generate_telegram_link(bot_username, utm_string):
66
- """Генерирует полную ссылку на Telegram бота"""
67
- return f"https://t.me/{bot_username}?start={utm_string}"
68
-
69
- def check_size_and_validate(utm_string):
70
- """Проверяет размер строки после start= и валидирует"""
71
- MAX_SIZE = 64
72
-
73
- if len(utm_string) > MAX_SIZE:
74
- return False, f"Строка слишком большая: {len(utm_string)} символов (максимум {MAX_SIZE})"
75
-
76
- return True, f"Размер OK: {len(utm_string)} символов"
77
-
78
-
79
- def main():
80
- """Основная функция"""
81
- try:
82
- # Получаем данные от пользователя
83
- data = get_user_input()
84
- if not data:
85
- return
86
-
87
- # Создаем UTM строку
88
- utm_string = create_utm_string(data)
89
-
90
- if not utm_string:
91
- print("❌ Не указано ни одной UTM-метки!")
92
- return
93
-
94
- # Проверяем размер
95
- is_valid, size_message = check_size_and_validate(utm_string)
96
-
97
- print(f"\n📏 {size_message}")
98
-
99
- if not is_valid:
100
- print("❌ Ссылка превышает максимальный размер!")
101
- print("💡 Сократите значения UTM-меток или уберите менее важные")
102
- return
103
-
104
- # Генерируем и выводим ссылку
105
- telegram_link = generate_telegram_link(data['bot_username'], utm_string)
106
-
107
- print(f"\n✅ Сгенерированная ссылка:")
108
- print(f"🔗 {telegram_link}")
109
- except KeyboardInterrupt:
110
- print("\n\n👋 Отменено пользователем")
111
- except Exception as e:
112
- print(f"\n❌ Ошибка: {e}")
113
-
114
- if __name__ == "__main__":
115
- main()
116
-
1
+ #!/usr/bin/env python3
2
+ """
3
+ Генератор UTM-ссылок для Telegram ботов
4
+ Создает ссылки в формате: @https://t.me/bot?start=source-vk_campaign-summer2025
5
+ """
6
+
7
+
8
+ def get_user_input():
9
+ """Получает данные от пользователя через консоль"""
10
+ print("🔗 Генератор UTM-ссылок для Telegram")
11
+ print("=" * 50)
12
+
13
+ # Основные параметры
14
+ bot_username = input("Введите username бота (без @): ").strip()
15
+ if not bot_username:
16
+ print("❌ Username бота обязателен!")
17
+ return None
18
+
19
+ print("\n📊 Введите UTM-метки (нажмите Enter для пропуска):")
20
+
21
+ # UTM параметры (соответствуют полям в базе данных)
22
+ utm_source = input("utm_source (источник): ").strip()
23
+ utm_medium = input("utm_medium (канал): ").strip()
24
+ utm_campaign = input("utm_campaign (кампания): ").strip()
25
+ utm_content = input("utm_content (контент): ").strip()
26
+ utm_term = input("utm_term (ключевое слово): ").strip()
27
+
28
+ print("\n🎯 Сегментация (нажмите Enter для пропуска):")
29
+ segment = input("seg (сегмент): ").strip()
30
+
31
+ return {
32
+ "bot_username": bot_username,
33
+ "utm_source": utm_source,
34
+ "utm_medium": utm_medium,
35
+ "utm_campaign": utm_campaign,
36
+ "utm_content": utm_content,
37
+ "utm_term": utm_term,
38
+ "segment": segment,
39
+ }
40
+
41
+
42
+ def create_utm_string(utm_data):
43
+ """Создает строку UTM параметров в формате source-vk_campaign-summer2025_seg-premium"""
44
+ utm_parts = []
45
+
46
+ # Маппинг полей базы данных на формат без префикса utm
47
+ field_mapping = {
48
+ "utm_source": "source",
49
+ "utm_medium": "medium",
50
+ "utm_campaign": "campaign",
51
+ "utm_content": "content",
52
+ "utm_term": "term",
53
+ }
54
+
55
+ for db_field, utm_field in field_mapping.items():
56
+ value = utm_data.get(db_field)
57
+ if value:
58
+ utm_parts.append(f"{utm_field}-{value}")
59
+
60
+ # Добавляем сегмент, если указан
61
+ segment = utm_data.get("segment")
62
+ if segment:
63
+ utm_parts.append(f"seg-{segment}")
64
+
65
+ return "_".join(utm_parts)
66
+
67
+
68
+ def generate_telegram_link(bot_username, utm_string):
69
+ """Генерирует полную ссылку на Telegram бота"""
70
+ return f"https://t.me/{bot_username}?start={utm_string}"
71
+
72
+
73
+ def check_size_and_validate(utm_string):
74
+ """Проверяет размер строки после start= и валидирует"""
75
+ MAX_SIZE = 64
76
+
77
+ if len(utm_string) > MAX_SIZE:
78
+ return (
79
+ False,
80
+ f"Строка слишком большая: {len(utm_string)} символов (максимум {MAX_SIZE})",
81
+ )
82
+
83
+ return True, f"Размер OK: {len(utm_string)} символов"
84
+
85
+
86
+ def main():
87
+ """Основная функция"""
88
+ try:
89
+ # Получаем данные от пользователя
90
+ data = get_user_input()
91
+ if not data:
92
+ return
93
+
94
+ # Создаем UTM строку
95
+ utm_string = create_utm_string(data)
96
+
97
+ if not utm_string:
98
+ print("❌ Не указано ни одной UTM-метки!")
99
+ return
100
+
101
+ # Проверяем размер
102
+ is_valid, size_message = check_size_and_validate(utm_string)
103
+
104
+ print(f"\n📏 {size_message}")
105
+
106
+ if not is_valid:
107
+ print(" Ссылка превышает максимальный размер!")
108
+ print("💡 Сократите значения UTM-меток или уберите менее важные")
109
+ return
110
+
111
+ # Генерируем и выводим ссылку
112
+ telegram_link = generate_telegram_link(data["bot_username"], utm_string)
113
+
114
+ print("\n✅ Сгенерированная ссылка:")
115
+ print(f"🔗 {telegram_link}")
116
+ except KeyboardInterrupt:
117
+ print("\n\n👋 Отменено пользователем")
118
+ except Exception as e:
119
+ print(f"\n❌ Ошибка: {e}")
120
+
121
+
122
+ if __name__ == "__main__":
123
+ main()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: smart-bot-factory
3
- Version: 0.3.7
3
+ Version: 0.3.9
4
4
  Summary: Библиотека для создания умных чат-ботов
5
5
  Author-email: Kopatych <eserov73@gmail.com>
6
6
  License: MIT
@@ -21,10 +21,12 @@ Classifier: Topic :: Communications :: Chat
21
21
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
22
  Requires-Python: >=3.9
23
23
  Requires-Dist: aiofiles>=23.0.0
24
+ Requires-Dist: aiogram-media-group>=0.5.1
24
25
  Requires-Dist: aiogram>=3.4.1
25
26
  Requires-Dist: click>=8.0.0
26
27
  Requires-Dist: openai>=1.12.0
27
28
  Requires-Dist: project-root-finder>=1.9
29
+ Requires-Dist: python-dateutil>=2.9.0.post0
28
30
  Requires-Dist: python-dotenv>=1.0.1
29
31
  Requires-Dist: pytz>=2023.3
30
32
  Requires-Dist: pyyaml>=6.0.2
@@ -0,0 +1,59 @@
1
+ smart_bot_factory/__init__.py,sha256=W5k9awLVi0R_N3fSul7VNkKRdSfExZjNb_M2yNzepg8,102
2
+ smart_bot_factory/cli.py,sha256=UM2pZqRnoAekEe_UE0xP3iGFkHI5lBkHcizyqP-QA3Y,32859
3
+ smart_bot_factory/config.py,sha256=-4jOCAlbPQI2ha8OD01E_Y8FbRrIhUNXcrA-pTu_EFQ,11621
4
+ smart_bot_factory/setup_checker.py,sha256=MSTMvLrUwgkjCbZBy-vKJcFMeADf2qTnaZClp7TBxWY,19833
5
+ smart_bot_factory/utm_link_generator.py,sha256=eA3Eic4Wvs0QpMdAFPJgYJyzv-_pSQWZ5ySdFHjyJkg,4327
6
+ smart_bot_factory/admin/__init__.py,sha256=xHUtMLeQDDQEXZrg4WAGpt-TWp8adjCC0-mYUBuino4,489
7
+ smart_bot_factory/admin/admin_events.py,sha256=FkiD0FtnlgpxLCoN9KXR61VCn8OsI0JCWm9RjVVa6tk,43903
8
+ smart_bot_factory/admin/admin_logic.py,sha256=TiXhZIXiXK1YQkrueY_zPFYL3_sJzoAvd100AP-ZCWU,23136
9
+ smart_bot_factory/admin/admin_manager.py,sha256=hjk4XI5prdlE6KMm64DjzadujGu1DmXWkeTQLweWF54,6406
10
+ smart_bot_factory/admin/admin_tester.py,sha256=YwovS51chPJoQ33pIiug-vS3augQzc1hHfbma48HtDk,6352
11
+ smart_bot_factory/admin/timeout_checker.py,sha256=afWsg39X6M5SaRKMk7ptNod8Z0StIa2o8H5Lx8y1ZE0,24438
12
+ smart_bot_factory/aiogram_calendar/__init__.py,sha256=UCoae3mXXDgYqqSQPotEpUxzAsZ_e62FuW9MWl1sG34,410
13
+ smart_bot_factory/aiogram_calendar/common.py,sha256=T6gTJxy__QllBV9TTyXzLnP1U3enmbMHPKGJelMDfOg,2327
14
+ smart_bot_factory/aiogram_calendar/dialog_calendar.py,sha256=f588JaQMrsBunH7HKsAYxbVPm5v5rBmpfDEvA53ER8k,9526
15
+ smart_bot_factory/aiogram_calendar/schemas.py,sha256=fsIbBFBV22rMh-3AczTgRNjbM3mMjLv3Uo8WbBJ7RQQ,2773
16
+ smart_bot_factory/aiogram_calendar/simple_calendar.py,sha256=Ed7oon2suJxvsy3u4UcAYeyCx-ocbq8fW_AM__MzCek,8731
17
+ smart_bot_factory/analytics/analytics_manager.py,sha256=JPV3YgMiqL-u_fpR8a-AwmQw6ZKYX90L-fmteHTvcCI,16979
18
+ smart_bot_factory/configs/growthmed-october-24/prompts/1sales_context.txt,sha256=uJ4WviYIr9xJaFdu-APrrmBgIWVwdJymcN04upIviLY,1614
19
+ smart_bot_factory/configs/growthmed-october-24/prompts/2product_info.txt,sha256=tWP9gdn58vu9BhYpDx1lGuPNT24j5p1XPiCSD-CdXiU,24191
20
+ smart_bot_factory/configs/growthmed-october-24/prompts/3objection_handling.txt,sha256=zwUGKp3mp1dAQUPjLQsCsczwRJJOqn9GGvVzVBCpvfY,6985
21
+ smart_bot_factory/configs/growthmed-october-24/prompts/final_instructions.txt,sha256=Y-lIyL9U0DJFY-CC-6LCVohJqZT9uNEJWikuTBJ81Ik,15410
22
+ smart_bot_factory/configs/growthmed-october-24/prompts/help_message.txt,sha256=q_vNNWsq5rU0xbjKWeyD_lKAy7Q9ABpDZfgpgQNHoyo,1914
23
+ smart_bot_factory/configs/growthmed-october-24/prompts/welcome_message.txt,sha256=sGgaYqxYqQYiyfaA-BgUgjbt5Yxx56ZEQEPYTAy7h60,572
24
+ smart_bot_factory/configs/growthmed-october-24/reports/test_20250924_064229.txt,sha256=v24DY1_dL7wvDQzY3JVwc4I_5t5rgSe8IOGuUDzQkH0,58752
25
+ smart_bot_factory/configs/growthmed-october-24/reports/test_20250924_064335.txt,sha256=qLcF79mUuzlpSGlLrYTm2HVYsTym7wqF7ky4tYlU24s,1707
26
+ smart_bot_factory/configs/growthmed-october-24/reports/test_20250924_064638.txt,sha256=dA_svJJXVf2c0KDkeS4BLhg4UVIfzhC1Jba9da-KayM,2055
27
+ smart_bot_factory/configs/growthmed-october-24/tests/quick_scenarios.yaml,sha256=DXGFTPNv22QluZsqkbbKv0SmJlDezKUuWwoDnewqpPI,9716
28
+ smart_bot_factory/configs/growthmed-october-24/tests/realistic_scenarios.yaml,sha256=Z1V540aHgWamPWzzMKfRlSFfUwFQpfF_IKrxnYayJ0M,6897
29
+ smart_bot_factory/configs/growthmed-october-24/tests/scenario_examples.yaml,sha256=bzDulOU4a2LyWlcHzlQU8GYhOky2WTfyizGfjX4ioMY,2436
30
+ smart_bot_factory/configs/growthmed-october-24/welcome_file/welcome_file_msg.txt,sha256=Db21Mm0r8SBWFdX9EeIF2FZtLQ2cvuwVlSRJd2KEYCg,922
31
+ smart_bot_factory/configs/growthmed-october-24/welcome_file/Чек лист по 152ФЗ и 323ФЗ для медицины.pdf,sha256=BiAiQHNnQXJPMsks9AeL6s0beEjRFkRMJLMlAn4WorA,5284954
32
+ smart_bot_factory/core/bot_utils.py,sha256=WlJ3QMIO96-n6-KyjQrGm2PR8Z1U-lvIGtSSXSSaLuE,49874
33
+ smart_bot_factory/core/conversation_manager.py,sha256=zduDEaTr7iQoVvbcMdmqBsyN4x1ZaOpTnUt0JsAgQ7I,28497
34
+ smart_bot_factory/core/decorators.py,sha256=RzYuzuYHLYQsDeW-k1sJW4IXVjOhaVwU5tD7Hxy3peg,107192
35
+ smart_bot_factory/core/message_sender.py,sha256=VjOLZUhw0Lkz_IOh4p9J_L5DkEkaURFRRU-qrIsG2qc,32338
36
+ smart_bot_factory/core/router.py,sha256=GdsSZxeuYICyzXNFeJnS4CnbaXGxojg-c9JK7z2OFiM,15592
37
+ smart_bot_factory/core/router_manager.py,sha256=x-cc4zhZUVPCTUH980GdlE_-JjHRtYnPdEBiWnf3ka8,10156
38
+ smart_bot_factory/core/states.py,sha256=mFyQ-oxIjTX03Wy5NHZUgYgh8fsJ5YmQU09_PhPAB04,889
39
+ smart_bot_factory/creation/__init__.py,sha256=lHFgYIjOLvdsDAW8eLMp8zfFUCd-6wepvUaUMeJ7feU,128
40
+ smart_bot_factory/creation/bot_builder.py,sha256=-gF53eCaWBRKoUbRGR-PDHpqLWlceQ9FLUdEqQRt6lw,42929
41
+ smart_bot_factory/creation/bot_testing.py,sha256=aMPSgj2o2zl6yWiV1a6RMmSJfiwMYp-_0ZkmJ6aFZVs,54561
42
+ smart_bot_factory/dashboard/__init__.py,sha256=Qie1pJgzprBlCPrZVQLhVs1JR5-YrpzfcBvHHD3OLJk,94
43
+ smart_bot_factory/event/__init__.py,sha256=E5u8Pjul_T0E77Ftmj-mqrip05w7KwUXlF1WMc5_lIs,192
44
+ smart_bot_factory/handlers/handlers.py,sha256=IELP8fH-hW8KhnTRKBvaO-2rnPmJRGmmcKN8acrvPe0,63656
45
+ smart_bot_factory/integrations/openai_client.py,sha256=R04qglOWNu3yQ32QRMRMzO01T6luWTp83H3OJMvD-uM,24316
46
+ smart_bot_factory/integrations/supabase_client.py,sha256=l9SsgQRYxv88_kOsaBZNJpYzsYw_NkGht9aHhTq6wCM,67205
47
+ smart_bot_factory/message/__init__.py,sha256=neUUYAs8ITz3cV1B_T0P9_3XZvvn8cZ2VDpDqrf6lrc,1940
48
+ smart_bot_factory/router/__init__.py,sha256=ywywG6iFBLLkBvtZ-huPVetqjXGN4UiUzoK6lw46bMg,272
49
+ smart_bot_factory/supabase/__init__.py,sha256=xa1xmHLaQVoghjD5cqguiL4yd25VYMvGd6_e87uc0tQ,181
50
+ smart_bot_factory/supabase/client.py,sha256=xey3It4TtRq0rnXyu1Crtv0JwCX5Xap2Sb_2jsYWq-U,26271
51
+ smart_bot_factory/utils/__init__.py,sha256=RgP2IAMFsJF7fxhhg8JLfhbGg9mO63xQM-NEadyJBd4,272
52
+ smart_bot_factory/utils/debug_routing.py,sha256=wV9BFwNmjBbF3rNI7UBdGsTf1bIT5XVQIGnxwIxhNYA,4707
53
+ smart_bot_factory/utils/prompt_loader.py,sha256=YClbQjvRgTWCD42Rr92g77zzVEVMUgrqStI6YETC0c4,20022
54
+ smart_bot_factory/utils/user_prompt_loader.py,sha256=lq1eQ4Hb2qN22osOjaFtkGdEc4OgpFPrzPNpPhsm5kA,2353
55
+ smart_bot_factory-0.3.9.dist-info/METADATA,sha256=LJbAkV27vOo9uiTOXizOnvNANDi8EPg4JEn-jV2Mzpg,40748
56
+ smart_bot_factory-0.3.9.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
57
+ smart_bot_factory-0.3.9.dist-info/entry_points.txt,sha256=ybKEAI0WSb7WoRiey7QE-HHfn88UGV7nxLDxXq7b7SU,50
58
+ smart_bot_factory-0.3.9.dist-info/licenses/LICENSE,sha256=OrK3cwdUTzNzIhJvSPtJaVMoYIyC_sSx5EFE_FDMvGs,1092
59
+ smart_bot_factory-0.3.9.dist-info/RECORD,,
@@ -1,59 +0,0 @@
1
- smart_bot_factory/__init__.py,sha256=W5k9awLVi0R_N3fSul7VNkKRdSfExZjNb_M2yNzepg8,102
2
- smart_bot_factory/cli.py,sha256=eQ2fv0uc87nrm1b-lRRw0Tz52NquCcwkk2it__beNKU,33223
3
- smart_bot_factory/config.py,sha256=kB3G2hGMrrCSOAvlrddf8x43bgfgEaQqOCKOeELAzfM,11640
4
- smart_bot_factory/setup_checker.py,sha256=fqRzyptyMzcb2I0boUaj0rWLdarqaN6ViX6suwTEeWc,20123
5
- smart_bot_factory/utm_link_generator.py,sha256=wYPdYYK555YfOP22eJXAcEv_D66_t50Dhg0-wkLVzVk,4502
6
- smart_bot_factory/admin/__init__.py,sha256=vdsMTpt_LiXkY-awFu_X9e2Zt7CV50PwmsWkFbk6whk,488
7
- smart_bot_factory/admin/admin_events.py,sha256=QCosyTbJgrU8daWSK_bQgf8UZoJSIrV6xyO0R3XV2j0,43289
8
- smart_bot_factory/admin/admin_logic.py,sha256=vPkNk86bdPsjNUNlZ3qfKtbRr9UuJy2oG54cYUGGNmg,23107
9
- smart_bot_factory/admin/admin_manager.py,sha256=xlyG9mIjPmtUhS4E9lp36T7o5Kfp5PZpJ-r1QjnSn5g,6394
10
- smart_bot_factory/admin/admin_tester.py,sha256=PGFpf7fmD5Wxea31xR2ZM_A_QpvrB73gsbxvUrHQBkg,6463
11
- smart_bot_factory/admin/timeout_checker.py,sha256=TzA2FGrxwE8fuhKerGnGrt4qYMEZdIR8x3SQAnIW5YQ,24490
12
- smart_bot_factory/aiogram_calendar/__init__.py,sha256=_IzB_HJIZuMs__7xBBsYVG20GbRNFw2VowvhOEyiGGc,349
13
- smart_bot_factory/aiogram_calendar/common.py,sha256=Ik-ler6Hid11SHpphqfFs5FjvGhj8Ajz0ds-MWMjPoo,2659
14
- smart_bot_factory/aiogram_calendar/dialog_calendar.py,sha256=AVuIWPp4D8ri7N7aSNqfZ_SicbfYGvQWeJqSmakGkuE,8289
15
- smart_bot_factory/aiogram_calendar/schemas.py,sha256=y2jnnFuqOqLZ7PwY6WQrzmRgCE6rwFYUGTFYaQnCouM,2524
16
- smart_bot_factory/aiogram_calendar/simple_calendar.py,sha256=XmCFjrDNJZ9LNEGkbY1vqRbU9t2EgIk69tGg5xy2sfE,7859
17
- smart_bot_factory/analytics/analytics_manager.py,sha256=y1DI_TnAdSX5NG_mwqHD1emne4opfsyo50D_tebi_UA,17967
18
- smart_bot_factory/configs/growthmed-october-24/prompts/1sales_context.txt,sha256=uJ4WviYIr9xJaFdu-APrrmBgIWVwdJymcN04upIviLY,1614
19
- smart_bot_factory/configs/growthmed-october-24/prompts/2product_info.txt,sha256=tWP9gdn58vu9BhYpDx1lGuPNT24j5p1XPiCSD-CdXiU,24191
20
- smart_bot_factory/configs/growthmed-october-24/prompts/3objection_handling.txt,sha256=zwUGKp3mp1dAQUPjLQsCsczwRJJOqn9GGvVzVBCpvfY,6985
21
- smart_bot_factory/configs/growthmed-october-24/prompts/final_instructions.txt,sha256=Y-lIyL9U0DJFY-CC-6LCVohJqZT9uNEJWikuTBJ81Ik,15410
22
- smart_bot_factory/configs/growthmed-october-24/prompts/help_message.txt,sha256=q_vNNWsq5rU0xbjKWeyD_lKAy7Q9ABpDZfgpgQNHoyo,1914
23
- smart_bot_factory/configs/growthmed-october-24/prompts/welcome_message.txt,sha256=sGgaYqxYqQYiyfaA-BgUgjbt5Yxx56ZEQEPYTAy7h60,572
24
- smart_bot_factory/configs/growthmed-october-24/reports/test_20250924_064229.txt,sha256=v24DY1_dL7wvDQzY3JVwc4I_5t5rgSe8IOGuUDzQkH0,58752
25
- smart_bot_factory/configs/growthmed-october-24/reports/test_20250924_064335.txt,sha256=qLcF79mUuzlpSGlLrYTm2HVYsTym7wqF7ky4tYlU24s,1707
26
- smart_bot_factory/configs/growthmed-october-24/reports/test_20250924_064638.txt,sha256=dA_svJJXVf2c0KDkeS4BLhg4UVIfzhC1Jba9da-KayM,2055
27
- smart_bot_factory/configs/growthmed-october-24/tests/quick_scenarios.yaml,sha256=DXGFTPNv22QluZsqkbbKv0SmJlDezKUuWwoDnewqpPI,9716
28
- smart_bot_factory/configs/growthmed-october-24/tests/realistic_scenarios.yaml,sha256=Z1V540aHgWamPWzzMKfRlSFfUwFQpfF_IKrxnYayJ0M,6897
29
- smart_bot_factory/configs/growthmed-october-24/tests/scenario_examples.yaml,sha256=bzDulOU4a2LyWlcHzlQU8GYhOky2WTfyizGfjX4ioMY,2436
30
- smart_bot_factory/configs/growthmed-october-24/welcome_file/welcome_file_msg.txt,sha256=Db21Mm0r8SBWFdX9EeIF2FZtLQ2cvuwVlSRJd2KEYCg,922
31
- smart_bot_factory/configs/growthmed-october-24/welcome_file/Чек лист по 152ФЗ и 323ФЗ для медицины.pdf,sha256=BiAiQHNnQXJPMsks9AeL6s0beEjRFkRMJLMlAn4WorA,5284954
32
- smart_bot_factory/core/bot_utils.py,sha256=vblk94k8cXvc-3iS3UOZvnU2NtXXKYgt3vzkioca-ac,48395
33
- smart_bot_factory/core/conversation_manager.py,sha256=eoHL7MCEz68DRvTVwRwZgf2PWwGv4T6J9D-I-thETi8,28289
34
- smart_bot_factory/core/decorators.py,sha256=mYWiN9B0lrgV3uRAaFVkJTCKWZyTpVNM_AneuQcqifA,99872
35
- smart_bot_factory/core/message_sender.py,sha256=0-SQcK4W1x__VgvyaeVRuFlXcxV56TsR_nNK07Nr4b4,32763
36
- smart_bot_factory/core/router.py,sha256=ji7rzpuKaO8yKaxFW58WhlgG5ExXlbCgqCTONxAyqL4,15022
37
- smart_bot_factory/core/router_manager.py,sha256=dUwesog-oHk1U2EDdS8p0e4MTSkwtx5_qXn6nrJ9l9I,9700
38
- smart_bot_factory/core/states.py,sha256=L8qp1UmYFuxTN5U9tY076rDuKgxtFbpSGqBpva2eWbo,895
39
- smart_bot_factory/creation/__init__.py,sha256=IgDk8GDS3pg7Pw_Et41J33ZmeZIU5dRwQdTmYKXfJfE,128
40
- smart_bot_factory/creation/bot_builder.py,sha256=yGRmOPD7qCMbhcBiltHWISoKxWx8eqjDSnZXpwhqnUs,43115
41
- smart_bot_factory/creation/bot_testing.py,sha256=JDWXyJfZmbgo-DLdAPk8Sd9FiehtHHa4sLD17lBrTOc,55669
42
- smart_bot_factory/dashboard/__init__.py,sha256=bDBOWQbcAL1Bmz4KVFouAKg8FN-c6EsC_-YthTt_mP4,100
43
- smart_bot_factory/event/__init__.py,sha256=hPL449RULIOB-OXv1ZbGNiHctAYaOMUqhSWGPrDHYBM,212
44
- smart_bot_factory/handlers/handlers.py,sha256=haxyVvFuyMWvfGCOiAvXPrez96bchoHnwQEEURMqiMI,62409
45
- smart_bot_factory/integrations/openai_client.py,sha256=fwaJpwojFdLBWChcFWpFGOHK9upG-nCIwDochkCRRlY,24291
46
- smart_bot_factory/integrations/supabase_client.py,sha256=XV1_caDAADnXLwCM7CkUdGfUNBNHBHYz-HBPSYmdGv4,63653
47
- smart_bot_factory/message/__init__.py,sha256=-ehDZweUc3uKgmLLxFVsD-KWrDtnHpHms7pCrDelWo0,1950
48
- smart_bot_factory/router/__init__.py,sha256=5gEbpG3eylOyow5NmidzGUy0K-AZq7RhYLVu9OaUT6c,270
49
- smart_bot_factory/supabase/__init__.py,sha256=XmZP6yM9ffERM5ddAWyJnrNzEhCYtMu3AcjVCi1rOf8,179
50
- smart_bot_factory/supabase/client.py,sha256=lWIzfOgoSvU7xPhYLoJtM5GnbWdoWsvHcRFC22sFBMU,25637
51
- smart_bot_factory/utils/__init__.py,sha256=UhsJXEHfrIK8h1AHsroHSwAriijk-LvnqLyvgzi2VYs,273
52
- smart_bot_factory/utils/debug_routing.py,sha256=BOoDhKBg7UXe5uHQxRk3TSfPfLPOFqt0N7lAo6kjCOo,4719
53
- smart_bot_factory/utils/prompt_loader.py,sha256=HS_6Vf-qvRBkhvyzu-HNVS1swFgmqWOKNNv0F6We_AQ,20060
54
- smart_bot_factory/utils/user_prompt_loader.py,sha256=dk6P0X_3UcNqxjRtuIvb0LcPrp03zIIsstZwdmeCPaE,2519
55
- smart_bot_factory-0.3.7.dist-info/METADATA,sha256=cfOUXXewYMK7EomidcIP78W_yjjCnWHtmQ7efPx8FMA,40662
56
- smart_bot_factory-0.3.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
57
- smart_bot_factory-0.3.7.dist-info/entry_points.txt,sha256=ybKEAI0WSb7WoRiey7QE-HHfn88UGV7nxLDxXq7b7SU,50
58
- smart_bot_factory-0.3.7.dist-info/licenses/LICENSE,sha256=OrK3cwdUTzNzIhJvSPtJaVMoYIyC_sSx5EFE_FDMvGs,1092
59
- smart_bot_factory-0.3.7.dist-info/RECORD,,