hubris

Make

Подключение Hubris к Make (бывший Integromat) — приложение с модулями «Создать текстовый ответ» и «Сгенерировать изображение», готовый сценарий для блога на WordPress и универсальный путь через HTTP-модуль.

Make (бывший Integromat) — визуальный конструктор автоматизаций: сценарий собирается из модулей мышкой, без кода. Hubris подключается двумя способами:

  • Готовое приложение Hubris — два модуля, «Создать текстовый ответ» и «Сгенерировать изображение». Список моделей подтягивается прямо из вашего аккаунта, изображение приходит готовым файлом. Это основной путь.
  • HTTP-модуль — универсальный запасной вариант: работает с любым нашим эндпоинтом, включая те, которых нет в приложении (озвучка, транскрибация, эмбеддинги, видео).

Приложение для Make собрала студия web-steps.ru — не команда Hubris. Мы отвечаем за API и за то, что описано ниже; вопросы по устройству самого приложения, доработки и поддержка — на стороне автора.

Требования

  • Аккаунт Make
  • Аккаунт на hubris.pw, пополненный баланс и API-ключ формата sk-gw-...

Приложение ставится на аккаунт любого тарифа. Учтите только: Make относит сторонние приложения к платным категориям, и на бесплатном тарифе запуск сценария может упереться в сообщение вида «premium app» — это ограничение Make, а не наше. Тогда пригодится HTTP-модуль (см. ниже) — он штатный и такого ограничения не имеет.

Установка приложения

Приложение не опубликовано в общем каталоге Make — оно ставится по ссылке-приглашению.

  1. Войдите в свой аккаунт Make.
  2. Откройте ссылку: Установить приложение Hubris
  3. Подтвердите установку. Приложение появится в вашей организации — дальше оно ищется в списке модулей по слову Hubris.

Ссылка ведёт на зону us2. Если ваш аккаунт живёт в другой зоне (eu1, eu2, us1 — видно в адресной строке Make), сначала войдите в Make, а потом откройте ссылку: установка идёт в ту организацию, которая выбрана в вашей сессии. Без входа в Make ссылка показывает страницу ошибки — это нормально, откройте её после входа.

Создание подключения

Подключение (Connection) создаётся один раз и потом переиспользуется во всех модулях сценария.

  1. Добавьте в сценарий любой модуль Hubris.
  2. В поле Connection нажмите Add.
  3. Заполните:
ПолеЗначение
Connection nameлюбое понятное имя, например Hubris
API Keyваш ключ формата sk-gw-... — создать в личном кабинете
  1. Сохраните. Make сразу проверит ключ запросом к нашему каталогу моделей — если подключение создалось, ключ рабочий.

Ключ живёт в хранилище подключений Make и в самом сценарии не показывается. Разумно завести под Make отдельный ключ с дневным лимитом — тогда ошибка в сценарии (например, бесконечный цикл) не съест весь баланс.

Модуль «Создать текстовый ответ»

Отправляет запрос к языковой модели и возвращает текст. Подходит для генерации статей и писем, кратких пересказов, классификации обращений, извлечения данных из текста.

Параметры

ПолеЧто задаёт
ПровайдерСемейство моделей: ChatGPT, Claude, Gemini, DeepSeek, Llama, Mistral, Qwen, Grok, Kimi, GLM. Это фильтр для следующего поля.
ModelКонкретная модель. Список подгружается из вашего аккаунта Hubris при открытии модуля — то есть всегда актуальный.
PromptОсновной текст запроса. Поле многострочное; чтобы подставлять данные предыдущих шагов, включите режим сопоставления (иконка Map) и вставляйте переменные вида {{1.text}}.
Prompt (2-е сообщение)Второе сообщение с ролью system. Спрятано под Show advanced settings. Удобно, когда одна часть промпта постоянная (правила, тон, формат), а вторая приходит из сценария. Если поле заполнено, первое сообщение тоже отправляется как system.
RoleРоль первого сообщения: user, system или assistant. По умолчанию user.
Max TokensПотолок длины ответа в токенах. По умолчанию 6000.
TemperatureРазброс ответов, от 0 до 2. Ниже — стабильнее и суше, выше — свободнее. По умолчанию 1.
Top PАльтернативный способ ограничить разброс, от 0 до 1. По умолчанию 1. Обычно трогают либо Temperature, либо Top P.
Parse JSON ResponseТребует от модели ответ строго в JSON и разбирает его в поле Result. Подробности ниже.
Response FormatСелектор Text / JSON Object. Фактически формат задаёт галка Parse JSON Response, этот селектор на запрос не влияет — ориентируйтесь на галку.

