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:
Laden Sie die neueste Version der Clientbibliothek herunter und installieren Sie sie.
npm install @assistant/conversation
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');
Refaktorieren Sie Ihren Code so, dass die neuen Methoden verwendet werden.
- Intent-Handler:
app.intent
→app.handle
- Antwort/Aufforderungen:
conv.ask
→conv.add
- Oberflächen-/Gerätefunktionen:
conv.surface.capabilities.has('actions.capability.SCREEN_OUTPUT')
→conv.device.capabilities.includes('RICH_RESPONSE')
- Datenspeicher:
conv.data
→conv.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'
- Intent-Handler:
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:
- Anfrageformate <ph type="x-smartling-placeholder">
- Antwortformate <ph type="x-smartling-placeholder">
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:
- Wählen Sie die Szene aus, aus der Sie den Webhook aufrufen möchten.
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
Klicken Sie die Option Call your webhook (Webhook aufrufen) an.
Geben Sie den Webhook-Handler ein, den Sie in Ihrem Auftragsausführungscode definiert haben.
Klicken Sie auf Speichern.
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: