Questa guida mostra come integrare l'agente con i tuoi servizi utilizzando l'fulfillment. L'integrazione del tuo servizio ti consente di intraprendere azioni in base alle espressioni dell'utente finale e di inviare risposte dinamiche all'utente finale.
Prima di iniziare
Se non prevedi di utilizzare l'evasione, puoi saltare questa guida di avvio rapido.
Questi passaggi utilizzano Cloud Functions e presuppongono una conoscenza di base di Node.js. Se vuoi creare l'evasione utilizzando il tuo server o un'altra lingua, consulta la documentazione sull'evasione più dettagliata.
Prima di leggere questa guida, devi:
- Leggi Nozioni di base su Dialogflow.
- Esegui i passaggi di configurazione.
- Segui i passaggi descritti nella
guida rapida Crea un agente.
I passaggi riportati di seguito continuano a funzionare sullo stesso agente.
Se non hai più quell'agente, puoi scaricare
build-agent-quickstart.zipe importare il file.
Editor in linea
La console Dialogflow ha un editor di codice integrato, chiamato editor in linea che puoi utilizzare per creare il codice di fulfillment ed eseguirne il deployment in Cloud Functions. Cloud Functions prevede costi associati, ma il servizio è disponibile senza costi fino a un numero significativo di chiamate mensili. Tieni presente che devi comunque registrarti e fornire un account di fatturazione valido. Puoi annullare in qualsiasi momento.
Quando abiliti inizialmente l'editor incorporato, il codice di fulfillment 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 gli intent definiti dallo sviluppatore.
L'editor in linea è destinato a test e prototipazione semplici dell'evasione. Quando è tutto pronto per creare un'applicazione di produzione, devi creare un servizio webhook.
Attivare ed eseguire il deployment del fulfillment con l'editor incorporato
Per attivare ed eseguire il deployment del codice di evasione predefinito utilizzando l'editor in linea:
- Fai clic su Fulfillment nel menu della barra laterale a sinistra.
- Imposta l'opzione Editor in linea su Attivato.
- Se non hai abilitato la fatturazione nei passaggi di configurazione, ti viene chiesto di abilitarla ora. Cloud Functions prevede costi associati, ma il servizio è disponibile senza costi fino a un numero significativo di chiamate mensili. Tieni presente che devi comunque registrarti e fornire un account di fatturazione. Puoi annullare in qualsiasi momento.
- Fai clic su Esegui il deployment nella parte inferiore del modulo e attendi che le finestre di dialogo indichino che è stato eseguito il deployment.
Per ogni intent che richiede il completamento, devi attivare il completamento per l'intent. Per attivare 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 Abilita chiamata webhook per questo intent.
Fai clic sul pulsante Salva e attendi che la finestra di dialogo Addestramento agente indichi che l'addestramento è completato.
Ora puoi testare l'evasione nell'emulatore.
Inserisci Hi nel simulatore e riceverai Welcome to my agent! come risposta.
Questa risposta viene inviata dal webhook di fulfillment che 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 personalizzato
I passaggi precedenti utilizzano un gestore fornito dal codice dell'editor incorporato predefinito. Per creare un gestore personalizzato:
- Attiva l'evasione per l'intent
get-agent-namecreato nei passaggi precedenti. - Fai clic su Adempimento 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
onRequestgestisce tutte le richieste di Dialogflow. All'interno del corpo di questa funzione vengono definite funzioni di gestione specifiche. Queste funzioni di gestione vengono richiamate quando vengono trovate corrispondenze con gli intent associati. 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 della funzione di gestione, ci sono chiamate
intentMap.set(). Queste chiamate associano gestori specifici agli intent per nome. Ad esempio,intentMap.set('Default Welcome Intent', welcome)associa il gestorewelcomeall'intent denominatoDefault Welcome Intent.Sotto le chiamate
intentMap.setesistenti, 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.
Accedere ai valori dei parametri
Nei passaggi precedenti, hai creato un intent set-language
per identificare le lingue umane 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.
Per aggiungere l'handler:
- Abilita il completamento per l'intent
set-language. - Fai clic su Fulfillment nel menu della barra laterale a sinistra.
In modo simile ai passaggi precedenti, aggiungi il seguente gestore e la chiamata
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);Fai clic su Esegui il deployment.
Questo gestore recupera i parametri language e language-programming
e li memorizza nelle 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.