Partilhar via


Configurar e criar agentes multilingues

Ao usar o Copilot Studio, pode criar um agente que comunica com os clientes em diferentes línguas. Pode configurar agentes multilíngues para detetar automaticamente a língua desejada com base nas definições do navegador do utilizador do agente e responder na mesma língua, proporcionando uma experiência mais personalizada e envolvente para os clientes.

Ao criar um agente, você especifica seu idioma principal.

Depois de adicionar idiomas secundários a um agente, você é responsável por fornecer as traduções para mensagens em tópicos criados. Para agentes que usam orquestração generativa, as mensagens geradas são traduzidas automaticamente.

Quando um cliente inicia uma sessão com um agente publicado, o agente seleciona um de seus idiomas para corresponder ao idioma especificado no cliente ou navegador do cliente. Se o agente não conseguir detetar o idioma do cliente ou do navegador, ou se o idioma detetado não for um dos idiomas especificados para o agente, o agente assumirá como padrão o idioma principal.

Você pode projetar um agente para alterar o idioma que ele usa durante uma conversa (consulte Fazer um agente mudar para outro idioma). Você também pode configurar um agente que usa orquestração generativa para alternar dinamicamente idiomas para seguir o idioma usado no turno de conversação atual (consulte Configurar um agente para troca dinâmica de idioma).

Para obter a lista de idiomas suportados, consulte Suporte a idiomas.

Observação

Os chatbots clássicos suportam apenas um idioma. Para mais informações sobre como converter um chatbot clássico num agente, consulte Atualizar para Copilot Studio unified authoring.

Adicionar idiomas a um agente

  1. Vá para a página Configurações do agente e selecione Idiomas.

  2. Selecionar Adicionar língua.

  3. No painel Adicionar idiomas , selecione os idiomas que deseja adicionar ao agente e selecione Adicionar.

  4. Reveja a lista de idiomas e feche a página Definições .

Gerenciar a localização de um agente multilíngue

No Copilot Studio, realizas toda a edição de temas e conteúdos na língua principal do agente. Esta secção explica como transferir cadeias de carateres do seu agente e traduzi-las para os idiomas secundários do seu agente. Depois de carregar as cadeias de caracteres traduzidas, você pode alternar o idioma no painel de teste e verificar se as conversas nos idiomas secundários também fluem conforme o esperado.

Preparar conteúdo localizado

Quando você baixa pela primeira vez o arquivo de localização para um idioma secundário, todas as cadeias de caracteres estão no idioma principal do agente. Depois de baixar um arquivo de localização, use-o com seu processo de localização preferido.

  1. Vá para a página Configurações do seu agente e selecione Idiomas.

  2. Na página Idiomas , na lista de idiomas secundários, selecione Carregar para o idioma que deseja atualizar.

  3. No painel Atualizar localizações , selecione o formato JSON ou ResX para baixar o arquivo de localização atual para esse idioma.

    Observação

    O arquivo baixado contém o conteúdo de localização mais recente para o agente. Se você precisar baixar versões anteriores do arquivo de localização, abra a solução do agente.

  4. Abra o arquivo baixado e substitua as cadeias de caracteres do idioma principal pelo texto traduzido apropriado.

  5. Retorne ao painel Atualizar localizações , selecione Procurar e carregue o arquivo traduzido.

  6. Feche o painel Atualizar localizações e a página Configurações .

Atualizar conteúdo localizado

Se você fizer alterações nas cadeias de caracteres do idioma principal, também deverá atualizar o conteúdo nos idiomas secundários. Este processo inclui conteúdo novo e conteúdo modificado. As alterações incrementais não são traduzidas automaticamente. Você deve baixar o arquivo JSON ou ResX no idioma secundário e atualizar as cadeias de caracteres não traduzidas usando seu processo de localização preferido.

O cenário a seguir é típico do fluxo de trabalho para conteúdo traduzido. Você traduziu anteriormente seu idioma principal (en-US) para um idioma secundário (fr-FR) e adicionou e modificou conteúdo no idioma principal. Quando descarrega o ficheiro de localização para a língua secundária, quaisquer novas cadeias estão na língua principal (en-US) e as cadeias que foram previamente traduzidas permanecem na língua secundária (fr-FR). No entanto, as cadeias traduzidas anteriormente cujo texto original foi modificado desde a última vez que carregaste o ficheiro de localização continuam a aparecer tal como foram traduzidas para a língua secundária. Como os IDs das cadeias não mudam, as strings da língua secundária e da língua principal podem ficar fora de sincronia após ocorrerem alterações na língua principal. Certifique-se de que comparar o novo ficheiro de localização com a versão que carregou pela última vez — para identificar alterações na cadeia de línguas primárias — faz parte do seu processo de localização.

Disponibilize o conteúdo dinâmico das Adaptive Cards para localização

Os ficheiros de localização não incluem strings de tipos mistos do Adaptive Cards. Se você precisar localizar um Adaptive Card onde uma cadeia de caracteres pode incluir texto estático e variáveis (conteúdo dinâmico), use a seguinte solução alternativa. O procedimento mostra como usar um nó Definir variável de texto para armazenar a string completa com o texto estático e as variáveis numa variável intermédia. Em seguida, você faz referência apenas a essa variável intermediária no seu Adaptive Card. Quando você baixa um arquivo de localização para seu agente, o valor de sua variável intermediária, com o texto estático e as referências de variáveis, fica disponível para localização como parte de uma setVariable ação.

Para tornar o conteúdo dinâmico de um Adaptive Card localizável:

  1. Adicione um nó Definir valor variável antes do seu Adaptive Card. Este passo cria uma representação YAML que pode ser atualizada utilizando o editor de código para converter o nó num nó Definir variável de texto. Não é possível criar nós Definir variável de texto diretamente da tela de criação.

  2. No nó Definir valor da variável , crie uma nova variável, mas ainda não defina o valor.

  3. Abra o editor de código para o seu tópico.

  4. No editor de código, localize a parte que representa o nó Definir o valor da variável e substitua kind: SetVariable por kind: SetTextVariable. Essa alteração converte o nó Definir valor da variável em um nó Definir variável de texto.

  5. Feche o editor de códigos.

  6. Selecione o campo inferior do nó Definir variável de texto e insira a cadeia de caracteres completa com o texto estático e as variáveis que você deseja mostrar no seu Adaptive Card. Insere uma variável da mesma forma que inseres uma variável numa mensagem.

  7. Atualize o seu Adaptive Card com uma referência a esta nova variável.

  8. Salve seu tópico. Agora pode descarregar o ficheiro de localização e verificar se inclui o conteúdo dinâmico das suas Adaptive Cards.

Saiba mais em Localizar conteúdos do Adaptive Card.

Realizar teste de um agente multilingue

  1. Abra o painel de teste.

  2. Selecione os três pontos (...) no topo do painel de teste e selecione a língua que deseja. O painel de teste recarrega-se, desta vez usando o idioma selecionado. A tela de criação permanece no idioma principal e você não pode salvar as alterações feitas em um tópico até voltar para o idioma principal.

  3. Para testar o agente, insira uma mensagem no idioma selecionado.

Você também pode definir o idioma do navegador para um dos idiomas do seu agente e ir para o site de demonstração pré-construído. O site de demonstração é aberto no idioma especificado e o agente conversa nesse idioma.

Fazer um agente mudar para outro idioma

Ao redigir, pode configurar o agente para alternar para outro idioma no meio de uma conversa. A lógica pode residir em qualquer tópico no agente. No entanto, a prática recomendada é mudar de idioma imediatamente após um nó Pergunta, o que garante que todas as mensagens a seguir até o próximo nó Pergunta sejam no mesmo idioma.

Para alterar o idioma atual do agente, defina a User.Languagevariável de sistema para um dos idiomas secundários do agente. Esta seleção altera o idioma falado pelo seu agente imediatamente.

Configurar um agente para comutação dinâmica de idioma

Observação

Esse recurso só está disponível para agentes com orquestração generativa habilitada .

Você pode configurar um agente para detetar o idioma que um cliente usa e responder no mesmo idioma. Com essa configuração, o agente pode alternar de idioma várias vezes ao longo de uma única conversa. O cenário a seguir mostra como configurar um agente para alternar entre holandês e inglês. Você pode estendê-lo para qualquer combinação dos idiomas suportados pelo seu agente.

Este cenário usa um tópico com um acionador do tópicoMensagem recebida. Este gatilho de tópico permite que seu agente examine todas as mensagens recebidas. Este tópico usa um prompt personalizado para detetar o idioma e uma condição para definir a variável de sistema de idioma do agente.

  1. Verifica se o teu agente está configurado para suportar todas as línguas que queres.

  2. Crie um tópico.

  3. Substitua o tipo de gatilho padrão para o tópico por Uma mensagem é recebida.

  4. Adicione um prompt ao seu tópico:

    1. Selecione o ícone Adicionar nó abaixo do nó Acionador.

    2. Selecione Adicionar uma ferramenta>Novo prompt.

    3. No editor de prompts, insira um nome de representante para o prompt, como "Detetar idioma".

    4. No painel Instruções , digite "Determine em que idioma esta mensagem está escrita: ".

    5. Na parte inferior do painel Instruções , selecione Adicionar conteúdo e selecione Texto. Uma janela é exibida convidando você a inserir um nome e uma mensagem de exemplo.

    6. Em Nome, digite "Mensagem". Em Dados de exemplo, digite "Mensagem do usuário" e selecione Fechar.

    7. No painel de resposta do modelo, alterne o formato de saída para JSON.

    8. Selecione Testar. O seu pedido mostra um literal JSON, com uma única propriedade identificando o idioma como inglês.

      Captura de tela de um prompt configurado para detetar o idioma de uma mensagem.

    9. Selecione Guardar. Um nó Pedido aparece no painel.

  5. Configure o nó Pedido :

    1. Em Input, selecione a variávelActivity.Text de sistema (o texto da mensagem recebida).
    2. Para Output, crie uma nova variável chamada DetectedLanguage.
  6. Ramifique sua lógica com base no idioma detetado:

    1. Adicione uma condição abaixo do nó Prompt.

    2. Baseie sua condição na variável DetectedLanguage.structuredOutput.languagepersonalizada , que contém o nome do idioma detetado.

    3. Adicione uma ramificação de condição para cada idioma que você precisa detetar.

    4. Em cada ramo, adicione um nó Definir valor de variável para definir a variável de sistema User.Language em conformidade. A imagem a seguir mostra um tópico com uma condição para alternar entre holandês e inglês.

      Captura de tela do tópico que deteta e alterna o idioma do agente.

Solucionar problemas de um agente multilíngue

Esta secção fornece dicas para o ajudar a compreender o comportamento inesperado de agentes multilíngues.

Comportamento do agente multilíngue para idiomas que não estão configurados

Se um usuário configurar seu navegador para um idioma que você não configurou para o agente, o agente voltará ao seu idioma principal.

Você especifica o idioma principal para um agente ao criar o agente. Não é possível alterar o idioma principal após a criação, mas é possível alterar a região do idioma principal do agente, se houver mais de uma região disponível.

Comportamento de agente multilíngue perante traduções em falta

Se adicionar mensagens a um agente na sua língua principal mas não carregar as traduções das novas mensagens, o agente mostra as alterações não traduzidas na sua língua principal. Certifique-se sempre de que as traduções estão atualizadas após fazer alterações num agente.

Os ficheiros de localização não incluem strings de tipos mistos do Adaptive Cards. Se precisares de localizar Adaptive Cards onde uma cadeia pode incluir tanto texto estático como variáveis (conteúdo dinâmico), tens de usar uma solução alternativa. Saiba como armazenar uma cadeia de caracteres de tipo misto em uma variável de texto antes de usá-la em um Adaptive Card.

Erros ao publicar um agente multilíngue

Quando você tenta publicar um agente multilíngue, se vir a mensagem de erro "Falha na validação do bot" com o código de erro de resposta bruta, SynonymsNotUniqueo arquivo de localização contém sinônimos duplicados ou um sinônimo que corresponde a um DisplayName valor. Normalmente encontra este erro quando um nó contém um Entity.Definition.'closedListItem' onde ocorreu um dos seguintes cenários:

  • Um dos Synonyms elementos não é único.
  • Um dos Synonyms elementos tem o mesmo valor que o DisplayName elemento .

Todos Synonyms para a mesma entidade devem ser únicos e ter um nome diferente do elemento DisplayName .

Para corrigir o erro, revise o arquivo JSON ou ResX para seu idioma secundário e identifique quaisquer instâncias em que essa condição possa estar presente.