Skip to content

sergeycommit/ai_tg_bot

Repository files navigation

AI Telegram Bot

Современный асинхронный Telegram-бот с интеграцией ChatGPT и поддержкой голосовых сообщений.

🌟 Особенности

  • 💬 Умные текстовые диалоги - обработка сообщений через ChatGPT
  • 🎤 Поддержка голосовых сообщений - конвертация в текст через Whisper API
  • ⏱️ Лимиты для бесплатных пользователей - 300 запросов в день
  • 💎 Премиум подписка - безлимитный доступ
  • 🗄️ История диалогов - сохранение контекста беседы
  • 🔒 Проверка подписки на канал - обязательная подписка для использования
  • 💳 Встроенные платежи - оплата через Telegram Stars

📋 Требования

  • Python 3.8+
  • PostgreSQL
  • API ключи:
    • Telegram Bot API
    • OpenRouter API (для ChatGPT)
    • Hugging Face API (для Whisper)

🚀 Установка

1. Клонирование репозитория

git clone <repository-url>
cd ai_tg_bot

2. Установка зависимостей

pip install -r requirements.txt

3. Настройка базы данных

Создайте PostgreSQL базу данных:

CREATE DATABASE ai_tg_bot_db;
CREATE USER your_user WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE ai_tg_bot_db TO your_user;

4. Настройка переменных окружения

Создайте файл .env в корневой директории:

# Основные настройки бота
BOT_TOKEN=your_telegram_bot_token
OR_API_KEY=your_openrouter_api_key
HF_API_KEY=your_huggingface_api_key
MODEL=openai/gpt-3.5-turbo

# Настройки администратора
ADMIN_USER_ID=your_telegram_user_id
ADMIN_IDS=comma_separated_admin_ids

# Настройки канала
CHANNEL=@your_channel_username
CHANNEL_URL=https://t.me/your_channel

# Настройки базы данных
DB_USER=your_db_user
DB_PASSWORD=your_db_password
DB_NAME=ai_tg_bot_db
DB_HOST=localhost
DB_PORT=5432

# Настройки приложения
FREE_REQUESTS_PER_DAY=300
TRIAL_PERIOD_DAYS=5

🏃‍♂️ Запуск

Локальный запуск

python bot.py

Запуск через Docker

docker-compose up -d

📖 Использование

Команды бота

  • /start - Начать работу с ботом
  • /help - Показать справку
  • /premium - Информация о премиум подписке
  • /clear - Очистить историю диалога
  • /migrate - Применить миграции БД (только для админов)

Функции

  1. Текстовые сообщения - отправьте любое текстовое сообщение
  2. Голосовые сообщения - отправьте голосовое сообщение для распознавания
  3. Премиум подписка - получите безлимитный доступ

🏗️ Структура проекта

ai_tg_bot/
├── bot.py              # Основной файл бота
├── config.py           # Конфигурация и переменные окружения
├── models.py           # Модели базы данных
├── migrations.py       # Миграции базы данных
├── requirements.txt    # Зависимости проекта
├── Dockerfile         # Docker конфигурация
├── docker-compose.yml # Docker Compose конфигурация
├── .gitignore         # Игнорируемые файлы
└── README.md          # Документация

🔧 Устранение неполадок

Частые ошибки

  1. "An error occurred. Please try again later."

    • Проверьте настройки базы данных
    • Убедитесь, что все переменные окружения установлены
    • Проверьте логи бота
  2. Проблемы с базой данных

    # Проверьте подключение к PostgreSQL
    psql -h localhost -U your_user -d ai_tg_bot_db
    
    # Примените миграции через бота (от имени админа)
    /migrate
  3. Проблемы с API ключами

    • Убедитесь, что все API ключи действительны
    • Проверьте квоты на используемых сервисах
  4. Ошибки urllib3 и OpenSSL

    # Обновите зависимости
    pip install --upgrade -r requirements.txt
    
    # Или установите совместимую версию urllib3
    pip install "urllib3<2.0.0"
  5. Ошибки python-dotenv

    • Убедитесь, что файл .env имеет правильный формат
    • Каждая переменная должна быть на отдельной строке
    • Не используйте пробелы вокруг знака =
    • Пример правильного формата см. в файле env_example.txt
  6. Ошибки OpenAI клиента

    • Обновите библиотеку openai: pip install --upgrade openai
    • Убедитесь, что используется правильная версия httpx

Логирование

Бот ведет подробные логи. Для отладки проверьте вывод консоли или настройте запись в файл.

Проверка конфигурации

Бот автоматически проверяет наличие всех необходимых переменных окружения при запуске.

🔄 Обновления

Применение миграций

Для применения обновлений базы данных используйте команду /migrate от имени администратора.

Обновление кода

git pull origin main
pip install -r requirements.txt
# Перезапустите бота

📊 Мониторинг

  • Логи содержат информацию о всех операциях
  • Админы получают уведомления о критических событиях
  • Статистика использования сохраняется в базе данных

🛡️ Безопасность

  • Все API ключи должны храниться в переменных окружения
  • Используйте сильные пароли для базы данных
  • Регулярно обновляйте зависимости

📝 Лицензия

MIT License

🤝 Поддержка

При возникновении проблем:

  1. Проверьте логи бота
  2. Убедитесь в корректности настроек
  3. Обратитесь к администратору: tdallstr@gmail.com

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published