Генерация изображений в чатботах уже никого не удивляет. Но что если ваш бот умеет создавать видео прямо по текстовому запросу пользователя — и отправлять готовый ролик прямо в чат? Именно такой чатбот мы сегодня соберём на платформе watbot.ru с интеграцией нейросети Kling 2.1 — одной из самых популярных моделей для генерации видео высокого качества.
Нейросеть умеет работать в двух режимах: text-to-video (генерация по текстовому промту) и image-to-video (генерация на основе фотографии). В этой статье разберём первый вариант — от знакомства с документацией до финального теста в Telegram.
Знакомство с API: что важно знать до начала сборки
Перед тем как переходить в конструктор, стоит заглянуть в документацию нейросети. Удобство в том, что один API-ключ даёт доступ сразу к нескольким нейросетям, в том числе к Kling.
В разделе Video API доступны разные модели. Мы используем Kling 2.1 в режиме text-to-video. По документации нейросеть принимает следующие параметры: промт, негативный промт, продолжительность видео (5 или 10 секунд) и формат.
Ключевой момент: нейросеть не возвращает видео мгновенно. В ответ на запрос приходит
task_id и record_id. Чтобы забрать готовое видео и вывести его в чат, потребуется блок «Входящий Webhook» — он и будет принимать результат генерации.
Структура сценария
Прежде чем заполнять блоки, соберём весь каркас чатбота. В сценарии понадобятся:
- три блока цепочка сообщений — приветствие с промтом, негативный промт, выбор длительности;
- HTTP-запрос №1 — отправка запроса в нейросеть;
- блок цепочка сообщений — сообщение об ожидании;
- блок задержки;
- входящий Webhook — получение ссылки на видео;
- HTTP-запрос №2 — отправка видео в Telegram через Bot API.
Пошаговая инструкция
Шаг 1. Создание чатбота и подключение Telegram
На платформе watbot.ru нажмите «Создать», дайте боту название и подтвердите создание. В открывшемся сценарии подключите мессенджер Telegram: вставьте токен, полученный в BotFather, и сохраните настройки.
В новом сценарии вас встретят три стандартных блока. Лишние связи и блоки можно удалить: наведите курсор на синюю стрелку — она станет красной — и нажмите на крестик. Блок удаляется через меню с тремя точками или через галочку слева с кнопкой «Удалить» в верхнем меню.
Новые блоки добавляются двумя способами: через кнопку «Добавить блок» в правом верхнем углу или напрямую из сетки — зажмите курсор на чёрной точке блока, протяните в пустое место и выберите нужный блок из появившегося меню.
Шаг 2. Блок 1 — Приветствие и сбор промта
В первой цепочке сообщений добавьте текст:
Привет! Я умею генерировать видео. Просто напиши в ответном сообщении промт — и генерация начнётся.
Ответ пользователя сохраните в пользовательскую переменную с именем
промт. Кнопки в этом блоке не нужны — пользователь пишет запрос в свободной форме.
Шаг 3. Блок 2 — Негативный промт
От блока «Любая другая фраза» проведите связь к следующей цепочке сообщений с текстом:
Пожалуйста, укажи негативный промт. Если негативный промт не нужен, просто поставь минус.
Ответ сохраните в переменную
непромт.
Негативный промт — это указание того, чего не должно быть в видео: размытие, лишние люди, блюр и т.д. Если пользователю это не нужно, достаточно поставить прочерк.
Шаг 4. Блок 3 — Выбор длительности
В третьей цепочке сообщений спросите пользователя, сколько секунд должно длиться видео. Добавьте две кнопки: 5 и 10. Ответ запишите в переменную
длительность.
От обеих кнопок — и от «5», и от «10» — проведите связи к одному блоку HTTP-запроса. Таким образом, независимо от выбора пользователя, бот пойдёт дальше по одному и тому же пути.
Шаг 5. HTTP-запрос №1 — Отправка запроса в нейросеть
Это главный блок сценария. Заполняйте его строго по документации.
Метод: POST
URL: скопируйте из документации без кавычек.
Заголовки (два обязательных):
Authorization→Bearer [ваш API-ключ]Content-Type→application/json
Body: переключите на JSON и вставьте массив из документации. Затем подставьте свои значения:
- model — не меняем, используем Kling 2.1;
- prompt →
{{$промт}}— пользовательская переменная в двойных фигурных скобках со знаком доллара; - negative_prompt →
{{$непромт}}; - duration →
{{$длительность}}; - aspect_ratio →
9:16(вертикальный формат по умолчанию; другие форматы можно изучить в документации); - callback_url → ссылка из блока «Входящий Webhook» (см. ниже).
Как получить callback URL: добавьте в сценарий блок «Входящий Webhook» через раздел «Специальные блоки». В нём автоматически появится URL — скопируйте его и вставьте в поле
callback_url в HTTP-запросе.
После ссылки добавьте:
?contact_id={{id}}
Тайм-аут: 60 секунд — максимум, нейросети нужно время на обработку.
Сервер запроса: обязательно выберите Европа.
Галочки «Выводить тело ответа в чат» и «Записать код ответа в переменную» — снимите.
Шаг 6. Сообщение об ожидании
От кнопки «Продолжить» первого HTTP-запроса добавьте цепочку сообщений с текстом:
Генерирую, пожалуйста, подождите.
Без этого сообщения пользователь выбирает длительность — и дальше просто тишина. Непонятно, работает бот или завис. Небольшое уведомление снимает этот вопрос.
Шаг 7. Блок задержки
От кнопки «Продолжить» добавьте блок задержки и установите его на 4 минуты.
Задержка здесь критически важна. Пока первый HTTP-запрос уходит в нейросеть, пока Webhook принимает ответ, пока видео генерируется — проходит несколько минут. Если сразу поставить блок вывода видео без задержки, ссылки на него просто ещё не будет, и бот выведет пустой ответ.
Шаг 8. Входящий Webhook — получение ссылки на видео
В блоке «Входящий Webhook» URL уже заполнен автоматически — именно его вы скопировали для callback_url на шаге 5.
В поле JavaScript-кода вставьте обработчик ответа. Логика следующая: нейросеть возвращает ссылку на готовое видео внутри поля
result_json. Код извлекает эту ссылку и записывает её в переменную видео.
Именно эта переменная позволит вывести в чат не просто ссылку, по которой нужно переходить, а само видео прямо в мессенджере.
Проверить, что Webhook работает корректно, можно через «Лог выполнения»: там должны отображаться
contact_id и строка с result_json, внутри которой видна ссылка на файл.
Шаг 9. HTTP-запрос №2 — Отправка видео в Telegram
Второй HTTP-запрос проще первого. Он берёт ссылку из переменной
видео и отправляет готовый ролик пользователю через Telegram Bot API.
Метод: POST
URL формируется по шаблону:
https://api.telegram.org/bot[ВАШ_ТОКЕН]/sendVideo?chat_id={{telegram_id}}&video={{$видео}}
Здесь:
[ВАШ_ТОКЕН]— токен из BotFather, тот же, что вы использовали при подключении бота к платформе;{{$видео}}— переменная, в которую Webhook записал ссылку на видео.
Если в блоке Webhook вы назвали переменную иначе — подставьте своё название.
Тайм-аут: 60 секунд.
Сервер запроса: Европа.
Галочки «Выводить тело ответа в чат» и «Записать код ответа в переменную» — снимите.
Тестирование
Перезапустите бота командой
/start в Telegram и пройдите весь сценарий:
- Введите промт — например: «Девушка с рыжими волосами 25 лет сидит в кафе и пьёт кофе. Она радуется».
- Укажите негативный промт — что не должно попасть в кадр: «размытие, много людей, блюр».
- Выберите длительность — 5 или 10 секунд.
- Дождитесь сообщения об ожидании и самого видео — генерация занимает около 3–4 минут.
Убедиться в корректной отправке запроса можно через «Лог выполнения» в блоке HTTP-запроса №1: статус
200 и наличие task_id означают, что запрос ушёл успешно.
Kling 2.1 хорошо справляется с детальными промтами: движения получаются плавными и естественными, качество видео — высоким. Чем точнее промт, тем точнее результат: внешность персонажа, одежда, окружение — всё это можно и нужно описывать подробно.
Дополнительно: запуск в мессенджере Мax
Тот же чатбот можно запустить не только в Telegram, но и в мессенджере Маx. Принцип аналогичный: вставляете токен Маx-бота, а для отправки видео в чат используете метод из документации для разработчиков Маx — там всё подробно расписано с примерами запросов.
Итог
Чатбот с генерацией видео на Watbot строится из девяти последовательных элементов: три блока сбора данных от пользователя, первый HTTP-запрос с callback URL, сообщение об ожидании, задержка, Webhook для получения ссылки и второй HTTP-запрос для отправки готового видео. Результат — бот, который принимает текстовый запрос и через несколько минут возвращает пользователю полноценное видео прямо в мессенджер.
Полезные ссылки:
Видео инструкция для создания чат-бота и получения API токена:
Документация Kling AI:
Telegram API:
Документация MAX:
Видео инструкция СОБИРАЕМ БОТА С НЕЙРОСЕТЬЮ KLING | MAX + TELEGRAM: