Aumente a cobertura da intent e trate os erros corretamente com o substituto generativo

1. Visão geral

Última atualização:07/08/2023

O que você vai criar

Neste codelab, você criará, implantará e configurará um agente virtual simples no Dialogflow CX para ajudar mergulhadores viajando com reservas em grupo e fretamento privado. O agente virtual vai usar a IA generativa e os modelos de linguagem grandes generativos (LLMs) mais recentes do Google para gerar respostas.

O que você vai aprender

  • Como ativar as APIs relevantes
  • Como o Dialogflow preenche automaticamente os valores de parâmetros de formulários de página com base em parâmetros de intent
  • Como configurar manipuladores de eventos no Dialogflow
  • Como ativar substitutos generativos em manipuladores de eventos sem correspondência usados em fluxos e durante o preenchimento de parâmetros
  • Como configurar seu próprio comando de texto para lidar com situações de conversa básicas e específicas do agente.
  • Como criar boas descrições de intents e parâmetros para gerar gerenciadores de novas solicitações para os parâmetros obrigatórios, além das solicitações definidas pelo usuário
  • Como testar seu agente e simular perguntas de clientes que acionam o substituto generativo.

O que é necessário

  • Um projeto do Google Cloud
  • Um navegador como o Chrome

2. Etapas da configuração

Antes de começar a usar o recurso de fallback generativo no Dialogflow CX, você precisa ativar a API Dialogflow.

Ative a API Dialogflow usando o Console do Cloud

  1. Abra o console do Google Cloud no navegador.
  2. No console do Google Cloud, acesse a Biblioteca de APIs para conferir as APIs e os serviços que podem ser ativados.
  3. Na barra de pesquisa na parte de cima da página da biblioteca de APIs, pesquise Dialogflow API e clique no serviço resultante.
  4. Clique no botão Ativar para ativar a API Dialogflow no seu projeto do Google Cloud.

Como usar a CLI gcloud (alternativa)

Como alternativa, a API pode ser ativada usando o seguinte comando gcloud:

gcloud services enable dialogflow.googleapis.com

Se a API tiver sido ativada corretamente, você verá uma mensagem semelhante a esta:

Operation "operations/..." finished successfully.

Buscar o código

Você não criará um agente virtual do zero. Nós forneceremos um agente que você precisará restaurar no Console do Dialogflow CX para depois fazer melhorias.

Para fazer o download do código-fonte:

  1. Abra uma nova guia do navegador, acesse o repositório do agente e clone-o em uma linha de comando.
  2. O agente inicial foi exportado como um pacote JSON. Descompacte o arquivo, inspecione as configurações do agente, dê uma olhada na definição de fluxo Liveaboards.json e, por fim, navegue pelas páginas de fluxo, intents e entidades.

3. Criar um novo agente

Abrir o console do Dialogflow

Você vai usar o console do Dialogflow CX com seu projeto do Google Cloud para executar as etapas restantes deste codelab.

  1. No navegador, acesse o console do Dialogflow CX.
  2. Selecione o projeto do Google Cloud que você quer usar ou crie um novo.
  3. Uma lista de agentes será exibida no console do Dialogflow CX.

Se esta for a primeira vez que você usa o Dialogflow CX, consulte a documentação do Dialogflow CX para mais informações sobre como definir o projeto e as configurações, dependendo das suas necessidades.

Criar um novo agente do Dialogflow CX

  1. Para restaurar o agente transferido por download do repositório do GitHub, crie um novo agente. No console do Dialogflow CX, clique em Create new agent no canto superior direito da página.

Crie um novo agente

  1. Selecione a opção Criar seu próprio agente.

Escolha a opção.

  1. Preencha o formulário com as configurações do agente abaixo e clique em Criar.
  • Como nome de exibição, escolha: Divebooker
  • Como local, escolha: us-central1
  • Selecione o fuso horário de sua preferência
  • Selecionar en - English como idioma padrão
  1. O Dialogflow vai abrir o agente automaticamente. Ainda não terminamos.

Restaurar o agente Divebooker

  1. Volte para a página da lista de agentes e identifique o agente que você acabou de criar. Clique na opção 78d2781c655810e7.png e depois no botão Restaurar.
  2. Selecione a opção Upload e solte ou selecione o arquivo ZIP que você baixou do repositório do GitHub.
  3. Clique no botão Restaurar para importar o agente que fornecemos.

