CDREAM — нейросеть, которая генерирует изображения как на основе текста, так и на основе фотореференса. Она отлично принимает промт и работает даже быстрее многих конкурентных нейросетей. В этой статье разберём, как собрать чатбот с интеграцией CDREAM версии 4.5 на платформе watbot.ru — шаг за шагом, от первого блока до финального теста в Telegram.
Прежде чем начать: основы работы со сценарием
Весь сценарий в конструкторе состоит из двух элементов: блоков и связей. Синие стрелки между блоками — это связи. Их можно устанавливать и удалять.
Чтобы удалить связь, наведите курсор на синюю стрелку — она станет красной — и нажмите на иконку корзины посередине. Блок удаляется точно так же: наводим курсор, нажимаем корзину.
Добавить новый блок можно двумя способами:
- через кнопку «Добавить блок» в правом верхнем углу — откроется список с категориями и поисковой строкой;
- или прямо из сетки: зажмите курсор на чёрной точке у нужного блока и протяните в пустое место. Появится контекстное меню, где можно выбрать блок из списка или найти его через поиск. После выбора блок появляется вместе со связью к нему.
Для работы рекомендуется переключиться на новый дизайн сетки — именно в нём доступно протягивание связей описанным способом. Также в новом дизайне можно выделять сразу несколько блоков галочками и затем группово их удалять, копировать или перетаскивать.
Для удобства можно изменить фон сетки — например, выбрать зелёный фон с линиями.
Структура бота
Для данного чатбота понадобятся следующие блоки:
- цепочка сообщений (приветствие и промежуточные сообщения);
- первый HTTP-запрос — отправка промта в CDREAM;
- блок задержки;
- входящий Webhook — получение ответа от нейросети;
- второй HTTP-запрос — отправка картинки пользователю в Telegram;
- финальное сообщение с кнопкой для повторной генерации.
Пошаговая инструкция
Шаг 1. Приветственное сообщение и сохранение промта
В первом блоке — цепочка сообщений — добавьте текстовый элемент со следующим содержанием:
Привет, я CDREAM. Генерирую изображение по твоему запросу. Отправь мне в ответ свой запрос.
После того как пользователь отправит свой промт, всё, что он написал, необходимо сохранить в пользовательскую переменную. Назовите её
промт (или выберите любое другое имя — главное, запомнить его для следующих блоков).
Обратите внимание: пользовательская переменная в конструкторе обозначается в двойных фигурных скобках со знаком доллара:
{{$промт}}.
Шаг 2. Получение API-ключа CDREAM
Перед заполнением HTTP-запроса необходимо получить токен доступа на сайте нейросети. Для этого:
- Перейдите на сайт CDREAM
- Нажмите на соответствующую кнопку получения токена.
- Перейдите в раздел API / документацию нейросети.
- Скопируйте ключ из личного кабинета.
Мы подключаем версию CDREAM 4.5, модель text-to-image — генерация изображения на основе текста.
Для удобства собрали в одном файле всю иформацию из документации для подключения нейросети:
Шаг 3. Первый HTTP-запрос (отправка промта в нейросеть)
От блока «Любая другая фраза» проведите связь к блоку HTTP-запрос и заполните его следующим образом.
Метод: POST
URL: вставьте endpoint из документации CDREAM.
Заголовки (два обязательных):
Authorization→Bearer [ваш API-ключ из личного кабинета]Content-Type→application/json
Body: выберите формат JSON и вставьте массив с параметрами запроса. В массиве указывается:
- используемая модель;
- промт пользователя — переменная
{{$промт}}; - callback URL — ссылка из блока «Входящий Webhook» (подробнее в следующем шаге);
- формат изображения — например,
9x16вместо стандартного1x1; - качество изображения —
base(базовое) илиhigh(повышенное).
Важно: все скобки в JSON-массиве должны быть сохранены. Лишний или пропущенный символ — и нейросеть не ответит.
Callback URL — это ссылка из блока «Входящий Webhook». После добавления этого блока в сценарий в нём автоматически появится URL, который нельзя редактировать. Скопируйте его и вставьте в поле callback URL в HTTP-запросе. После ссылки необходимо дописать:
?contact_id={{id}}
Всё это — в кавычках, без изменений.
Тайм-аут: установите 60 секунд — нейросети нужно время на обработку запроса.
Сервер запроса: обязательно выберите Европа вместо значения по умолчанию — это необходимо для корректной работы.
Шаг 4. Промежуточное сообщение
От кнопки «Продолжить» первого HTTP-запроса добавьте новый блок цепочка сообщений с текстом:
Отлично. Рисую твою картинку по запросу. Это займёт некоторое время. Пожалуйста, подожди.
Это сообщение даёт пользователю понять, что запрос уже принят и нужно немного подождать — без него пользователь просто не понимает, что происходит.
Шаг 5. Задержка
От кнопки «Продолжить» промежуточного сообщения добавьте блок задержки и установите её на 60 секунд.
Задержка обязательна: пока первый HTTP-запрос обрабатывается нейросетью, пока входящий Webhook принимает ответ и пока второй HTTP-запрос готовится к отправке — всё это занимает время. Без задержки бот уйдёт вперёд, не получив нужные данные, и корректной работы не будет.
Шаг 6. Блок «Входящий Webhook»
Этот блок принимает ответ от нейросети. Нейросеть не возвращает картинку мгновенно — сначала она отдаёт Task ID, а по нему уже происходит получение готового изображения.
В блоке «Входящий Webhook»:
- URL заполняется автоматически и не редактируется — именно его вы скопировали на шаге 3 для callback URL.
- В поле кода JavaScript вставьте обработчик ответа. В нём укажите имя переменной, в которую запишется ссылка на сгенерированное изображение. Например, назовите переменную
картинка.
Код можно не писать самостоятельно — готовый вариант есть в Google-документе, ссылка указана выше. Достаточно подставить нужное имя переменной.
Шаг 7. Второй HTTP-запрос (отправка картинки в Telegram)
Этот блок проще первого. Он отправляет готовое изображение пользователю напрямую в чат, без необходимости переходить по ссылке.
URL формируется по шаблону:
https://api.telegram.org/bot[ВАШ_TELEGRAM_TOKEN]/sendPhoto?chat_id={{telegram_id}}&photo={{$картинка}}
Здесь:
[ВАШ_TELEGRAM_TOKEN]— токен, который вы получаете в BotFather при регистрации Telegram-бота (он же используется для подключения бота к платформе).{{$картинка}}— переменная, в которую Webhook записал ссылку на изображение.
Внимательно следите за количеством фигурных скобок — каждая должна быть на месте, иначе бот не сработает корректно.
Тайм-аут для этого блока тоже стоит установить с запасом.
Шаг 8. Финальное сообщение и зацикливание
После второго HTTP-запроса добавьте финальное сообщение, в котором можно вывести промт, отправленный пользователем в начале:
{{$промт}}. Это позволяет пользователю видеть, по какому именно запросу сгенерировано изображение.
Чтобы бот не нужно было перезапускать каждый раз, добавьте кнопку в настройках клавиатуры. Переведите её в режим inline (кнопка отображается под сообщением) и проведите связь от этой кнопки обратно к блоку записи переменной
{{$промт}}. Теперь пользователь может генерировать изображения сколько угодно раз, не перезапуская бота.
Тестирование бота в Telegram
После сборки всего сценария перезапустите бота командой
/start и отправьте тестовый промт.
Сначала попробуйте простой запрос — бот его обработает и вернёт изображение. Затем — более детальный и развёрнутый промт с большим количеством деталей.
Отличительная особенность CDREAM: нейросеть автоматически генерирует реалистичные изображения без дополнительных параметров. Результаты больше похожи на фотографии, а не на рисунки или вымышленных персонажей.
Проверить детали выполнения запроса можно в разделе «Лог выполнения» в самом низу блока HTTP-запроса — там отображаются статус, заголовки, тело запроса и ответ от нейросети, в том числе полученный Task ID.
Итог
Чат-бот с интеграцией CDREAM на Watbot строится из шести ключевых элементов: приветственное сообщение с записью промта, первый HTTP-запрос с callback URL, промежуточное сообщение, задержка, входящий Webhook и второй HTTP-запрос для отправки картинки. Зациклив сценарий через inline-кнопку, вы получаете полноценный генератор изображений прямо в Telegram.
Полезные ссылки:
Как настроить HTTP-зарпрос:
Наше community в мессенджере Max:
Бесплатная регистрация на платформе:
Видео-инструкция TELEGRAM БОТ С SEEDREAM ЗА 15 МИНУТ