smart-bot-factory 0.2.6__tar.gz → 0.2.7__tar.gz
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-0.2.6 → smart_bot_factory-0.2.7}/PKG-INFO +1 -1
- smart_bot_factory-0.2.7/publish.py +122 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/pyproject.toml +54 -49
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/handlers/handlers.py +4 -1
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/uv.lock +426 -1
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/.claude/settings.local.json +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/.env.example +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/.github/ISSUE_TEMPLATE//342/234/250-/320/267/320/260/320/277/321/200/320/276/321/201-/321/204/321/203/320/275/320/272/321/206/320/270/320/270.md" +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/.github/ISSUE_TEMPLATE//360/237/220/233-/320/261/320/260/320/263-/321/200/320/265/320/277/320/276/321/200/321/202.md" +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/.github/workflows/ci.yml +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/.github/workflows/publish-private.yml +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/.github/workflows/publish.yml +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/.gitignore +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/.python-version +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/CLIENTS_USAGE.md +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/Dockerfile +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/LICENSE +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/README.md +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/best-valera.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/bots/best-valera/prompts/1sales_context.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/bots/best-valera/prompts/2product_info.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/bots/best-valera/prompts/3objection_handling.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/bots/best-valera/prompts/final_instructions.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/bots/best-valera/prompts/help_message.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/bots/best-valera/prompts/welcome_message.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/bots/best-valera/tests/quick_scenarios.yaml +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/bots/best-valera/tests/realistic_scenarios.yaml +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/bots/best-valera/tests/scenario_examples.yaml +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/bots/best-valera/welcome_files/welcome_file_msg.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/bots/best-valera/welcome_files//320/247/320/265/320/272 /320/273/320/270/321/201/321/202 /320/277/320/276 152/320/244/320/227 /320/270 323/320/244/320/227 /320/264/320/273/321/217 /320/274/320/265/320/264/320/270/321/206/320/270/320/275/321/213.pdf" +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/bots/valera/prompts/2product_info.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/bots/valera/prompts/3objection_handling.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/bots/valera/prompts/final_instructions.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/bots/valera/prompts/help_message.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/bots/valera/prompts/welcome_message.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/bots/valera/tests/quick_scenarios.yaml +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/bots/valera/tests/realistic_scenarios.yaml +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/bots/valera/tests/scenario_examples.yaml +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/bots/valera/welcome_files/welcome_file_msg.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/bots/valera/welcome_files//320/247/320/265/320/272 /320/273/320/270/321/201/321/202 /320/277/320/276 152/320/244/320/227 /320/270 323/320/244/320/227 /320/264/320/273/321/217 /320/274/320/265/320/264/320/270/321/206/320/270/320/275/321/213.pdf" +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/configs/valera/cats//320/224/320/276/320/263/320/276/320/262/320/276/321/200.pdf" +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/configs/valera/cats//320/272/320/276/320/275/320/270.jpg" +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/configs/valera/cats//320/272/320/276/321/202.jpg" +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/configs/valera/cats//320/273/320/265/321/201.jpg" +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/configs/valera/tests/fixes_elina.yaml +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/configs/valera/welcome_file//320/247/320/265/320/272 /320/273/320/270/321/201/321/202 /320/277/320/276 152/320/244/320/227 /320/270 323/320/244/320/227 /320/264/320/273/321/217 /320/274/320/265/320/264/320/270/321/206/320/270/320/275/321/213.pdf" +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/create_tag.sh +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/docker-compose.yml +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/env.example +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/requirements.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/save_backup.sh +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/save_fixes.sh +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/__init__.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/admin/__init__.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/admin/admin_logic.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/admin/admin_manager.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/admin/admin_migration.sql +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/admin/admin_tester.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/admin/timeout_checker.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/analytics/analytics_manager.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/cli.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/config.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/configs/growthmed-october-24/prompts/1sales_context.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/configs/growthmed-october-24/prompts/2product_info.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/configs/growthmed-october-24/prompts/3objection_handling.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/configs/growthmed-october-24/prompts/final_instructions.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/configs/growthmed-october-24/prompts/help_message.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/configs/growthmed-october-24/prompts/welcome_message.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/configs/growthmed-october-24/reports/test_20250924_064229.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/configs/growthmed-october-24/reports/test_20250924_064335.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/configs/growthmed-october-24/reports/test_20250924_064638.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/configs/growthmed-october-24/tests/quick_scenarios.yaml +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/configs/growthmed-october-24/tests/realistic_scenarios.yaml +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/configs/growthmed-october-24/tests/scenario_examples.yaml +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/configs/growthmed-october-24/welcome_file/welcome_file_msg.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/configs/growthmed-october-24/welcome_file//320/247/320/265/320/272 /320/273/320/270/321/201/321/202 /320/277/320/276 152/320/244/320/227 /320/270 323/320/244/320/227 /320/264/320/273/321/217 /320/274/320/265/320/264/320/270/321/206/320/270/320/275/321/213.pdf" +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/core/bot_utils.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/core/conversation_manager.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/core/decorators.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/core/message_sender.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/core/router.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/core/router_manager.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/core/states.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/core/telegram_router.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/creation/__init__.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/creation/bot_builder.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/creation/bot_testing.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/event/__init__.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/integrations/openai_client.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/integrations/supabase_client.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/message/__init__.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/router/__init__.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/setup_checker.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/supabase/__init__.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/supabase/client.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/table/database_structure.sql +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/table/schema.sql +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/utils/__init__.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/utils/debug_routing.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/utils/prompt_loader.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/utils/user_prompt_loader.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/smart_bot_factory/utm_link_generator.py +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/system_prompt_example.txt +0 -0
- {smart_bot_factory-0.2.6 → smart_bot_factory-0.2.7}/valera.py +0 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Скрипт автоматической публикации библиотеки в PyPI
|
|
4
|
+
- Увеличивает версию на 0.0.1
|
|
5
|
+
- Очищает dist/
|
|
6
|
+
- Собирает пакет через uv build
|
|
7
|
+
- Публикует через twine
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
import re
|
|
11
|
+
import shutil
|
|
12
|
+
import subprocess
|
|
13
|
+
from pathlib import Path
|
|
14
|
+
|
|
15
|
+
def increment_version(version: str) -> str:
|
|
16
|
+
"""Увеличивает версию на 0.0.1"""
|
|
17
|
+
parts = version.split('.')
|
|
18
|
+
if len(parts) != 3:
|
|
19
|
+
raise ValueError(f"Неверный формат версии: {version}")
|
|
20
|
+
|
|
21
|
+
major, minor, patch = map(int, parts)
|
|
22
|
+
patch += 1
|
|
23
|
+
|
|
24
|
+
return f"{major}.{minor}.{patch}"
|
|
25
|
+
|
|
26
|
+
def update_version_in_toml():
|
|
27
|
+
"""Обновляет версию в pyproject.toml"""
|
|
28
|
+
toml_path = Path("pyproject.toml")
|
|
29
|
+
|
|
30
|
+
if not toml_path.exists():
|
|
31
|
+
raise FileNotFoundError("pyproject.toml не найден")
|
|
32
|
+
|
|
33
|
+
content = toml_path.read_text(encoding='utf-8')
|
|
34
|
+
|
|
35
|
+
# Находим текущую версию
|
|
36
|
+
version_match = re.search(r'^version\s*=\s*"([^"]+)"', content, re.MULTILINE)
|
|
37
|
+
if not version_match:
|
|
38
|
+
raise ValueError("Версия не найдена в pyproject.toml")
|
|
39
|
+
|
|
40
|
+
old_version = version_match.group(1)
|
|
41
|
+
new_version = increment_version(old_version)
|
|
42
|
+
|
|
43
|
+
# Обновляем версию
|
|
44
|
+
new_content = re.sub(
|
|
45
|
+
r'^version\s*=\s*"[^"]+"',
|
|
46
|
+
f'version = "{new_version}"',
|
|
47
|
+
content,
|
|
48
|
+
flags=re.MULTILINE
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
toml_path.write_text(new_content, encoding='utf-8')
|
|
52
|
+
|
|
53
|
+
print(f"✅ Версия обновлена: {old_version} → {new_version}")
|
|
54
|
+
return new_version
|
|
55
|
+
|
|
56
|
+
def clean_dist():
|
|
57
|
+
"""Очищает папку dist/"""
|
|
58
|
+
dist_path = Path("dist")
|
|
59
|
+
|
|
60
|
+
if dist_path.exists():
|
|
61
|
+
shutil.rmtree(dist_path)
|
|
62
|
+
print("✅ Папка dist/ очищена")
|
|
63
|
+
|
|
64
|
+
dist_path.mkdir(exist_ok=True)
|
|
65
|
+
print("✅ Папка dist/ создана")
|
|
66
|
+
|
|
67
|
+
def build_package():
|
|
68
|
+
"""Собирает пакет через uv build"""
|
|
69
|
+
print("\n🔨 Сборка пакета...")
|
|
70
|
+
result = subprocess.run(["uv", "build"], check=True)
|
|
71
|
+
print("✅ Пакет собран")
|
|
72
|
+
return result.returncode == 0
|
|
73
|
+
|
|
74
|
+
def upload_to_pypi():
|
|
75
|
+
"""Загружает пакет в PyPI через twine"""
|
|
76
|
+
print("\n📤 Загрузка в PyPI...")
|
|
77
|
+
|
|
78
|
+
# Используем twine через uv run
|
|
79
|
+
result = subprocess.run(
|
|
80
|
+
["uv", "run", "twine", "upload", "dist/*"],
|
|
81
|
+
check=True
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
print("✅ Пакет загружен в PyPI")
|
|
85
|
+
return result.returncode == 0
|
|
86
|
+
|
|
87
|
+
def main():
|
|
88
|
+
"""Основная функция"""
|
|
89
|
+
try:
|
|
90
|
+
print("🚀 Начинаем публикацию в PyPI\n")
|
|
91
|
+
|
|
92
|
+
# 1. Обновляем версию
|
|
93
|
+
new_version = update_version_in_toml()
|
|
94
|
+
|
|
95
|
+
# 2. Очищаем dist/
|
|
96
|
+
clean_dist()
|
|
97
|
+
|
|
98
|
+
# 3. Собираем пакет
|
|
99
|
+
build_package()
|
|
100
|
+
|
|
101
|
+
# 4. Загружаем в PyPI
|
|
102
|
+
upload_to_pypi()
|
|
103
|
+
|
|
104
|
+
print(f"\n🎉 Успешно! Версия {new_version} опубликована в PyPI")
|
|
105
|
+
print(f"\n💡 Не забудьте закоммитить изменения:")
|
|
106
|
+
print(f" git add pyproject.toml")
|
|
107
|
+
print(f" git commit -m 'Bump version to {new_version}'")
|
|
108
|
+
print(f" git tag v{new_version}")
|
|
109
|
+
print(f" git push && git push --tags")
|
|
110
|
+
|
|
111
|
+
except subprocess.CalledProcessError as e:
|
|
112
|
+
print(f"\n❌ Ошибка выполнения команды: {e}")
|
|
113
|
+
return 1
|
|
114
|
+
except Exception as e:
|
|
115
|
+
print(f"\n❌ Ошибка: {e}")
|
|
116
|
+
return 1
|
|
117
|
+
|
|
118
|
+
return 0
|
|
119
|
+
|
|
120
|
+
if __name__ == "__main__":
|
|
121
|
+
exit(main())
|
|
122
|
+
|
|
@@ -1,49 +1,54 @@
|
|
|
1
|
-
[project]
|
|
2
|
-
name = "smart-bot-factory"
|
|
3
|
-
version = "0.2.
|
|
4
|
-
description = "Библиотека для создания умных чат-ботов"
|
|
5
|
-
authors = [
|
|
6
|
-
{name = "Kopatych", email = "kopatych@example.com"}
|
|
7
|
-
]
|
|
8
|
-
keywords = ["chatbot", "telegram", "openai", "supabase", "cli"]
|
|
9
|
-
classifiers = [
|
|
10
|
-
"Development Status :: 4 - Beta",
|
|
11
|
-
"Environment :: Console",
|
|
12
|
-
"Framework :: AsyncIO",
|
|
13
|
-
"Intended Audience :: Developers",
|
|
14
|
-
"License :: OSI Approved :: MIT License",
|
|
15
|
-
"Operating System :: OS Independent",
|
|
16
|
-
"Programming Language :: Python :: 3",
|
|
17
|
-
"Programming Language :: Python :: 3.9",
|
|
18
|
-
"Programming Language :: Python :: 3.10",
|
|
19
|
-
"Programming Language :: Python :: 3.11",
|
|
20
|
-
"Programming Language :: Python :: 3.12",
|
|
21
|
-
"Topic :: Communications :: Chat",
|
|
22
|
-
"Topic :: Software Development :: Libraries :: Python Modules"
|
|
23
|
-
]
|
|
24
|
-
dependencies = [
|
|
25
|
-
# Основные зависимости из ядра
|
|
26
|
-
"aiogram>=3.4.1",
|
|
27
|
-
"supabase>=2.3.4",
|
|
28
|
-
"openai>=1.12.0",
|
|
29
|
-
"python-dotenv>=1.0.1",
|
|
30
|
-
"aiofiles>=23.0.0",
|
|
31
|
-
"pytz>=2023.3",
|
|
32
|
-
"pyyaml>=6.0.2",
|
|
33
|
-
# CLI интерфейс
|
|
34
|
-
"click>=8.0.0",
|
|
35
|
-
"project-root-finder>=1.9",
|
|
36
|
-
]
|
|
37
|
-
requires-python = ">=3.9"
|
|
38
|
-
readme = "README.md"
|
|
39
|
-
license = {text = "MIT"}
|
|
40
|
-
|
|
41
|
-
[project.scripts]
|
|
42
|
-
sbf = "smart_bot_factory.cli:cli"
|
|
43
|
-
|
|
44
|
-
[build-system]
|
|
45
|
-
requires = ["hatchling"]
|
|
46
|
-
build-backend = "hatchling.build"
|
|
47
|
-
|
|
48
|
-
[tool.hatch.build.targets.wheel]
|
|
49
|
-
packages = ["smart_bot_factory"]
|
|
1
|
+
[project]
|
|
2
|
+
name = "smart-bot-factory"
|
|
3
|
+
version = "0.2.7"
|
|
4
|
+
description = "Библиотека для создания умных чат-ботов"
|
|
5
|
+
authors = [
|
|
6
|
+
{name = "Kopatych", email = "kopatych@example.com"}
|
|
7
|
+
]
|
|
8
|
+
keywords = ["chatbot", "telegram", "openai", "supabase", "cli"]
|
|
9
|
+
classifiers = [
|
|
10
|
+
"Development Status :: 4 - Beta",
|
|
11
|
+
"Environment :: Console",
|
|
12
|
+
"Framework :: AsyncIO",
|
|
13
|
+
"Intended Audience :: Developers",
|
|
14
|
+
"License :: OSI Approved :: MIT License",
|
|
15
|
+
"Operating System :: OS Independent",
|
|
16
|
+
"Programming Language :: Python :: 3",
|
|
17
|
+
"Programming Language :: Python :: 3.9",
|
|
18
|
+
"Programming Language :: Python :: 3.10",
|
|
19
|
+
"Programming Language :: Python :: 3.11",
|
|
20
|
+
"Programming Language :: Python :: 3.12",
|
|
21
|
+
"Topic :: Communications :: Chat",
|
|
22
|
+
"Topic :: Software Development :: Libraries :: Python Modules"
|
|
23
|
+
]
|
|
24
|
+
dependencies = [
|
|
25
|
+
# Основные зависимости из ядра
|
|
26
|
+
"aiogram>=3.4.1",
|
|
27
|
+
"supabase>=2.3.4",
|
|
28
|
+
"openai>=1.12.0",
|
|
29
|
+
"python-dotenv>=1.0.1",
|
|
30
|
+
"aiofiles>=23.0.0",
|
|
31
|
+
"pytz>=2023.3",
|
|
32
|
+
"pyyaml>=6.0.2",
|
|
33
|
+
# CLI интерфейс
|
|
34
|
+
"click>=8.0.0",
|
|
35
|
+
"project-root-finder>=1.9",
|
|
36
|
+
]
|
|
37
|
+
requires-python = ">=3.9"
|
|
38
|
+
readme = "README.md"
|
|
39
|
+
license = {text = "MIT"}
|
|
40
|
+
|
|
41
|
+
[project.scripts]
|
|
42
|
+
sbf = "smart_bot_factory.cli:cli"
|
|
43
|
+
|
|
44
|
+
[build-system]
|
|
45
|
+
requires = ["hatchling"]
|
|
46
|
+
build-backend = "hatchling.build"
|
|
47
|
+
|
|
48
|
+
[tool.hatch.build.targets.wheel]
|
|
49
|
+
packages = ["smart_bot_factory"]
|
|
50
|
+
|
|
51
|
+
[dependency-groups]
|
|
52
|
+
dev = [
|
|
53
|
+
"twine>=6.2.0",
|
|
54
|
+
]
|
|
@@ -501,7 +501,10 @@ async def process_user_message(message: Message, state: FSMContext, session_id:
|
|
|
501
501
|
validators = message_hooks.get('validators', [])
|
|
502
502
|
for validator in validators:
|
|
503
503
|
try:
|
|
504
|
-
|
|
504
|
+
user_message = message.text
|
|
505
|
+
message_obj = message
|
|
506
|
+
|
|
507
|
+
should_continue = await validator(user_message, message_obj)
|
|
505
508
|
if not should_continue:
|
|
506
509
|
logger.info(f"⛔ Валидатор '{validator.__name__}' прервал обработку")
|
|
507
510
|
return # Прерываем обработку
|