Настройка пайплайна
Задайте, какие этапы пайплайна должны выполняться, на двух уровнях: по умолчанию на движке и, при необходимости, через переопределение в отдельном запросе.
Вы уже решили, какие этапы нужны вокруг основного шага перевода. Теперь остаются два вопроса: где зафиксировать это решение и что делать, если одной задаче нужен другой сценарий? Ответ — два слоя. Движок хранит конфигурацию по умолчанию, которую наследует каждая асинхронная задача. Объект pipelineConfig в отдельной отправке переопределяет эту конфигурацию только для неё. Этапы, которые вы не включаете в переопределение, наследуются от движка, поэтому в запросе указываются только отличия.
Впервые работаете с пайплайном? Начните с раздела Обзор пайплайна, чтобы понять, что делает каждый этап. Эта страница посвящена тому, как включать этапы и переопределять их, а не тому, что именно происходит после включения.
Только для асинхронных задач
Конфигурация пайплайна применяется к задачам, созданным через Async Localization API. Синхронный эндпоинт /localize выполняет только основной шаг перевода и полностью игнорирует настройки пайплайна — на любом из двух уровней.
Настройки по умолчанию на уровне движка#
Откройте вкладку Pipeline у движка в панели управления и включайте или отключайте каждый этап независимо. Эта конфигурация становится значением по умолчанию для движка: каждая асинхронная задача, отправленная в него, будет выполняться с этими этапами, если только запрос не переопределит их. Настройте один раз — и не придётся заново задавать пайплайн в каждом вызове.
Каждый этап, кроме локализации, управляется отдельным переключателем — изменения сохраняются мгновенно. Включите любую комбинацию: ни одного этапа, все сразу или что-то среднее. Задание проходит этапы в следующем порядке:
- Предобработка — очищает источник перед переводом.
- Локализация — основной этап перевода. Помечен как Всегда включена и не имеет переключателя.
- Перефразирование — переписывает текст так, чтобы он звучал естественно. Не зависит от других этапов.
- Ручная проверка — направляет задание на внутреннюю или внешнюю проверку. Кнопка настроек этапа открывает Провайдер, Тайм-аут и Порог качества.
- Постобработка — согласует правки рецензента с правилами движка. Нельзя включить без Ручной проверки; при её отключении отключается тоже.
- Длина контента — удерживает перевод в рамках допустимой ширины, измеряемой в позициях отображения, а не в символах. Кнопка настроек этапа открывает Бюджет: Не превышать фиксированный лимит (с параметром Максимальная длина), Не длиннее оригинала или Совпадать с длиной оригинала (с параметром Допустимое отклонение в процентах).
- Обратный перевод — проверяет, сохранился ли смысл после двойного перевода. Не зависит от других этапов.
Этап, недоступный в вашем тарифном плане, отмечен тегом Enterprise и не включается.
Именно эти настройки по умолчанию наследует каждая задача, поэтому конфигурация движка — это основа, поверх которой применяется переопределение pipelineConfig. Каждый этап соответствует отдельному ключу:
{
"preEdit": { "enabled": true },
"humanEdit": {
"enabled": true,
"provider": "internal",
"tier": "standard",
"timeoutHours": 48,
"qualityThreshold": 85
},
"postEdit": { "enabled": false },
"rephrase": { "enabled": false },
"contentLength": {
"enabled": true,
"mode": { "_tag": "fixedCap", "maxColumns": 40 }
},
"backTranslation": { "enabled": true }
}| Ключ | Поля | Настраивается на странице этапа |
|---|---|---|
preEdit | enabled | AI-редактирование до локализации |
rephrase | enabled | Перефразирование для естественного звучания |
humanEdit | enabled, provider (internal | external), tier (необязательно; в записях принимается только standard, старые движки могут по-прежнему читать pro), timeoutHours, qualityThreshold (необязательно, целое число 1–100) | Проверка человеком |
postEdit | enabled | AI-оценка |
contentLength | enabled, mode: { "_tag": "fixedCap", "maxColumns": n }, { "_tag": "noLongerThanSource" } или { "_tag": "matchSource", "tolerancePct": n } | Эта страница — отдельной страницы для этапа нет |
backTranslation | enabled | Проверка обратным переводом |
Что именно контролирует каждое поле — какой провайдер проверки, какие переводы её пропускают, сколько ждать — описано на отдельной странице этапа. Эта страница о том, где хранится конфигурация и как сочетаются два уровня настроек.
Переопределение на уровне запроса#
Большинство задач должны выполняться с настройками движка по умолчанию. Исключение — отдельная отправка, которой нужен другой пайплайн: например, разовая партия маркетинговых текстов, где нужен этап перефразирования, обычно отключённый в вашем движке, или юридический контент, для которого этот этап лучше пропустить. Если менять движок ради одной партии, это затронет и все остальные задачи.
Поэтому отличия передаются прямо в запросе. Добавьте объект pipelineConfig в тело POST /jobs/localization, и он переопределит конфигурацию движка по умолчанию только для этой отправки. На самом движке ничего не изменится; следующая задача без переопределения снова пойдёт с настройками по умолчанию.
{
"sourceLocale": "en",
"targetLocales": ["de", "fr"],
"data": { "headline": "Ship in every language." },
"pipelineConfig": {
"rephrase": { "enabled": true },
"backTranslation": { "enabled": false }
}
}Это правило наследования, благодаря которому переопределение остаётся минимальным: указанный этап переопределяется; пропущенный — наследует настройки движка по умолчанию. Запрос выше включает rephrase и отключает backTranslation для конкретного задания. preEdit, humanEdit, postEdit и contentLength не указаны, поэтому они работают точно так, как настроено в движке. Указывайте только то, что отличается.
Указали этап — задайте его целиком
Переопределение действует на уровне этапа, а не поля. Каждый включённый этап должен быть полным объектом — нельзя отправить только humanEdit: { "timeoutHours": 24 }, чтобы изменить лишь тайм-аут, унаследовав остальное. Включайте этап целиком или опускайте его, чтобы унаследовать настройки движка по умолчанию. Частичного слияния внутри одного объекта этапа нет.
И ещё две вещи, которые переопределение не делает. Скажем об этом прямо, потому что именно здесь легко решить, будто оно умеет всё:
- Оно меняет только эту отправку. Оно не записывает изменения обратно в движок, так что это не способ внести постоянные изменения в конфигурацию — для этого нужна вкладка Pipeline. Используйте переопределение для разового случая, а вкладку — для новой стандартной конфигурации.
- Это не отменяет собственные правила выполнения этапа. Постобработка запускается только при наличии результата ручной проверки, поэтому включение
postEditничего не даст для задания без этапа ручной проверки — на каком бы уровне вы его ни включили.
Проверьте, что действительно выполнилось#
Конфигурация задаёт, какие этапы должны выполняться; запись самой задачи показывает, какие из них действительно отработали. У задачи есть массив steps[], и именно по нему вы подтверждаете, что переопределение на уровне запроса действительно сработало, а не просто было отправлено.
Как читать эти записи — stepId для каждого этапа, что означает шаг skipped, где отображаются некритичные сбои, — описано на отдельной странице.
Следующие шаги#
Теперь вы можете задать конфигурацию по умолчанию на движке и переопределить её в запросе. Дальше — отправьте задачу с переопределением или проверьте шаги выполнения, чтобы увидеть, какие этапы действительно были запущены.