Auftragsausführung ausführen

Nachdem Sie die Intents und Szenen eingerichtet haben, müssen Sie den Auftragsausführungscode aktualisieren, um die Änderungen in den Anfrage- und Antwortformaten von Action Builder zu berücksichtigen. Bei dieser Gelegenheit können Sie auch zusätzliche Funktionen von Actions Builder nutzen. Auf dieser Seite werden allgemeine Schritte und Überlegungen beim Aktualisieren des Auftragsausführungscodes beschrieben.

Herangehensweise an die Auftragsausführung berücksichtigen

Der Auftragsausführungscode Ihres Projekts hängt vom dialogorientierten Modell und den Funktionen der Entwicklungsplattform ab. Actions Builder führt ein neues dialogorientiertes Modell und neue Funktionen ein, die ändern, wie Sie eine Unterhaltung aufbauen, und die wahrscheinlich die Art und Weise ändern, wie Sie die Projektabwicklung vorgeben. In diesem Abschnitt werden die Funktionen von Actions Builder beschrieben, die sich von Dialogflow unterscheiden. Außerdem erfahren Sie, wie diese Unterschiede die Art und Weise verändern, wie Sie den Auftragsausführungscode implementieren.

  • Änderungen bei der Implementierung von Unterhaltungen

    • Dialogflow verwendet einen kontextgesteuerten Intent-to-Intent-Unterhaltungsablauf, bei dem einzelne Intents anhand von Trainingsformulierungen und den Eingabe-/Ausgabekontexten des vorherigen Intents zugeordnet werden.
    • Der Konversationsfluss von Actions Builder verwendet Szenen als Container für Unterhaltungsrunden. Innerhalb einer Szene können bestimmte Intents ähnlich wie die Kontexte von Dialogflow zugeordnet werden. Übergänge definieren, zu welcher Szene gewechselt werden soll, je nachdem, welcher Intent zugeordnet wird.
  • Wiederverwendbare Webhook-Funktionen

    • In Dialogflow sind Webhook-Handler an einzelne Intents gebunden. Wenn zusätzliche Logik erforderlich ist, müssen Sie einen separaten Intent erstellen, um die neue Funktion zu verarbeiten.
    • Webhook-Handler haben in Actions Builder benutzerdefinierte Handler-Namen. Mit dieser Funktion können Sie eine Funktion innerhalb Ihres Projekts aus mehreren Szenen aufrufen.
  • Weitere Möglichkeiten zum Aufrufen von Webhooks

    • Ein Webhook pro Intent-Ansatz in Dialogflow erfordert zusätzliche Intents, um mehr Konversationslogik in der Auftragsausführung Ihres Projekts zu ermöglichen.
    • Mit Action Builder können Sie Webhook-Aufrufe von mehreren Stellen in einer Szene aus ausführen: beim Eingeben, basierend auf Bedingungen, basierend auf der Slot-Füllung sowie durch den Abgleich von benutzerdefinierten und System-Intents.

Auftragsausführungscode aktualisieren

Der Auftragsausführungscode jeder Aktion unterscheidet sich je nach Komplexität und Zweck der Aktion. Es gibt jedoch allgemeine Schritte zur Aktualisierung des Codes:

  1. Laden Sie die neueste Version der Clientbibliothek herunter und installieren Sie sie.

    npm install @assistant/conversation
    
  2. Aktualisieren Sie die require-Anweisungen in Ihrem Code. Beispiel:

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

    Der obige Code wird folgendermaßen aktualisiert:

    const {
      conversation,
      Simple,
      Card,
      Image,
    } = require('@assistant/conversation');
    
  3. Refaktorieren Sie Ihren Code so, dass er die neuen Methoden verwendet.

    • Intent-Handler: app.intentapp.handle
    • Antwort/Aufforderungen: conv.askconv.add
    • Oberflächen-/Gerätefunktionen: conv.surface.capabilities.has('actions.capability.SCREEN_OUTPUT')conv.device.capabilities.includes('RICH_RESPONSE')
    • Datenspeicher: conv.dataconv.session.params
    • Antworttypen:

      • SimpleResponse → Simple
      • BasicCard → Card
      • Suggestions → Suggestion
    • Intent-Parameter: conv.parameters[KEY]conv.intent.parameters[KEY].resolved

    • Kontexte/Szenenübergänge: conv.contexts.set(content_name, 5);conv.scene.next.name = 'context_name'

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

  4. Aktualisieren Sie den Antwortcode, um die neuen Antwortprimitive des Builders zu verwenden. Beispiel:

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

    Der obige Code wird folgendermaßen aktualisiert:

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

