Три дня назад друг прислал скриншот переписки с ботом — обычный ChatGPT-клон, но прямо в Telegram. Я хмыкнул: ну да, очередной костыль с API. Попробовал сам настроить — зависло на полдня. Не потому что сложно. Просто вариантов оказалось штук десять, и у каждого свои подводные.
Разобрался, поставил себе. Теперь объясняю как оно работает и где можно обжечься.
Зачем вообще тащить ИИ в Telegram
Можно открыть браузер, зайти на сайт ChatGPT или Claude и работать там. Но у Telegram есть пара преимуществ, которые я оценил только на практике.
Он всегда под рукой. Телефон, десктоп, планшет — везде одна история переписки. Не нужно логиниться и переключаться между вкладками. Захотел что-то спросить — открыл чат, получил ответ, закрыл.
Можно пересылать сообщения. Нашёл в другом чате интересный текст, код или вопрос — форвард боту, и он уже в контексте. В веб-версии пришлось бы копировать, вставлять, форматировать.
Голосовые работают нормально. Telegram неплохо распознаёт речь, можно надиктовать вопрос вместо того чтобы печатать. Для длинных объяснений это удобнее, чем тыкать в экран.
Минусы тоже есть: нет кнопок для редактирования промпта, нельзя ветвить диалог как в веб-интерфейсе. Вообще это костыль поверх API. Но для быстрых вопросов и повседневных задач работает отлично.
Три способа поднять бота
Когда я начал копать, выяснилось что подходов три — готовые боты, самописные скрипты и хостинг-сервисы. У каждого свои плюсы и засады.
Готовые боты — это когда кто-то уже запустил бота, ты просто добавляешь его в контакты и платишь подписку. Обычно они работают с несколькими моделями: GPT-4, Claude, иногда Gemini. Настроек минимум: выбрал модель, может температуру покрутил. Из популярных — ChatGPT Telegram Bot, AI Chat Bot, ещё пара десятков с похожими названиями. Проблема в том, что ты не контролируешь ни данные, ни доступность. Бот может отвалиться, пропасть, начать логировать переписку. Не узнаешь. Плюс зачастую они дороже чем API напрямую.
Самописный скрипт — берёшь Python, подключаешь библиотеку для Telegram (aiogram или python-telegram-bot), прикручиваешь OpenAI API, заворачиваешь в Docker и запускаешь где-нибудь. Полный контроль. Можешь добавить любую логику — память, RAG, мультимодальность. Я пошёл этим путём. Скрипт на 200 строк, развернул на VPS за пару часов. Но нужно уметь в код и иметь где хостить. Для тех кто не программист — вариант не подойдёт.
Хостинг-сервисы — что-то среднее. Ты регистрируешься на платформе типа BotFather.dev или ChatBase, настраиваешь бота через веб-интерфейс, указываешь свой API-ключ. Платформа запускает его за тебя. Не нужно возиться с сервером, но ты всё ещё контролируешь ключ и можешь настроить промпт. Минус — обычно берут комиссию сверху или месячную плату за хостинг.
Я выбрал самописный, потому что хотел прикрутить свою логику и не зависеть от чужих сервисов. Если ты не готов писать код — бери хостинг-сервис. Это честный компромисс.
Как я настроил своего бота
Решил делать на Python с aiogram — эта библиотека асинхронная, шустрая, документация вменяемая. OpenAI API подключил через официальный клиент. Модель взял gpt-4o-mini, потому что для большинства задач её хватает, а стоит она в десятки раз дешевле GPT-4.
Зарегистрировал бота через @BotFather в Telegram — это занимает минуту, получаешь токен. Потом взял API-ключ из OpenAI Platform, добавил в .env файл. Написал простой обработчик: бот получает сообщение, отправляет его в API, возвращает ответ обратно в чат. История переписки хранится в памяти, чтобы модель понимала контекст.
Первая версия работала, но была тупая. Если отправить длинный текст, бот мог зависнуть — Telegram API ждёт ответа быстро. Пришлось добавить промежуточное сообщение "печатаю..." и обновлять его по мере получения ответа. Ещё одна засада — контекст растёт, токены жрутся, счёт за API ползёт вверх. Ограничил историю последними 20 сообщениями. Этого хватает для нормального диалога.
Через пару дней добавил команды: /clear для сброса контекста, /model для переключения между моделями (добавил ещё claude-3-5-sonnet через Anthropic API), /stats чтобы смотреть сколько токенов потратил. Весь скрипт — файлов на пять, без фреймворков и базы данных. Запустил в Docker-контейнере на самом дешёвом VPS.
Сейчас бот работает третий месяц, ни разу не падал. Трачу на API примерно $5 в месяц, хостинг ещё $4. Дешевле чем подписка на готовый сервис. И я знаю что происходит с данными.
Что можно докрутить
Базовый бот — это только начало. Как только он заработал, сразу захотелось добавить ещё всякого.
Голосовые сообщения. Telegram API умеет отдавать аудио, можно прогнать его через Whisper от OpenAI, получить текст и скормить модели. У меня это работает, но иногда распознавание косячит — особенно если фоновый шум или акцент. Для диктовки задач сгодится, для точной транскрипции лекций не очень.
Картинки. GPT-4 Vision и Claude 3 понимают изображения. Можно кидать боту скриншоты кода, фотки документов, графики — и он их разберёт. Я добавил этот функционал, теперь использую постоянно: кинул фотку чека — бот вытащил сумму и дату, кинул код с ошибкой — объяснил что не так.
Поиск в интернете. Если дать боту доступ к поисковому API (например Brave Search или SerpAPI), он сможет искать актуальную инфу, а не только опираться на обучающий датасет. Я пока не прикрутил, но планирую — для новостей и фактчекинга это было бы полезно.
База знаний. Можно хранить в векторной БД куски документов или статей. Когда бот получает вопрос — он ищет релевантные фрагменты и использует их в промпте. Простой RAG, по сути. Для личных заметок или корпоративной документации зашло бы. Но нужно возиться с эмбеддингами и векторным поиском. Это уже не "скрипт на коленке".
Плагины и команды. Можно научить бота запускать Python-код, работать с API других сервисов, дёргать вебхуки. Я добавил команду для перевода текста через DeepL API — быстрее и точнее чем у GPT. Ещё планирую подключить Notion API, чтобы бот мог сохранять важные куски переписки прямо в базу.
Главное не увлечься. Можно превратить бота в комбайн, который умеет всё, но толком ничего. Я добавляю фичи по мере того как нахожу реальные применения, а не потому что "было бы круто".
Что в итоге
Настроить ИИ-ассистента в Telegram можно за пару часов, если не заморачиваться с кодом. За выходные, если писать своего. Главное — выбрать подход который соответствует твоим задачам и уровню. Готовый бот подойдёт если нужно "просто поговорить с GPT". Самописный — если хочешь контролировать всё и встраивать в свои процессы.
Я пользуюсь своим ботом каждый день: быстрые вопросы, черновики текстов, разбор кода, перевод. Удобнее чем прыгать между вкладками в браузере. Вся история в одном месте. Если задумывался о таком — попробуй. Затраты минимальные, а профит реальный.
