Guia de início rápido: fulfillment

Neste guia, mostraremos como integrar o agente com os serviços usando fulfillment. Com a integração do serviço, é possível realizar ações com base nas expressões do usuário final e enviar respostas dinâmicas para o usuário final.

Antes de começar

Se você não planeja usar o fulfillment, pule este guia de início rápido.

Essas etapas usam Cloud Functions e assumem o conhecimento básico do Node.js. Se quiser criar o fulfillment usando seu próprio servidor ou outra linguagem, consulte a documentação do fulfillment mais detalhada.

Faça o seguinte antes de ler este guia:

  1. Leia os Conceitos básicos do Dialogflow.
  2. Realize as etapas de configuração.
  3. Realize as etapas no guia de início rápido Criar um agente. As etapas abaixo continuam funcionando no mesmo agente. Se você não tiver mais esse agente, faça o download de build-agent-quickstart.zip e importe o arquivo.

O editor in-line

O Console do Dialogflow tem um editor de código integrado, chamado editor in-line, que pode ser usado para criar o código de fulfillment e implantá-lo no Cloud Functions. O Cloud Functions tem cobranças associadas, mas o serviço é gratuito até um número significativo de invocações mensais. O Editor in-line é compatível apenas com Node.js e usa a biblioteca de fulfillment do Dialogflow.

Quando você ativa inicialmente o editor in-line, o código de fulfillment é preenchido com gerenciadores padrão para intents padrão, que são incluídos para todos os agentes. O código também tem instruções comentadas para adicionar gerenciadores para intents definidas pelo desenvolvedor.

O editor in-line destina-se a testes de fulfillment simples e protótipos. Quando estiver pronto para criar um aplicativo de produção, crie um serviço de webhook.

Ativar e implantar o fulfillment com o Editor in-line

Para ativar e implantar o fulfillment padrão usando o Editor in-line:

  1. Clique em Fulfillment no menu da barra lateral à esquerda.
  2. Mude o Editor in-line para Ativado.
  3. Se você não ativou o faturamento nas etapas de configuração, receberá uma solicitação para ativá-lo agora. O Cloud Functions tem cobranças associadas, mas o serviço é gratuito até um número significativo de invocações mensais.
  4. Clique em Implantar na parte inferior do formulário e aguarde até que caixas de diálogo indiquem que ele foi implantado.

É necessário ativar o fulfillment para cada intent. Para ativar o fulfillment para a intent de boas-vindas padrão, siga estas etapas:

  1. Clique em Intents no menu da barra lateral esquerda.
  2. Clique em Intent de boas-vindas padrão.
  3. Role para baixo até a seção Fulfillment e marque a opção Ativar chamada do webhook para esta intent.

  4. Clique no botão Salvar e aguarde até que a caixa de diálogo Treinamento do agente indique que o treinamento foi concluído.

Agora é possível testar o fulfillment no simulador. Insira Hi no simulador e ele responderá com Welcome to my agent!. Essa resposta é enviada do webhook do fulfillment que você acabou de implantar. A resposta veio, especificamente, deste código:

function welcome(agent) {
  agent.add(`Welcome to my agent!`);
}

Criar um gerenciador de fulfillment personalizado

As etapas acima usam um gerenciador fornecido pelo código do Editor in-line padrão. Para criar um gerenciador personalizado, siga estas etapas:

  1. Ative o fulfillment para a intent get-agent-name que você criou nas etapas anteriores.
  2. Clique em Fulfillment no menu da barra lateral à esquerda e examine o código no editor in-line.
  3. Encontre esta linha:

    exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
    

    A função onRequest gerencia todas as solicitações do Dialogflow. Dentro do corpo dessa função, são definidas funções específicas do gerenciador. Essas funções do manipulador são chamadas quando intents associadas são correspondidas. Por exemplo, a função usada na seção anterior é function welcome(agent).

  4. Abaixo dos gerenciadores atuais, adicione esta função para o intent get-agent-name:

    function getAgentNameHandler(agent) {
      agent.add('From fulfillment: My name is Dialogflow!');
    }
    
  5. Abaixo das definições da função do gerenciador, há chamadas intentMap.set(). Essas chamadas associam gerenciadores específicos com intents por nome. Por exemplo, intentMap.set('Default Welcome Intent', welcome) associa o gerenciador welcome à intent denominada Default Welcome Intent.

  6. Abaixo das chamadas intentMap.set atuais, adicione esta linha para a intent get-agent-name:

    intentMap.set('get-agent-name', getAgentNameHandler);
    
  7. Clique em Implantar na parte inferior do formulário.

  8. Digite What's your name? no simulador. A resposta From fulfillment: My name is Dialogflow! é enviada do seu novo manipulador.

Acessar valores de parâmetros

Nas etapas anteriores, você criou uma intent set-language para identificar linguagem humana e de programação. Ela usa os parâmetros language e language-programming. Nesta seção, é possível acessar os valores desses parâmetros no gerenciador de fulfillment.

Para adicionar o gerenciador, siga estas etapas:

  1. Ative o fulfillment para o intent set-language.
  2. Clique em Fulfillment no menu da barra lateral à esquerda.
  3. Semelhante às etapas acima, adicione o gerenciador a seguir e a chamada intentMap:

    function languageHandler(agent) {
        const language = agent.parameters.language;
        const programmingLanguage = agent.parameters['language-programming'];
        if (language) {
            agent.add(`From fulfillment: Wow! I didn't know you knew ${language}`);
        } else if (programmingLanguage) {
            agent.add(`From fulfillment: ${programmingLanguage} is cool`);
        } else {
            agent.add(`From fulfillment: What language do you know?`);
        }
    }
    
    intentMap.set('set-language', languageHandler);
    
  4. Clique em Implantar.

Este gerenciador recupera os parâmetros language e language-programming e os armazena em variáveis. Ele recupera esses valores do atributo agent.parameters, que é um objeto que contém todos os nomes de parâmetros e valores que os usuários especificam nas solicitações deles.

Para testar, digite I know how to speak German no simulador.