Передайте источники, которые у вас уже есть, — и сразу получите движок. POST /jobs/provisioning принимает имя нового движка и до 10 источников — ссылки для обхода или сырой текст — и возвращает 202 Accepted с ID движка. Ждать, пока ИИ дочитает ваш контент, не нужно: движок появляется сразу, как только приходит ответ, а его конфигурация применяется по мере выполнения задания.
POST /jobs/provisioningНа этой странице разобран вызов создания: параметры, формат запроса и ответ 202. Впервые работаете с асинхронным развёртыванием? Начните с обзора Async Provisioning API, чтобы понять общую логику. О том, что считается хорошим источником, читайте на отдельной странице — Типы источников. А что именно ИИ из них извлекает, описано в Что извлекает ИИ.
Аутентификация
Передайте API-ключ в заголовке X-API-Key. Ключи привязаны к организации и дают доступ ко всем движкам внутри неё. Подробнее см. в разделе Аутентификация.
Параметры#
Обязателен только engine.name. Всё остальное определяет, чему будет учиться движок. А если не передавать больше ничего, вы получите чистый движок с настройками по умолчанию.
| Параметр | Тип | Описание |
|---|---|---|
engine.name | string | Имя нового движка локализации. |
engine.description | string (необязательно) | Произвольное текстовое описание движка. |
locales | string[] (необязательно) | Целевые локали в формате BCP-47, для которых нужно выполнить настройку, например ["es", "ja", "de"]. |
sources | array (необязательно) | До 10 источников для анализа. Каждый источник — это либо link (URL, который платформа обходит), либо content (сырой текст или markdown). См. Типы источников. |
callbackUrl | string (необязательно) | URL HTTPS-вебхука для получения итогового результата. Поддерживается только HTTPS — callback URL на HTTP отклоняются. См. Доставка вебхуков. |
Запрос#
Источник — это объект { type, payload }. Для источников link указывайте страницы с реальным контекстом — гайдлайны бренда, стилистические руководства, продуктовую документацию. А content используйте для терминологии и правил тональности, которые можно сразу вставить в запрос. В примере ниже сочетаются оба варианта: две страницы для обхода и один блок явных правил.
const response = await fetch("https://api.lingo.dev/jobs/provisioning", {
method: "POST",
headers: {
"X-API-Key": process.env.LINGO_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
engine: {
name: "Acme Corp Engine",
description: "Production localization engine for acme.com",
},
locales: ["de", "fr", "ja", "es"],
sources: [
{ type: "link", payload: "https://acme.com/brand-guidelines" },
{ type: "link", payload: "https://acme.com/docs/style-guide" },
{
type: "content",
payload:
"Brand name 'Acme' is never translated. Use formal tone in German (Sie-form). Product names: AcmeFlow, AcmeSync, AcmeVault - always keep in English.",
},
],
callbackUrl: "https://your-app.com/webhooks/provisioning",
}),
});
const { jobId, engineId, status } = await response.json();
// 202 back right away.
// status: "in_progress" – the AI is reading your sources.
console.log(engineId); // "eng_X1y2Z3a4B5c6D7e8" – usable right nowОтвет (202 Accepted)#
Вызов возвращается без ожидания завершения обхода и анализа: вы сразу получаете ID задания для отслеживания и ID движка, который уже можно использовать.
{
"jobId": "pjb_A1b2C3d4E5f6G7h8",
"engineId": "eng_X1y2Z3a4B5c6D7e8",
"status": "in_progress"
}| Поле | Описание |
|---|---|
jobId | ID задания развёртывания (с префиксом pjb_). Отслеживайте выполнение, подключившись по WebSocket и получая прогресс в реальном времени, или получите результат в свой вебхук после завершения. |
engineId | ID нового движка (с префиксом eng_). Им можно пользоваться сразу — конфигурация, которую извлекает ИИ, применяется к нему по мере выполнения задания. |
status | in_progress, если вы передали источники; completed, если нет (см. ниже). |
Именно это делает асинхронный вызов действительно полезным, а не просто долгим ожиданием: engineId возвращается в том же ответе 202 и сразу указывает на реальный движок. Вы можете сохранить его, отправить через него Синхронный запрос Localize или встроить в приложение ещё до того, как ИИ успеет дочитать хотя бы один источник. По мере того как платформа извлекает тональность бренда, элементы глоссария и инструкции, она применяет их к тому же самому движку — движок существует ещё до появления его конфигурации. Чтобы точно понимать, что создало это задание, см. Что извлекает ИИ.
Нет источников? Вы получаете движок без ожидания.
Если не передавать sources, обходить будет нечего, поэтому движок создаётся с конфигурацией модели по умолчанию и возвращается вместе с status: "completed" в том же ответе. Это самый быстрый вариант, если вам нужен пустой движок для самостоятельной настройки: один вызов, готовый engineId и никакого фонового задания, за которым нужно следить.
