Auftragsausführung ausführen

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

Ansatz für die Auftragsausführung berücksichtigen

Der Ausführungscode Ihres Projekts hängt vom Konversationsmodell und den Funktionen der Entwicklungsplattform ab. Actions Builder bietet ein neues konversationelles Modell und eine neue Funktionalität, die die Art und Weise verändert, wie Sie ein Gespräch führen und wahrscheinlich auch Ihre Herangehensweise an die Projektabwicklung beeinflussen. In diesem Abschnitt werden Funktionen von Actions Builder beschrieben, die sich von Dialogflow unterscheiden. Außerdem wird erläutert, wie sich diese Unterschiede auf die Implementierung des Auftragsausführungscodes auswirken.

  • Änderungen bei der Implementierung von Unterhaltungen

    • Dialogflow verwendet einen kontextbezogenen, kontextgesteuerten Konversationsablauf, bei dem Intents anhand von Trainingsformulierungen und den Eingabe-/Ausgabekontexten des vorherigen Intents abgeglichen werden.
    • Im Konversationsablauf von Actions Builder werden Szenen als Container für Unterhaltungsrunden verwendet. Innerhalb einer Szene können bestimmte Intents zugeordnet werden, ähnlich wie die Kontexte von Dialogflow. Über Übergänge wird festgelegt, 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 zur Verarbeitung der neuen Funktion erstellen.
    • Webhook-Handler haben in Actions Builder benutzerdefinierte Handler-Namen. Mit dieser Funktion können Sie im Laufe Ihres Projekts eine Funktion aus mehreren Szenen aufrufen.
  • Weitere Möglichkeiten zum Aufrufen von Webhooks

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

Ausführungscode aktualisieren

Der Ausführungscode der einzelnen Aktionen variiert 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 wurde wie folgt aktualisiert:

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

    • 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 wurde wie folgt aktualisiert:

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

Eine vollständige Liste der Methoden finden Sie unten in der Zuordnungszuordnung für Auftragsausführungscode.

Verwenden Sie die folgenden Seiten, um die Nutzlasten von Anfragen und Antworten zu vergleichen:

Webhooks einrichten

Nachdem Sie die Auftragsausführung aktualisiert haben, aktivieren Sie Webhook-Aufrufe in allen Phasen Ihres 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 der Auftragsausführungscode enthält Handler und Funktionen, die ausgeführt werden sollen, wenn der Intent zugeordnet wird. In Actions Builder kann ein Webhook innerhalb von Aufruf-Intents oder Szenen ausgelöst werden, wodurch eine Anfrage an den Auftragsausführungsendpunkt gesendet wird. Die Auftragsausführung enthält Webhook-Handler, die die JSON-Nutzlast in der Anfrage verarbeiten. Webhooks können in folgenden Situationen ausgelöst werden:

  • Nach Abgleich eines Aufruf-Intents
  • Während einer Szene im Eingangsbereich
  • Nachdem eine Bedingung in der Bedingungsphase einer Szene als wahr ausgewertet wurde
  • Während der Slot-Speicherungsphase einer Szene
  • Nachdem eine Intent-Übereinstimmung in der Eingabephase einer Szene stattgefunden hat

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 Einsteigen
    • Bedingung
    • Slot-Füllung
    • Umgang mit Nutzerabsichten
    • System-Intent-Verarbeitung
  3. Klicken Sie die Option Call your webhook (Webhook aufrufen) an.

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

  5. Klicken Sie auf Speichern.

  6. Gehen Sie zu Test, um die Änderungen an den Webhook-Aufrufen und der Auftragsausführung auszuprobieren.

Karte mit Übersetzungscode für die Auftragsausführung

In der folgenden Tabelle sehen Sie, wie die Syntax des Auftragsausführungscodes von Dialogflow in Actions Builder-Code übersetzt wird. Eine vollständige Liste der Methoden finden Sie in der Dokumentation zu Actions Builder und SDK-Referenzen.

Dialogflow Tool zur Aktionserstellung
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'
Ereignisse 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
Umfangreiche Antwort prompt -content -card: object -image: object -table: object -media: object -suggestions -link

Informationen zu weiteren Tools finden Sie unten: