Revisão humana

Atualizado em: há 2 semanas · 8 min de leitura

A maior parte do seu conteúdo pode ir ao ar no momento em que o engine devolve a tradução. Mas nem sempre. Um texto regulado, uma instrução médica, um título que carrega a marca — nesses casos, você quer que uma pessoa leia a tradução e dê o aval antes de ela entrar no ar, não depois que um cliente já tiver feito uma reclamação.

A forma mais comum de inserir uma pessoa em um fluxo automatizado costuma ser a mais dolorosa: manter a requisição aberta enquanto alguém revisa, criar sua própria fila de revisão ou integrar manualmente a API de um fornecedor de tradução. Esta etapa resolve isso dentro do próprio job. Quando humanEdit está habilitado, o job assíncrono executa o engine, depois pausa em uma pessoa — da sua equipe ou um profissional externo — e retoma com a edição feita por ela, levando essa saída adiante para qualquer etapa seguinte.

Ela é executada depois de Rephrase e antes de Post-edit no pipeline de localização e, como todas as etapas, se aplica apenas a jobs criados pela Async Localization API. Ainda não conhece o pipeline? Comece pela Visão geral.

Nesta página

Como a pausa funciona#

Depois da etapa principal de tradução — e, se estiver ativada, depois de Rephrase — o job envia a tradução de IA para revisão humana. O revisor lê o texto e então aprova como está ou envia uma versão editada. Só depois disso o job continua. O resultado humano — aprovado ou editado — passa a ser a entrada de todas as etapas seguintes e, no fim, o outputData do job.

A objeção mais óbvia a pausar um job por minutos, horas ou até um dia é o custo: uma requisição mantida aberta consome recursos mesmo quando nada está acontecendo. Esta etapa não funciona assim.

A espera é orientada por eventos, não por uma conexão mantida aberta

O workflow é retomado por um evento — um revisor enviando sua decisão no dashboard (Revisão interna) ou um callback do provedor de tradução (Revisão externa). Não há polling em loop apertado nem conexão aberta o tempo todo, então um timeout longo não consome processamento em segundo plano. Um job pode esperar 48 horas por uma pessoa da mesma forma que espera por um modelo: ele fica em espera, não rodando sem parar.

Há dois modos de revisão disponíveis, definidos por engine. A única diferença entre eles é quem faz a leitura — o comportamento de pausa, retomada e continuidade é exatamente o mesmo.

Revisão interna#

Sua própria equipe revisa traduções diretamente no dashboard da Lingo.dev. As revisões pendentes aparecem na Fila (/orgs/<org-id>/queue) como itens de Revisão humana, e os revisores são avisados quando novos itens chegam. O revisor abre um item, edita as chaves que precisarem de ajuste e clica em Aprovar como está ou, quando houver edições, Aprovar com edições — o botão mostra a quantidade, como em Aprovar com 2 edições. O job é retomado com esse resultado.

Não há reivindicação nem bloqueio. Uma revisão aberta fica em um único pool que todos os revisores podem ver e decidir.

A Revisão interna está disponível com o plano Enterprise. Em um plano que a inclui, um novo engine começa com Revisão interna; em um plano que não inclui, ele começa com Revisão externa, e a opção Revisão interna exibe a tag Enterprise. Recorra a esse recurso quando sua equipe tiver domínio do idioma internamente e você quiser controle total sobre a redação final, sem terceiros no processo.

Permissões#

A revisão interna não fica aberta para todas as pessoas da organização — a fila de revisão é controlada por permissões, então uma tradução em revisão fica visível apenas para as pessoas a quem você concede acesso. Uma pessoa administradora da organização atribui esse acesso por meio de funções (Settings → Roles):

PermissãoO que ela libera
Revisar traduções (engine:review_translations)Ver itens de Revisão humana na Fila, editá-los e aprová-los como estão ou com edições
Gerenciar revisões (org:manage_reviews)Histórico e estatísticas das revisões internas. Sem isso, as revisões concluídas continuam ocultas na Fila

As duas permissões são separadas de propósito. Um revisor precisa apenas de Revisar traduções — essa única permissão cobre todo o trabalho: editar, aprovar como está e aprovar com edições. Gerenciar revisões é para quem supervisiona a operação; ela adiciona o histórico de revisões de toda a organização, mas não inclui acesso à fila por si só. Conceda as duas a uma liderança que revisa e acompanha os resultados; conceda só a primeira a quem trabalha apenas na fila.

Revisão externa#

Quando você não tem revisores internos para um idioma, a tradução é enviada a um tradutor profissional qualificado por meio de um provedor externo. O job pausa da mesma forma e é retomado quando o provedor devolve a tradução editada. Nada muda no seu código — a diferença está em quem lê a string, não em como o job se comporta.

Não há nível para escolher — o marketplace avalia o próprio tradutor. A Revisão externa é cobrada por palavra.

Uma revisão externa também aparece na Fila; ao abrir, ela identifica um Tradutor qualificado como revisor. Alguém com Revisar traduções pode abri-la e assumir a revisão: basta escolher Aprovar como está ou Aprovar com edições, e o job termina ali, em vez de esperar pelo tradutor. A confirmação Assumir esta revisão informa o custo antes de você confirmar — assumir é grátis apenas enquanto nenhum tradutor tiver começado; depois que isso acontece, a taxa do tradutor continua valendo, independentemente de você usar ou não o trabalho dele.

Vale ser direto sobre isso: a Revisão externa coloca um tradutor humano real do outro lado, com o prazo e o custo que isso implica. Não é um modelo mais rápido. Use-a quando o ponto central for o julgamento humano — texto regulado, conteúdo de alto impacto — e deixe o caminho só com IA para a maior parte do conteúdo que não precisa desse nível de intervenção.

Limite de qualidade#

Nem toda tradução precisa passar por uma pessoa. Defina o Limite de qualidade (1–100) nas Configurações de Revisão humana, e um avaliador de IA pontua cada tradução antes de ela seguir para revisão. Se a nota atingir ou superar o limite, a tradução é enviada sem revisão humana e a etapa humanEdit é registrada como skipped; se ficar abaixo, a tradução segue para revisão normalmente. Deixe o campo em branco para revisar tudo. Na configuração, isso corresponde a qualityThreshold em humanEdit.

Uma tradução enviada dessa forma não tem resultado humano, então Post-edit não é executado nela.

Timeout#

Uma etapa humana traz um risco que as etapas com IA não têm: a pessoa pode nunca responder. O revisor pode estar de férias, o provedor pode estar sobrecarregado, o item pode simplesmente ser esquecido. Sem limite, o job ficaria esperando para sempre.

Assim, a espera tem um limite. Você define por quanto tempo o workflow espera pelo resultado humano — Tempo limite, em horas, nas Configurações de Revisão humana; timeoutHours na configuração. Isso vale para os dois modos de revisão. Se o tempo limite expirar sem resposta, a etapa é marcada como skipped e o job continua com a tradução de IA como resultado final. O padrão é 48 horas. Na Fila, uma revisão cujo prazo expirou aparece como Fechada sem decisão.

É importante deixar o custo dessa decisão claro: quando há timeout, você publica a tradução de IA sem revisão humana. Para a maior parte do conteúdo, esse é o fallback certo — uma tradução publicada é melhor do que um job preso indefinidamente —, mas ainda assim é uma escolha com tradeoff. Para conteúdo em que a aprovação humana é obrigatória, defina um timeout generoso e configure um alerta para o skip; para conteúdo em que a revisão é desejável, mas não essencial, um timeout curto mantém o pipeline andando.

O timeout é por etapa, não por job

O timeout controla apenas quanto tempo esta etapa espera por uma resposta humana. Ele é independente do tempo que o restante do job leva. Como a espera é orientada por eventos, um timeout longo só custa latência até a saída final se o revisor demorar — nunca processamento em segundo plano.

Como habilitar a etapa#

humanEdit é configurado como qualquer outra etapa do pipeline: com um padrão no nível do engine, na aba Pipeline do engine, e com opção de sobrescrita por requisição. O modelo completo em duas camadas está em Configure the pipeline; a estrutura específica desta etapa é:

json
{
  "humanEdit": {
    "enabled": true,
    "provider": "internal",
    "tier": "standard",
    "timeoutHours": 48,
    "qualityThreshold": 85
  }
}

provider seleciona o modo — internal para sua própria equipe, external para um tradutor profissional via marketplace externo. tier é opcional e aceita apenas standard. timeoutHours define o limite de Tempo limite, e o qualityThreshold opcional (1–100) corresponde ao Limite de qualidade. Para substituir isso em um único envio, passe este bloco dentro de pipelineConfig na chamada create; se você o omitir, o job herda a configuração do engine.

Quando a etapa é executada, ela é registrada no job em stepId: "humanEdit" com status completed, failed ou skipped — o mesmo registro de etapa que todas as etapas produzem. A leitura desses registros é abordada em Observe pipeline runs.

Uma edição humana pode se afastar das regras do seu engine

Um tradutor humano pode formular algo de um jeito que entre em conflito com seu glossário, sua voz da marca ou suas regras — ele está traduzindo bem, não decorando sua configuração. Para alinhar automaticamente a edição humana às regras do seu engine, ative a próxima etapa, avaliação por IA — Post-edit na aba Pipeline. Ela só é executada depois de uma etapa humana que realmente produziu resultado.

Próximos passos#