Crie um agente do Dialogflow ES

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

Antes de começar

Antes de ler este guia, deve fazer o seguinte:

  1. Leia as noções básicas do Dialogflow.
  2. Realize os passos de configuração.

Crie um agente

Se ainda não tiver criado um agente, crie um agora:

  1. Aceda à consola do Dialogflow ES.
  2. Se lhe for pedido, inicie sessão na consola do Dialogflow. Consulte a vista geral da consola do Dialogflow para mais informações.
  3. Clique em Criar agente no menu da barra lateral esquerda. (Se já tiver outros agentes, clique no nome do agente, desloque a página para baixo e clique em Criar novo agente.)
  4. Introduza o nome do agente, o idioma predefinido e o fuso horário predefinido.
  5. Se já tiver criado um projeto, introduza esse projeto. Se quiser permitir que a consola do Dialogflow crie o projeto, selecione Criar um novo projeto Google.
  6. Clique no botão Criar.

Importe o ficheiro de exemplo para o seu agente

Os passos neste guia baseiam-se em pressupostos sobre o seu agente. Por isso, tem de importar um agente preparado para este guia. Quando importa, estes passos usam a opção restaurar, que substitui todas as definições, intenções e entidades do agente.

O agente preparado para este guia é um novo agente, sem intenções nem entidades definidas pelo utilizador.

Para importar o ficheiro, siga estes passos:

  1. Transfira o ficheiro new-agent.zip.
  2. Aceda à consola do Dialogflow ES.
  3. Selecione o seu agente.
  4. Clique no botão Definições junto ao nome do agente.
  5. Selecione o separador Exportar e importar.
  6. Selecione Restaurar do ZIP e siga as instruções para restaurar o ficheiro ZIP que transferiu.

Intenções

Intenções categorizam a intenção de um utilizador final para uma interação de conversa. Para cada agente, define muitas intenções, em que as suas intenções combinadas podem processar uma conversa completa.

Intenções predefinidas

Quando cria um agente, são criadas duas intenções predefinidas para si:

  • Intenção de boas-vindas predefinida: esta intenção é correspondida quando o utilizador final inicia uma conversa com o seu agente. Este objetivo deve devolver uma resposta que informe o utilizador final sobre o que o seu agente faz ou o que pode dizer para iniciar uma conversa.
  • Intenção alternativa predefinida: esta intenção é correspondente quando o agente não consegue fazer corresponder a expressão do utilizador final a qualquer outra intenção.

Para ver estas intenções, aceda à lista de intenções do seu agente:

  1. Aceda à consola do Dialogflow ES.
  2. Selecione o agente que acabou de criar.
  3. Clique em Intenções no menu da barra lateral esquerda.

A parte central da consola mostra a lista de intenções do agente.

Captura de ecrã da lista de intenções

Teste a intenção alternativa predefinida

Captura de ecrã do simulador

O simulador do Dialogflow encontra-se no lado direito da consola. Com o simulador, pode testar o seu agente falando ou escrevendo mensagens.

Experimente o agente agora:

  • Clique no campo Experimentar agora.
  • Escreva What is your name?.
  • Prima Enter.

A resposta do agente aparece na secção Resposta predefinida. Uma vez que a sua entrada não correspondeu a nenhuma intenção, a intenção de recurso predefinida foi correspondida, e recebeu uma das respostas predefinidas.

Crie uma nova intenção

Os passos nesta secção criam uma intenção que pode responder à pergunta "qual é o seu nome?". Para cada intenção, define muitas expressões de preparação. Uma frase de preparação é um exemplo do que um utilizador final pode escrever ou dizer ao seu agente, também conhecida como expressão do utilizador final. Deve definir muitas expressões de preparação que forneçam ao Dialogflow uma variedade de expressões que devem corresponder a uma intenção.

Crie uma intenção:

  1. Clique no botão de adição de intenção junto a Intenções no menu da barra lateral esquerda.
  2. Introduza get-agent-name no campo Nome da intenção.
  3. Na secção Frases de treino, clique em Adicionar frases de treino.
  4. Introduza as seguintes expressões de treino e prima Enter após cada entrada:

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

    Captura de ecrã de frases de preparação

  5. Na secção Respostas, introduza o seguinte na secção Resposta de texto:

    • My name is Dialogflow!

    Captura de ecrã de frases de preparação

  6. Clique no botão Guardar e aguarde até que a caixa de diálogo Formação de agentes indique que a formação está concluída.

Teste a sua intenção

Captura de ecrã do simulador

No simulador, escreva What's your name? e prima Enter.

O seu agente responde corretamente à expressão, mesmo que a expressão seja ligeiramente diferente das frases de preparação que forneceu.

O Dialogflow usa expressões de preparação como exemplos para um modelo de aprendizagem automática fazer corresponder as expressões do utilizador final a intenções. O modelo verifica a expressão em relação a cada intenção no agente, atribui uma pontuação a cada intenção e a intenção com a pontuação mais alta é correspondida. Se a intenção com a pontuação mais elevada tiver uma pontuação muito baixa, a intenção alternativa é correspondida.

Parâmetros e entidades

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

Quando cria um agente, controla a forma como os dados são extraídos anotando partes das suas expressões de preparação e configurando os parâmetros associados.

Crie parâmetros

Crie uma nova intenção com parâmetros:

  1. Clique no botão de mais junto a Intenções no menu da barra lateral esquerda.
  2. Dê um nome à intenção set-language na parte superior do formulário de intenção.
  3. Adicione as seguintes expressões de treino:
    • I know English
    • I speak French
    • I know how to write in German
  4. Clique no botão Guardar e aguarde até que a caixa de diálogo Formação de agentes indique que a formação está concluída.

    Captura de ecrã de expressão de preparação anotada

O Dialogflow deteta automaticamente parâmetros em expressões de preparação que são reconhecidos como entidades do sistema. Estas são entidades fornecidas pelo Dialogflow para muitos tipos de dados comuns, como localização, cor e data.

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

Captura de ecrã de expressão de preparação anotada

  • Obrigatório: a caixa de verificação não está selecionada, pelo que este parâmetro é opcional.
  • Nome do parâmetro: este parâmetro é automaticamente denominado language, porque o parâmetro é reconhecido como um idioma.
  • Entidade: este é o tipo de entidade. É reconhecida como uma entidade do sistema @sys.language.
  • Valor: este é o identificador que usa quando faz referência ao valor deste parâmetro.
  • É lista: a caixa de verificação não está selecionada, pelo que o parâmetro não é uma lista.

Use dados de parâmetros numa resposta

O valor de um parâmetro pode ser usado nas suas respostas. Por exemplo, pode usar a $languagereferência de parâmetros nas suas respostas quando cria um agente. No tempo de execução, é substituído pelo idioma especificado na expressão do utilizador final.

Adicione uma resposta que use um parâmetro:

  1. Desloque a página para baixo até à secção Respostas.
  2. Adicione a seguinte resposta de texto: Wow! I didn't know you knew $language.
  3. Clique no botão Guardar e aguarde até que a caixa de diálogo Formação de agentes indique que a formação está concluída.

Teste o parâmetro

Captura de ecrã do simulador

No simulador, introduza I know Russian.

Pode ver que o Dialogflow extrai corretamente o parâmetro language com o valor Russian e que Russian foi inserido corretamente onde a referência do parâmetro foi usada na resposta.

Crie as suas próprias entidades

Na maioria dos casos, tem dados específicos que precisa de recolher dos utilizadores que não são fornecidos por entidades do sistema. Pode criar entidades personalizadas para resolver esta situação.

Crie uma entidade personalizada:

  1. Clique no botão adicionar entidade junto a Entidades no menu da barra lateral esquerda.
  2. Introduza language-programming para o nome da entidade.
  3. Adicione as seguintes entradas de entidades (linhas):

    Valor de referência Sinónimos
    JavaScript JavaScript, js, ECMAScript
    Java Java
    Python Python, py
  4. Clique no botão Guardar e aguarde até que a caixa de diálogo Formação de agentes indique que a formação está concluída.

Captura de ecrã de utilização da entidade

O Dialogflow pode processar coisas simples, como pluralidade e capitalização, mas deve adicionar todos os sinónimos possíveis para as suas entradas. Quanto mais adicionar, melhor o seu agente consegue determinar as suas entidades.

Use a nova entidade

Adicione expressões de treino à intenção set-language que usam a nova entidade:

  1. Clique em Intenções no menu da barra lateral esquerda.
  2. Clique na intenção set-language.
  3. Adicione as seguintes expressões de treino:
    • I know javascript
    • I know how to code in Java
  4. Tenha em atenção que as linguagens de programação nestas expressões de exemplo são anotadas automaticamente e adicionadas aos parâmetros na secção Ação e parâmetros.
  5. Na secção Respostas, adicione a seguinte segunda resposta de texto: $language-programming is an excellent programming language..
  6. Clique no botão Guardar e aguarde até que a caixa de diálogo Formação de agentes indique que a formação está concluída.

Teste a sua nova entidade

Captura de ecrã do simulador

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

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

Contextos

Para controlar o fluxo da conversa, pode usar o contexto.

Adicione uma intenção de seguimento

Os intents de seguimento oferecem uma forma simples de controlar uma conversa sem ter de criar e gerir contextos manualmente.

Quando cria uma intenção de seguimento, é adicionado um contexto de saída à intenção principal e um contexto de entrada com o mesmo nome é adicionado à intenção secundária. Isto significa que a intenção de seguimento só tem correspondência quando a intenção principal tem correspondência na interação de conversa anterior.

Adicione uma intenção de seguimento personalizada à intenção set-language:

  1. Selecione a intenção set-language que criou nos passos anteriores.
  2. Na secçã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 Guardar e aguarde até que a caixa de diálogo Formação de agentes indique que a formação está concluída.
  4. Clique em Intenções no menu da barra lateral esquerda.
  5. Passe o cursor do rato sobre a intenção set-language e clique em Adicionar intenção de seguimento.
  6. Clique em personalizado na lista revelada.
  7. Clique no botão Guardar e aguarde até que a caixa de diálogo Formação de agentes indique que a formação está concluída.

O Dialogflow atribui automaticamente o nome set-language - custom à intenção de seguimento.

Captura de ecrã de seguimento

Correspondência de intenções com intenções de seguimento

As intenções de seguimento só são correspondidas depois de a intenção principal ter sido correspondida. Uma vez que a intenção set-language - custom só é correspondida depois da intenção set-language, pode assumir que acabou de ser feita a pergunta ao utilizador How long have you known $language?. Agora, pode adicionar expressões de preparação para as respostas prováveis dos utilizadores a essa pergunta:

  1. Clique em Intenções no menu da barra lateral esquerda.
  2. Clique na intenção set-language - custom.
  3. Adicione as seguintes expressões de treino:
    • 3 years
    • about 4 days
    • for 5 years
  4. Clique no botão Guardar e aguarde até que a caixa de diálogo Formação de agentes indique que a formação está concluída.

Teste a sua intenção de seguimento

Introduza I know French no simulador e, em seguida, responda à pergunta How long have you known French com about 2 weeks.

Apesar de não haver resposta para a segunda expressão (about 2 weeks), pode ver que a expressão corresponde à intenção correta (set-language - custom) e o parâmetro de duração é analisado corretamente (2 weeks).

Intenções e contextos

Inspeccione a intenção set-language para ver que set-language-followup está listado como um contexto de saída e é precedido pelo número 2. Este número chama-se tempo de vida.

Captura de ecrã do contexto de saída

Depois de a intenção set-language ser correspondida, o contexto set-language-followup está ativo e associado à conversa durante dois turnos (duração de 2). Por conseguinte, quando o utilizador responde à pergunta, How long have you known $language?, o contexto set-language-followup está ativo.

Inspeccione a intenção set-language - custom para ver que set-language-followup está listada como um contexto de entrada, que é o mesmo que o contexto de saída para a intenção set-language.

Todas as intenções com um contexto de entrada que corresponda a um contexto ativo são fortemente favorecidas quando o Dialogflow faz corresponder intenções.

Contextos e parâmetros

Os contextos armazenam valores de parâmetros e pode aceder aos valores dos parâmetros definidos na intenção set-language quando o respetivo contexto de saída está ativo.

No set-language - customintento, só pediu a duração durante a qual o utilizador conhece o idioma, e não o próprio idioma referenciado.

Para fazer referência ao idioma na resposta:

  1. Atualize a resposta de texto da intenção set-language - custom para I can't believe you've known #set-language-followup.language for $duration!
  2. Clique no botão Guardar e aguarde até que a caixa de diálogo Formação de agentes indique que a formação está concluída.

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

Teste o parâmetro de contexto

Introduza I know French no simulador e, em seguida, responda à pergunta com 1 week. Repare que o valor do parâmetro language é obtido a partir do contexto.

Produção

Antes de executar o seu agente em produção, certifique-se de que implementa as práticas recomendadas de produção.

O que se segue?

Experimente o início rápido de processamento.