Guida rapida: evasione degli ordini

Questa guida mostra come integrare l'agente con i tuoi servizi utilizzando Fulfillment. L'integrazione del tuo servizio ti consente di eseguire azioni basate sulle espressioni dell'utente finale e di inviare risposte dinamiche all'utente finale.

Prima di iniziare

Se non prevedi di utilizzare l'evasione degli ordini, 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:

  1. Leggi le nozioni di base su Dialogflow.
  2. Esegui i passaggi di configurazione.
  3. Segui i passaggi descritti nella Guida rapida per la creazione di un agente. I passaggi riportati di seguito continuano a lavorare con lo stesso agente. Se non hai più l'agente, puoi scaricare build-agent-quickstart.zip e importare il file.

L'editor in linea

La console Dialogflow ha un editor di codice integrato, chiamato editor in linea, che puoi utilizzare per creare il codice di adempimento ed eseguirlo in Cloud Functions. Cloud Functions ha 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 attivi inizialmente l'editor in linea, il codice di adempimento Node.js viene precompilato con 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 è progettato per test di adempimento e prototipazione semplici. Quando è tutto pronto per creare un'applicazione di produzione, devi creare un servizio webhook.

Attivare ed eseguire il deployment dell'elaborazione con l'editor in linea

Per attivare ed eseguire il deployment del codice di adempimento predefinito utilizzando l'editor in linea:

  1. Fai clic su Fulfillment nel menu della barra laterale a sinistra.
  2. Imposta l'opzione Editor in linea su Attivato.
  3. Se non hai abilitato la fatturazione nei passaggi di configurazione, ti verrà chiesto di attivarla ora. Cloud Functions ha 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.
  4. Fai clic su Esegui il deployment nella parte inferiore del modulo e attendi che le finestre di dialogo indichino che il deployment è stato eseguito.

Per ogni intent che richiede l'evasione, devi attivare l'evasione per l'intent. Per attivare l'elaborazione per l'intent di benvenuto predefinito:

  1. Fai clic su Intent nel menu della barra laterale a sinistra.
  2. Fai clic su Intent di benvenuto predefinito.
  3. Scorri verso il basso fino alla sezione Fulfillment e attiva l'opzione Abilita chiamata webhook per questo intent.

  4. Fai clic sul pulsante Salva e attendi che la finestra di dialogo Formazione agenti annunci il completamento della formazione.

Ora puoi testare l'evasione dell'ordine nel simulatore. Inserisci Hi nel simulatore, che risponde con Welcome to my agent!. Questa risposta viene inviata dall'webhook di evasione che hai appena implementato. In particolare, la risposta è stata generata da questo codice:

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

Crea un gestore dell'elaborazione personalizzato

I passaggi precedenti utilizzano un gestore fornito dal codice dell'editor in linea predefinito. Per creare un gestore personalizzato:

  1. Attiva l'esecuzione per l'intent get-agent-name creato nei passaggi precedenti.
  2. Fai clic su Esecuzione nel menu della barra laterale a sinistra e esamina il codice nell'editor in linea.
  3. 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 di gestore specifiche. Queste funzioni di gestore vengono richiamate quando gli intent associati corrispondono. Ad esempio, la funzione utilizzata nella sezione precedente è function welcome(agent).

  4. Sotto i gestori esistenti, aggiungi questa funzione per l'intent get-agent-name:

    function getAgentNameHandler(agent) {
      agent.add('From fulfillment: My name is Dialogflow!');
    }
    
  5. Sotto le definizioni delle funzioni di gestore sono presenti chiamate intentMap.set(). Queste chiamate associano gestori specifici agli intent per nome. Ad esempio, intentMap.set('Default Welcome Intent', welcome) associa il gestore welcome all'intent denominato Default Welcome Intent.

  6. Sotto le chiamate intentMap.set esistenti, aggiungi questa riga per l'intent get-agent-name:

    intentMap.set('get-agent-name', getAgentNameHandler);
    
  7. Fai clic su Esegui il deployment nella parte inferiore del modulo.

  8. Inserisci What's your name? nel simulatore. La risposta From fulfillment: My name is Dialogflow! viene inviata dal nuovo gestore.

Accedere ai valori dei parametri

Nei passaggi precedenti hai creato un'intenzione 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 dell'elaborazione.

Per aggiungere il gestore:

  1. Attiva il completamento per l'intent set-language.
  2. Fai clic su Fulfillment nel menu della barra laterale a sinistra.
  3. Come per i 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);
    
  4. Fai clic su Esegui il deployment.

Questo gestore recupera i parametri language e language-programming e li memorizza in variabili. Recupera questi valori dall'attributo agent.parameters, che è un oggetto contenente tutti i nomi e i valori dei parametri specificati dagli utenti finali nelle loro richieste.

Per provarlo, inserisci I know how to speak German nel simulatore.