Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI Telegram Bot

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

🛠 Установка

  1. Клонируйте репозиторий:
git clone https://github.com/C1eem/aiogram_bot
cd aiogram_bot
  1. Установите зависимости:
pip install -r requirements.txt
  1. Создайте файл .env в корне проекта:
BOT_TOKEN=your_telegram_bot_token
AI_TOKEN=your_openrouter_api_key
  1. Запустите бота:
python -m app.bot

📁 Структура проекта

aiogram_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

Бот использует 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.

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

  1. Начать диалог с ботом:

    /start
    
  2. Задать вопрос AI:

    Привет! Расскажи о Python
    
  3. Посмотреть историю:

    /history
    
  4. Сменить модель:

    /llama
    
  5. Поддержать проект:

    /donate
    

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages