Inteligência de dados generativa

Acelere fluxos de trabalho multilíngues com uma solução de tradução personalizável criada com o Amazon Translate

Data:

As empresas geralmente precisam se comunicar de maneira eficaz com uma grande base de clientes, parceiros e partes interessadas em vários idiomas diferentes. Eles precisam traduzir e localizar conteúdo como materiais de marketing, ativos de conteúdo de produtos, manuais operacionais e documentos jurídicos. Cada unidade de negócios na empresa tem diferentes cargas de trabalho de tradução e geralmente gerencia seus próprios requisitos e fornecedores de tradução. Embora essa abordagem distribuída possa dar autonomia e flexibilidade de tradução às unidades de negócios, torna-se difícil para as empresas manter a consistência da tradução em toda a empresa.

Amazon Translate é um tradução automática neural serviço que oferece tradução de idiomas rápida, de alta qualidade, acessível e personalizável. Hoje, o Amazon Translate oferece suporte à tradução de idiomas escalável para mais de 5,500 pares de idiomas em lote e em tempo real. Ele pode ser usado para criar soluções que abordam o desafio que as empresas com várias unidades de negócios enfrentam ao procurar maneiras de acelerar fluxos de trabalho multilíngues com suporte à personalização.

Por exemplo, a BMW Group precisava de uma solução de tradução unificada para ajudar suas unidades de negócios, como Vendas e Manufatura, a usar a tecnologia de tradução em grande escala e remover problemas comuns de erros de tradução em toda a empresa. A solução deles com Amazon Tradutor reduz o tempo de tradução em mais de 75% e, ao mesmo tempo, oferece a cada unidade de negócios a capacidade de personalizar a saída para atender a seus requisitos específicos de tradução.

Nesta postagem de blog, demonstramos como criar uma solução de tradução unificada com recursos de personalização usando o Amazon Translate e outros serviços da AWS. Também mostraremos como instalar e testar a solução e como criar uma solução de tradução personalizável e escalável para usuários, dependendo das necessidades de localização de seus departamentos.

Visão geral da solução

A solução usa os recursos nativos do Amazon Translate, como tradução em tempo real, detecção automática do idioma de origem e terminologia customizada. Usando Gateway de API da Amazon, esses recursos são expostos como um simples /translate API. A terminologia personalizada permite definir pares de tradução personalizados específicos. Para que a terminologia personalizada funcione, você precisa fazer upload de um arquivo de terminologia para o Amazon Translate. Portanto, outra API /customterm está exposto.

A solução ilustra duas opções de tradução: uma tradução padrão e uma tradução personalizada (usando o recurso de terminologia personalizada). No entanto, você pode modificar essas opções conforme necessário para atender aos seus requisitos de negócios. Os consumidores podem usar essas opções usando o API Gateway Chaves API. Quando uma solicitação de tradução é recebida pela API, ela valida a solicitação (usando um AWS Lambda função de autorizador) se a chave de API fornecida está autorizada a executar o tipo de tradução solicitada. Nós usamos um Amazon DynamoDB tabela para armazenar informações de metadados sobre consumidores, permissões e chaves de API.

Esta solução atende a três tipos de persona:

  • Persona de tradução padrão – Usuários dentro de uma unidade de negócios sem requisitos de personalização. Isso inclui opções e recursos de tradução padrão, como detecção automática de idioma do Amazon Translate.
  • persona de tradução personalizada – Usuários dentro de uma unidade de negócios com requisitos de customização. Isso inclui todos os recursos para tradução padrão, bem como a capacidade de personalizar as traduções usando um arquivo de terminologia personalizado.
  • Persona do administrador – Oferece suporte à opção de tradução personalizada gerenciando o upload de arquivos de terminologia personalizados, mas não é capaz de fazer nenhuma outra chamada de API de tradução.

O diagrama a seguir ilustra a solução de tradução centralizada com arquitetura de personalização.

Para a persona de tradução do usuário, o processo inclui as seguintes ações (o caminho azul no diagrama anterior):

1a. Ligue para o /translate API e passe a chave de API no cabeçalho da API. Opcionalmente, para a persona de tradução personalizada, o usuário pode habilitar a tradução personalizada passando um parâmetro de string de consulta opcional (useCustomTerm).

2. O API Gateway valida a chave de API.

3. O autorizador personalizado do Lambda é chamado para validar a ação de que a chave de API fornecida é permitida. Por exemplo, uma persona de tradução padrão não pode solicitar uma tradução personalizada ou um administrador não pode realizar nenhuma tradução de texto.

4. O autorizador do Lambda obtém as informações do usuário da tabela do DynamoDB e verifica a chave de API fornecida.

5a. Após a validação, outra função do Lambda (Translate) é invocada para chamar a API do Amazon Translate translate_text.

6a. O texto traduzido é retornado na resposta da API.

A persona admin pode fazer upload de um arquivo de terminologia personalizado que pode ser usado pela persona de tradução personalizada chamando o /customterm API. As etapas do fluxo de trabalho são as seguintes (o caminho verde no diagrama anterior):

1b. Ligue para o /customterm API e passe a chave de API no cabeçalho da API.

2. O API Gateway valida a chave de API.

3. O autorizador personalizado do Lambda é chamado para validar a ação de que a chave de API fornecida é permitida. Por exemplo, apenas uma pessoa de administrador pode fazer upload de arquivos de terminologia personalizados.

4. O autorizador do Lambda obtém as informações do usuário da tabela do DynamoDB e verifica a chave de API fornecida.

5b. Depois que a chave de API é validada, outra função do Lambda (Upload) é invocada para chamar a API do Amazon Translate import_terminology.

6b. O arquivo de terminologia personalizada é carregado no Amazon Translate com um nome exclusivo gerado pela função Lambda.

Nas seções a seguir, percorremos as etapas para implantar e testar a solução.

Pré-requisitos

Para implantar a solução, você precisa de uma conta da AWS. Se você ainda não tem uma conta da AWS, você pode criar uma. Seu acesso à conta da AWS deve ter Gerenciamento de acesso e identidade da AWS (IAM) permissões para iniciar Formação da Nuvem AWS modelos que criam funções do IAM.

Observe que você é responsável pelo custo dos serviços da AWS usados ​​durante a execução desta implantação de exemplo. Muitos desses serviços (como Amazon Translate, API Gateway e Lambda) vêm com um nível gratuito para você começar. Para obter detalhes completos, consulte as páginas de preços para cada serviço da AWS que você usa nesta postagem.

Implante a solução com o AWS CloudFormation

Inicie o modelo CloudFormation fornecido para implantar a solução em sua conta da AWS. Esta pilha só funciona no us-east-1 or eu-west-1 Regiões. Se você deseja implantar esta solução em outras Regiões, consulte o GitHub repo e implante o CloudFormation na região de sua escolha.

  1. Implante o modelo CloudFormation mais recente seguindo o link para sua região preferida:
Região Pilha do CloudFormation
N. Virgínia (us-east-1) Botão de inicialização da pilha
Irlanda (eu-west-1) Botão de inicialização da pilha
  1. Se solicitado, faça login usando as credenciais da sua conta da AWS.
  2. Deixe os campos no Criar pilha página com seus padrões pré-preenchidos.
  3. Escolha Próximo.
  4. Escolha Nome da pilha, insira o nome da pilha do CloudFormation (para esta postagem, EnterpriseTranslate).
  5. Escolha DDBTableName¸ insira o nome da tabela do DynamoDB (EnterpriseTranslateTable).
  6. Escolha apiGatewayName, insira o API Gateway criado pela pilha (EnterpriseTranslateAPI).
  7. Escolha apiGatewayStageName, insira o nome do ambiente para API Gateway (prod).
  8. Escolha Próximo.
  9. Na página de revisão, marque as caixas de seleção para reconhecer a criação de recursos IAM. Isso é necessário para permitir que o CloudFormation crie uma função para conceder acesso aos recursos necessários para a pilha e nomear os recursos de maneira dinâmica.
  10. Escolha Criar pilha.

Você pode monitorar o progresso da criação da pilha no Eventos aba. A pilha está completa quando o status da pilha mostra como CREATE_COMPLETE.

A implantação cria os seguintes recursos (todos prefixados com EntTranslate):

  • Uma API do API Gateway com dois recursos chamados /customterm e /translate, com três chaves de API para representar duas personas de tradução e uma persona de administrador
  • Uma tabela do DynamoDB com três itens para refletir um consumidor com três funções diferentes (três chaves de API)
  • Várias funções Lambda (usando Python 3.9) de acordo com o diagrama de arquitetura

Depois que os recursos forem implantados em sua conta na Nuvem AWS, você poderá testar a solução.

Coletar chaves de API

Conclua as etapas a seguir para coletar as chaves de API:

  1. Navegue até a Saídas guia da pilha do CloudFormation e copie o valor da chave apiGatewayInvokeURL.Para encontrar as chaves de API criadas pela solução, consulte a tabela do DynamoDB que você acabou de criar ou navegue até a página de chaves de API no console do API Gateway. Este post usa a última abordagem.
  2. No Recursos guia da pilha do CloudFormation, localize o ID lógico EntTranslateApi para API Gateway e abra o link sob o Identificação física coluna em uma nova guia.
  3. No console do API Gateway, escolha chaves de API no painel de navegação.
  4. Observe as três chaves de API (padrão, personalizada, admin) geradas pela solução. Por exemplo, selecione chave padrão EntTranslateCus1StandardTierKey e escolha Exibir link contra a propriedade da chave de API.

Agora você pode testar as APIs usando qualquer ferramenta de código aberto de sua escolha. Para esta postagem, usamos o Postman Ferramenta de teste de API apenas para fins ilustrativos. Para obter detalhes sobre como testar a API com o Postman, consulte Visão geral do desenvolvimento de API.

Teste 1: tradução padrão

Para testar a API de tradução padrão, primeiro crie uma solicitação POST no Postman.

  1. Escolha Adicionar solicitação em Carteiro.
  2. Defina o tipo de método como POST.
  3. Insira a URL de invocação do API Gateway na guia Saída da pilha do CloudFormation implementada.
  4. Adicionar /translate para o ponto de extremidade da URL.
  5. No Cabeçalhos guia, adicione uma nova chave de cabeçalho chamada x-api-key.
  6. Insira o valor da chave de API padrão (copiado no estágio Coletar chaves de API).
  7. No Corpo guia, selecione Cru e insira um corpo JSON da seguinte maneira:
    { "sourceText": "some text to translate", "targetLanguage": "fr", "sourceLanguage":"en"}

    sourceLanguage é um parâmetro opcional. Se você não fornecê-lo, o sistema irá defini-lo como auto para a detecção automática do idioma de origem.

  8. Chame a API escolhendo ENVIAR e verifique a saída.

A API deve ser executada com sucesso e retornar o texto traduzido no Corpo seção do objeto de resposta.

Teste 2: tradução personalizada com terminologia personalizada

Para testar a funcionalidade de upload de termo personalizado, primeiro criamos uma solicitação PUT no Postman.

  1. Escolha Adicionar solicitação em Carteiro.
  2. Defina o tipo de método como PUT.
  3. Insira a URL de invocação do API Gateway.
  4. Adicionar /customterm ao final do URL.
  5. No Cabeçalhos guia, adicione uma nova chave de cabeçalho chamada x-api-key.
  6. Insira o valor da chave de API do administrador (copiado no estágio Coletar chaves de API).
  7. No Corpo guia, altere o formato para binário e carregue o arquivo CSV do termo personalizado. Um arquivo CSV de amostra é fornecido sob o /Resources pasta no repositório GitHub.
  8. Chame a API escolhendo ENVIAR e verifique a saída.

    A API deve ser executada com sucesso com uma mensagem na seção Corpo do objeto de resposta dizendo “Termo personalizado carregado com sucesso”
  9. No console do Amazon Translate, escolha Terminologia Customizada no painel de navegação.
    Um arquivo de terminologia personalizado deve ter sido carregado e exibido na lista de terminologia. A sintaxe do nome do arquivo é o ID do cliente da tabela do DynamoDB para a chave de API selecionada seguida por string _customterm_1.
    Observe que, se você não usou a chave de API do administrador, o sistema falhará ao carregar o arquivo de termo personalizado. Agora você está pronto para executar sua tradução personalizada.
  10. Escolha Adicionar solicitação em Carteiro.
  11. Defina o tipo de método como POST.
  12. Insira a URL de invocação do API Gateway.
  13. Adicionar /translate para o ponto de extremidade da URL.
  14. No Cabeçalhos guia, adicione uma nova chave de cabeçalho chamada x-api-key.
  15. Insira o valor da chave de API padrão.
  16. No Corpo tab, insira um corpo JSON da seguinte forma:
    { "sourceText": "some text to translate", "targetLanguage": "fr", "sourceLanguage":"en"}

  17. No Params guia, adicione um novo parâmetro de string de consulta chamado useCustomTerm com um valor de 1.
  18. Chame a API escolhendo ENVIAR e verifique a saída. A API deve falhar com a mensagem "Não autorizado". Isso ocorre porque você está tentando chamar um recurso de tradução personalizado usando uma chave de API de persona padrão.
  19. No Cabeçalhos guia, insira o valor da chave de API personalizada.
  20. Execute o teste novamente e ele poderá traduzir usando o arquivo de terminologia personalizado.

Você também notará que desta vez o texto traduzido mantém a palavra “traduzir” sem traduzi-la (se você usou o arquivo de amostra fornecido). Isso se deve ao fato de que o arquivo de terminologia personalizada que foi carregado anteriormente contém a palavra "traduzir", sugerindo que a terminologia personalizada modificou a saída base do Amazon Translate.

Teste 3: adicione consumidores e unidades de negócios adicionais

Esta solução implantou um consumidor (customerA) com três chaves de API diferentes como parte da implantação da pilha do CloudFormation. Você pode adicionar consumidores adicionais criando um novo plano de uso no API Gateway e associando novas chaves de API a esse plano de uso. Para obter mais detalhes sobre como criar planos de uso e chaves de API, consulte Criando e usando planos de uso com chaves de API. Você pode adicionar essas chaves de API como entradas adicionais na tabela do DynamoDB.

limpar

Para evitar cobranças futuras, limpe os recursos que você criou como parte da pilha do CloudFormation:

  1. No console do AWS CloudFormation, navegue até a pilha que você criou.
  2. Selecione a pilha e escolha Excluir pilha.

Sua pilha pode levar algum tempo para ser excluída. Você pode acompanhar seu progresso no Eventos aba. Quando a exclusão for concluída, o status da pilha muda de DELETE_IN_PROGRESS para DELETE_COMPLETE. Em seguida, ele desaparece da lista.

Considerações

Considere o seguinte ao usar esta solução:

  • As chamadas de API para esta solução são mais lentas do que chamar a API do Amazon Translate diretamente. Isso ocorre porque a solução está implementando lógica de negócios adicional e usando serviços adicionais (API Gateway e Lambda).
  • Por favor, observe o Amazon Translate limites de serviço para tradução síncrona em tempo real e arquivos de terminologia personalizados.
  • Esta solução é focada em expor uma API usando uma chave de API. Se você planeja levar isso para ambientes de produção, considere um mecanismo de autenticação usando padrões abertos do setor (como OIDC) para autenticar a solicitação primeiro. Para mais informações, consulte Gerenciando APIs multilocatários usando o Amazon API Gateway.

Conclusão

Nesta postagem, demonstramos como é fácil realizar tradução em tempo real, carregar arquivos de terminologia personalizados e fazer traduções personalizadas no Amazon Translate usando suas APIs nativas e criamos uma solução para oferecer suporte à personalização com o API Gateway.

Você pode estender a solução com personalizações relevantes para seus requisitos de negócios. Por exemplo, você pode fornecer funcionalidades adicionais, como Tradução personalizada ativa usar dados paralelos por meio de outra chave de API ou criar uma camada de cache para trabalhar com esta solução para reduzir ainda mais o custo das traduções e fornecer traduções acessadas com frequência a partir de um cache. Você pode habilitar a otimização de API e a limitação de taxa aproveitando Recursos do API Gateway. As possibilidades são infinitas e adoraríamos saber como você leva esta solução para o próximo nível para sua organização enviando um AWS Entre em contato conosco solicitar. Você pode começar a personalizar esta solução acessando o GitHub repo para este blog.

Para obter mais informações sobre o Amazon Translate, visite Recursos do Amazon Translate para encontrar recursos de vídeo e postagens de blog, além de consultar Perguntas frequentes sobre tradução da Amazon. Se você é novo no Amazon Translate, experimente-o usando o Nível grátis, que oferece gratuitamente até 2 milhões de caracteres por mês durante os primeiros 12 meses, a partir da primeira solicitação de tradução.


Sobre o autor

Fahad Ahmed é Arquiteto de Soluções na Amazon Web Services (AWS) e cuida de Negócios Nativos Digitais no Reino Unido. Ele tem mais de 17 anos de experiência na criação e design de aplicativos de software. Recentemente, ele encontrou uma nova paixão em tornar os serviços de IA acessíveis às massas.

local_img

Inteligência mais recente

local_img