Неделю назад мне надоело каждый раз открывать ChatGPT в браузере, ждать загрузку, вспоминать, что хотел спросить, и закрывать. За эти десять секунд я уже забывал половину вопросов. Решил: хочу бота, который отвечает за пару секунд, знает мой контекст и живёт прямо в мессенджере, где я и так провожу полжизни.
За выходные собрал рабочий прототип. Потратил примерно три часа и понял несколько вещей, которыми хочу поделиться — без терминологической каши и без пафоса.
Почему именно Telegram
Telegram удобен не потому что "все используют", а по конкретной причине: у него нормальный API, ботов можно писать на чём угодно, и он работает на телефоне без танцев с бубном. У WhatsApp API убогий, у Discord — своя специфика, от которой голова начинает болеть раньше, чем дойдёшь до сути.
Ещё у Telegram-бота есть long conversation context. То есть он помнит, о чём вы говорили пять сообщений назад. Для личного ассистента — это не роскошь, а необходимость.
Что мне понадобилось
Оказалось, минимальный стек — удивительно короткий:
- Telegram-бот (создаётся через BotFather буквально за минуту)
- Прокси-ключ к LLM API (я взял OpenAI, но есть варианты дешевле)
- Простенький сервер или облачная функция — на выбор
Ничего экзотического. Если умеешь запускать Python-скрипт — справишься.
BotFather: создаём бота за 60 секунд
Открываешь Telegram, ищешь @BotFather, пишешь /newbot. Он спрашивает имя и username. Имя — то, что видят пользователи, username — уникальный идентификатор, должен заканчиваться на bot.
BotFather выдаёт токен. Длинная строка вроде 123456789:ABCdefGhIJKlmNoPQRstuVWXyz. Токен — это пароль от бота. Не свети его нигде.
С BotFather разобрались. Теперь логика.
Простой бот на Python
Я не программист, но базовый скрипт написал сам. Вот упрощённая схема того, что он делает: получает сообщение → передаёт в API LLM → получает ответ → отправляет пользователю.
import os
import openai
from telegram import Update
from telegram.ext import Application, MessageHandler, filters, ContextTypes
openai.api_key = os.getenv("OPENAI_API_KEY")
TELEGRAM_TOKEN = os.getenv("TELEGRAM_TOKEN")
async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE):
user_message = update.message.text
response = openai.ChatCompletion.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": user_message}]
)
reply = response["choices"][0]["message"]["content"]
await update.message.reply_text(reply)
app = Application.builder().token(TELEMM_TOKEN).build()
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_message))
app.run_polling()
Это, конечно, упрощение. Тут нет истории разговора — каждый запрос летит в пустоту без контекста предыдущих. Но для первого теста — сойдёт.
Что я добавил потом
Базовая версия заработала за первый час. Дальше стал наворачивать понемногу.
Контекстные инструкции. В начале диалога боту можно задать роль: "Ты мой личный помощник. Я работаю с данными, люблю краткие ответы." Работает лучше, чем ожидаешь.
История диалога. Бот хранит последние N сообщений и подсовывает их контекстом к каждому новому запросу. Без этого он каждый раз начинает с чистого листа.
Системный промпт. Отдельный файл, где прописаны мои привычки: формат ответов, что НЕ нужно делать, какие темы приоритетны. Меняется за минуту, эффект — ощутимый.
Где я напоролся
Сначала пытался запустить всё на бесплатном хостинге. Не взлетело: LLM-ответы бывают объёмными, а бесплатные пакеты быстро упираются в лимиты памяти.
Потом захотел сделать бота для группы — чтобы отвечал всем участникам. Запутался с privacy mode в BotFather. В итоге нашёл решение: одна команда /setprivacy и выбрать «Disable». После этого бот видит все сообщения в группе, а не только те, что начинаются с /.
Ещё один тупик: токен в коде. Дважды случайно закоммитил его в репозиторий на GitHub. Каждый раз приходилось ротировать через BotFather командой /revoke. Больше не делаю так.
Сколько стоит
Прямые расходы — только LLM API. GPT-4o-mini стоит примерно $0.15 за миллион токенов на вход и $0.60 на выход. Мой бот за месяц активного использования нажег примерно на $1.2. Telegram-бот и хостинг — бесплатно, использую облачную функцию.
Для сравнения: подписка на ChatGPT Plus — $20 в месяц. Мой бот закрывает 80% моих задач за $1.2.
Что в итоге
За три часа я получил бота, который:
- отвечает за 3–5 секунд — быстрее, чем открыть браузер
- помнит контекст нашего разговора
- заточен под мой стиль общения
- стоит копейки
Не идеал, но для личного использования — вполне. Главное, что я понял: не нужно быть разработчиком, чтобы это собрать. Нужна конкретная задача и готовность потратить вечер.
Если хочешь такого же — начни с BotFather и одного скрипта. Запусти, посмотри как работает, а потом добавляй фичи по одной. Постепенно. Без фанатизма.
