
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, а на полноценного чат-ассистента внутри привычного мессенджера.

Функциональность
Возможности
Bot API и user mode
Проект можно запустить как обычного Telegram-бота через BotFather token или как user client через API_ID/API_HASH и авторизацию MTProto.
Системное поведение
Команда `/system` меняет поведение ассистента: например, можно настроить переводчика, редактора или доменного помощника.
История диалога
`/history` включает режим чата с учетом предыдущих сообщений; `/clear_history` принудительно очищает сохраненный контекст.
Ограничение токенов
Через `MAX_MSG_TOKENS` задается максимум токенов, отправляемых в модель: история сообщений плюс новый запрос.
Как это работает
Рабочий сценарий
- 01
Выбрать режим запуска
Для bot mode нужен BotFather token, для user mode — API_ID, API_HASH и номер телефона Telegram.
- 02
Добавить OpenAI API key
Ключ и Telegram-настройки добавляются в environment `docker-compose.yaml`.
- 03
Запустить в Docker
Базовый запуск выполняется через `docker-compose up -d`; для user mode дополнительно нужен `node tglogin.js` и перезапуск pm2.
- 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`.