Uma gralha na origem é uma gralha que só tem de corrigir uma vez — antes de se multiplicar. Um job assíncrono distribui uma payload de origem por todos os idiomas de destino, e cada idioma traduz o texto que recebeu. Por isso, um erro ortográfico, uma palavra em falta ou uma frase mal construída na origem não fica por ser um único problema. Passa a ser um problema em alemão, o mesmo problema em francês e o mesmo problema em todos os outros idiomas por onde o job passa — e cada um deles exige depois a sua própria correção.
A edição por IA pré-localização (preEdit) fecha essa lacuna na origem. É a primeira etapa do pipeline de localização assíncrono: antes de a etapa principal de tradução arrancar, um agente de IA faz a revisão da payload de origem e corrige gralhas, erros gramaticais e ortográficos. É essa origem limpa que segue para tradução — por isso, corrige uma vez, antes de ser distribuída, em vez de apanhar o mesmo erro numa dúzia de resultados.
Esta é uma etapa do pipeline assíncrono, por isso só corre em jobs criados através da API de Localização Assíncrona. O endpoint síncrono /localize executa apenas a etapa principal de tradução e ignora as definições do pipeline.
O que esta etapa faz#
preEdit atua sobre a origem, não sobre a tradução. Um agente de IA lê a sua payload de origem e reescreve-a para eliminar erros de superfície — gralhas, gramática, ortografia — e depois entrega o texto corrigido à etapa principal de localização. Cada idioma de destino traduz a partir dessa origem limpa.
O seu âmbito é deliberadamente limitado, e esse é precisamente o objetivo. Isto é uma passagem de limpeza de texto, não uma reescrita: trata o tipo de ruído superficial que torna o texto de origem ambíguo para um modelo de tradução, para que o modelo concentre a atenção em traduzir em vez de tentar adivinhar o que queria dizer uma frase truncada ou deturpada. Uma origem mais limpa produz traduções mais consistentes entre idiomas — porque todos os idiomas partem do mesmo texto corrigido, em vez de cada modelo interpretar, por si, o mesmo erro.
Para obter um resultado idiomático e natural — reescrever a própria tradução para soar como se tivesse sido escrita por um copywriter nativo — essa é outra etapa. Veja Reformular para texto natural. preEdit limpa a entrada; rephrase aperfeiçoa a saída.
Não pode piorar o job#
A primeira pergunta que um engenheiro cuidadoso faz sobre uma etapa de IA que edita conteúdo antes da tradução é a certa: o que acontece quando essa etapa se engana, ou nem sequer chega a correr?
preEdit é uma etapa não crítica. Se a chamada de pré-edição falhar ou expirar, a origem original segue sem alterações e o job continua para a etapa de tradução exatamente como se esta etapa estivesse desativada. Uma falha aqui custa-lhe a limpeza nesse job — não o job. A tradução segue em frente.
E se a pré-edição falhar ou expirar?
O job não falha. As etapas não críticas recorrem à respetiva entrada como fallback: perante uma falha de preEdit, a origem sem edição é traduzida tal como está, e o job corre até ao fim. O estado do job passa a completed_with_warnings, a etapa preEdit fica registada como failed, e o motivo vai parar ao array warnings do job — para que possa ver que aconteceu, sem bloquear a entrega. A leitura desses registos de etapas é explicada em Observe pipeline runs.
Por isso, a forma honesta de enquadrar o pior cenário é esta: ativar preEdit não pode fazer falhar um job que, de outra forma, teria sido bem-sucedido. No pior dos casos, não ajuda nesse job e sai discretamente de cena.
O que não é#
Vale a pena dizê-lo sem rodeios, precisamente quando mais apetece que fosse mais do que isto: preEdit é uma etapa de melhor esforço, e é uma passagem de limpeza de texto para erros de superfície — não um revisor que compreende o seu domínio nem um verificador de factos que valida as suas afirmações. Corrige gralhas, gramática e ortografia. Não verifica se um preço está certo, se um nome de produto está atualizado, nem se uma frase diz aquilo que queria realmente dizer. Se a sua origem estiver factualmente errada, preEdit vai limpar fielmente a gramática de uma frase errada e traduzi-la de forma limpa para todos os idiomas.
Para termos que têm de ficar exatamente como estão escritos, independentemente de qualquer passagem de IA — nomes de produtos, marcas registadas, identificadores de código — fixe-os logo na origem. Marque-os como não traduzíveis no glossário do seu motor ou, no caso de campos estruturais numa payload específica, exclua-os com lockedKeys. Essas são garantias sobre os dados; preEdit é uma limpeza de melhor esforço à volta delas.
Quando a deve ativar#
preEdit justifica esta passagem extra quando é provável que a origem traga ruído, e torna-se redundante quando a origem já está limpa.
- Ative-a quando o conteúdo de origem for gerado por utilizadores, extraído por máquina, obtido por scraping, processado por OCR ou, de outra forma, criado fora de um processo editorial — casos em que os erros de superfície são comuns e o custo de os multiplicar entre idiomas é real.
- Ignore-a no caso de conteúdo curado que já tenha passado por edição editorial ou revisão humana. Se a origem já estiver limpa, não há nada para esta etapa corrigir, e estará a pagar por uma passagem de IA que não tem trabalho para fazer. Cada etapa ativada é mais um passo no job e mais uma linha no custo — compensa quando a qualidade da origem é incerta, é desperdício quando não é.
Eis a troca, em toda a sua simplicidade: gastar uma passagem à partida, nos jobs em que a qualidade da origem é incerta, para corrigir uma vez antes de distribuir — em vez de corrigir o mesmo erro em todos os idiomas depois da entrega.
Pode ativar preEdit no separador Pipeline do motor, onde se aplica a todos os jobs assíncronos encaminhados para esse motor, ou substituí-la para um único envio com pipelineConfig no pedido create-jobs. Ambas as camadas, e a forma como uma etapa omitida herda a predefinição do motor, são explicadas em Configure the pipeline.
