|
Documentación
Agenda una demoPlataforma
PlataformaMCPCLIAPI
Flujos de trabajo
GuíasRegistro de cambios

Bienvenida

  • Descripción general
  • Autenticación
  • Errores y códigos de estado
  • Firmas de webhook

Localización

  • Descripción general
  • Crear trabajos
  • Bloquea las claves no traducibles
  • Monitorear un grupo de trabajos
  • Obtener un trabajo
  • Listar trabajos
  • Entrega de webhooks
  • Progreso en tiempo real (WebSocket)

Pipeline

  • Descripción general
  • Edición con IA previa a la localización
  • Revisión humana
  • evaluación de IA (post-edición)
  • Reescribe para que suene natural
  • Verificación de retrotraducción
  • Configura el pipeline
  • Ver ejecuciones del pipeline

Aprovisionamiento

  • Descripción general
  • Crear un trabajo de aprovisionamiento
  • Tipos de fuente
  • Lo que extrae la IA
  • Entrega de webhooks
  • Progreso en vivo (WebSocket)

Síncrono

  • Localize
  • Recognize

Gestión del motor

  • Sugerencias del motor

API de sugerencias del motor

Los comentarios sobre tus traducciones casi nunca llegan como un clic en un panel. Llegan como una línea en tu propia herramienta de soporte, una nota de un revisor o una fila en tu propia cola de QA: "dejen de traducir el nombre del producto", "usen el registro formal en alemán". La API de sugerencias del motor convierte ese texto libre en cambios del motor desde código: envías el comentario como texto, la plataforma razona sobre él y te devuelve ediciones concretas y estructuradas para el glosario, las instrucciones o la voz de marca de tu motor, listas para aplicar.

Esta es la contraparte programática de la función del panel. Allí, las sugerencias se generan automáticamente cuando tus AI Reviewers le dan una puntuación baja a una traducción; aquí, tú aportas la señal en texto. En ambos casos, el resultado es el mismo: sugerencias pendientes para que las revises y apliques.

El flujo tiene dos partes. La generación es asíncrona: entregas el comentario y la plataforma razona sobre él en segundo plano, dejando sugerencias pendientes en el motor. La revisión es síncrona: consultas las sugerencias pendientes, lees qué propone cada una y la aplicas o la descartas. Esta página cubre ambas. Para la experiencia en el panel —generación automática a partir de puntuaciones bajas de revisión, la pestaña Suggestions y las notificaciones— consulta Engine Suggestions.

Un endpoint de configuración, no de traducción

Estos endpoints leen y cambian la configuración de un motor: su glosario, sus instrucciones y su voz de marca. Están limitados a un solo motor por su :id y se autentican con el mismo X-API-Key con alcance a nivel de organización que usa el resto de la API. Nunca traducen contenido ni alteran traducciones anteriores; una sugerencia aplicada entra en vigor en la siguiente traducción del motor.

Autenticación

Pasa tu API key en el encabezado X-API-Key. Las claves tienen alcance a nivel de organización y dan acceso a todos los motores de la organización. Consulta Authentication para más detalles y Errors and status codes para el modelo de errores que comparten todos los endpoints de esta página.

Generar a partir de comentarios#

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

Envía una descripción en texto plano de lo que el motor está haciendo mal. La plataforma razona sobre ese texto junto con la configuración actual del motor y propone ediciones atómicas; no volverá a proponer algo que el motor ya tenga. La generación se ejecuta de forma asíncrona, así que la llamada devuelve respuesta en cuanto se acepta el trabajo, no cuando las sugerencias ya están listas.

ParámetroTipoDescripción
id (ruta)stringEl motor para el que se generarán las sugerencias.
textstringComentarios en texto libre sobre la salida del motor. De 1 a 10,000 caracteres; debe contener al menos un carácter que no sea un espacio en blanco.
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 significa que la plataforma aceptó el trabajo, no que ya existan sugerencias. La generación es un paso en segundo plano: lee tu texto, razona sobre la configuración, elimina duplicados con lo que ya existe y guarda lo que proponga. Es totalmente válido que una ejecución no proponga nada (porque el comentario era vago o porque el motor ya cubre ese caso). Consulta los resultados listando las sugerencias del motor unos momentos después.

Se rechazan los comentarios vacíos

text debe contener un mensaje real. Una cadena vacía, o solo espacios en blanco, se rechaza con un 400; no se convierte silenciosamente en otro tipo de solicitud. Envía algo sobre lo que el modelo realmente pueda razonar.

Genera a partir de puntuaciones de revisión

El mismo disparador por puntuación baja que impulsa el panel también está disponible desde código: POST /engines/:id/suggestions/generate (cuerpo vacío) le pide a la plataforma que proponga ediciones a partir de las evaluación de IA recientes del motor con puntuaciones bajas, en lugar de hacerlo a partir de texto. Misma respuesta { "enqueued": true }, mismo resultado: sugerencias pendientes. Usa from-text cuando tengas comentarios escritos específicos; usa generate para extraer sugerencias de lo que tus revisores ya marcaron.

Listar sugerencias pendientes#

text
GET /engines/:id/suggestions

Devuelve las sugerencias del motor: el resultado de cualquier ejecución de generación, ya sea activada desde texto, desde el botón manual o automáticamente a partir de puntuaciones bajas de revisión. Cada entrada es una edición propuesta con su razonamiento asociado.

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"
  }
]
CampoDescripción
idIdentificador de sugerencia con prefijo egs_. Pásalo a apply o dismiss.
actionTypeUno de add_glossary_item, update_glossary_item, add_instruction, update_instruction, add_brand_voice, update_brand_voice.
targetKindLa parte del motor que toca la edición: glossary_item, instruction o brand_voice.
targetIdPara una acción update_*, el id de la entrada que se va a cambiar (gli_ / ins_ / bvc_). null para una acción add_*.
targetLocaleEl idioma al que aplica la sugerencia.
payloadLa edición lista para aplicar. Sus campos dependen de targetKind; es exactamente lo que necesita la operación de creación o actualización, por eso aplicarla no requiere más información de tu parte.
reasoningUna breve explicación de por qué se propone esta edición.
sourceReviewLogIdsLos registros de revisión cuyos fallos motivaron la sugerencia (ids de esrl_); queda vacío cuando la sugerencia proviene de texto de comentarios.
statuspending, applied o dismissed.
appliedTargetIdLa entrada creada o actualizada una vez que se aplica la sugerencia; null mientras sigue pendiente.

El payload es el detalle que hace que aplicar sea barato: el cambio propuesto queda completamente estructurado en el momento de la generación, así que aplicarlo es una simple escritura, no otra ronda de IA. Tú decides; la plataforma no vuelve a razonar.

Aplicar una sugerencia#

text
POST /engine-suggestions/:id/apply

Escribe el cambio propuesto en el motor y marca la sugerencia como applied. Esta es una escritura determinística del payload que ya viste en la lista; no hay una segunda llamada de IA, así que lo que revisaste es exactamente lo que se escribe. Una sugerencia add_* crea un nuevo elemento de glosario, una nueva instrucción o una nueva voz de marca; una sugerencia update_* cambia la entrada existente indicada por 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

La respuesta es la sugerencia en su estado applied, con appliedTargetId apuntando ahora a la entrada real del motor que creó o actualizó. A partir de ese momento, esa entrada es un elemento de glosario, una instrucción o una voz de marca normal: puedes abrirla, editarla o eliminarla como cualquier otra.

Aplicar cambia la configuración, no las traducciones anteriores

Aplicar edita la configuración del motor. El contenido ya traducido conserva su salida actual; el cambio aparece la próxima vez que el motor traduzca. Aplicar no vuelve a localizar nada por sí solo.

Descartar una sugerencia#

text
POST /engine-suggestions/:id/dismiss

Descarta una sugerencia que no quieres, marcándola como dismissed y dejando el motor intacto. Úsalo cuando una propuesta no sea adecuada para tu producto: el motor no cambia y la sugerencia deja de aparecer como pendiente.

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.

El ciclo completo#

Los cuatro endpoints forman un ciclo completo que puedes manejar enteramente desde código: envías comentarios, lees lo que se propuso y confirmas las ediciones con las que estás de acuerdo.

1

Generar

POST …/suggestions/from-text con tus comentarios por escrito (o …/suggestions/generate para basarte en puntuaciones bajas de revisión). Recibes { "enqueued": true } de inmediato.

2

Listar

GET /engines/:id/suggestions un momento después para leer las sugerencias pendientes, cada una con su payload y reasoning.

3

Aplicar o descartar

POST /engine-suggestions/:id/apply para confirmar la edición o …/dismiss para descartarla. Al aplicarla, el cambio surte efecto en la siguiente traducción del motor.

Siguientes pasos#

Engine Suggestions (función)
La vista del panel, la generación automática a partir de puntuaciones bajas de revisión y las notificaciones.
AI Reviewers
Evalúan las traducciones según tu configuración: la señal que usa el disparador automático de sugerencias.
Glossaries
Las reglas de traducción obligatoria y de no traducir que escribe una sugerencia de glosario.
Instructions
Las reglas por idioma que crea o actualiza una sugerencia de instrucciones.

¿Te resultó útil esta página?

Max PrilutskiyMax Prilutskiy·Actualizado hace 11 días·7 min de lectura