Criar um agente do Dialogflow ES

Este guia mostra como usar o Console do Dialogflow para criar e testar um agente simples.

Antes de começar

Faça o seguinte antes de ler este guia:

  1. Leia os Conceitos básicos do Dialogflow.
  2. Execute as etapas de configuração.

Criar um agente

Se você ainda não criou um agente, crie um agora:

  1. Acesse o Console do Dialogflow ES.
  2. Se solicitado, faça login no Console do Dialogflow. Para mais informações, consulte a Visão geral do Console do Dialogflow.
  3. Clique em Criar agente no menu da barra lateral à esquerda. Se você já tiver outros agentes, clique no nome do agente, role até a parte inferior da página e clique em Criar novo agente.
  4. Digite o nome do agente, o idioma padrão e o fuso horário padrão.
  5. Se você já tiver criado um projeto, insira-o. Se você quiser permitir que o Console do Dialogflow crie o projeto, selecione Criar um novo projeto do Google.
  6. Clique no botão Criar.

Importar o arquivo de exemplo para seu agente

As etapas deste guia fazem considerações sobre o agente. Portanto, você precisa import um agente preparado para este guia. Ao importar, essas etapas usam a opção restaurar, que substitui todas as configurações, intents e entidades do agente.

O agente preparado para este guia é um agente novo, sem intents ou entidades definidas pelo usuário.

Para importar o arquivo, siga estas etapas:

  1. Faça o download do arquivo new-agent.zip.
  2. Acesse o Console do Dialogflow ES.
  3. Selecione seu agente.
  4. Clique no botão de configurações ao lado do nome do agente.
  5. Selecione a guia Exportar e importar.
  6. Selecione Restaurar do arquivo ZIP e siga as instruções para restaurar o arquivo ZIP que você transferiu por download.

Intents

Intents categorizam a intenção de um usuário final para uma conversa. Para cada agente, você define muitas intents, em que essa combinação de intents pode processar uma conversa completa.

Intents padrão

Quando você cria um agente, duas intents padrão são criadas:

  • Intent de boas-vindas padrão: essa intent é associada quando o usuário final conversa com seu agente. Ela retorna uma resposta que permite que o usuário final saiba o que seu agente faz ou o que ele pode dizer para iniciar uma conversa.
  • Intent de fallback padrão: essa intent é associada quando o agente não pode associar a expressão do usuário final a qualquer outra intent.

Para ver essas intents, acesse a lista de intents do seu agente:

  1. Acesse o Console do Dialogflow ES.
  2. Selecione o agente recém-criado.
  3. Clique em Intents no menu da barra lateral esquerda.

A parte central do Console mostra a lista de intents do agente.

Captura de tela da lista de intents

Testar a intent de fallback padrão

Captura de tela do simulador

O simulador Dialogflow fica no lado direito do Console. Com o ele, você testa seu agente falando ou digitando mensagens.

Teste o agente agora:

  • Clique no campo Testar agora.
  • Digite What is your name?.
  • Pressione Enter.

A resposta do agente é exibida na seção Resposta padrão. Como sua entrada não correspondeu a nenhuma intent, a intent de fallback padrão foi usada e você recebeu uma das respostas padrão.

Criar uma intent nova

As etapas nesta seção criam uma intent que pode responder à pergunta "qual é seu nome?". Para cada intent, você define várias frases de treinamento. Uma frase de treinamento é um exemplo do que um usuário final pode digitar ou dizer ao seu agente, também conhecida como expressão de usuário final. É necessário definir várias frases de treinamento que forneçam ao Dialogflow uma variedade de expressões que correspondam a uma intenção.

Como criar uma intent:

  1. Clique no botão ao lado de Intents no menu da barra lateral esquerda para adicionar uma intent.
  2. Insira get-agent-name no campo Nome da intent.
  3. Na seção Frases de treinamento, clique em Adicionar frases de treinamento.
  4. Digite as frases de treinamento a seguir e pressione Enter após cada entrada:

    • What is your name?
    • Do you have a name?
    • Tell me your name

    Captura de tela de frases de treinamento

  5. Na seção Respostas, digite o seguinte na seção Resposta de texto:

    • My name is Dialogflow!

    Captura de tela de frases de treinamento

  6. Clique no botão Save e aguarde até que a caixa de diálogo Agent Training indica que o treinamento foi concluído.

Testar a intent

Captura de tela do simulador

No simulador, digite What's your name? e pressione Enter.

Seu agente responde à expressão corretamente, mesmo que ela seja um pouco diferente das frases de treinamento fornecidas.

O Dialogflow usa frases de treinamento como exemplos em um modelo de machine learning para corresponder expressões de usuários finais às intents. O modelo compara a expressão a cada intent no agente e dá a cada intent uma pontuação. Aquela que tiver a maior pontuação é correspondida. Se a intent de maior pontuação ainda assim tiver uma pontuação muito baixa, a correspondência será feita com a intent de fallback.

Parâmetros e entidades

Quando uma intent é correspondida no ambiente de execução, o Dialogflow fornece os valores extraídos da expressão do usuário final como parâmetros. Cada parâmetro tem um tipo, chamado de tipo de entidade, que dita exatamente como os dados são extraídos. Ao contrário da entrada bruta do usuário final, os parâmetros são dados estruturados que podem ser facilmente usados para executar uma lógica ou gerar respostas.

Ao criar um agente, você controla como os dados são extraídos anotando partes das frases de treinamento e configurando os parâmetros associados.

Crie parâmetros

Crie uma nova intent com parâmetros:

  1. Clique no botão de adição ao lado de Intents no menu da barra lateral esquerda.
  2. Nomeie a intent set-language na parte superior do formulário de intent.
  3. Adicione as seguintes frases de treinamento:
    • I know English
    • I speak French
    • I know how to write in German
  4. Clique no botão Save e aguarde até que a caixa de diálogo Agent Training indica que o treinamento foi concluído.

    Captura de tela da frase de treinamento anotado

O Dialogflow detecta automaticamente os parâmetros nas frases de treinamento, que são reconhecidos como entidades do sistema. Elas são entidades fornecidas pelo Dialogflow para muitos tipos de dados comuns, como local, cor e data.

Abaixo da seção Frases de treinamento, o Dialogflow cria uma linha na tabela Ação e parâmetros:

Captura de tela da frase de treinamento anotado

  • Obrigatório: a caixa de seleção não está marcada, portanto, este parâmetro é opcional.
  • Nome do parâmetro: esse parâmetro é automaticamente chamado de language, porque o parâmetro é reconhecido como um idioma.
  • Entidade: é o tipo de entidade. Ele é reconhecido como uma entidade de sistema @sys.language.
  • Valor: este é o identificador usado ao fazer referência ao valor deste parâmetro.
  • É lista: a caixa de seleção não está marcada, portanto, o parâmetro não é uma lista.

Usar dados de parâmetro em uma resposta

É possível usar o valor de um parâmetro nas respostas. Por exemplo, use a referência de parâmetro $language nas suas respostas ao criar um agente. No ambiente de execução, esse parâmetro será substituído pelo idioma especificado na expressão do usuário final.

Adicione uma resposta que use um parâmetro:

  1. Role a tela para baixo até a seção Respostas.
  2. Adicione a seguinte resposta de texto: Wow! I didn't know you knew $language.
  3. Clique no botão Save e aguarde até que a caixa de diálogo Agent Training indica que o treinamento foi concluído.

Testar o parâmetro

Captura de tela do simulador

No simulador, digite I know Russian.

O Dialogflow extrai corretamente o parâmetro language com o valor Russian, e Russian foi inserido corretamente onde a referência de parâmetro foi usada na resposta.

Criar as próprias entidades

Na maioria dos casos, você tem dados específicos que precisa coletar de usuários que não são fornecidos por entidades do sistema. Crie entidades personalizadas para lidar com isso.

Crie uma entidade personalizada:

  1. Clique no botão ao lado de Entidades no menu da barra lateral esquerda para adicionar uma entidade.
  2. Insira language-programming como o nome da entidade.
  3. Adicione as entradas de entidade (linhas) a seguir:

    Valor de referência Sinônimos
    JavaScript JavaScript, js, ECMAScript
    Java Java
    Python Python, py
  4. Clique no botão Save e aguarde até que a caixa de diálogo Agent Training indica que o treinamento foi concluído.

Captura de tela do uso da entidade

O Dialogflow consegue processar questões simples como diferenças de plural/singular e maiúsculas/minúsculas, mas insira todos os sinônimos possíveis nas entradas. Quanto mais sinônimos você adicionar, melhor será a capacidade do agente de determinar as entidades.

Usar a entidade nova

Adicione frases de treinamento à intent set-language que usa a nova entidade:

  1. Clique em Intents no menu da barra lateral esquerda.
  2. Clique na intent set-language.
  3. Adicione as seguintes frases de treinamento:
    • I know javascript
    • I know how to code in Java
  4. As linguagens de programação nessas frases de treinamento são anotadas automaticamente e adicionadas aos parâmetros na seção Ação e parâmetros.
  5. Na seção Respostas, adicione a segunda resposta de texto a seguir: $language-programming is an excellent programming language..
  6. Clique no botão Save e aguarde até que a caixa de diálogo Agent Training indica que o treinamento foi concluído.

Testar sua nova entidade

Captura de tela do simulador

No simulador, digite I know how to code in py.

Observe que o Dialogflow extraiu corretamente py para o parâmetro language-programming, depois o identificou como a entidade Python e inseriu o valor na resposta.

Contextos

Para controlar o fluxo da conversa, é possível usar um contexto.

Adicionar uma intent de continuidade

As intents de continuidade são uma opção simples para controlar uma conversa sem a necessidade de criar e gerenciar contextos manualmente.

Ao criar uma intent de continuidade, um contexto de saída é adicionado à intent pai e um contexto de entrada com o mesmo nome é adicionado à intent filho. Isso significa que a correspondência com a intent de continuidade é feita somente quando a intent pai é correspondida na conversa anterior.

Adicione uma intent de continuidade personalizada à intent set-language:

  1. Selecione a intent set-language criada nas etapas anteriores.
  2. Na seção Resposta, atualize a resposta de texto:
    • Wow! I didn't know you knew $language. How long have you known $language?
  3. Clique no botão Save e aguarde até que a caixa de diálogo Agent Training indica que o treinamento foi concluído.
  4. Clique em Intents no menu da barra lateral esquerda.
  5. Passe o cursor sobre a intent set-language e clique em Adicionar intent de continuidade.
  6. Clique em Personalizada na lista revelada.
  7. Clique no botão Save e aguarde até que a caixa de diálogo Agent Training indica que o treinamento foi concluído.

O Dialogflow nomeia automaticamente a intent de continuidade set-language - custom.

Captura de tela de acompanhamento

Correspondência com intents de continuidade

A correspondência com intents de continuidade é feita apenas após a correspondência com a intent pai. Como a intent set-language - custom só é correspondida após a intent set-language, talvez o usuário tenha acabado de fazer a pergunta How long have you known $language?. Agora, adicione frases de treinamento para respostas prováveis do usuário a essa pergunta:

  1. Clique em Intents no menu da barra lateral esquerda.
  2. Clique na intent set-language - custom.
  3. Adicione as seguintes frases de treinamento:
    • 3 years
    • about 4 days
    • for 5 years
  4. Clique no botão Save e aguarde até que a caixa de diálogo Agent Training indica que o treinamento foi concluído.

Testar a intent de continuidade

Digite I know French no simulador e responda à pergunta How long have you known French com about 2 weeks.

Embora não haja resposta para a segunda expressão (about 2 weeks), perceba que a expressão corresponde à intenção correta (set-language - custom), e o parâmetro "duration" foi analisado corretamente (2 weeks).

Intents e contextos

Analise a intent set-language para ver set-language-followup listado como um contexto de saída e precedido pelo número 2. Esse número é chamado de vida útil.

Captura de tela do contexto de saída

Depois da correspondência da intent set-language, o contexto set-language-followup fica ativo e vinculado à conversa para ser usado duas vezes (vida útil: 2). Portanto, quando o usuário responde à pergunta, How long have you known $language?, o contexto set-language-followup fica ativo.

Analise a intent set-language - custom para ver set-language-followup listado como um contexto de entrada, que é o mesmo que o contexto de saída para a intent set-language.

Todas as intents com contexto de entrada correspondente a um contexto ativo são muito favorecidas quando o Dialogflow corresponde a intents.

Contextos e parâmetros

Os contextos armazenam valores de parâmetro, e é possível acessar os valores dos parâmetros definidos na intent set-language quando o contexto de saída estiver ativo.

Na intent set-language - custom, você perguntou apenas a duração do conhecimento do usuário sobre o idioma, e não o próprio idioma referenciado.

Para mencionar a linguagem na resposta:

  1. Atualize a resposta de texto da intent set-language - custom para I can't believe you've known #set-language-followup.language for $duration!
  2. Clique no botão Save e aguarde até que a caixa de diálogo Agent Training indica que o treinamento foi concluído.

A referência #set-language-followup.language é conhecida como uma referência de parâmetro para um contexto ativo .

Testar o parâmetro de contexto

Insira I know French no simulador e responda à pergunta com 1 week. Observe que o valor do parâmetro language é recuperado a partir do contexto.

Produção

Antes de executar seu agente na produção, implemente as práticas recomendadas de produção.

A seguir

Teste o guia de início rápido do fulfillment.