|
Documentation
Réserver une démoPlateforme
PlateformeMCPCLIAPI
Workflows
GuidesChangelog

Bienvenue

  • Vue d'ensemble
  • Authentification
  • Erreurs et codes d’état
  • Signatures de webhook

Localisation

  • Vue d'ensemble
  • Créer des jobs
  • Verrouiller les clés non traduisibles
  • Suivre un groupe de jobs
  • Récupérer un job
  • Lister les jobs
  • Envoi des webhooks
  • Progression en direct (WebSocket)

Pipeline

  • Vue d'ensemble
  • Pré-édition IA avant localisation
  • Relecture humaine
  • évaluation IA (post-édition)
  • Retravailler la traduction pour un rendu naturel
  • Vérification par rétrotraduction
  • Configurer le pipeline
  • Observer les exécutions du pipeline

Provisioning

  • Vue d'ensemble
  • Créer une tâche de provisionnement
  • Types de sources
  • Ce que l'IA extrait
  • Envoi des webhooks
  • Suivi en direct (WebSocket)

Synchrone

  • Localize
  • Recognize

Gestion du moteur

  • Engine Suggestions

API Engine Suggestions

Les retours sur vos traductions arrivent rarement sous la forme d’un clic dans un tableau de bord. C’est plutôt une ligne dans votre outil de support, une note d’un relecteur, une entrée dans votre file d’attente QA – « ne traduisez plus le nom du produit », « utilisez le registre formel en allemand ». L’API Engine Suggestions transforme ce texte libre en modifications du moteur depuis le code : vous envoyez le retour sous forme de texte, la plateforme l’analyse, puis vous renvoie des modifications concrètes et structurées du glossaire, des instructions ou de la voix de marque de votre moteur, prêtes à être appliquées.

C’est le pendant programmatique de la fonctionnalité du tableau de bord. Là-bas, les suggestions sont générées automatiquement lorsque vos évaluateur IA attribuent une mauvaise note à une traduction ; ici, c’est vous qui fournissez le signal sous forme de texte. Dans les deux cas, le résultat est le même : des suggestions en attente que vous relisez puis appliquez.

Le flux se découpe en deux temps. La génération est asynchrone : vous transmettez un retour, et la plateforme l’analyse en arrière-plan pour déposer des suggestions en attente sur le moteur. La relecture est synchrone : vous listez les suggestions en attente, lisez ce que chacune propose, puis vous les appliquez ou les ignorez une à une. Cette page couvre les deux. Pour l’expérience dans le tableau de bord – génération automatique à partir de faibles scores de relecture, onglet Suggestions, notifications – consultez Engine Suggestions.

Un endpoint de configuration, pas de traduction

Ces endpoints lisent et modifient la configuration d’un moteur – son glossaire, ses instructions et sa voix de marque. Ils sont limités à un seul moteur via son :id, et s’authentifient avec le même X-API-Key à l’échelle de l’organisation que le reste de l’API. Ils ne traduisent jamais de contenu et ne modifient pas les traductions passées ; une suggestion appliquée prend effet lors de la prochaine traduction du moteur.

Authentification

Transmettez votre clé API dans l’en-tête X-API-Key. Les clés ont une portée organisationnelle et donnent accès à tous les moteurs de l’organisation. Consultez Authentication pour plus de détails, et Errors and status codes pour le modèle d’erreur partagé par tous les endpoints présentés ici.

Générer à partir d’un retour#

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

Envoyez une description en texte brut de ce que le moteur fait mal. La plateforme analyse ce texte ainsi que la configuration actuelle du moteur, puis propose des modifications atomiques – sans reproposer ce que le moteur possède déjà. La génération s’exécute de façon asynchrone ; l’appel renvoie donc dès que le traitement est accepté, et non lorsque les suggestions sont prêtes.

ParamètreTypeDescription
id (chemin)stringLe moteur pour lequel générer des suggestions.
textstringRetour en texte libre sur la sortie du moteur. 1 à 10 000 caractères ; doit contenir au moins un caractère autre qu’un espace.
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 signifie que la plateforme a accepté le traitement, pas que des suggestions existent déjà. La génération est une étape en arrière-plan : elle lit votre texte, analyse la configuration, supprime les doublons avec ce qui existe déjà et enregistre tout ce qu’elle propose. Une exécution peut légitimement ne rien proposer (si le retour est vague, ou si le moteur couvre déjà le point). Consultez les résultats en listant les suggestions du moteur quelques instants plus tard.

Les retours vides sont rejetés

text doit contenir un vrai message. Une chaîne vide, ou composée uniquement d’espaces, est rejetée avec un 400 – elle n’est pas convertie silencieusement en un autre type de requête. Envoyez quelque chose que le modèle puisse réellement analyser.

Générer à partir des scores de relecture à la place

Le même déclencheur sur faible score qui alimente le tableau de bord est aussi disponible depuis le code : POST /engines/:id/suggestions/generate (corps vide) demande à la plateforme de proposer des modifications à partir des récentes évaluation IA à faible score du moteur plutôt qu’à partir d’un texte. Même réponse { "enqueued": true }, mêmes suggestions en attente en sortie. Utilisez from-text lorsque vous avez un retour écrit précis ; utilisez generate pour faire remonter des suggestions à partir de ce que vos relecteurs ont déjà signalé.

Lister les suggestions en attente#

text
GET /engines/:id/suggestions

Renvoie les suggestions du moteur – le résultat de toute exécution de génération, qu’elle soit déclenchée à partir de texte, via le bouton manuel ou automatiquement à partir de faibles scores de relecture. Chaque entrée correspond à une modification proposée, accompagnée de son raisonnement.

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"
  }
]
ChampDescription
idIdentifiant de suggestion préfixé par egs_. Passez-le à apply ou dismiss.
actionTypeL’un de add_glossary_item, update_glossary_item, add_instruction, update_instruction, add_brand_voice, update_brand_voice.
targetKindLa partie du moteur concernée par la modification : glossary_item, instruction ou brand_voice.
targetIdPour une action update_*, l’identifiant de l’entrée à modifier (gli_ / ins_ / bvc_). null pour une action add_*.
targetLocaleLa langue à laquelle la suggestion s’applique.
payloadLa modification prête à être appliquée. Ses champs dépendent de targetKind – c’est exactement ce dont l’opération de création ou de mise à jour a besoin, d’où l’absence de toute autre entrée de votre part au moment de l’application.
reasoningBrève explication de la raison pour laquelle cette modification est proposée.
sourceReviewLogIdsLes logs de relecture dont les échecs ont motivé la suggestion (identifiants esrl_) ; vide lorsque la suggestion provient d’un texte de retour.
statuspending, applied ou dismissed.
appliedTargetIdL’entrée créée ou mise à jour une fois la suggestion appliquée ; null tant qu’elle est en attente.

Le payload est le détail qui rend l’application peu coûteuse : la modification proposée est entièrement structurée au moment de la génération, donc l’application se résume à une simple écriture, pas à un nouveau cycle d’IA. C’est vous qui décidez ; la plateforme ne refait pas l’analyse.

Appliquer une suggestion#

text
POST /engine-suggestions/:id/apply

Écrit la modification proposée dans le moteur et marque la suggestion comme applied. Il s’agit d’une écriture déterministe du payload que vous avez déjà vu dans la liste – il n’y a pas de second appel à l’IA, donc ce que vous avez relu est exactement ce qui sera écrit. Une suggestion add_* crée un nouvel élément de glossaire, une nouvelle instruction ou une nouvelle voix de marque ; une suggestion update_* modifie l’entrée existante désignée par 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 réponse correspond à la suggestion dans son état applied, avec appliedTargetId qui pointe désormais vers la véritable entrée du moteur qu’elle a créée ou mise à jour. À partir de là, cette entrée devient un élément de glossaire, une instruction ou une voix de marque comme les autres – vous pouvez l’ouvrir, la modifier ou la supprimer comme n’importe quelle autre.

L’application modifie la configuration, pas les traductions passées

L’application modifie la configuration du moteur. Le contenu déjà traduit conserve sa sortie actuelle ; la modification apparaîtra la prochaine fois que le moteur traduira. Apply ne relocalise rien à lui seul.

Ignorer une suggestion#

text
POST /engine-suggestions/:id/dismiss

Supprime une suggestion dont vous ne voulez pas, la marque comme dismissed et laisse le moteur intact. Utilisez cette action lorsqu’une proposition ne convient pas à votre produit – le moteur n’est pas modifié, et la suggestion cesse d’apparaître comme en attente.

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.

La boucle de bout en bout#

Les quatre endpoints forment un cycle complet que vous pouvez piloter entièrement depuis le code : injectez un retour, consultez ce qui a été proposé, puis validez les modifications avec lesquelles vous êtes d’accord.

1

Générer

POST …/suggestions/from-text avec votre retour écrit (ou …/suggestions/generate pour vous appuyer à la place sur de faibles scores de relecture). Vous obtenez immédiatement { "enqueued": true }.

2

Lister

GET /engines/:id/suggestions quelques instants plus tard pour consulter les suggestions en attente, chacune avec son payload et son reasoning.

3

Appliquer ou ignorer

POST /engine-suggestions/:id/apply pour valider la modification, ou …/dismiss pour l’abandonner. L’application prend effet lors de la prochaine traduction du moteur.

Étapes suivantes#

Engine Suggestions (fonctionnalité)
La vue tableau de bord, la génération automatique à partir de faibles scores de relecture et les notifications.
AI Reviewers
Évaluez les traductions par rapport à votre configuration – le signal sur lequel s’appuie le déclencheur automatique de suggestions.
Glossaires
Les règles de traduction imposée et de non-traduisibilité qu’une suggestion de glossaire enregistre.
Instructions
Les règles par langue qu’une suggestion d’instruction crée ou met à jour.

Cette page vous a-t-elle été utile ?

Max PrilutskiyMax Prilutskiy·Mis à jour il y a environ 2 mois·8 min de lecture