Как сделать бота в Telegram с помощью нейросети

7 минут чтения

Бота для Telegram делают тремя путями. Конструктор собирает его из готовых блоков без кода и подходит, если боту хватает меню, кнопок и сбора заявок. Заказать разработку стоит, когда нужны оплата, база клиентов или CRM. Третий путь, когда нужен свой код, а писать его вы не умеете: код пишет нейросеть, а вы ставите задачу и проверяете результат. Шаги: токен у @BotFather, запрос нейросети, запуск на своём компьютере и проверка вопросами клиентов.

Получится бот, который отвечает на команды и частые вопросы, а остальное пересылает вам, пока включён ваш компьютер. Мы проверили этот путь 30 сентября: прогнали бота от нейросети через поддельный Telegram и нашли два неверных ответа, которых не показала бы проверка тремя сообщениями.

Что подготовить

Токен бота. Откройте в Telegram @BotFather, отправьте /newbot, придумайте имя и адрес бота. В ответ придёт токен, длинная строка с двоеточием, и ссылка на самого бота. Кто знает токен, тот управляет ботом, поэтому не вставляйте его ни в чат с нейросетью, ни в код: только в переменную окружения при запуске.

Python 3.10 или новее, установщик на python.org. На Python 3.9, который приходит в macOS с инструментами разработчика, бот тоже запустится, мы проверили. Но встанет aiogram версии 3.22 вместо свежей 3.31, и обновления библиотеки до бота уже не дойдут.

Нейросеть. На сентябрь 2026 из Беларуси без обходов обычно открываются DeepSeek и Qwen, а Claude, ChatGPT и Gemini здесь официально не работают, подробнее в разборе какие нейросети доступны в Беларуси.

Как поставить задачу нейросети

Нейросеть пишет то, что вы описали, и додумывает остальное. Поэтому в запросе три части: что бот делает по шагам, ограничения и порядок работы. Просьба сначала показать план экономит время: по плану видно, правильно ли вас поняли, ещё до двухсот строк кода. Для бота из четырёх функций хватает одного запроса с планом. Когда функций больше, я даю их по одной, фаза за фазой: план первого вечера разобран в статье что такое вайб-кодинг.

Этот запрос мы отдали нейросети:

Первый запрос
Сделай Telegram-бота на Python и aiogram 3. Обновления получай через long polling, без вебхука.

Что бот делает:
1. На /start здоровается и в двух строках говорит, чем помогает.
2. На /help показывает список вопросов, на которые умеет отвечать.
3. Отвечает на частые вопросы из словаря FAQ в начале файла: ищет ключевые слова в сообщении без учёта регистра.
4. Если ответа нет, пишет человеку «Не нашёл ответа, передал вопрос владельцу» и пересылает его сообщение владельцу в чат OWNER_CHAT_ID.

Ограничения:
- Токен бота берётся только из переменной окружения BOT_TOKEN, в коде его нет. OWNER_CHAT_ID тоже из окружения.
- Бот работает только в личных сообщениях, в группах молчит.
- Ошибка при ответе пишется в лог и не останавливает бота.
- Один файл bot.py и файл requirements.txt. Без базы данных.

Сначала покажи план из 3–5 шагов и дождись моего «ок», потом пиши код. В конце напиши, как запустить бота на macOS и на Windows.

Пришли план из пяти шагов, bot.py на 204 строки, requirements.txt и инструкция по запуску. Прогоняли мы запрос не на DeepSeek и не на Qwen: у них код получится другим, поэтому проверка ниже нужна при любой модели.

Словарь частых вопросов нейросеть заполнила примерами про цены, оплату, часы работы и контакты. Свои вопросы и ответы допишите в запрос списком или замените словарь в начале bot.py. Две строки запроса важнее остальных: токен из окружения не попадёт в код, который вы кому-нибудь покажете, а молчание в группах не даст боту отвечать всем подряд.

Как запустить бота на своём компьютере

OWNER_CHAT_ID: номер вашего личного чата с ботом, туда уходят вопросы без ответа. Первая версия требовала его сразу. Попросите нейросеть: «Пусть бот запускается без OWNER_CHAT_ID и пишет в лог chat_id каждого, кто ему написал».

Сохраните код из ответа нейросети в файлы bot.py и requirements.txt в отдельной папке и откройте в ней терминал. Запустите бота, откройте ссылку на него из ответа BotFather и отправьте /start с того аккаунта, куда хотите получать вопросы. В терминале появится строка с вашим именем и chat_id. Остановите бота через Ctrl+C, впишите число в OWNER_CHAT_ID и запустите снова.

Первый запуск
macOS
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
export BOT_TOKEN="токен от BotFather"
python bot.py

# после того как узнали свой chat_id:
export OWNER_CHAT_ID="число из лога"
python bot.py
Проверено 30.09.2026 на macOS: бот запускается, с неверным токеном Telegram отвечает Unauthorized.

Что показала проверка живыми вопросами

Нейросеть сама предложила проверку: /start, /help и вопрос, которого нет в списке. Все три бот прошёл. Мы добавили вопросы в том виде, в каком их пишут клиенты, и прогнали бота через поддельный Telegram: небольшой сервер на нашем компьютере отвечает боту вместо настоящего и записывает всё, что тот отправил. Код бота не менялся.

Прогон первой версии
→ Сколько стоит сайт под ключ?
← Цена зависит от задачи. Опишите, что нужно, и владелец пришлёт расчёт.

→ Можно ли заказать доставку в Гродно?
← владельцу: «Вопрос без ответа от Анна…» + пересланное сообщение
← Не нашёл ответа, передал вопрос владельцу.

→ Во сколько обойдётся сайт?
← Отвечаем по будням с 10:00 до 19:00. Сообщения, отправленные вечером, читаем утром.

→ Я почти готов заказать, что дальше?
← Пишите прямо сюда. Если я не отвечу сам, передам вопрос владельцу.

→ «привет всем» в группе
← (бот промолчал)

На вопрос о цене бот ответил про часы работы: сработала фраза «во сколько» из списка про время. «Почти» совпало с «почт» из списка про контакты. Вторым сообщением мы написали нейросети, что именно пошло не так:

Второй запрос
Проверил бота на живых вопросах. На «Во сколько обойдётся сайт?» он ответил про часы работы, хотя человек спрашивал цену. На «Я почти готов заказать, что дальше?» ответил про контакты: слово «почти» сработало как «почт». Сделай, чтобы ключевое слово совпадало только с целым словом или его началом, а не с куском внутри слова, и чтобы вопрос про цену не уходил в ответ про время. И пусть бот пишет в лог chat_id каждого, кто ему написал: так я узнаю свой OWNER_CHAT_ID без сторонних ботов.

Вторая версия прошла все девять проверок, включая оба неудачных вопроса, сообщение в группе и клиента, заблокировавшего бота: бот не упал и ответил дальше. Нейросеть сама предупредила, что совпадение по началу слова не спасает: «почт» и есть начало «почти». Поэтому она перечислила формы слова «почта».

С нашим собственным шаблоном бота вышла похожая история: 42 теста проходили, а прогон по сценарию рабочего дня показал, что сигнал владельцу не уходил ни разу. Тестов после починки стало 82.

Поэтому после запуска пишите боту так, как пишут клиенты: тот же вопрос другими словами, фраза со словом, похожим на ключевое, вопрос сразу про две темы. Что пошло не так, опишите нейросети, как во втором запросе: что спросили, что ответил бот и какой ответ нужен.

Бот с панелью управления: шаблон на Python

Следующий шаг после бота из статьи: шаблон отвечает по правилам и зовёт вас, когда не справился, плюс база клиентов, рассылки и ответы из панели. Бесплатно, после входа.

Открыть шаблон
Старый телефонный аппарат на верстаке подключён проводами с зажимами к современному ноутбуку
Проверка на поддельной линии: бот говорит с сервером, который притворяется Telegram.

Почему бот замолкает, когда закрыт ноутбук

Бот из статьи сам ходит в Telegram за новыми сообщениями, это режим long polling. Закрыли ноутбук, и сообщения копятся без ответа. Telegram хранит их до суток, поэтому после запуска бот ответит на накопившееся разом.

Чтобы бот отвечал круглые сутки, его переносят на сервер: маленький VPS и менеджер процессов, который поднимет бота после сбоя или перезагрузки. Бесплатные площадки для сайтов не подходят, их серверные функции живут секунды, подробнее в статье куда деплоить фронт без бэкенда. И правило: на один токен одна запущенная копия. Если бот работает и на ноутбуке, и на сервере, Telegram обрывает одну из копий ошибкой Conflict.

Во втором режиме, вебхуке, Telegram сам присылает сообщения на адрес сервера, для него нужен адрес с https. Так устроен бот уведомлений этого сайта, и на нём мы поймали сбой: в мае 2026 Telegram не смог найти адрес нашего домена .by и отвечал Failed to resolve host. Помогла передача IP-адреса сервера в параметре ip_address. Первому боту вебхук не нужен.

Закрытый ноутбук на стуле в серверной, рядом на стене работает небольшой шкаф с зелёным огоньком
Ноутбук закрыт, а бот продолжает отвечать: он живёт на сервере.

Если внутри бота нужна нейросеть

Бот из запроса отвечает по списку, поэтому бесплатно и мгновенно. Модель внутри нужна, когда вопросы в список не укладываются. Тогда каждый ответ оплачивается по тарифу API, и расход стоит ограничить, например 20 сообщениями в минуту на человека и дневным потолком токенов. Боту мы прописываем, что он работает только в интересах владельца, а на постороннее даёт вежливый отказ. Модель берите из тех, что официально работают в вашей стране: Anthropic Беларусь не поддерживает.

Бот с оплатой, базой клиентов и CRM мы делаем на заказ: автоматизация на ИИ.

Частые вопросы

Да. Бесплатны регистрация бота у BotFather, Bot API, Python и aiogram. Платить придётся за сервер, если бот работает круглые сутки, и за API нейросети, если она отвечает внутри бота.
Писать код не нужно, читать сообщения в терминале придётся. Если там Unauthorized, значит, токен неверный. Любую другую ошибку копируйте нейросети целиком, без пересказа: причину она ищет по точному тексту.
Бот общается сообщениями и кнопками. Mini app открывает внутри Telegram целый экран: каталог, корзину, кабинет. Разбор с примером в статье [что такое Telegram mini app](/blog/telegram-mini-app-chto-eto).

Новые посты на почту

Без спама. Отписка в один клик в любом письме.