Clique no botão "Restaurar" para importar o agente que fornecemos

Muito bem! Você terminou de criar um agente virtual de reserva de mergulho pronto para ajudar os clientes. Na próxima seção, você vai fazer um teste e ver se ele consegue responder às perguntas dos usuários e ajudar com solicitações de reserva.

4. Testar o agente

O Dialogflow oferece um simulador integrado para conversar com agentes e descobrir bugs. Em cada rodada, é possível verificar os valores corretos da intent acionada, da resposta do agente, da página ativa e dos parâmetros da sessão.

Vamos testar alguns cenários e, em cada um deles, verificaremos o motivo da resposta do agente. Vamos começar com o primeiro.

Intent não resolvida

  1. No console do Dialogflow e no agente, clique em Agente de teste para abrir o simulador.

Clique no agente de teste para abrir o simulador.

  1. Digite uma saudação ao agente, como Hello, e pergunte ao what is a liveaboard?. A pergunta não corresponde a nenhuma intent, um comando genérico como "Desculpe, não sei como ajudar" é exibido. Para verificar se o evento integrado sys.no-match-default foi invocado, inspecione a resposta original no simulador.

Cumprimente o agente e pergunte o que é um liveabord.

Role para baixo quase até o fim da resposta JSON. Ao pesquisar uma intent correspondente, o Dialogflow descobre que é NO_MATCH e gera um evento sem correspondência.

Verifique se o evento sys.no-match-default foi gerado pelo Dialogflow

  1. Alterne para a guia Build e abra a Página inicial do fluxo de Liveboards.

Alterne para a guia "Build" e abra a página inicial do fluxo do Liveaboard.

Por padrão, cada fluxo tem manipuladores de eventos para os eventos incorporados sem correspondência e sem entrada. Esses manipuladores de eventos são criados automaticamente quando você cria um fluxo e não podem ser excluídos.

  1. Clique no manipulador de eventos sys.no-match-default e role para baixo até a seção Respostas do agente. O Dialogflow oferece uma lista de respostas alternativas, mas também é possível definir diferentes tipos de mensagens de resposta para fornecer ao usuário final mais do que respostas de texto.

Conferir as respostas predefinidas do agente

Vamos seguir para o caminho da felicidade agora!

O caminho da felicidade

Nesse segundo caso, imagine ser um mergulhador que quer reservar um cruzeiro para um grupo de 12 pessoas que vai para as Ilhas Galápagos no ano que vem, em julho.

  1. No painel "Simulador", clique no ícone Redefinir para iniciar uma nova conversa com o agente.

Redefina para iniciar uma nova conversa

Considere mudar para a visualização vertical para melhorar a UX

  1. Diga ao agente que você gostaria de reservar um frete para as Ilhas Galápagos e forneça os detalhes da sua viagem. Não é necessário usar exatamente os mesmos comandos abaixo, experimente.

Teste o caminho da felicidade

  1. Abra a Página inicial e clique na rota head.send.group.request. Role para baixo até a seção Transition, que informa ao Dialogflow a página que precisa fazer a transição quando houver correspondência com essa intent.

Faça a transição para a página "Coletar mais informações"

  1. Feche a definição Rota e expanda a página Coletar mais informações. Observe o fulfillment de entrada e a lista de parâmetros.

Página "Coletar mais informações"

Para cada página do Dialogflow CX, é possível definir um formulário, que é uma lista de parâmetros que precisam ser coletados do usuário final. O agente não solicitou o destino da viagem porque o transmitimos como parte da entrada inicial, e destination também é um parâmetro da intent. Quando uma página se torna ativa inicialmente e durante o período ativo, qualquer parâmetro de formulário com o mesmo nome de um parâmetro de intent é definido automaticamente como o valor de parâmetro da sessão, e a solicitação correspondente é ignorada.

  1. Alterne para a guia Manage e clique na intent head.send group request na seção Intents. Observe as frases de treinamento fornecidas para essa intent e as partes anotadas delas.

Observe as frases de treinamento fornecidas para essa intent e as partes anotadas delas.

  1. Considere a frase de treinamento "Preciso organizar uma viagem para a Costa Rica para 15 mergulhadores". "Costa Rica" é anotada com destination e "15" com número de convidados. Quando você anota partes de uma frase de treinamento, o Dialogflow reconhece que essas partes são apenas exemplos de valores reais que serão fornecidos pelos usuários finais no ambiente de execução. É por isso que a primeira pergunta: "Você oferece fretamento para as Ilhas Galápagos?" O Dialogflow extraiu o parâmetro de destino das "Ilhas Galápagos".

Em seguida, vamos conferir o que acontece se não fornecermos ao agente uma entrada válida quando for solicitado o preenchimento de um parâmetro de formulário.

Entrada inválida

  1. No painel "Simulador", clique no ícone Redefinir para iniciar uma nova conversa com o agente.
  2. Expresse a intenção de fazer uma reserva em grupo, mas não informe ao agente para onde você quer ir e quando for solicitada uma resposta de destino com um valor aleatório que não seja Costa Rica, Galápagos nem México.

Insira um destino inválido

  1. Na guia Gerenciar, clique em Tipos de entidade na seção Recursos. Observe duas guias: em "System", você encontra as entidades do sistema usadas pelo agente no momento. Na guia Personalizada, há uma lista de entidades personalizadas criadas para dados correspondentes específicos desse agente.

Entidade personalizada de destino

  1. Clique na entidade de destino para descobrir a quais valores a entidade corresponde. "Europa" não é uma das entradas e também não é um sinônimo.
  2. No diagrama de fluxo, expanda a página Coletar mais informações que contenha os parâmetros do formulário. Clique no parâmetro destination.
  3. No painel de parâmetros, role para baixo até a seção Manipuladores de eventos "Reprompt" e clique no manipulador de eventos No-match default.

Esse manipulador de eventos no nível do parâmetro serve especificamente para tratar entradas inválidas do usuário final durante o preenchimento do formulário. Porque "Europa" for uma entrada inesperada, um evento sys.no-match-default foi invocado e o gerenciador de reprompt correspondente definido para esse evento foi chamado. A seção Agent Say lista duas mensagens alternativas de nova solicitação.

Mensagens estáticas de nova solicitação quando o usuário final insere um destino inválido.

Bom trabalho! Esses casos de teste representam cenários comuns com os quais o agente precisa lidar de maneira adequada. Muitas vezes, os usuários fazem perguntas que os bots não conseguem responder ou solicitações que os bots não conseguem atender. É muito complexo projetar para a cauda longa, ou seja, os caminhos usados pela maioria dos usuários. Pense em todas as coisas que podem dar errado em uma conversa e em todos os caminhos inesperados ou incompatíveis que os usuários podem seguir.

Os avanços no reconhecimento automático de fala (ASR, na sigla em inglês) significam que quase sempre sabemos exatamente o que os usuários disseram. No entanto, determinar o que os usuários quis dizer ainda é um desafio. Muitas vezes, as declarações não podem ser entendidas isoladamente; elas só possam ser entendidas em contexto. Na próxima seção deste codelab, vamos ver como os modelos de linguagem grande generativos (LLMs) mais recentes do Google podem ajudar a retomar o diálogo e levar a conversa adiante.

5. Ativar substituto generativo

O que é o recurso substituto generativo?

O recurso de fallback generativo é um recurso do Dialogflow CX que usa os modelos de linguagem grandes (LLMs) do Google para gerar respostas de agentes virtuais.

Como isso ajuda?

Entre os principais casos de uso, há várias solicitações comuns do usuário, como repetir o que o agente disse caso o usuário não tenha entendido, manter a linha quando o usuário pedir e resumir a conversa. No primeiro teste que fizemos, o agente não conseguiu responder à pergunta "O que é um liveaboard?". porque não criamos uma intent para ele e projetamos o fluxo para lidar com perguntas genéricas relacionadas a mergulho autônomo e liveboards.

Mesmo com intents robustas, ainda há espaço para erros. Os usuários podem sair do script permanecendo em silêncio (um erro "Sem entrada") ou dizendo algo inesperado (um erro "Sem correspondência"). Embora evitar a ocorrência de erros seja melhor do que lidar com os erros depois que eles ocorrem, os erros não podem ser totalmente evitados. Comandos genéricos, como "Não sei como ajudar" ou soluções minimamente viáveis semelhantes geralmente não são boas o suficiente. Os comandos de erro precisam ser inspirados no Princípio da cooperação, segundo o qual uma comunicação eficiente se baseia na suposição de que há uma falta de cooperação entre os participantes na conversa.

Na próxima seção, vamos analisar como o recurso substituto generativo pode ser configurado para aumentar a cobertura da intent e simplificar o tratamento de erros, melhorando a experiência do cliente.

Ativar substituto generativo para todo o evento sem correspondência de todo o fluxo

É possível ativar substitutos generativos em manipuladores de eventos sem correspondência usados em fluxos, páginas ou durante o preenchimento de parâmetros. Quando o substituto generativo está ativado para um evento sem correspondência, sempre que ele é acionado, o Dialogflow tenta produzir uma resposta que será enviada ao usuário. Se a geração da resposta não for bem-sucedida, a resposta normal prescrita do agente será emitida.

É possível ativar os substitutos generativos no seu agente em manipuladores de eventos sem correspondência, que podem ser usados no fulfillment de fluxos, páginas ou parâmetros.

Vamos começar a ativar os substitutos generativos para todo o evento sem correspondência padrão do fluxo de Liveaboards.

  1. Expanda a Página inicial do fluxo.
  2. Clique em sys.no-match-default em Manipuladores de evento.
  3. Marque Ativar substituto generativo em Respostas do agente e clique em Salvar.

Marque Ativar substituto generativo em Respostas do agente

Salve para ativar o substituto generativo na página inicial dos Liveaboards

Ativar substitutos generativos em eventos sem correspondência específicos

Agora, queremos ativar o substituto generativo para processar entradas inválidas quando o agente solicitar o número de passageiros:

  1. Abra a página Coletar mais informações que contém os parâmetros do formulário. Clique no parâmetro number-of-guests.
  2. Navegue até o manipulador de eventos No-match de destino. Para isso, role para baixo até a seção Manipuladores de evento Reprompt e clique no manipulador de eventos No-match default.

Navegue até o manipulador de eventos "Sem correspondência" de destino (role para baixo até a seção "Manipuladores de eventos "Reprompt" e clique no manipulador de eventos padrão "Sem correspondência")

  1. Marque Ativar substituto generativo em Respostas do agente.

Ativar substituto generativo para o parâmetro número de convidados

  1. Por fim, clique em Salvar.
  2. Agora repita as etapas exatas para ativar o substituto generativo para destination e email-address

Bom trabalho! Você ativou o substituto generativo para lidar com intents inesperadas e valores de parâmetro inválidos. Em seguida, vamos conferir como configurar o recurso substituto generativo com um comando de texto que instrui o LLM a responder.

6. Configurar substituto generativo

O recurso substituto generativo transmite uma solicitação a um modelo de linguagem grande para produzir a resposta gerada. Ela consiste em um comando de texto que mistura linguagem natural e informações sobre o estado atual do agente e da conversa. O recurso pode ser configurado de várias maneiras:

  1. Escolha um comando específico (já definido) para gerar respostas.
  2. Defina um comando personalizado.

Escolher um comando já definido

  1. No console do Dialogflow CX, clique em Configurações do agente

Acessar as configurações do agente

  1. Navegue até a guia ML e, em seguida, a subguia IA generativa.

Subguia da IA generativa

O recurso já vem com dois modelos de comando: o modelo Padrão (que não está visível) e o modelo Exemplo, que orienta você a escrever seus próprios comandos.

  1. Selecione o modelo Exemplo e clique no botão Editar, no lado direito do menu suspenso, para inspecioná-lo.

Clique no botão Editar à direita do menu suspenso de modelos para inspecioná-lo.

Com o comando predefinido, o agente virtual pode lidar com situações básicas de conversa. Exemplo:

  • Cumprimente e se despeça ao usuário.
  • Repita o que o agente disse, caso o usuário não tenha entendido.
  • Segure a linha quando o usuário pedir.
  • Resuma a conversa.

Vamos tentar definir um comando de texto específico para o agente Divebooker!

7. Defina seu próprio comando

  1. Copie o comando abaixo e cole na área Comando de texto
You are a friendly agent that likes helping traveling divers.
You are under development and you can only help
$flow-description

At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts.

Currently you can $route-descriptions

The conversation between the human and you so far was:
${conversation USER:"Human:" AGENT:"AI"}

Then the human asked:
$last-user-utterance

You say:
  1. Selecione Salvar como um novo modelo para armazenar o novo comando como um novo modelo (escolha um novo nome para o modelo) e clique em Salvar no canto inferior direito do painel.

Criar um comando de texto personalizado específico para o agente e salvar como um novo modelo

  1. Para definir o comando recém-criado como ativo, salve as configurações.

Salve as novas configurações

Ao escrever seu próprio comando de texto, seja claro, conciso e prescritivo. A forma como o comando é elaborado pode afetar muito a qualidade da resposta do LLM. LLMs são treinados para seguir instruções. Assim, quanto mais o comando parecer uma instrução precisa, melhores serão os resultados. Elabore um comando com base nos resultados obtidos e depois itere para melhorá-lo.

Para elaborar comandos eficientes, siga as seguintes práticas recomendadas:

  1. Forneça uma descrição clara e concisa da tarefa que você quer que o LLM realize. Nem mais, nem menos. Mantenha-o completo e curto.
  2. Além disso, o comando deve ser específico e bem definido, evitando linguagem vaga ou ambígua.
  3. Divida tarefas complexas em partes menores e mais fáceis de gerenciar. Ao dividir a tarefa em etapas menores, é possível ajudar o modelo a se concentrar em uma coisa de cada vez e reduzir a probabilidade de erros ou confusão.
  4. Para melhorar a qualidade da resposta, adicione exemplos ao comando. O LLM aprende no contexto com os exemplos sobre como responder.

Ao criar um comando, além de uma descrição em linguagem natural do tipo de contexto que precisa ser gerado, os seguintes marcadores também podem ser usados:

  • $conversation A conversa entre o agente e o usuário, excluindo o último enunciado do usuário. Você pode adaptar os prefixos de curva (por exemplo: "Human", "IA" ou "Você", "Agente") no comando de texto
  • $last-user-utterance O último enunciado do usuário.
  • $flow-description: a descrição do fluxo ativo.
  • $route-descriptions As descrições das intents ativas.

Agora que temos um comando de texto inicial, a próxima tarefa é garantir que o fluxo e as intents tenham boas descrições.

8. Adicionar descrições de fluxo e intent

Adicionar a descrição do fluxo

  1. Para adicionar uma descrição ao fluxo de Liveaboards, acesse as configurações dele passando o cursor do mouse sobre o fluxo na seção Flows.

Acesse as configurações de fluxo passando o cursor do mouse sobre o fluxo na seção "Fluxos".

  1. Clique no botão de opções 78d2781c655810e7.png.
  2. Selecione Configurações de fluxo e adicione a seguinte descrição (ou uma semelhante): search, find and book liveaboards.

Adicionar uma descrição ao fluxo de Liveaboards

  1. Clique em Salvar.

Adicionar a descrição da intent

  1. Agora, vamos adicionar uma boa descrição à intent head.send.group.request. Alterne para a guia Gerenciar, escolha Intents na seção Recursos e selecione a intent head.send.group.request.
  2. Adicione a seguinte descrição: assist users with group or full charter reservations. Initially collect travel details including departure period, destination, number of guests (min 4 max 15 people), contact details. The destination must be one of the following in the Pacific: Costa Rica, Mexico, Galapagos Islands

A descrição contém informações importantes, como o número mínimo e máximo de passageiros permitidos em um barco. Lembre-se disso!

  1. Clique em Salvar.

Pronto. Você ativou o substituto generativo em manipuladores de eventos sem correspondência para o fulfillment de parâmetros e fluxo. Você também definiu seu próprio comando de texto que o recurso substituto generativo transmite a um modelo de linguagem grande para produzir respostas generativas.

Na próxima seção, você vai testar o agente novamente para descobrir como ele consegue responder às mesmas perguntas desafiadoras de antes.

9. Testar o agente novamente

Agora que você configurou e ativou o substituto generativo substituto no agente virtual, faça perguntas parecidas e desafiadoras e veja como ele lida com as respostas.

Clique em Agente de teste para abrir o simulador novamente.

Testar agente novamente

Pergunte novamente ao agente sobre liveaboards e mergulho. A partir de agora, observe como cada diálogo tem mensagens definidas pelo usuário e respostas geradas destacadas nas caixas vermelhas.

Teste o agente novamente e pergunte novamente o que é um liveaboard.

Você recebeu uma resposta informativa e em vez de uma nova solicitação genérica? Ótimo! Depois de fornecer uma descrição clara e concisa das tarefas que você quer que o agente realize (no comando de texto e na descrição do fluxo), seu bot agora é muito mais inteligente quando se trata de responder a perguntas detalhadas sem criar intents específicas. Seu cliente vai gostar do fato de o agente poder fornecer uma resposta mais informada em vez de uma resposta inacionável.

Não seja tímido e desafie o agente. Pergunte se ele pode ajudar a encontrar um curso de mergulho, já que você ainda não é um mergulhador certificado.

 Pergunte ao agente se ele pode ajudar você a encontrar um curso de mergulho.

Isso mesmo. No momento, não criamos o agente para ajudar em cursos de mergulho. Como o agente sabe disso? No comando de texto, descrevemos claramente o que o agente pode ou não fazer para ajudar. "No momento, não é possível ajudar clientes com cursos e mergulho em terra firme. Não é possível recomendar lojas e resorts de mergulho locais."

Agora teste novamente o cenário feliz e enriqueça a conversa. Vamos ver como a experiência mudou.

Teste novamente o cenário feliz e use a criatividade no diálogo

Teste novamente o cenário feliz e use a criatividade no diálogo

Quando o Dialogflow faz a correspondência com uma intent ou tenta coletar um parâmetro de acordo com o design do fluxo, ele exibe os fulfillments definidos no momento do projeto. Quando o usuário sai do script solicitando um resumo dos detalhes da viagem ou se oferece para informar o número de telefone, o recurso substituto generativo entra em jogo.

Legal! Você testou novamente o cenário feliz e espero que tenha tido uma conversa agradável e natural com o agente o mais próximo possível da experiência que você teria com um agente humano.

Infelizmente, as coisas podem dar errado em uma conversa. Vamos fazer um teste diferente. Desta vez, quando for perguntado o número de convidados, diga um número maior que 15.

Forneça um número de hóspedes maior que 15

Forneça um número de hóspedes maior que 15

Há alguns pontos a serem observados aqui:

  1. Por que 20 não é um número válido? Porque definimos um limite para o número de hóspedes permitidos como parte da descrição da intent: "O agente coleta informações como período de partida, destino, número de hóspedes***(no mínimo 4 e no máximo 15 pessoas)*** *, dados do contato*" , A resposta generativa que o LLM retornou: "Só podemos ajudar em reservas de grupos para até 15 convidados" é perfeitamente congruente com as restrições que demos ao número de hóspedes. Para reforçar isso, o número de convidados é uma entidade RegExp personalizada que corresponde apenas aos números incluídos no intervalo de 4 a 15.
  2. A conversa continua porque no final o usuário ainda quer receber uma oferta de 15 mergulhadores. Isso acontece com frequência durante conversas naturais. Mudamos de ideia com muita frequência! Observe como o agente é cooperativo e gentilmente direciona o usuário de volta para o caminho bem-sucedido.

O design de conversação envolve criar o script de metade de um diálogo, esperando que ele seja robusto o suficiente para que qualquer pessoa possa intervir e agir com a outra metade. No design voltado à cauda longa, os desenvolvedores precisam se concentrar no que o usuário pode dizer a cada etapa da caixa de diálogo para definir rotas, gerenciadores e parâmetros. Por isso, adicionamos o recurso de fallback generativo do Dialogflow CX: para permitir que os desenvolvedores se concentrem nos princípios do design de conversas e menos nos detalhes da implementação para oferecer experiências de conversação robustas aos usuários.

Vamos fazer mais um teste desta vez e desafiar o bot novamente com um lugar que não esteja na lista de destinos disponíveis, como as Maldivas. Em seguida, veremos rapidamente o que acontece nos bastidores.

Desafie o bot novamente a um lugar que não esteja na lista de destinos disponíveis, como as Maldivas.

Como também ativamos o substituto generativo no evento no-match para o parâmetro destination, uma solicitação é enviada a um modelo de linguagem grande para produzir a resposta gerada. As respostas padrão prescritas (em "O agente diz") são ignoradas.

As caixas de texto abaixo vão ajudar você a entender melhor como os marcadores de posição ajudam a moldar a solicitação enviada ao modelo de linguagem grande.

Este é o comando de texto personalizado que configuramos no Dialogflow com os marcadores de posição destacados em negrito:

You are a friendly agent that likes helping traveling divers.
You are under development and you can only help
$flow-description

At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts.

Currently you can $route-descriptions

The conversation between the human and you so far was:
${conversation USER:"Human:" AGENT:"AI"}

Then the human asked:
$last-user-utterance

You say:

Na caixa de texto abaixo, incluí a entrada recebida pelo modelo de linguagem grande e a saída que contém a resposta gerada que será enviada ao usuário:

llm_input:
You are a friendly agent that likes helping traveling divers.
You are under development and you can only help search, find and book liveaboards.

At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts.

Currently you can assist users who are looking for a group reservation or a full charter. Initially collect travel details including departure period, destination, number of guests (min 4 max 15 people), contact details. The destination must be one of the following in the Pacific: Costa Rica, Mexico, Galapagos Islands.

The conversation between the human and you so far was:
Human: Hi, my name's Alessia
AI Hi Alessia, what can I help you with today?
Human: Can you help me find a nice boat for myself and my family?
AI To assist you with that I need to collect the details of your travel and then we'll get back to you with an offer shortly.
Where would you like to go? We can organize a charter in Costa Rica, Galapagos Islands and several locations around Mexico

Then the human asked:
The kids want to go to the Maldives

llm_output:
You say:
I'm sorry Alessia, we can only help you with liveaboards in Costa Rica, Galapagos Islands and several locations around Mexico.

Assim como no teste feito anteriormente, a resposta enviada ao usuário é gerada pelo modelo e se baseia nas informações fornecidas como parte da descrição da intent: "O destino precisa ser um dos seguintes no Pacífico: Costa Rica, México, Ilhas Galápagos".

Modificar a lista de frases banidas

O recurso substituto generativo pode ser configurado de várias maneiras:

  1. Escolha um comando específico (já definido) para gerar respostas.
  2. Defina um comando personalizado.
  3. Altere a lista de frases banidas.

Até agora, analisamos as duas primeiras maneiras. Vamos analisar a terceira.

  1. Em Configurações do agente, acesse a guia ML e depois a subguia IA generativa.
  2. Na seção Frases banidas, adicione as seguintes frases à lista:
  3. Dangerous country
  4. Hateful place
  5. Medical assistance
  6. Clique em Salvar.
  7. Clique no ícone Redefinir e teste novamente o último cenário. Em vez de fornecer um belo destino de mergulho ao redor do mundo, insira uma das frases proibidas.

Teste uma das frases banidas

O comando e a resposta gerada são comparados com a lista de frases proibidas. Frases banidas são aquelas que não são permitidas na IA generativa. Se a entrada incluir frases proibidas ou consideradas inseguras, a geração não será bem-sucedida e a resposta regular prescrita (conforme o agente diz no mesmo cumprimento) será emitida.

Excelente! Falamos de várias situações de conversa em que as respostas generativas podem fazer a diferença. Fique à vontade para continuar testando.

10. Parabéns

Parabéns por concluir o codelab. Hora de relaxar!

Cbo relaxante

Você criou um agente virtual e ativou o substituto generativo nos manipuladores de eventos no-match usados em fluxos e durante o preenchimento de parâmetros.

O recurso de fallback generativo combinado com boas descrições de fluxo e intent pode fornecer respostas cooperativas e específicas do agente, em oposição a comandos genéricos como "Desculpe, não sei como ajudar". ou "Você inseriu uma opção inválida". As solicitações de erro geradas por modelos de linguagem grandes podem levar os usuários de volta a caminhos de sucesso ou redefinir as expectativas sobre o que é possível ou não.

Fique à vontade para testar outras situações de conversa e conhecer outras funcionalidades disponíveis relacionadas ao Dialogflow CX e à IA generativa.

Limpeza

Faça a limpeza abaixo para evitar cobranças dos recursos usados neste codelab na conta do Google Cloud:

  • Navegue até o console do Dialogflow CX e exclua todos os agentes que você criou.
  • No console do Google Cloud, acesse a página "APIs e serviços" e desative a API Dialogflow.

Leia mais

Continue aprendendo sobre IA de conversação e IA generativa com estes guias e recursos:

Licença

Este conteúdo está sob a licença Atribuição 2.0 Genérica da Creative Commons.