Перейти к основному содержимому

Конвейер генерации

Конвейер — это правило обработки одной карточки. Он берёт её данные, подставляет их в промпт, отправляет запрос в нейросеть, проверяет ответ и записывает его в выбранное поле.

Общая картина​

Поток обработки одной карточки:

Данные карточки → Промпт → Запрос в нейросеть → Очистка → Проверки → Запись в поле

Конвейер собирается из шагов. Один шаг — одна задача, один запрос к модели, одно целевое поле. Нужны два поля — два шага.

Конвейер линейный

Шаги идут строго по порядку, ветвлений и условий между шагами нет. Разные сценарии разводятся по разным профилям.

Анатомия шага​

Каждый шаг — это четыре вкладки настроек:

  1. Промпт и модель
  2. Целевое поле
  3. Постобработка
  4. Валидация

Кроме того, у шага есть собственные таймаут и число попыток, а сам шаг можно временно выключить, не удаляя настройку, — удобно, когда нужно прогнать конвейер без дорогого шага.

Промпт и модель​

Здесь задаются системный и пользовательский промпт, переопределение модели для конкретного шага (по умолчанию берётся модель профиля), тоггл веб-поиска и условные блоки для опциональных кусков промпта.

Плейсхолдеры: подстановка данных карточки​

В промпте вместо конкретных значений стоят подстановки — модуль заменяет их данными обрабатываемой карточки:

Напиши описание товара {{Наименование}} бренда {{Бренд}} с характеристиками {{Материал}}

Плейсхолдеры вставляются не вручную, а по клику из поиска: модуль показывает человекопонятные названия полей («Наименование», а не NAME) и группирует их:

  • стандартные поля карточки,
  • свойства инфоблока и значения справочников,
  • SEO-шаблоны,
  • раздел карточки,
  • результаты предыдущих шагов.

Условные блоки (IF)​

Условный блок показывает фрагмент промпта, только если поле заполнено. Без него у товара без бренда в промпт уедет висящее «Бренд: », и модель начнёт додумывать.

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

Целевое поле​

Определяет, куда писать ответ и в каком режиме. Записать результат можно в:

  • стандартные поля карточки,
  • свойства инфоблока,
  • SEO-шаблоны: META Title / Description / Keywords, заголовок страницы, ALT / TITLE картинок.

Режимы записи:

РежимЧто делаетКогда нужен
ПерезаписатьЗаменяет текущее значениеПолное обновление контента
ДописатьДобавляет к существующему текстуДополнение готового описания
Заполнить только пустоеНе трогает заполненные поляСтраховка ручного контента

Для HTML-полей выбирается формат текста (авто / текст / HTML). Здесь же выставляется флаг «Требует модерации» — см. модерацию на дашборде.

Постобработка​

Автоматическая очистка ответа от технической обёртки — до проверок и записи:

  • снимается markdown-обрамление кода (```html, ```);
  • вытаскивается содержимое <body>, если модель вернула целую HTML-страницу;
  • удаляются лишние кавычки вокруг ответа.

Несколько постпроцессоров применяются по порядку. Благодаря этому промпт не приходится обвешивать оговорками «не оборачивай в markdown» — модель всё равно периодически их игнорирует.

Валидация​

Проверки ответа перед записью. Забракованный ответ в инфоблок не попадает никогда.

ПроверкаЧто контролирует
ДлинаКоличество символов и количество слов — минимум и максимум
ФорматТекст, HTML или JSON
ЯзыкДоля букв нужного алфавита в ответе — ловит ответ не на том языке
Запрещённые фразыОтвет не должен содержать указанные фразы
Обязательные фразыОтвет должен содержать указанные фразы

Проверки работают по логике «И». Настраивается действие при провале: повторить / принять / пропустить шаг / прервать конвейер.

Ошибка шага останавливает конвейер для карточки

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

Цепочка шагов​

Шаги выполняются по порядку и образуют цепочку: каждый последующий шаг видит ответы всех предыдущих и может подставить их в промпт плейсхолдером «Результаты шагов».

Типовая цепочка:

  1. Описание товара — по полям и свойствам карточки.
  2. Короткий анонс — по описанию из шага 1.
  3. META Title и Description — по готовому описанию.

Каждый следующий шаг работает с готовым текстом, а не с исходной карточкой, — платить за повторную отправку всей карточки не нужно.

Проверка настроек конвейера​

Модуль проверяет конвейер до первого платного запроса и находит:

  • пустой промпт у активного шага,
  • ссылку на несуществующий шаг в плейсхолдере «Результаты шагов»,
  • ссылку на выключенный шаг.

Та же проверка выполняется автоматически перед каждым запуском очереди — ошибка конфигурации не превращается в тысячу оплаченных бессмысленных запросов.

Устойчивость к сбоям​

Модуль различает временные и фатальные проблемы провайдера:

  • Временная ошибка (провайдер недоступен, перегрузка, таймаут) — шаг повторяется с растущей паузой в пределах заданного числа попыток.
  • Фатальная ошибка (неверный ключ, закончились деньги) — очередь останавливается. Это защищает от тысячи одинаковых отказов и от неожиданного счёта.

Остаток на балансе провайдера проверяется перед первым платным запросом.

Безопасный старт​

Для любого шага можно включить флаг «Требует модерации». Результат не запишется в карточку сразу, а ляжет в очередь подтверждения на дашборде, где его можно принять, принять с правкой или отклонить с причиной.

подсказка

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