К пет-проектам
ChatGPT Telegram Bot

Telegram bot

ChatGPT Telegram Bot

Пет-проект для интеграции ChatGPT в Telegram с двумя режимами запуска: через Bot API от лица бота или через MTProto от лица пользователя. Бот поддерживает потоковое обновление ответа, историю диалога, системный prompt и RU/EN локализацию.

Что внутри

  • Два режима работы: от лица Telegram-бота или от лица пользователя через MTProto.
  • Команды `/system`, `/history` и `/clear_history` для управления поведением и контекстом.
  • Ответ обновляется в реальном времени через редактирование сообщения, с настройкой интервала обновления.

Ключевые акценты

2 modes

bot и user client

RU/EN

локализация

Docker

быстрый запуск

Продуктовый вид

ChatGPT Telegram Bot

Интерфейс работает прямо внутри Telegram: пользователь отправляет запрос, бот постепенно обновляет сообщение с ответом, а в режиме истории учитывает предыдущий контекст диалога. Это делает проект похожим не на одноразовый command bot, а на полноценного чат-ассистента внутри привычного мессенджера.

ChatGPT Telegram Bot

Функциональность

Возможности

Bot API и user mode

Проект можно запустить как обычного Telegram-бота через BotFather token или как user client через API_ID/API_HASH и авторизацию MTProto.

Системное поведение

Команда `/system` меняет поведение ассистента: например, можно настроить переводчика, редактора или доменного помощника.

История диалога

`/history` включает режим чата с учетом предыдущих сообщений; `/clear_history` принудительно очищает сохраненный контекст.

Ограничение токенов

Через `MAX_MSG_TOKENS` задается максимум токенов, отправляемых в модель: история сообщений плюс новый запрос.

Как это работает

Рабочий сценарий

  1. 01

    Выбрать режим запуска

    Для bot mode нужен BotFather token, для user mode — API_ID, API_HASH и номер телефона Telegram.

  2. 02

    Добавить OpenAI API key

    Ключ и Telegram-настройки добавляются в environment `docker-compose.yaml`.

  3. 03

    Запустить в Docker

    Базовый запуск выполняется через `docker-compose up -d`; для user mode дополнительно нужен `node tglogin.js` и перезапуск pm2.

  4. 04

    Настроить поведение в Telegram

    После запуска поведение и история управляются командами прямо в чате.

Под капотом

Техническая часть

Telegram integration

`node-telegram-bot-api` используется для bot mode, `@mtproto/core` — для режима пользователя.

OpenAI streaming parser

`eventsource-parser` помогает обрабатывать поток ответа и обновлять сообщение по мере генерации текста.

Localization and config

Локализация RU/EN задается через `APP_LOCALE`; версия модели переключается через `MODEL_VERSION`.