Metadata-Version: 2.4
Name: smart-bot-factory
Version: 2.0.1
Summary: Библиотека для создания умных чат-ботов
Author-email: Kopatych <eserov73@gmail.com>
License: MIT
License-File: LICENSE
Keywords: chatbot,cli,openai,supabase,telegram
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Framework :: AsyncIO
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Communications :: Chat
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Requires-Dist: aiofiles>=24.1.0
Requires-Dist: aiogram-media-group>=0.5.1
Requires-Dist: aiogram>=3.22.0
Requires-Dist: chromadb>=1.5.9
Requires-Dist: click>=8.3.1
Requires-Dist: fastembed>=0.8.0
Requires-Dist: json-repair>=0.58.5
Requires-Dist: langchain-community>=0.4.1
Requires-Dist: langchain-openai>=1.0.3
Requires-Dist: langchain>=1.0.8
Requires-Dist: llama-index-embeddings-openai>=0.6.0
Requires-Dist: llama-index-llms-openai>=0.7.7
Requires-Dist: llama-index-vector-stores-qdrant>=0.10.0
Requires-Dist: openai>=2.8.0
Requires-Dist: project-root-finder>=1.9
Requires-Dist: pydantic>=2.0.0
Requires-Dist: python-dateutil>=2.9.0.post0
Requires-Dist: python-dotenv>=1.2.1
Requires-Dist: pytz>=2025.2
Requires-Dist: pyyaml>=6.0.3
Requires-Dist: qdrant-client>=1.17.1
Requires-Dist: sulguk>=0.11.1
Requires-Dist: supabase>=2.24.0
Requires-Dist: telegramify-markdown>=0.5.4
Requires-Dist: trafilatura>=2.0.0
Requires-Dist: watchdog>=4.0.0
Description-Content-Type: text/markdown

<!-- generated-by: gsd-doc-writer -->
# Smart Bot Factory

Smart Bot Factory — это Python CLI и библиотека для создания Telegram AI-ботов с OpenAI, aiogram, персистентностью через Supabase, CRM-интеграциями и опциональными RAG-бэкендами.

## Установка

Установите пакет из PyPI:

```bash
pip install smart-bot-factory
```

Опционально: для изоляции окружения сначала создайте и активируйте виртуальное окружение (`python -m venv .venv` и `source .venv/bin/activate`), затем выполните `pip install`.

Проект требует `Python >= 3.10`.

## Быстрый старт

1. Проверьте точку входа CLI:

```bash
sbf --help
```

2. Создайте каркас бота:

```bash
sbf create clinic-bot
```

Команда создаст `bots/clinic-bot/` с каркасом для prompt, message, test, file и `.env`.

3. Заполните обязательные значения в `bots/clinic-bot/.env`, особенно `TELEGRAM_BOT_TOKEN` и `OPENAI_API_KEY`.

4. Запустите бота:

```bash
sbf run clinic-bot
```

## Примеры использования

### Управление проектами ботов

С помощью `sbf` CLI можно просматривать, копировать, диагностировать, тестировать и удалять проекты ботов:

```bash
sbf list
sbf copy clinic-bot clinic-bot-staging
sbf doctor clinic-bot
sbf test clinic-bot
sbf update
sbf env-sync clinic-bot
sbf rm clinic-bot-staging
```

### Обновление CLI (`sbf update`)

Команда `sbf update` работает только в локальном проекте с существующим `.venv` и завершится с явной ошибкой, если `.venv` отсутствует.

```bash
sbf update
```

### Регистрация бизнес-событий

Сгенерированные лаунчеры ботов используют `BotBuilder` и `EventRouter`, чтобы подключать пользовательские бизнес-действия, которые ассистент может вызывать из структурированных AI-метаданных:

```python
from smart_bot_factory.creation import BotBuilder
from smart_bot_factory.message import send_message_by_human
from smart_bot_factory.router import EventRouter

event_router = EventRouter()
bot_builder = BotBuilder()


@event_router.event_handler(once_only=True)
async def collect_contact(user_id: int, contact_data: str) -> dict[str, str]:
    await send_message_by_human(
        user_id=user_id,
        message_text=f"Thanks, your contact is saved: {contact_data}",
    )
    return {"status": "success", "contact": contact_data}


bot_builder.register_routers(event_router)
```

## Документация

- Начало работы: `docs/GETTING-STARTED.md`
- Архитектура: `docs/ARCHITECTURE.md`
- Конфигурация: `docs/CONFIGURATION.md`
- Тестирование: `docs/TESTING.md`
- Процесс разработки: `docs/DEVELOPMENT.md`
- Деплой: `docs/DEPLOYMENT.md`
- Устранение неполадок: `docs/troubleshooting.md`

## Лицензия

Проект распространяется по лицензии [MIT License](LICENSE).
