Guida rapida: completamento

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Questa guida mostra come integrare l'agente con i servizi utilizzando il fulfillment. L'integrazione del servizio consente di eseguire azioni basate sulle espressioni degli utenti finali e inviare risposte dinamiche all'utente finale.

Prima di iniziare

Se non hai intenzione 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'altra lingua, consulta la documentazione dettagliata.

Prima di leggere questa guida:

  1. Leggi l'articolo Nozioni di base su Dialogflow.
  2. Esegui i passaggi di configurazione.
  3. Esegui i passaggi nella guida rapida Crea un agente. I passaggi seguenti continuano a lavorare sullo stesso agente. Se non disponi più di questo agente, puoi scaricare build-agent-quickstart.zip e importare il file.

L'editor in linea

La console di Dialogflow ha un editor di codice integrato, chiamato editor in linea, che puoi usare per creare il 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 in qualsiasi momento.

Quando attivi l'editor incorporato, 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 per l'aggiunta di gestori per intent definiti dallo sviluppatore.

L'editor in linea è pensato per eseguire test e prototipazione semplici. Quando è tutto pronto per creare un'applicazione in produzione, devi creare un servizio webhook.

Abilitare e implementare il fulfillment con l'editor in linea

Per attivare ed eseguire il deployment del codice di evasione predefinito tramite l'editor incorporato:

  1. Fai clic su Fulfillment nel menu della barra laterale sinistra.
  2. Imposta Editor incorporato su Attivato.
  3. Se non hai attivato la fatturazione nei passaggi di configurazione, ti verrà chiesto di farlo 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 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.

Devi abilitare il fulfillment per ogni intent che richiede l'evasione. Per abilitare il fulfillment per l'intent di benvenuto predefinito:

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

  4. Fai clic sul pulsante Salva e attendi che la finestra di dialogo Formazione agente indica che l'addestramento è stato completato.

Ora puoi testare la tua distribuzione 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 personalizzato

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

  1. Attiva il fulfillment per l'intent get-agent-name che hai creato nei passaggi precedenti.
  2. Fai clic su Fulfillment nel menu della barra laterale sinistra ed esamina il codice nell'editor incorporato.
  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 specifiche del gestore. Queste funzioni dei gestori vengono richiamate quando gli intent associati vengono abbinati. 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 della funzione gestore, sono presenti intentMap.set() chiamate. Queste chiamate associano gestori specifici a 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.

Valori dei parametri di accesso

Nei passaggi precedenti, hai creato un intento di 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 per questi parametri nel gestore di evasione degli ordini.

Per aggiungere il gestore:

  1. Attiva il fulfillment per l'intent set-language.
  2. Fai clic su Fulfillment nel menu della barra laterale 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 archivia in variabili. Recupera questi valori dall'attributo agent.parameters, che è un oggetto che contiene tutti i nomi e i valori dei parametri specificati dagli utenti finali nelle richieste.

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