Migrazione dell'evasione ordini

Dopo aver configurato intent e scene, devi aggiornare il codice di fulfillment per tenere conto delle modifiche nei formati di richiesta e risposta di Action Builder. Questa è anche un'opportunità per prendere in considerazione l'utilizzo di funzionalità aggiuntive di Actions Builder. In questa pagina vengono illustrati i passaggi e le considerazioni generali da seguire per l'aggiornamento del codice di distribuzione.

Valuta il tuo approccio al fulfillment

Il codice di fulfillment del progetto dipende dal modello di conversazione e dalle funzionalità della piattaforma di sviluppo. Actions Builder introduce un nuovo modello di conversazione e una nuova funzionalità che cambia il modo in cui crei una conversazione e che probabilmente cambierà il modo in cui ti avvicini alla realizzazione del progetto. Questa sezione descrive le funzionalità di Actions Builder che differiscono da Dialogflow e il modo in cui queste differenze cambiano il modo in cui implementi il codice di fulfillment.

  • Modifiche all'implementazione delle conversazioni

    • Dialogflow utilizza un flusso di conversazione guidato dall'intent e dal contesto, in cui i singoli intent vengono abbinati in base alle frasi di addestramento e ai contesti di input/output dell'intent precedente.
    • Il flusso conversazionale di Actions Builder utilizza le scene come contenitore per le svolte conversazionali. All'interno di una scena, è possibile abbinare intent specifici, proprio come i contesti di Dialogflow. Le transizioni definiscono la scena verso la quale eseguire la transizione, in base all'intento che corrisponde.
  • Funzioni webhook riutilizzabili

    • In Dialogflow, i gestori di webhook sono associati a singoli intent. Se è necessaria una logica aggiuntiva, devi creare un intent separato per gestire la nuova funzione.
    • I gestori dei webhook hanno nomi di gestori personalizzati in Actions Builder. Questa funzionalità ti offre la possibilità di chiamare una funzione da più scene del progetto.
  • Altri modi per richiamare i webhook

    • Un webhook per ciascun approccio per intent in Dialogflow richiede intent aggiuntivi per facilitare una logica più conversazionale all'interno del fulfillment del progetto.
    • Action Builder ti consente di effettuare chiamate webhook da più punti all'interno di una scena: all'ingresso, in base alle condizioni, in base al riempimento degli slot e tramite corrispondenze personalizzate e di sistema per intent.

Aggiorna il codice di evasione ordine

Il codice di fulfillment di ogni Azione varierà in base alla complessità e allo scopo dell'Azione. Tuttavia, durante l'aggiornamento del codice esistono dei passaggi generici da seguire:

  1. Scarica e installa la versione più recente della libreria client.

    npm install @assistant/conversation
    
  2. Aggiorna le istruzioni require nel codice. Ad esempio:

    const {
      SimpleResponse,
      BasicCard,
      Image,
    } = require('actions-on-google');
    

    Il codice riportato sopra è stato aggiornato come segue:

    const {
      conversation,
      Simple,
      Card,
      Image,
    } = require('@assistant/conversation');
    
  3. Esegui il refactoring del codice per utilizzare i nuovi metodi.

    • Gestori di intent: app.intentapp.handle
    • Risposta/messaggi: conv.askconv.add
    • Funzionalità superficie/dispositivo: conv.surface.capabilities.has('actions.capability.SCREEN_OUTPUT')conv.device.capabilities.includes('RICH_RESPONSE')
    • Archiviazione dati: conv.dataconv.session.params
    • Tipi di risposta:

      • SimpleResponseSimple
      • BasicCardCard
      • SuggestionsSuggestion
    • Parametri intent: conv.parameters[KEY]conv.intent.parameters[KEY].resolved

    • Contesti/transizioni di scena: conv.contexts.set(content_name, 5);conv.scene.next.name = 'context_name'

    • Termina conversazione: conv.close(response)conv.add.response; conv.scene.next.name = 'actions.page.END_CONVERSATION'

  4. Aggiorna il codice di risposta per utilizzare le nuove primitive di risposta di Builder. Ad esempio:

    conv.ask(new Suggestions (['a', 'b']));
    

    Il codice riportato sopra è stato aggiornato come segue:

    for (suggestion of ['a', 'b']) {
      conv.add.(new Suggestion({title: suggestion}))
    }
    

Consulta la mappa di traduzione del codice di fulfillment di seguito per un elenco completo dei metodi.

Utilizza le pagine seguenti per confrontare i payload di richiesta e risposta:

Configura webhook

Dopo aver aggiornato il fulfillment, attiva le chiamate webhook in tutte le scene del progetto. Anche se lo strumento di migrazione esegue la migrazione delle impostazioni webhook dell'intent Dialogflow, devi esaminarle perché il codice di fulfillment e le funzioni webhook di cui è stato eseguito il refactoring potrebbero cambiare.

In Dialogflow, i webhook sono attivati negli intent e il codice di fulfillment include i gestori e le funzioni da eseguire, in caso di corrispondenza dell'intent. In Actions Builder, un webhook può attivarsi all'interno di intent o scene di chiamata, il che invia una richiesta all'endpoint di fulfillment. Il fulfillment contiene gestori di webhook che elaborano il payload JSON nella richiesta. Puoi attivare i webhook nelle seguenti situazioni:

  • Dopo la corrispondenza di un intent di chiamata
  • Quando una scena è sul palco
  • Dopo che una condizione restituisce true nella fase di condizione di una scena
  • Durante la fase di archiviazione degli slot di una scena
  • Dopo che una corrispondenza di intent si verifica nella fase di input di una scena

Quando esegui la migrazione da Dialogflow a Actions Builder, devi prendere in considerazione le modifiche al flusso delle conversazioni, poiché potrebbero cambiare quando e dove effettui chiamate webhook.

Per attivare una chiamata webhook:

  1. Seleziona la scena da cui vuoi chiamare il webhook.
  2. Scegli lo stato per cui vuoi attivare il webhook. Puoi attivare un webhook per uno o più dei seguenti stati:

    • Alla ricezione
    • Condizione
    • Riempimento slot
    • Gestione dell'intenzione dell'utente
    • Gestione dell'intent di sistema
  3. Seleziona l'opzione Chiama il webhook.

  4. Inserisci il gestore del webhook definito nel codice di distribuzione.

  5. Fai clic su Salva.

  6. Vai a Test per provare le modifiche alla chiamata webhook e al fulfillment.

Mappa traduzione del codice di evasione ordini

La tabella seguente mostra come la sintassi del codice di fulfillment Dialogflow viene convertita nel codice del generatore di azioni. Per un elenco completo dei metodi, consulta la documentazione relativa ai riferimenti di Actions Builder e SDK.

Dialogflow Generatore di azioni
conv.data conv.session.params
conv.ask conv.add
conv.close conv.scene.next.name = 'actions.scene.END_CONVERSATION'
conv.user.storage conv.user.params
conv.input.raw conv.intent.query
conv.parameters conv.intent.params[key].resolved
conv.arguments.get('MEDIA_STATUS')
mediaStatus.status==='FINISHED'
conv.intent.params['MEDIA_STATUS']
mediaStatus.resolved==='FINISHED'
Eventi Gestione dell'intent di sistema:
MEDIA_STATUS_FINISHED
MEDIA_STATUS_FAILED
conv.device.capabilities.has("actions.capability.SCREEN_OUTPUT") conv.device.capabilities.includes("RICH_RESPONSE")
app.intent app.handler
app.middleware app.middleware
Risposta semplice prompt -firstSimple
Risposta avanzata prompt -content -card: object -image: object -table: object -media: object -suggestions -link

Di seguito puoi trovare informazioni su ulteriori strumenti: