Interactive visual novel bot powered by OpenAI GPT-4 with dynamic storyline and character interactions.
- Interactive storytelling with personalized character names
- Dynamic plot that adapts to player choices
- Visual content with Google Drive image integration
- Message caching system for optimized performance
- Subscription-based access control
- Multi-language support
- Referral system with rewards
- Python 3.12+
- aiogram 3.x (Telegram Bot framework)
- OpenAI GPT-4 API
- SQLAlchemy (Database ORM)
- Fluent (Localization)
- aiohttp (Async HTTP client)
- structlog (Logging)
-
Clone the repository
-
Install dependencies:
pip install -r requirements.txt
-
Configure environment variables in
.env:BOT_TOKEN=your_telegram_bot_token BOT_OWNERS=[owner_ids] BOT_REQUIRED_CHANNEL_ID=channel_id BOT_REQUIRED_CHANNEL_INVITE=invite_link BOT_OPENAI_API_KEY=your_openai_api_key BOT_ASSISTANT_ID=your_assistant_id -
Set up the database:
alembic upgrade head
-
Run the bot:
python bot.py
-
handlers/- Telegram message handlersnovel.py- Novel game handlerspersonal_actions.py- User commands handlersreferral.py- Referral system handlers
-
models/- Database modelsnovel.py- Novel state and messages modelsreferral.py- Referral system models
-
services/- Business logicnovel.py- Novel game service
-
utils/- Helper functionsopenai_helper.py- OpenAI API integrationimage_cache.py- Image caching systemtext_utils.py- Text processing utilities
-
keyboards/- Telegram keyboard layoutsmenu.py- Main menu keyboardsubscription.py- Subscription check keyboard
The bot implements a visual novel system with:
- Dynamic storyline based on player choices
- Character interaction and relationship development
- Image integration for visual storytelling
- Progress tracking and state management
- Scene-based narrative structure
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Интерактивный бот визуальной новеллы, работающий на OpenAI GPT-4 с динамическим сюжетом и взаимодействиями персонажей.
- Интерактивное повествование с персонализированными именами персонажей
- Динамичный сюжет, адаптирующийся к выбору игрока
- Визуальный контент с интеграцией изображений из Google Drive
- Система кэширования сообщений для оптимизации производительности
- Контроль доступа на основе подписки
- Поддержка нескольких языков
- Система рефералов с наградами
- Python 3.10+
- aiogram 3.x (фреймворк для Telegram Bot)
- OpenAI GPT-4 API
- SQLAlchemy (ORM для базы данных)
- Fluent (локализация)
- aiohttp (асинхронный HTTP клиент)
- structlog (логирование)
-
Клонируйте репозиторий
-
Установите зависимости:
pip install -r requirements.txt
-
Настройте переменные окружения в
.env:BOT_TOKEN=ваш_токен_бота_telegram BOT_OWNERS=[идентификаторы_владельцев] BOT_REQUIRED_CHANNEL_ID=идентификатор_канала BOT_REQUIRED_CHANNEL_INVITE=ссылка_на_приглашение BOT_OPENAI_API_KEY=ваш_ключ_api_openai BOT_ASSISTANT_ID=ваш_id_ассистента -
Настройте базу данных:
alembic upgrade head
-
Запустите бота:
python bot.py
-
handlers/- Обработчики сообщений Telegramnovel.py- Обработчики новеллыpersonal_actions.py- Обработчики команд пользователяreferral.py- Обработчики системы рефералов
-
models/- Модели базы данныхnovel.py- Модели состояния и сообщений новеллыreferral.py- Модели системы рефералов
-
services/- Бизнес-логикаnovel.py- Сервис новеллы
-
utils/- Вспомогательные функцииopenai_helper.py- Интеграция с OpenAI APIimage_cache.py- Система кэширования изображенийtext_utils.py- Утилиты для обработки текста
-
keyboards/- Макеты клавиатур Telegrammenu.py- Основная клавиатура менюsubscription.py- Клавиатура проверки подписки
Бот реализует систему визуальной новеллы с:
- Динамичным сюжетом, основанным на выборах игрока
- Взаимодействием персонажей и развитием отношений
- Интеграцией изображений для визуального повествования
- Отслеживанием прогресса и управлением состоянием
- Структурой повествования на основе сцен
- Сделайте форк репозитория
- Создайте свою ветку
- Зафиксируйте ваши изменения
- Отправьте изменения в ветку
- Создайте Pull Request
Этот проект лицензирован под MIT License - смотрите файл LICENSE для подробностей.