Questa guida mostra come integrare l'agente con i servizi utilizzando fulfillment. L'integrazione del servizio ti consente di eseguire azioni basate sulle espressioni degli utenti finali e inviare risposte dinamiche all'utente finale.
Prima di iniziare
Se non prevedi di utilizzare il fulfillment, puoi ignorare questa guida rapida.
Questi passaggi utilizzano Cloud Functions e presumeno le conoscenze di base di Node.js. Se vuoi creare fulfillment utilizzando il tuo server o un altro linguaggio, consulta la documentazione di evasione più dettagliata.
Prima di leggere questa guida, procedi come descritto di seguito:
- Leggi le nozioni di base su Dialogflow.
- Esegui la procedura di configurazione.
- Esegui i passaggi descritti nella guida rapida per la creazione di un agente.
I passaggi seguenti continuano a lavorare sullo stesso agente.
Se non hai più quell'agente, puoi scaricare
build-agent-quickstart.zip
e importare il file.
L'editor incorporato
La console Dialogflow ha un editor di codice integrato, chiamato editor incorporato che puoi usare per creare codice di fulfillment ed eseguire il deployment del codice in Cloud Functions. Cloud Functions ha addebiti associati, ma il servizio è disponibile senza costi aggiuntivi fino a un numero significativo di chiamate mensili. Tieni presente che devi comunque registrare e fornire un account di fatturazione valido. Puoi annullare l'abbonamento quando vuoi.
Quando inizialmente abiliti l'editor in linea, il codice di evasione Node.js viene precompilato con i gestori predefiniti per gli intent predefiniti inclusi per tutti gli agenti. Il codice contiene anche istruzioni commentate per l'aggiunta di gestori per intent definiti dallo sviluppatore.
L'editor in linea è progettato per semplici test di fulfillment e prototipazione. Quando è tutto pronto per creare un'applicazione di produzione, devi creare un servizio webhook.
Abilitare ed eseguire il deployment del fulfillment con l'Editor incorporato
Per attivare il deployment predefinito del codice utilizzando l'editor incorporato:
- Fai clic su Fulfillment nel menu della barra laterale a sinistra.
- Imposta Editor incorporato su Attivato.
- Se non hai attivato la fatturazione nei passaggi di configurazione, ti verrà chiesto di attivarla ora. Cloud Functions ha addebiti associati, ma il servizio è disponibile senza costi aggiuntivi fino a un numero significativo di chiamate mensili. Tieni presente che devi comunque registrarti e fornire un account di fatturazione. Puoi annullare l'abbonamento quando vuoi.
- Fai clic su Esegui il deployment nella parte inferiore del modulo e attendi che le finestre di dialogo indichino che è stato eseguito il deployment.
Devi abilitare il fulfillment per ogni intent che lo richiede. Per abilitare l'evasione per l'intent di benvenuto predefinito:
- Fai clic su Intent nel menu della barra laterale a sinistra.
- Fai clic su Intent di benvenuto predefinito.
Scorri verso il basso fino alla sezione Fulfillment e attiva l'opzione Attiva chiamata webhook per questo intent.
Fai clic sul pulsante Salva e attendi che la finestra di dialogo Formazione agente indichi che l'addestramento è stato completato.
Ora puoi testare il tuo evasione nel simulatore.
Inserisci Hi
nel simulatore e risponde con Welcome to my agent!
.
Questa risposta viene inviata dal webhook di evasione di cui hai appena eseguito il deployment.
In particolare, la risposta proviene da questo codice:
function welcome(agent) { agent.add(`Welcome to my agent!`); }
Crea un gestore di evasione degli ordini personalizzato
I passaggi precedenti utilizzano un gestore fornito dal codice dell'editor in linea predefinito. Per creare un gestore personalizzato:
- Attiva il fulfillment per l'intent
get-agent-name
creato nei passaggi precedenti. - Fai clic su Fulfillment nel menu della barra laterale a sinistra ed esamina il codice nell'editor incorporato.
Trova questa riga:
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
La funzione
onRequest
gestisce tutte le richieste di Dialogflow. Nel corpo di questa funzione, vengono definite funzioni specifiche del gestore. Queste funzioni del gestore vengono richiamate quando gli intent associati vengono abbinati. Ad esempio, la funzione utilizzata nella sezione precedente èfunction welcome(agent)
.Sotto i gestori esistenti, aggiungi questa funzione per l'intent
get-agent-name
:function getAgentNameHandler(agent) { agent.add('From fulfillment: My name is Dialogflow!'); }
Sotto le definizioni delle funzioni del gestore ci sono
intentMap.set()
chiamate. Queste chiamate associano gestori specifici a intent per nome. Ad esempio,intentMap.set('Default Welcome Intent', welcome)
associa il gestorewelcome
all'intent denominatoDefault Welcome Intent
.Sotto le chiamate
intentMap.set
esistenti, aggiungi questa riga per l'intentget-agent-name
:intentMap.set('get-agent-name', getAgentNameHandler);
Fai clic su Esegui il deployment nella parte inferiore del modulo.
Inserisci
What's your name?
nel simulatore. La rispostaFrom fulfillment: My name is Dialogflow!
viene inviata dal nuovo gestore.
Valori dei parametri di accesso
Nei passaggi precedenti, hai creato un intent set-language
per identificare i linguaggi umani e di programmazione.
L'intent utilizza i parametri language
e language-programming
.
In questa sezione accedi ai valori di questi parametri nel gestore di evasione degli ordini.
Per aggiungere il gestore:
- Attiva il fulfillment per l'intent
set-language
. - Fai clic su Fulfillment nel menu della barra laterale a sinistra.
Come per i passaggi precedenti, aggiungi il gestore e la chiamata
intentMap
seguenti: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);
Fai clic su Esegui il deployment.
Questo gestore recupera i parametri language
e language-programming
e li archivia in variabili.
Recupera questi valori dall'attributo agent.parameters
, che è un oggetto contenente tutti i nomi e i valori dei parametri che gli utenti finali specificano nelle loro richieste.
Per provarlo, inserisci I know how to speak German
nel simulatore.