Eine vollständige Liste der Methoden finden Sie unten in der Übersetzungskarte des Auftragsausführungscodes.

Auf den folgenden Seiten können Sie die Nutzlasten von Anfragen und Antworten vergleichen:

Webhooks einrichten

Nachdem Sie die Auftragsausführung aktualisiert haben, aktivieren Sie Webhook-Aufrufe in den Szenen des Projekts. Während das Migrationstool die Webhook-Einstellungen Ihres Dialogflow-Intents migriert, müssen Sie diese Einstellungen überprüfen, da sich der refaktorierte Auftragsausführungscode und die Webhook-Funktionen ändern können.

In Dialogflow sind Webhooks in Intents aktiviert und Ihr Auftragsausführungscode enthält Handler und Funktionen, die bei Zuordnung des Intents ausgeführt werden. In Actions Builder kann ein Webhook innerhalb von Aufruf-Intents oder Szenen ausgelöst werden. Dadurch wird eine Anfrage an den Auftragsausführungsendpunkt gesendet. Die Auftragsausführung enthält Webhook-Handler, die die JSON-Nutzlast in der Anfrage verarbeiten. Sie können Webhooks in den folgenden Situationen auslösen:

  • Nach einem Aufruf-Intent-Abgleich
  • Während einer Szene auf der Bühne
  • Nachdem eine Bedingung in der Bedingungsphase einer Szene als wahr ausgewertet wird
  • Während der Slot-Fideling-Phase einer Szene
  • Nach einer Intent-Zuordnung in der Eingabephase einer Szene

Bei der Migration von Dialogflow zu Actions Builder müssen Sie Änderungen an Ihrem Unterhaltungsablauf berücksichtigen, da sich dies ändern kann, wann und wo Sie Webhook-Aufrufe ausführen.

So aktivieren Sie einen Webhook-Aufruf:

  1. Wählen Sie die Szene aus, aus der Sie den Webhook aufrufen möchten.
  2. Wählen Sie den Status aus, für den Sie den Webhook aktivieren möchten. Sie können einen Webhook für einen oder mehrere der folgenden Status aktivieren:

    • Beim Betreten
    • Bedingung
    • Slot-Füllung
    • Umgang mit Nutzer-Intents
    • Umgang mit System-Intents
  3. Klicken Sie die Option Webhook aufrufen an.

  4. Geben Sie den Webhook-Handler ein, den Sie im Auftragsausführungscode definiert haben.

  5. Klicken Sie auf Speichern.

  6. Gehen Sie zu Test, um die Änderungen des Webhook-Aufrufs und der Auftragsausführung zu testen.

Übersetzungskarte für Auftragsausführungscodes

Die folgende Tabelle zeigt, wie die Syntax des Auftragsausführungscodes von Dialogflow in Actions Builder-Code umgewandelt wird. Eine vollständige Liste der Methoden finden Sie in der Referenzdokumentation zu Actions Builder und SDK.

Dialogflow Actions Builder
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'
Veranstaltungen System-Intent-Verarbeitung:
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
Einfache Antwort prompt -firstSimple
Rich-Media-Antwort prompt -content -card: object -image: object -table: object -media: object -suggestions -link

Informationen zu weiteren Tools finden Sie unten: