1. Visão geral
Última atualização:10/10/2023
O que você vai criar
Neste codelab, você vai usar a Vertex AI para Conversação e o Dialogflow CX para criar, implantar e configurar um agente virtual que ajude as pessoas que querem doar sangue e garantir que elas atendam aos requisitos de qualificação necessários. O agente usa dados públicos reais e modelos de linguagem grandes (LLMs, na sigla em inglês) generativos do Google durante o fulfillment do Dialogflow CX.
Quais recursos você vai usar
Para concluir o codelab, você vai configurar e usar três recursos distintos:
Agentes de repositório de dados
O recurso Vertex AI para Conversação cria um agente especial do Dialogflow, chamado de agente de repositório de dados.
Com esse recurso, você fornece um URL de site, dados estruturados ou não estruturados (repositórios de dados). Depois, o Google analisa o conteúdo e cria um agente virtual com tecnologia de repositórios de dados e modelos de linguagem grandes. Assim, seus clientes e usuários finais podem conversar com o agente e fazer perguntas sobre o conteúdo. Consulte a Introdução ao Vertex AI para Conversação para informações sobre esse tipo de agente.
Geradores
O gerador é um recurso do Dialogflow CX que permite aos desenvolvedores usar os mais recentes modelos de linguagem grandes generativos do Google e comandos personalizados para gerar respostas do agente em tempo real. Um gerador pode lidar com respostas genéricas que envolvem conhecimento geral de um grande conjunto de dados textuais usados para treiná-lo ou com base no contexto da conversa.
Resposta generativa de substituição
O recurso de resposta generativa de substituição usa os modelos de linguagem grandes (LLMs) generativos mais recentes do Google para gerar respostas do agente virtual quando a entrada do usuário final não corresponde a uma intent ou a um parâmetro para preencher formulários. Esse recurso pode ser configurado com um comando de texto que instrui o LLM a responder. Você pode usar um comando de texto predefinido ou adicionar seus próprios comandos. Você pode ativar a substituição generativa em manipuladores de eventos de não correspondência usados em fluxos, páginas ou durante o preenchimento de parâmetros. Quando a substituição generativa está ativada para um evento sem correspondência, sempre que esse evento é acionado, o Dialogflow tenta gerar uma resposta para o usuário. Se a geração de resposta não der certo, a resposta regular do agente será mostrada. Se você quiser saber mais sobre o fallback generativo, confira este codelab.
O que você vai aprender
- Como criar um agente de repositório de dados com dados não estruturados
- Como usar gerenciadores de conhecimento para permitir que os usuários finais conversem com um agente virtual sobre o conteúdo adicionado a um repositório de dados.
- Como configurar um comando de texto do gerador para usar informações de contexto usando os marcadores de posição de comando integrados do gerador.
- Como marcar palavras como marcadores de posição de comando do gerador e associá-los a parâmetros de sessão no processamento da resposta para usar esses valores durante a execução.
- Como configurar um gerador para processar respostas que envolvem conhecimento de um grande conjunto de dados textuais e o contexto da conversa atual.
- Como gerar um e-mail formal usando geradores
- Como testar seu agente e simular perguntas de clientes que acionam respostas geradas
O que é necessário
- Um projeto do Google Cloud
- Um navegador, como o Chrome
2. Ativar APIs
Antes de criar um agente de repositório de dados na Vertex AI para Conversação, é necessário ativar o Dialogflow e as APIs da Vertex AI para Pesquisa e Conversação.
Para ativar a API Dialogflow, siga estas etapas:
- No navegador, acesse a página de detalhes do serviço da API Dialogflow.
- Clique no botão Ativar para ativar a API Dialogflow no seu projeto do Google Cloud.
Para ativar a API Vertex AI para Pesquisa e Conversação, siga estas etapas:
- No console do Google Cloud, navegue até o console da Vertex AI para Pesquisa e Conversação.
- Leia e aceite os Termos de Serviço e clique em Continuar e ativar a API.
3. Criar um novo app de chat e um repositório de dados para o app
Agora, você vai criar um novo app de chat para seu agente virtual e configurá-lo com uma fonte de dados. O objetivo do agente que você vai criar é ajudar clientes que têm dúvidas sobre as qualificações necessárias para doar sangue. Você vai usar o Australian Red Cross Lifeblood como fonte de verdade e criar um repositório de dados com base em dados não estruturados do site de qualificação para doação de sangue.
- Para criar um app de chat na Vertex AI para Conversação, você pode:
- Acesse o console da Vertex AI para Conversação e clique em +Novo app perto da parte de cima do console.
- Navegue até o console do Dialogflow CX, clique em +Criar novo agente e selecione a opção Gerar automaticamente. Em seguida, você será redirecionado para a próxima etapa no console do Vertex AI para Conversação.
- No console do Vertex AI para Conversação, selecione Chat como o tipo de app que você quer criar.
- Informe um Nome da empresa de
Save a Life. Esse parâmetro é usado para definir a empresa que seu agente representa e o escopo do seu agente. - Especifique um Nome de agente de
Blood Donation Agent. - Clique em Continuar.
- Clique em Criar novo repositório de dados.
- Selecione Cloud Storage como a fonte de dados do seu repositório de dados.
- Especifique a seguinte pasta do Google Cloud Storage que contém dados de amostra para este codelab. Observe que o prefixo
gs://não é obrigatório:cloud-samples-data/dialogflow-cx/arc-lifeblood - Selecione Documentos não estruturados como o tipo de dado que você está importando.
- Clique em Continuar.
- Especifique um Nome de repositório de dados de
Australian Red Cross Lifeblood Unstructured. - Clique em Criar para criar o repositório de dados.
- Na lista de repositórios de dados, selecione o recém-criado
Australian Red Cross Lifeblood Unstructured. - Clique em Criar para criar seu app de chat.
Parabéns! Você concluiu a criação do seu app de chat com tecnologia de conhecimento, e ele está pronto para ajudar possíveis doadores.
Porém, você precisa seguir mais algumas etapas para disponibilizar o agente aos usuários. Na próxima seção, você vai usar um gerenciador de conhecimento para habilitar as conversas entre o agente e os usuários finais sobre os requisitos de qualificação.
4. Configurar o agente para responder a perguntas frequentes sobre qualificações para doação de sangue
Fornecer o comando de armazenamento de datas
Enquanto o processo de coleta de documentos é executado em segundo plano, vamos criar uma marca para o agente com uma edição do comando do repositório de dados.
- No console da Vertex AI para Conversação, clique no nome do seu app de chat para ser redirecionado ao console do Dialogflow CX para mais testes e personalização.
- No console do Dialogflow CX e no agente, clique em Configurações do agente (canto superior direito da página), acesse a guia ML e abra a guia IA generativa.

- Preencha o formulário abaixo para gerar este comando do repositório de dados: seu nome é
Donate. Você é umchatbotprestativo e educado daSave a life, a fictitious organization. Sua tarefa é ajudarhumans with eligibility information.

Ativar a substituição generativa para o evento de não correspondência do Fluxo de início padrão
- Mude para a guia Build e abra a Start Page.
- Clique no manipulador de eventos sys.no-match-default. Se a caixa não estiver marcada, ative o recurso de substituição generativa.

Verificar o repositório de dados do agente
Na Página inicial, clique em Editar repositórios de dados para conferir as configurações do repositório de dados.

O repositório de dados que você criou já foi selecionado pelo Dialogflow.

Role a tela para baixo até Respostas do agente em Fulfillment. Um fulfillment é a resposta do agente ao usuário final. O Dialogflow já preencheu o campo O agente diz com o parâmetro $request.knowledge.answers[0], que, no tempo de execução, contém a melhor resposta para a pergunta do usuário.

5. Testar o agente
Quando os documentos estiverem disponíveis e prontos para uso pelo seu agente, verifique a qualidade das respostas.
Clique em Testar agente para abrir o Simulador novamente.

Faça as perguntas que você espera encontrar na página de perguntas frequentes do site:
What age do I need to be to donate?Can pregnant women donate?I've just come back from a trip to Africa. Can I donate?How can I schedule an appointment?

As respostas são recuperadas do site da Cruz Vermelha Australiana. Conforme indicado nesta página, há idades mínima e máxima para doação de sangue. A idade mínima é de 18 anos, e a máxima é de 75 para doadores de primeira vez. Outra evidência de que estamos extraindo informações do repositório de dados é o pequeno ícone de estrela que aparece na resposta do agente e na resposta JSON original.

Por fim, vamos tentar desafiar o agente com uma pergunta não relacionada à doação de sangue.
Usuário: "Como está o clima em Melbourne?"
Agente: "Desculpe, não posso ajudar com isso. Como posso ajudar você com informações sobre qualificação?"
Essa resposta tem conteúdo gerado com IA e deriva do comando de texto criado pelo Dialogflow com base na configuração do conector de conhecimento fornecida anteriormente: "seu nome é Donate. Você é um chatbot prestativo e educado da Save a Life. Sua tarefa é ajudar as pessoas a encontrar informações sobre qualificação". Essa solicitação de texto contém o nome da empresa, o nome do agente e, o mais importante, o que está no escopo dele. O Dialogflow usa essas informações para gerar a resposta do agente.
Muito bem! Você está usando o repositório de dados para ajudar as pessoas com perguntas frequentes sobre doação de sangue. Na próxima parte do codelab, vamos analisar como vincular um comando de texto do gerador ao mesmo conteúdo para uma tomada de decisão informada.
6. Configurar o agente para o teste de qualificação
Nossa próxima tarefa é configurar o agente para determinar se o usuário está qualificado para doar sangue. Os doadores precisam atender a critérios rigorosos, como idade, peso, condições preexistentes, viagens recentes etc. Para o escopo deste codelab, vamos considerar apenas idade e peso. Um gerador usa os modelos de linguagem grandes do Google para tomar uma decisão informada com base no contexto da conversa e na base de conhecimento.
Configurar novas rotas e parâmetros
- Abra a Página inicial e clique em Editar repositórios de dados.
- Mude a resposta do agente para
$request.knowledge.answers[0] Would you like to take the eligibility quiz to find out if you can donate blood, and start changing lives?.

- Clique no botão Salvar.
- Agora precisamos projetar o agente para lidar com respostas "sim" e "não". Para começar, crie uma intent confirmation.yes e uma confirmation.no. Siga estas diretrizes sobre a reutilização de intenções.
- Em seguida, na Página inicial, crie uma rota para a intent confirmation.yes que faz a transição para uma nova página Teste de qualificação.


- Como mencionado antes, vamos simplificar o teste e considerar apenas a idade e o peso do usuário para determinar se ele está qualificado para doar. Abra a página Teste de qualificação e adicione um novo parâmetro de formulário age-weight. Escolha
@sys.anycomo o tipo de entidade. Forneça"What is your age and weight?"como o fulfillment do prompt inicial. Queremos coletar idade e peso de uma só vez. Salve todas as mudanças.

Criar e configurar o gerador de qualificação
O recurso de gerador é um recurso do Dialogflow CX que permite aos desenvolvedores usar os modelos de linguagem grandes generativos mais recentes do Google durante o fulfillment do Dialogflow CX. Geradores para gerar respostas de agentes no ambiente de execução. Um gerador pode lidar com respostas genéricas que envolvem conhecimento geral de um grande conjunto de dados textuais usados para treiná-lo ou com base no contexto da conversa.
Vamos criar um gerador para comparar as informações fornecidas pelo usuário (como idade e peso) com os requisitos de qualificação para determinar se esse usuário pode doar sangue.
- No console do Dialogflow CX, acesse a guia Gerenciar, selecione Geradores e clique em Criar.

- Em seguida, insira um nome de exibição descritivo e escreva o comando de texto. Mantenha as configurações padrão de controle de qualidade do modelo. Em seguida, clique em Salvar para criar o gerador.
- Nome de exibição:
Blood Donation Eligibility - Comando de texto:
Check the users eligibility against the following criteria: the minimum age is 18 and the maximum age is 75. Weight should be above 50 Kg. The user age and weight is $last-user-utterance. Be nice and tell the user if they are eligible to donate (also tell them why not in case)
- Nome de exibição:
O comando de texto é enviado ao modelo generativo durante o fulfillment no ambiente de execução. O modelo precisa de uma pergunta ou solicitação clara para gerar uma resposta satisfatória. Você pode usar marcadores de posição especiais de comandos do gerador integrados no comando de texto:
$conversation: a conversa entre o agente e o usuário, excluindo a última declaração do usuário.$last-user-utteranceA última declaração do usuário.
O comando de texto configurado espera que o usuário informe a idade e o peso dele em uma única rodada de conversa (a `$last-user-utterance``).
Use o gerador no fulfillment e configure todos os parâmetros necessários
- Na página Teste de qualificação, adicione uma nova rota que vai ocorrer quando todos os parâmetros forem preenchidos. Insira o requisito de condição
$page.params.status = "FINAL"e clique em Salvar.

- Acesse e expanda a seção Geradores do painel Fulfillment. Em seguida, clique em Adicionar gerador e selecione o gerador Qualificação para doação de sangue. Depois de selecionar o gerador, defina o parâmetro de saída que vai conter o resultado do gerador após a execução.

- Use o parâmetro de saída na resposta do agente e salve a rota. Agora está tudo pronto para testar.

7. Testar seu agente de novo
Clique em Testar agente para abrir o simulador novamente.

No Simulador, inicie uma nova conversa com o agente. Primeiro, pergunte sobre os requisitos de idade e depois faça o teste de qualificação. Teste primeiro o caminho "qualificado". Insira uma idade entre 18 e 75 anos e um peso acima de 50 kg.

Em seguida, veja se a verificação de qualificação falha quando um ou ambos os requisitos não são atendidos.

Ótimo, o gerador funciona como esperado! Ou será que funciona mesmo? O que acontece se o usuário informar a idade, mas não o peso (ou vice-versa)?

8. Ajustar os comandos do gerador
Parece que não funciona coletar idade e peso em uma única frase, a menos que ambas as informações sejam fornecidas. Em vez disso, crie um formulário que colete esses dois valores como parâmetros de entidade. Para ativar o aspecto contextual do comando de todos os requisitos de qualificação (como idade e peso), podemos usar marcadores de posição adicionando um $ antes da palavra. Depois, vamos associar esses marcadores de posição de comando do gerador a parâmetros de sessão no fulfillment. Eles serão substituídos pelos valores de parâmetro de sessão durante a execução.
- Abra a página Teste de qualificação e adicione dois parâmetros separados do formulário: um para peso e outro para idade. Escolha
@sys.number-integercomo o tipo de entidade e marque os parâmetros necessários. Forneça as respostas iniciais, comoHow old are you?eWhat is your correct weight?. Salve todas as alterações.

- Antes de mudar o comando de texto do gerador, já que vamos adicionar dois novos marcadores de posição personalizados, precisamos remover o gerador do atendimento de rota. Clique em Salvar.

- Acesse a guia Gerenciar, selecione Geradores e atualize o comando de texto do gerador Qualificação para doação de sangue com:
Check the users eligibility against the following criteria: the minimum age is 18 and the maximum age is 75. The weight must be at least 50 kg. The user is $age years old and weighs $weight Kg. Craft an email and politely explain to the user if they're eligible to donate and if not why.. Clique em Salvar.
Observe que contextualizamos o comando de texto com os parâmetros de idade e peso e também mudamos a última frase para gerar um e-mail formal ao usuário com o resultado oficial do teste de qualificação.

- Na página Teste de qualificação, selecione a rota e expanda a seção Geradores do painel Fulfillment. Em seguida, clique em Adicionar gerador e selecione o gerador "Qualificação para doação de sangue". Depois de selecionar o gerador, associe os novos marcadores de posição de comando aos seus respectivos parâmetros de sessão. Além disso, você precisa redefinir o parâmetro de saída. Clique em Salvar.

- Teste o agente de novo. A verificação de qualificação agora considera idade e peso, e a linguagem mudou de um tom conversacional para uma resposta mais educada, pronta para ser enviada sem um human in the loop.


9. Parabéns
Você concluiu este codelab.

Hoje investigamos geradores no contexto de testes de qualificação. Você já viu que os geradores usam LLMs para gerar respostas do agente e que, quando alimentados por uma base de conhecimento, também podem tomar decisões informadas. Ainda deve haver muitos outros casos de uso que podem ser implementados usando geradores e repositórios de dados. Queremos conhecê-los!
Limpeza
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados neste codelab, faça a limpeza a seguir:
- Para evitar cobranças desnecessárias do Google Cloud, use o console do Google Cloud para excluir o projeto se ele não for mais necessário.
- Se você usou um projeto na nuvem do Google Cloud, exclua os recursos criados para evitar cobranças na sua conta. Para mais informações, consulte as etapas para Excluir um app.
- Se quiser desativar as APIs para a Vertex AI para Conversação e o Dialogflow, acesse a página de detalhes do serviço da API Discovery Engine, clique em Desativar API e confirme. Depois, acesse a página de detalhes do serviço da API Dialogflow, clique em Desativar API e confirme.
Saiba mais
Continue aprendendo sobre IA de conversação e IA generativa com estes guias e recursos:
- Documentação para Dialogflow CX
- Introdução à Vertex AI para Conversação
- Criar e usar um agente de repositório de dados
- Documentação do Vertex AI para Conversação
- IA generativa no Google Cloud
Licença
Este conteúdo está sob a licença Atribuição 2.0 Genérica da Creative Commons.