Переменной подставляются только Prompt и Prompt (2-е сообщение). Всё остальное — включая Провайдер и Model — задаётся руками в панели модуля. Если модель нужно переключать по ходу сценария (например, дешёвая для простых заявок, сильная для сложных), поставьте перед модулями Router с двумя ветками или используйте HTTP-модуль.

Что возвращает

ПолеЗначение
Text ResponseОтвет модели текстом — то, что нужно в 90 % сценариев.
ResultРазобранный JSON (только при включённом Parse JSON Response).
ModelИдентификатор модели, которая реально ответила.
IDИдентификатор ответа модели (chatcmpl-...) — пригодится в переписке с поддержкой.
Finish ReasonПочему модель остановилась: stop — договорила сама, length — упёрлась в Max Tokens.
Usage → Prompt / Completion / Total TokensСколько токенов ушло на запрос и ответ.
Usage → CostСтоимость запроса в копейках. 1250 — это 12,50 ₽. Удобно складывать за прогон и писать в таблицу. Изредка поле приходит пустым (модель не отдала стоимость) — списание при этом всё равно происходит, точную сумму смотрите в логах.

Ответ в формате JSON

Когда нужен не связный текст, а структура (заголовок, описание, теги), включите Parse JSON Response. Эта галка — единственный переключатель формата: с ней модуль требует от модели строгий JSON и кладёт разобранный ответ в поле Result; без неё запрос уходит за обычным текстом, даже если селектор Response Format стоит в JSON Object.

Оговорка про Result: в списке для сопоставления у него показаны заранее заданные ключи — filename, title, alt, caption, info. Их зашил автор приложения под свой сценарий. Если структура другая, поля не появятся в подсказках Make, но данные приходят целиком — обращайтесь к ним выражением вида {{2.result.my_field}}. Когда полей много и хочется видеть их в сопоставлении, добавьте после модуля штатный JSON → Parse JSON и разберите им Text Response.

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

Модуль «Сгенерировать изображение»

Рисует картинку по текстовому описанию и отдаёт её готовым файлом — дальше его можно сразу положить в Google Drive, загрузить в WordPress, отправить в Telegram или приложить к письму, без промежуточных модулей.

Параметры

ПолеЧто задаёт
ПровайдерСемейство: Gemini Image, GPT Image, FLUX, Recraft, Seedream, Riverflow, Grok Imagine, MiniMax, Qwen Image, Wan. У MiniMax и Wan в каталоге сейчас нет моделей, рисующих картинки, — список моделей там будет пустым.
ModelКонкретная модель, список подгружается из вашего аккаунта.
PromptОписание картинки. Поддерживает сопоставление — можно собирать из данных предыдущих шагов.
QualityMedium — размер 1K, High — 2K. Влияет на стоимость.
Aspect Ratio1:1, 16:9, 9:16, 4:3, 3:4, 2:3, 3:2. Соотношения 2:3 и 3:2 отправляются как ближайшие поддерживаемые — 3:4 и 4:3.

Quality и Aspect Ratio рассчитаны на линейку Gemini Image — там они работают предсказуемо. У остальных линеек размер и пропорции задаёт сама модель: FLUX, Recraft, Seedream и прочие эти поля игнорируют, у GPT Image соотношение сторон тоже может не примениться. Когда пропорции критичны, проверьте результат на одном прогоне.

