Este guia mostra como integrar o seu agente com os seus serviços através do cumprimento. A integração do seu serviço permite-lhe tomar medidas com base nas expressões do utilizador final e enviar respostas dinâmicas ao utilizador final.
Antes de começar
Se não planeia usar o processamento de pedidos, pode ignorar este início rápido.
Estes passos usam as Cloud Functions e pressupõem conhecimentos básicos de Node.js. Se quiser criar o processamento de pedidos através do seu próprio servidor ou de outro idioma, consulte a documentação de processamento de pedidos mais detalhada.
Antes de ler este guia, deve fazer o seguinte:
- Leia as noções básicas do Dialogflow.
- Realize os passos de configuração.
- Execute os passos no guia de início rápido
Crie um agente.
Os passos abaixo continuam a funcionar no mesmo agente.
Se já não tiver esse agente, pode transferir
build-agent-quickstart.zip
e importar o ficheiro.
O editor inline
A consola do Dialogflow tem um editor de código integrado, denominado editor inline que pode usar para criar código de processamento e implementar o código nas Cloud Functions. O Cloud Functions tem custos associados, mas o serviço está disponível sem custos financeiros até um número significativo de invocações mensais. Tenha em atenção que ainda tem de se registar e indicar uma conta de faturação válida. Cancele em qualquer altura.
Quando ativa inicialmente o editor inline, o código de processamento Node.js é pré-preenchido com processadores predefinidos para intencionalidades predefinidas incluídas para todos os agentes. O código também tem instruções comentadas para adicionar controladores para intenções definidas pelo programador.
O editor inline destina-se a testes e prototipagem de processamento simples. Quando tiver tudo pronto para criar uma aplicação de produção, deve criar um serviço de webhook.
Ative e implemente o processamento com o editor inline
Para ativar e implementar o código de processamento predefinido através do editor inline:
- Clique em Cumprimento no menu da barra lateral do lado esquerdo.
- Ative o Editor inline.
- Se não ativou a faturação nos passos de configuração, é-lhe pedido que a ative agora. O Cloud Functions tem custos associados, mas o serviço está disponível sem custos financeiros até um número significativo de invocações mensais. Tenha em atenção que continua a ter de se registar e fornecer uma conta de faturação. Cancele em qualquer altura.
- Clique em Implementar na parte inferior do formulário e aguarde até que as caixas de diálogo indiquem que foi implementado.
Para cada intenção que requer o processamento, tem de ativar o processamento para a intenção. Para ativar o preenchimento da intenção de boas-vindas predefinida:
- Clique em Intenções no menu da barra lateral esquerda.
- Clique em Intenção de boas-vindas predefinida.
Desloque a página para baixo até à secção Fulfillment e ative a opção Ativar chamada de webhook para este objetivo.
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.
Agora, pode testar o seu processamento no simulador.
Introduza Hi
no simulador e este responde com Welcome to my agent!
.
Esta resposta é enviada a partir do webhook de processamento que acabou de implementar.
Em particular, a resposta veio deste código:
function welcome(agent) { agent.add(`Welcome to my agent!`); }
Crie um controlador de processamento personalizado
Os passos acima usam um controlador fornecido pelo código do editor inline predefinido. Para criar um controlador personalizado:
- Ative o preenchimento para a intenção
get-agent-name
que criou nos passos anteriores. - Clique em Preenchimento no menu da barra lateral esquerda e examine o código no editor inline.
Encontre esta linha:
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
A função
onRequest
processa todos os pedidos do Dialogflow. No corpo desta função, são definidas funções de controlador específicas. Estas funções de controlador são invocadas quando são encontradas correspondências com intenções associadas. Por exemplo, a função usada na secção anterior éfunction welcome(agent)
.Abaixo dos controladores existentes, adicione esta função para a intenção
get-agent-name
:function getAgentNameHandler(agent) { agent.add('From fulfillment: My name is Dialogflow!'); }
Abaixo das definições da função do controlador, existem chamadas
intentMap.set()
. Estas chamadas associam processadores específicos a intenções por nome. Por exemplo,intentMap.set('Default Welcome Intent', welcome)
associa o controladorwelcome
à intenção denominadaDefault Welcome Intent
.Abaixo das chamadas
intentMap.set
existentes, adicione esta linha para o objetivoget-agent-name
:intentMap.set('get-agent-name', getAgentNameHandler);
Clique em Implementar na parte inferior do formulário.
Introduza
What's your name?
no simulador. A respostaFrom fulfillment: My name is Dialogflow!
é enviada a partir do novo controlador.
Aceda aos valores dos parâmetros
Nos passos anteriores, criou uma intenção set-language
para identificar idiomas humanos e de programação.
A intenção usa os parâmetros language
e language-programming
.
Nesta secção, acede aos valores destes parâmetros no seu controlador de processamento.
Para adicionar o controlador:
- Ative o processamento para a intenção
set-language
. - Clique em Cumprimento no menu da barra lateral do lado esquerdo.
Semelhante aos passos acima, adicione o seguinte controlador e 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);
Clique em Implementar.
Este controlador obtém os parâmetros language
e language-programming
e armazena-os em variáveis.
Obtém estes valores do atributo agent.parameters
, que é um objeto que contém todos os nomes e valores dos parâmetros que os utilizadores finais especificam nos respetivos pedidos.
Para o experimentar, introduza I know how to speak German
no simulador.