Telegram-бот с интеграцией AI через OpenRouter API. Поддерживает несколько моделей, сохраняет историю диалогов и имеет систему донатов через Telegram Stars.
- AI-чат: Интеграция с OpenRouter API для общения с различными AI-моделями
- Выбор модели: Переключение между Llama 3.3 70B и GPT-OSS 20B
- История диалогов: Сохранение и просмотр истории переписки
- Система донатов: Поддержка проекта через Telegram Stars
- База данных: Асинхронная работа с SQLite через SQLAlchemy
- Python 3.8+
- Telegram Bot Token
- OpenRouter API Key
- Клонируйте репозиторий:
git clone https://github.com/C1eem/aiogram_bot
cd aiogram_bot- Установите зависимости:
pip install -r requirements.txt- Создайте файл
.envв корне проекта:
BOT_TOKEN=your_telegram_bot_token
AI_TOKEN=your_openrouter_api_key- Запустите бота:
python -m app.botaiogram_bot/
├── app/
│ ├── __init__.py
│ ├── bot.py # Основной файл бота с обработчиками
│ ├── open_router_api.py # Интеграция с OpenRouter API
│ ├── payment.py # Обработчики платежей
│ ├── database/
│ │ ├── __init__.py
│ │ ├── session.py # Настройка подключения к БД
│ │ ├── models.py # SQLAlchemy модели (User, History)
│ │ └── crud/
│ │ ├── user_crud.py # CRUD операции для пользователей
│ │ └── history_crud.py # CRUD операции для истории
│ └── bot.db # SQLite база данных (создается автоматически)
├── requirements.txt
└── README.md
| Команда | Описание |
|---|---|
/start |
Приветственное сообщение |
/history |
Показать последние 5 записей из истории диалогов |
/del_history |
Удалить всю историю пользователя |
/llama |
Переключиться на модель Llama 3.3 70B (бесплатная) |
/gpt |
Переключиться на модель GPT-OSS 20B (бесплатная) |
/donate |
Отправить счет на донат (20 Telegram Stars) |
/paysupport |
Информация о поддержке проекта |
Примечание: Любое текстовое сообщение (не команда) будет обработано как запрос к AI-модели.
- aiogram 3.24.0 - Асинхронный фреймворк для Telegram Bot API
- SQLAlchemy 2.0.45 - ORM для работы с базой данных
- aiohttp 3.13.2 - Асинхронный HTTP-клиент для API-запросов
- python-dotenv 1.2.1 - Загрузка переменных окружения
- pydantic 2.12.5 - Валидация данных
Проект использует SQLite с асинхронным SQLAlchemy. База данных создается автоматически при первом запуске.
User:
id- Уникальный идентификаторtg_id- Telegram ID пользователяname- Имя пользователяmodel- Выбранная AI-модель
History:
id- Уникальный идентификаторuser_id- Связь с пользователемmodel- Использованная модельuser_request- Запрос пользователяmodel_response- Ответ модели
Бот использует OpenRouter API для доступа к различным AI-моделям. По умолчанию используется модель xiaomi/mimo-v2-flash:free.
meta-llama/llama-3.3-70b-instruct:free- Llama 3.3 70B (бесплатная)openai/gpt-oss-20b:free- GPT-OSS 20B (бесплатная)xiaomi/mimo-v2-flash:free- Mimo v2 Flash (бесплатная, по умолчанию)
Бот поддерживает донаты через Telegram Stars (XTR). Для работы платежей необходимо настроить provider_token в файле app/payment.py.
-
Начать диалог с ботом:
/start -
Задать вопрос AI:
Привет! Расскажи о Python -
Посмотреть историю:
/history -
Сменить модель:
/llama -
Поддержать проект:
/donate