|
Документация
Заказать демоПлатформа
ПлатформаMCPCLIAPI
Процессы
РуководстваЖурнал изменений

Добро пожаловать

  • Обзор
  • Аутентификация
  • Ошибки и коды статуса
  • Подписи webhook

Локализация

  • Обзор
  • Создать задачи
  • Заблокировать непереводимые ключи
  • Отслеживание группы заданий
  • Получить одно задание
  • Список заданий
  • Доставка через вебхук
  • Прогресс в реальном времени (WebSocket)

Пайплайн

  • Обзор
  • AI-редактирование перед локализацией
  • Проверка человеком
  • AI-оценка (post-edit)
  • Перефразирование для естественного звучания
  • Проверка обратным переводом
  • Настройка пайплайна
  • Как отслеживать запуски пайплайна

Развёртывание

  • Обзор
  • Создать задание развёртывания
  • Типы источников
  • Что извлекает AI
  • Доставка webhook
  • Прогресс в реальном времени (WebSocket)

Синхронный

  • Локализация
  • Распознавание

Управление движком

  • Предложения для движка

API предложений для движка

Обратная связь по переводам редко приходит в виде клика в панели. Обычно это строка в вашей системе поддержки, заметка от проверяющего, запись в очереди QA — «не переводите название продукта», «используйте формальный стиль в немецком». API предложений для движка превращает такой произвольный текст в изменения движка через код: вы отправляете обратную связь текстом, платформа анализирует её и возвращает конкретные структурированные правки для глоссария, инструкций или тональности бренда движка, которые вы затем можете применить.

Это программный аналог функции в панели управления. Там предложения генерируются автоматически, когда ваши AI-оценщики ставят переводу низкую оценку; здесь вы сами передаёте сигнал в виде текста. В обоих случаях результат один и тот же — ожидающие предложения, которые вы проверяете и применяете.

Процесс состоит из двух частей. Генерация выполняется асинхронно: вы передаёте обратную связь, а платформа в фоновом режиме анализирует её и добавляет в движок ожидающие предложения. Проверка выполняется синхронно: вы получаете список ожидающих предложений, читаете, что именно предлагается, и применяете или отклоняете каждое из них. На этой странице описаны обе части. О сценарии в панели управления — автоматической генерации на основе низких оценок проверки, вкладке Suggestions и уведомлениях — см. Предложения для движка.

Это endpoint конфигурации, а не перевода

Эти endpoints читают и изменяют конфигурацию движка — его глоссарий, инструкции и тональность бренда. Они привязаны к конкретному движку через его :id и используют ту же аутентификацию на уровне организации через X-API-Key, что и остальной API. Они никогда не переводят контент и не меняют прошлые переводы; применённое предложение вступит в силу при следующем переводе движка.

Аутентификация

Передавайте API-ключ в заголовке X-API-Key. Ключи действуют на уровне организации и дают доступ ко всем движкам в её пределах. Подробности см. в разделе Authentication, а общую модель ошибок для всех endpoints на этой странице — в разделе Errors and status codes.

Генерация из обратной связи#

text
POST /engines/:id/suggestions/from-text

Отправьте текстовое описание того, в чём движок ошибается. Платформа анализирует этот текст вместе с текущей конфигурацией движка и предлагает атомарные правки — она не будет повторно предлагать то, что в движке уже есть. Генерация выполняется асинхронно, поэтому вызов возвращается сразу после принятия задачи в работу, а не после того, как предложения будут готовы.

ПараметрТипОписание
id (path)stringДвижок, для которого нужно сгенерировать предложения.
textstringТекстовая обратная связь о результатах работы движка. От 1 до 10 000 символов; должна содержать хотя бы один непробельный символ.
javascript
const response = await fetch(
  `https://api.lingo.dev/engines/${engineId}/suggestions/from-text`,
  {
    method: "POST",
    headers: {
      "X-API-Key": process.env.LINGO_API_KEY,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      text: "Our German (de-DE) translations keep using the informal 'du'. For our B2B audience they must always use the formal 'Sie'.",
    }),
  },
);

const { enqueued } = await response.json();
console.log(enqueued); // true – generation accepted, running in the background
json
{ "enqueued": true }

enqueued: true означает, что платформа приняла задачу в работу, а не что предложения уже готовы. Генерация — это один фоновый этап: платформа читает ваш текст, анализирует конфигурацию, убирает дубликаты относительно того, что уже есть, и сохраняет всё, что предлагает. Вполне нормально, если по итогам запуска не будет предложено ничего вовсе (например, если обратная связь была слишком расплывчатой или движок уже это учитывает). Чтобы увидеть результат, через несколько секунд получите список предложений движка.

Пустая обратная связь отклоняется

text должен содержать реальное сообщение. Пустая строка или строка только из пробелов отклоняется с ошибкой 400 — она не преобразуется молча в другой тип запроса. Отправляйте то, что модель действительно может проанализировать.

Генерация по оценкам проверки вместо текста

Тот же триггер низкой оценки, который лежит в основе функции в панели управления, доступен и из кода: POST /engines/:id/suggestions/generate (пустое тело) просит платформу предложить правки на основе недавних низких AI-оценок движка, а не текста. Тот же ответ { "enqueued": true }, на выходе — те же ожидающие предложения. Используйте from-text, если у вас есть конкретная письменная обратная связь; используйте generate, чтобы получить предложения на основе того, что ваши проверяющие уже отметили.

Список ожидающих предложений#

text
GET /engines/:id/suggestions

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

json
[
  {
    "id": "egs_A1b2C3d4E5f6G7h8",
    "ownerOrganizationId": "org_X1y2Z3a4B5c6D7e8",
    "ownerEngineId": "eng_X1y2Z3a4B5c6D7e8",
    "actionType": "add_instruction",
    "targetKind": "instruction",
    "targetId": null,
    "targetLocale": "de-DE",
    "payload": { "instruction": "Use the formal 'Sie' form in all German translations; never use the informal 'du'." },
    "reasoning": "Feedback states the B2B audience requires formal address, but the engine has no instruction enforcing it.",
    "sourceReviewLogIds": [],
    "status": "pending",
    "appliedTargetId": null,
    "createdAt": "2026-06-18T10:30:00.000Z"
  }
]
ПолеОписание
idИдентификатор предложения с префиксом egs_. Передайте его в apply или dismiss.
actionTypeОдно из значений: add_glossary_item, update_glossary_item, add_instruction, update_instruction, add_brand_voice, update_brand_voice.
targetKindЧасть движка, которую затрагивает правка: glossary_item, instruction или brand_voice.
targetIdДля действия update_* — id записи, которую нужно изменить (gli_ / ins_ / bvc_). null для действия add_*.
targetLocaleЛокаль, к которой относится предложение.
payloadГотовая к применению правка. Её поля зависят от targetKind — это в точности то, что требуется для операции create/update, поэтому для применения от вас не нужен никакой дополнительный ввод.
reasoningКраткое объяснение, почему предлагается эта правка.
sourceReviewLogIdsЛоги проверки, ошибки в которых стали основанием для предложения (id esrl_); пусто, если предложение было создано из текста обратной связи.
statuspending, applied или dismissed.
appliedTargetIdЗапись, созданная или обновлённая после применения предложения; null, пока предложение ожидает обработки.

Именно payload делает применение простым: предлагаемое изменение полностью структурируется ещё на этапе генерации, поэтому применение — это обычная запись, а не ещё один раунд работы AI. Решение принимаете вы; платформа ничего не переанализирует.

Применение предложения#

text
POST /engine-suggestions/:id/apply

Записывает предложенное изменение в движок и помечает предложение как applied. Это детерминированная запись payload, которую вы уже видели в списке — второго вызова AI нет, поэтому записывается ровно то, что вы проверили. Предложение типа add_* создаёт новый элемент глоссария, инструкцию или тональность бренда; предложение типа update_* изменяет существующую запись, указанную в targetId.

javascript
const response = await fetch(
  `https://api.lingo.dev/engine-suggestions/${suggestionId}/apply`,
  {
    method: "POST",
    headers: { "X-API-Key": process.env.LINGO_API_KEY },
  },
);

const applied = await response.json();
console.log(applied.status);          // "applied"
console.log(applied.appliedTargetId); // "ins_…" – the instruction it just created

В ответе возвращается предложение в состоянии applied, где appliedTargetId теперь указывает на реальную запись движка, которая была создана или обновлена. С этого момента это обычный элемент глоссария, инструкция или настройка тональности бренда — её можно открыть, изменить или удалить, как и любую другую.

Применение меняет конфигурацию, а не прошлые переводы

При применении меняется конфигурация движка. Уже переведённый контент сохраняет текущий результат; изменение проявится при следующем переводе движка. Само по себе применение ничего не локализует заново.

Отклонение предложения#

text
POST /engine-suggestions/:id/dismiss

Удаляет ненужное предложение, помечая его как dismissed и не меняя движок. Используйте это, если предложение не подходит вашему продукту: движок останется без изменений, а предложение перестанет отображаться как ожидающее.

javascript
await fetch(
  `https://api.lingo.dev/engine-suggestions/${suggestionId}/dismiss`,
  {
    method: "POST",
    headers: { "X-API-Key": process.env.LINGO_API_KEY },
  },
);
// The suggestion is now "dismissed"; nothing was written to the engine.

Полный цикл#

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

1

Сгенерировать

POST …/suggestions/from-text с вашей письменной обратной связью (или …/suggestions/generate, чтобы вместо этого использовать низкие оценки проверки). В ответ вы сразу получаете { "enqueued": true }.

2

Получить список

Через некоторое время выполните GET /engines/:id/suggestions, чтобы увидеть ожидающие предложения, каждое со своим payload и reasoning.

3

Применить или отклонить

POST /engine-suggestions/:id/apply, чтобы зафиксировать правку, или …/dismiss, чтобы отказаться от неё. Применение вступит в силу при следующем переводе движка.

Что дальше#

Предложения для движка (функция)
Представление в панели управления, автоматическая генерация на основе низких оценок проверки и уведомления.
AI Reviewers
Оценивайте переводы по вашей конфигурации — именно этот сигнал использует автоматический триггер предложений.
Глоссарии
Правила обязательного перевода и непереводимых элементов, которые записывает предложение для глоссария.
Инструкции
Правила для каждой локали, которые предложение для инструкций создаёт или обновляет.

Эта страница была полезной?

Max PrilutskiyMax Prilutskiy·Обновлено 11 дней назад·6 минут чтения