Что возвращает

ПолеЗначение
DataСамо изображение — двоичный файл. Именно его принимают модули Google Drive, Dropbox, WordPress, Telegram, Email.
File NameИмя файла — post-image с расширением. Одинаковое на каждом прогоне: если складываете картинки в одну папку, переименуйте файл следующим модулем (например, по теме поста).
MIME TypeТип содержимого. У большинства линеек это всегда image/png.
Text CommentТекстовый комментарий модели к картинке, если она его дала.
ModelМодель, которая рисовала.
Endpoint UsedКаким путём ушёл запрос: chat или images. Полезно при разборе ошибок.
First Image URL / Image URLsСсылка на изображение (у части моделей это data:-строка, а не веб-адрес).

Модели Gemini Image и GPT Image приложение вызывает через /v1/chat/completions, остальные — через /v1/images/generations. Это видно в поле Endpoint Used и объясняет, почему набор влияющих настроек у линеек разный. Подробнее про оба пути — в разделе Генерация изображений.

Готовый сценарий: блог на WordPress

Чтобы не собирать конвейер с нуля, возьмите готовый.

Скачать сценарий для Make: блог на WordPress

Берёт тему из Google Таблицы, пишет статью, рисует обложку, заливает её в медиатеку сайта и создаёт запись в WordPress.

wordpress-seo.blueprint.json · 26 КБ · Make → Import Blueprint

Цепочка сценария в Make: тема из Google Таблицы, статья, промпт картинки, генерация изображения, alt-текст, загрузка в медиатеку, Markdown в HTML, запись в WordPress, удаление строки

Сценарий и приложение для Make сделала студия web-steps.ru.

Цепочка из девяти модулей:

  1. Google Sheets → Get a Cell — очередная тема из таблицы.
  2. Hubris → Создать текстовый ответ — статья по теме: заголовки, списки, блок вопросов, финальный призыв со ссылкой.
  3. Hubris → Создать текстовый ответ — промпт для обложки по той же теме.
  4. Hubris → Сгенерировать изображение — сама обложка.
  5. Hubris → Создать текстовый ответ — имя файла, заголовок, alt-текст, подпись и описание картинки (ответ в JSON).
  6. WordPress → Create a Media Item — обложка попадает в медиатеку с заполненными alt и подписью.
  7. Markdown → Markdown to HTML — статья переводится из Markdown в HTML.
  8. WordPress → Create a Post — запись создаётся черновиком, обложка привязывается к ней.
  9. Google Sheets → Delete a Row — отработанная тема вычёркивается из таблицы.

Как импортировать

  1. В Make: Create a new scenario → меню ··· в редакторе сценария (в нижней панели инструментов; в обновлённом редакторе — в правом верхнем углу) → Import BlueprintChoose File, выберите скачанный файл → Save.
  2. Откройте каждый модуль и подставьте свои подключения: Hubris, Google Sheets, WordPress.
  3. В обоих модулях Google Sheets выберите свою таблицу — в файле она намеренно не задана — и проверьте лист: первый модуль настроен на лист с именем Лист1, последний — на первый лист по счёту. Формат таблицы простой: темы идут списком в столбце A, сценарий читает ячейку A1, а в конце удаляет первую строку — следующая тема поднимается наверх сама.
  4. Во втором модуле (статья) раскройте Show advanced settings и в поле Prompt (2-е сообщение) замените https://example.com и анкор на свои — иначе в конце статьи окажется ссылка-заглушка.
  5. В модуле Create a Post проверьте автора и рубрику: в файле стоят первый автор и первая рубрика сайта. На чужом WordPress это почти наверняка не то, что нужно.
  6. Запустите один прогон и посмотрите черновик в WordPress. Когда результат устроит, поменяйте в модуле Create a Post статус с draft на publish.

Модели в файле проставлены рабочие, но их можно менять: для более выразительного текста — модель посильнее из каталога, для картинок — любая image-модель.

Стоимость каждого прогона видна в поле Usage → Cost и в логах — там же можно отфильтровать запросы по ключу, если под Make заведён отдельный.

Универсальный путь: HTTP-модуль

Приложение закрывает текст и картинки. Всё остальное — озвучку, транскрибацию, эмбеддинги, видео, вызов инструментов, картинку на входе — можно взять штатным модулем HTTP → Make a request:

URL:     https://api.hubris.pw/v1/chat/completions
Method:  POST
Headers:
  Authorization: Bearer sk-gw-...
Body content type: application/json
Body content:
{
  "model": "anthropic/claude-haiku-4.5",
  "messages": [
    {"role": "user", "content": "{{1.text}}"}
  ]
}

В Make сейчас два приложения HTTP. У актуального (HTTP, версия 4) поля называются Body content typeapplication/json и Body content, заголовок Content-Type он ставит сам. У старого (HTTP (legacy), версия 3) то же задаётся как Body typeRaw, Content typeJSON (application/json), Request content, а Content-Type: application/json нужно добавить в Headers руками.

Включите Parse response, чтобы Make сам разобрал JSON — тогда ответ доступен как {{2.choices[1].message.content}} (в Make нумерация элементов массива начинается с единицы). Таймаут в настройках модуля (Timeout) стоит поднять до 300 секунд: длинные тексты и рассуждающие модели отвечают не мгновенно.

Полный список эндпоинтов — в справочнике API.

Рекомендуемые модели

Сценарии Make — это обычно поток однотипных запросов, где важнее цена и скорость, чем предельное качество рассуждений.

МодельКогда уместна
anthropic/claude-haiku-4.5классификация, короткие ответы, извлечение данных
openai/gpt-4o-miniуниверсальный недорогой выбор
anthropic/claude-sonnet-4.5статьи, письма, тексты, где виден стиль
google/gemini-2.5-flash-imageбыстрые иллюстрации и обложки
black-forest-labs/flux.2-proфотореалистичные изображения

Полный каталог с ценами и фильтрами — на странице Модели.

Решение проблем

Список моделей пустой или крутится вечно

Приложение запрашивает модели по вашему ключу. Пустой список означает, что запрос не прошёл: проверьте подключение (пересоздайте его с ключом заново) и то, что ключ не отозван в личном кабинете. Ещё вариант — у выбранного провайдера просто нет моделей нужного типа: например, у Recraft нет текстовых.

«Неверный API-ключ Hubris» (401)

Ключ не подошёл. Он должен начинаться с sk-gw- и не содержать пробелов и переносов строк — при копировании из письма или мессенджера легко прихватить лишнее.

«Недостаточно баланса» (402)

Баланс кончился. Пополнить — в личном кабинете, минимум 500 ₽. Полезно включить автопополнение, чтобы ночной сценарий не встал на середине.

«Модель не найдена» (404)

Модель убрали из каталога или переименовали — такое случается, когда производитель снимает версию с публикации. Откройте поле Model и выберите модель заново.

«Превышен дневной лимит API-ключа» (429)

Обычно это суточный лимит расхода, заданный для ключа: поднять или снять — в настройках ключа, лимит считается за выбранный период — сутки по Москве, неделю, месяц или весь срок ключа. Тот же текст приложение показывает и когда частоту запросов ограничил сам производитель модели (частая история на бесплатных моделях) — если лимита на ключе нет или он далеко не выбран, просто повторите запуск позже или возьмите другую модель.

Сценарий падает по таймауту

Ограничение на один запрос в модулях приложения — 300 секунд, этого хватает почти всегда. Если используете HTTP-модуль, проверьте его собственное поле Timeout: по умолчанию там куда меньше. И помните про ограничение Make на длительность всего сценария на вашем тарифе.

Ответ обрывается на полуслове

Finish Reason = length означает, что упёрлись в Max Tokens. Поднимите значение — для длинной статьи 6000 может не хватить.

Что дальше

Обновлено: