|
Documentação
Marcar uma demonstraçãoPlataforma
PlataformaMCPCLIAPI
Workflows
GuiasChangelog

Boas-vindas

  • Visão geral
  • Autenticação
  • Erros e códigos de estado
  • Assinaturas de webhook

Localização

  • Visão geral
  • Criar jobs
  • Bloquear chaves não traduzíveis
  • Acompanhar um grupo de jobs
  • Obter um trabalho
  • Listar tarefas
  • Entrega de webhooks
  • Progresso em tempo real (WebSocket)

Pipeline

  • Visão geral
  • Edição por IA pré-localização
  • Revisão humana
  • avaliação por IA (post-edit)
  • Reformular para soar natural
  • Verificação por retrotradução
  • Configurar o pipeline
  • Observar execuções do pipeline

Provisionamento

  • Visão geral
  • Criar uma tarefa de aprovisionamento
  • Tipos de fonte
  • O que a IA extrai
  • Entrega de webhook
  • Progresso em tempo real (WebSocket)

Síncrono

  • Localize
  • Recognize

Gestão do motor

  • Sugestões do motor

API de Localização Assíncrona

O seu conteúdo muda e, de repente, tem de chegar a todos os idiomas em que disponibiliza o seu produto. Um módulo de formação recebe uma nova lição. Uma entrada no CMS é guardada. Uma descrição de produto é editada. A tradução tem de ser distribuída por alemão, francês, japonês e mais uma dúzia de idiomas — e a sua aplicação não deve ficar bloqueada enquanto isso acontece.

A API de localização assíncrona foi criada exatamente para esse momento: um pedido, todos os idiomas, resultados à medida que chegam. Faz POST do seu conteúdo uma vez com os idiomas de destino, recebe um 202 de imediato e a plataforma traduz cada idioma como um trabalho em segundo plano independente. Mantém o seu glossário, a voz da marca e a configuração do modelo — o mesmo motor que a API síncrona utiliza — e deixa de ter de gerir novas tentativas.

Nesta página

  • O problema
  • Como funciona
  • O modelo de grupo de trabalhos
  • Onde ir a seguir

O problema#

Plataformas de formação, sistemas de gestão de conteúdos e ferramentas de e-learning precisam frequentemente de traduzir conteúdo para dezenas de línguas no momento em que é criado ou atualizado. A API de localização síncrona funciona, mas obriga a um compromisso quando se escala.

Pense num módulo de formação criado em inglês que tem de chegar a formandos em 14 línguas. Com a API síncrona, tem duas opções — e ambas têm um custo:

  1. Fazer 14 chamadas em paralelo — um pedido por idioma de destino, cada um com a mesma payload de origem. Pode apresentar cada língua à medida que chega, mas está a gerir 14 viagens de ida e volta pela rede com dados redundantes, e a lógica de novas tentativas fica a seu cargo quando uma delas falha.

  2. Traduzir as 14 numa única chamada síncrona — menos viagens de ida e volta, mas agora tem de esperar pelo idioma mais lento antes de poder apresentar qualquer um deles.

De uma forma ou de outra, a sua aplicação fica ocupada enquanto as traduções são processadas. Se o seu servidor reiniciar a meio, as traduções em curso perdem-se. Se uma língua falhar, o tratamento de falhas parciais fica a seu cargo. E nenhuma destas abordagens dá aos seus utilizadores um sinal claro de que as traduções estão em curso.

A API assíncrona elimina esse compromisso. Um pedido cria um grupo de trabalhos com um trabalho por idioma de destino. Cada trabalho é executado independentemente através do seu motor de localização como um workflow durável em segundo plano — por isso, um reinício do seu lado não faz perder nada, porque o trabalho não está a ser executado no seu processo. Os resultados são entregues por idioma no momento em que cada um termina. A sua aplicação mantém-se responsiva. As falhas ficam isoladas. A plataforma trata das novas tentativas e da entrega.

Um idioma, e pode esperar um segundo? Use sync.

A API assíncrona justifica-se quando tem muitos idiomas, conteúdo longo ou uma UI que deve mostrar progresso. Se precisar de um único par de idiomas e puder esperar por uma viagem de ida e volta, o endpoint Localize síncrono é a opção mais simples — um pedido, os dados traduzidos de volta na resposta, sem necessidade de manter um endpoint de webhook. Recorra à assíncrona quando o trabalho for demasiado grande, demasiado lento ou envolver idiomas a mais para bloquear.

Como funciona#

São três passos, e apenas o primeiro acontece no seu ciclo de pedido/resposta. Os outros dois acontecem na plataforma, ao seu próprio ritmo.

1

Submeta um pedido

Faça POST do seu conteúdo e dos idiomas de destino para /jobs/localization. A API valida a payload, cria um grupo de trabalhos com um trabalho por idioma e devolve 202 com o ID do grupo e um resumo dos trabalhos. A sua aplicação pode continuar de imediato — nada é traduzido dentro desta chamada. Consulte Criar trabalhos para ver a estrutura completa do pedido e da resposta.

2

A plataforma processa cada idioma de forma independente

Cada trabalho é executado através do seu motor de localização por meio de um workflow durável em segundo plano, aplicando a mesma seleção de modelo, glossário, voz da marca e instruções que a API síncrona. Cada trabalho pode, opcionalmente, passar por uma pipeline com fases de pré-edição, revisão humana, pós-edição, reformulação e retrotradução. Um trabalho passa de queued para processing e depois para um estado terminal: completed, completed_with_warnings ou failed — e o resultado de um idioma nunca bloqueia o de outro.

3

Receba os resultados à medida que chegam

No momento em que um idioma fica concluído, a plataforma entrega o respetivo resultado ao seu URL de webhook. Para progresso em tempo real na sua UI — um contador "3 de 14 prontos" que se atualiza à medida que os trabalhos ficam concluídos — ligue-se ao WebSocket do grupo. Se preferir ir buscar os dados, faça polling ao grupo em intervalos regulares.

Autenticação

Todos os pedidos — REST e WebSocket — são autenticados com o seu cabeçalho X-API-Key. As chaves são limitadas à organização e dão acesso a todos os motores da organização. Consulte Authentication para os detalhes e API Keys para criar uma.

O modelo de grupo de trabalhos#

Uma submissão produz um grupo que contém um trabalho por idioma de destino. Esta estrutura é todo o modelo mental, e é isso que torna as perguntas difíceis mais fáceis de responder.

Um leitor mais cético já estará a fazer a lista: o que acontece quando um idioma falha, e o que acontece à minha aplicação enquanto tudo isto está em curso? O modelo de grupo responde às duas perguntas.

  • As falhas ficam isoladas, porque cada idioma é o seu próprio trabalho. Se o alemão for concluído com sucesso e o japonês falhar, a tradução em alemão é entregue normalmente e o trabalho em japonês transporta o seu próprio errorMessage. O grupo reporta partial, e o que foi concluído com sucesso continua a ser entregue. Uma falha num idioma não pode reverter outro que já tenha sido concluído. A semântica completa dos estados está em Acompanhar um grupo de trabalhos.
  • O trabalho em curso sobrevive a um reinício, porque não é executado no seu processo. Cada trabalho é um workflow durável em segundo plano na plataforma. Se o seu servidor reiniciar, nada do que está em curso se perde — volta a ligar-se ou faz polling, e o grupo está exatamente onde o deixou.
  • O grupo é um modelo de progresso que pode ligar a uma UI. Guarde o groupId do 202 e depois alimente um indicador de progresso a partir das entregas por webhook ou dos snapshots de WebSocket. "3 de 14 línguas prontas" é um contador sobre os trabalhos dependentes do grupo.

O custo real deste modelo: assume uma pequena camada de integração que a chamada síncrona não exige. Para receber resultados, mantém um endpoint HTTPS de webhook ou uma ligação WebSocket no servidor, e trata cada idioma à medida que chega em vez de ler os dados traduzidos diretamente de uma única resposta. Em troca, a plataforma trata das novas tentativas, do isolamento de falhas e da entrega — e a sua aplicação nunca bloqueia à espera de uma tradução.

É exatamente esta a troca para a qual a API assíncrona foi concebida: um pedido, todos os idiomas, resultados à medida que chegam. As páginas seguintes são os verbos dessa frase.

Onde ir a seguir#

Criar trabalhos
POST /jobs/localization — parâmetros, estrutura do pedido, a resposta 202 e novas tentativas idempotentes.
Bloquear chaves não traduzíveis
Mantenha IDs, slugs e URLs de recursos inalterados com lockedKeys e a respetiva sintaxe de padrões.
Acompanhar um grupo de trabalhos
Consulte o estado do grupo e por idioma, incluindo o tratamento de falhas parciais.
Obter um único trabalho
Obtenha o outputData traduzido, avisos e registos de passos por fase de um trabalho.
Listar trabalhos
Paginação por cursor dos seus trabalhos, filtrados por motor ou estado.
Entrega por webhook
Receba cada idioma concluído ou com falha à medida que chega e verifique a assinatura.
Progresso em direto (WebSocket)
Transmita snapshots do grupo para a sua UI — um contador de progresso que se atualiza à medida que cada idioma fica concluído.

Esta página foi útil?

Max PrilutskiyMax Prilutskiy·Atualizado há 11 dias·6 min de leitura