Erste Schritte mit dem visuellen Dialogablaufdesigner
Im Folgenden finden Sie eine kurze Reihe von Schritten für die ersten Schritte mit Visual Flow Designer.
Visuellen Designer-Flow-Skill erstellen
- Klicken Sie auf der Landingpage für Skills auf + Neuer Skill.
- Wählen Sie Visuell als Dialogmodus aus.
Hinweis
Die Plattformversion muss auf 22.04 oder höher gesetzt sein, damit diese Option verfügbar ist. - Erstellen Sie Intents und Entitys. Diese müssen vorhanden sein, bevor Sie Variablen und Intent-Abläufe erstellen.
- Klicken Sie in der linken Navigationsleiste auf Abläufe
. Der Editor wird zum Hauptablauf geöffnet, in dem Sie die Konfiguration für den gesamten Skill festlegen und verwalten. Auf der Seite "Skillvariablen" können Sie unter anderem die Variablen hinzufügen, die über Flows und die zugehörige Seite "Ereignisse" gemeinsam verwendet werden, um die Zuordnungen von Transaktionsflüssen zu Intents und die Zuordnung von Utilityflüssen zu integrierten Ereignissen zu erstellen und zu verwalten, die nicht aufgelöste Intents, Dialogfehler und Antwort-Intents verarbeiten.
Ereignisse zuordnen
Sie können Zuordnungen auf der Seite "Ereignis" des Hauptablaufs hinzufügen, bearbeiten oder löschen. Im Zuordnungsdialogfeld können Sie verschiedene Ereignistypen für vorhandene Abläufe verwenden.
Beschreibung der Abbildung df-2-0-event-mapping-dialog.png
Sie können auf dieses Dialogfeld zugreifen, indem Sie auf klicken.
Beschreibung der Abbildung df-2-0-event-mappings-page.png
Intent-Ereignisablauf erstellen
Hier erstellen Sie Abläufe, um sie bestimmten Intents in Ihrem Skill zuzuordnen. Intent-Abläufe werden normalerweise regulären Intents zugeordnet. Sie können sie aber auch für Antwort-Intents erstellen.
So erstellen Sie einen Intent-Ereignisablauf:
- Erstellen Sie das entsprechende Intent und alle Entitys, die im Ablauf referenziert werden.
Beispiel: Wenn Sie einen Pizzaskill erstellen, können Sie die folgenden Artefakte erstellen:
- Ein orderPizza-Intent.
- Eine Wertelistenentity PizzaTopping.
- Trainieren Sie den Skill.
- Erste Schritte mit dem Ablauf:
- Klicken Sie in der linken Navigationsleiste auf Abläufe und dann auf + Ablauf hinzufügen.
- Geben Sie einen Ablaufnamen ein, und wählen Sie dann den Namen des Intents aus, das diesem Ablauf zugeordnet ist. Klicken Sie dann auf Erstellen.
Hinweis
Sie können nur einen verfügbaren Ablauf auswählen.
- Erstellen Sie alle Variablen, die im Ablauf verwendet werden:
- Öffnen Sie die Registerkarte Konfiguration. Klicken Sie dann auf + Variable hinzufügen.
- Wählen Sie den Variantentyp aus. Wenn die Variable eine Entity referenziert, füllen Sie das Dialogfeld aus, indem Sie die Variable für die ausgewählte Entity benennen. Klicken Sie dann auf Anwenden.Hinweis
Innerhalb eines Ablaufs können eine Variable und ein Ausgabeparameter denselben Namen verwenden. Variablen und Ausgabeparameter dürfen jedoch nicht dieselben Namen wie Eingabeparameter haben.
- Fluss erstellen:
- Öffnen Sie die Registerkarte Ablauf.
- Klicken Sie im Ablaufstart auf das Menü
und dann auf Startstatus hinzufügen, um das Dialogfeld "Status hinzufügen" zu öffnen.
- Wählen Sie in der Komponentenauswahl einen Status aus, und klicken Sie auf Einfügen.
- Öffnen Sie den Eigenschaftsinspektor des Status, um die Komponente zu konfigurieren.
- Wählen Sie Frage fragen aus, und klicken Sie auf Einfügen.
- Öffnen Sie die Registerkarte Komponente im Eigenschaftsfenster des Fragenstatus.
- Fügen Sie eine Frage hinzu ("Welche Pizza möchten Sie zum Beispiel?"). Wählen Sie dann die Ablaufvariable aus.
Tipp:
Verwenden Sie Resource Bundles für alle benutzerorientierten Texte in Ihrem Skill. - Fügen Sie einen weiteren Status nach der Frage hinzu, indem Sie auf das Menü klicken.
- Wählen Sie Nachricht senden aus, und klicken Sie auf Einfügen.
- Geben Sie im Eigenschaftsfenster für den Status "Nachricht senden" eine Bestätigungsmeldung mit einem FreeMarker-Ausdruck ein, der mit der
${varName.value.value}
-Syntax auf die Flussvariable zugreift. Beispiel:
Wenn Sie eine Composite Bag-Entity auf Flow-Ebene referenzieren, verwenden Sie die SyntaxYour ${PizzaType.value.value} pizza is on the way.
${cbVarName.value.itemName.<attribute>}
.Nachdem Sie dem Ablauf Status hinzugefügt haben, können Sie den Startstatus neu zuweisen, indem Sie auf das Menü
klicken und dann "Startstatus erstellen" auswählen.
Beschreibung von Abbildung df-2-0-make-start-state.png - Öffnen Sie die Registerkarte Übergänge des Eigenschaftsinspektors der Ausgabekomponente. Beachten Sie, dass Endfluss (implizit) als Übergang ausgewählt ist. Da dieser Ablauf keine erforderlichen Ausgabeparameter aufweist, reicht der Übergang zum impliziten Endfluss aus. Wenn dieser Ablauf jedoch einen weiteren erforderlichen Ausgabeparameter aufweist, muss der Ausgabestatus in einen tatsächlichen Endablaufstatus übergehen (eingefügt, indem Sie im Dialogfeld "Status hinzufügen" auf Ablaufsteuerung > Endablauf klicken), der die Ausgabeparameter des Ablaufs angibt.
Referenzvariablenwerte in FreeMarker-Ausdrücken
Verwenden Sie ${varName.value.value}
, um eine Wertelistenentity zu referenzieren. Da Entitys als JSON-Objekte aufgelöst werden, gibt die erste .value
das JSON-Objekt zurück, und die zweite .value
gibt den Wert einer Eigenschaft in diesem JSON-Objekt zurück. Um den Wert der Entity in der primären Sprache des Skills zurückzugeben, verwenden Sie ${varName.value.primaryLanguageValue}
.
${cbVarName.value.itemName.value}
für Wertelistenelemente und {cbVarName.value.itemName}
für Nicht-Wertelistenelemente.
- Wenn ein Element eine Werteliste ist, verwenden Sie eine Werteigenschaft:
${cbVarName.value.itemName.value}
oder${cbVarName.value.itemName.primaryLanguageValue}
. - Bei Nicht-Wertelistenelementen greifen Sie nicht mit einer Werteigenschaft (kein
.value
oder.primaryLanguageValue
) auf das Element zu. Beispiel: Wenn Sie eine DATE-Entity referenzieren, deren Elementnamedate
in der Mischentity lautet, verwenden Sie${cbVarName.value.date}
. Für ein NUMBER-Entityelement (number
) verwenden Sie${cbVarName.value.number}
.
skill.
voran Beispiel: Der folgende Ausdruck referenziert ein Element (Type
) in einer Mischentity (Order
), das über Flows hinweg gemeinsam verwendet wird:${skill.Order.value.Type.value}
skill
ist in Ausdrücken für Variablen mit Flow-Geltungsbereich nicht erforderlich:${Order.value.Type.value}
Tipp:
Durch das automatische Vervollständigen wird das Schreiben von Apache FreeMarker-Ausdrücken weniger fehleranfällig.Ablauf für integrierte Ereignisse erstellen
Möglicherweise möchten Sie Utilityflows für integrierte Ereignisse wie die Verarbeitung nicht aufgelöster Intents, Dialogfehler und die Darstellung von Antwort-Intents verwenden. Sie ordnen diese Abläufe integrierten Ereignissen im Hauptfluss zu. Im Allgemeinen werden die Flows, die integrierten Ereignissen zugeordnet sind, aufgerufen, wenn kein aktiver Ablauf auf Intent-Ebene vorhanden ist, z.B. wenn der Skill gestartet wird oder wenn ein Intent-Flow mit einem Endflussstatus beendet wird.
Beispiel: So erstellen Sie einen generischen Ablauf, der alle Antwort-Intents verarbeitet:
- Erstellen oder importieren Sie ein Antwort-Intent, und trainieren Sie dann den Skill.
- Klicken Sie auf Abläufe und dann auf + Ablauf hinzufügen.
- Geben Sie einen Ablaufnamen für den Antwort-Intent-Ablauf ein, und klicken Sie auf Erstellen.
- Klicken Sie im Ablaufstart auf das Menü
und dann auf Startstatus hinzufügen, um das Dialogfeld "Status hinzufügen" zu öffnen.
- Fügen Sie einen Antwortstatus für das Anzeige-Intent hinzu, indem Sie Benutzermeldungen > Text- und Multimedia-Nachrichten anzeigen >Intent-Antwort anzeigen auswählen oder eine Intent-Antwort in das Suchfeld eingeben. Klicken Sie dann auf Einfügen.
Tipp:
Mit dem Suchfeld können Sie eine Zustandsvorlage suchen. - Klicken Sie auf den Antwortstatus "Intent anzeigen", um die Registerkarte "Komponente" des Eigenschaftsinspektors zu öffnen. Klicken Sie dann auf Antwortelemente bearbeiten.
- Aktualisieren Sie die Textnachricht mit dem FreeMarker-Ausdruck der Vorlage, der auf die Antwort-Intent-Nachricht zugreift (
"${skill.system.event.value.intent.answer}"
). Beispiel:"Hello, ${profile.firstName?capitalize} ${profile.lastName?capitalize}. You were asking about ${skill.system.event.value.intent.intentName?lower_case}. Here's your answer: ${skill.system.event.value.intent.answer}."
Hinweis
- Klicken Sie auf Anwenden.
- Klicken Sie auf Hauptfluss.
- Klicken Sie neben den Built-in-Veranstaltungen auf
.
- Füllen Sie das Dialogfeld {\b Create Built-In Event Handler} aus:
- Wählen Sie in der Dropdown-Liste "Nicht behandelter Ereignistyp" die Option Antwortzweck (unter "Intent-Ereignisse") aus.
- Wählen Sie den Antwort-Intent-Ablauf aus der Dropdown-Liste "Zugeordneter Ablauf" aus.
- Wählen Sie in der Dropdown-Liste "Nicht behandelter Ereignistyp" die Option Antwortzweck (unter "Intent-Ereignisse") aus.
- Klicken Sie auf Erstellen.
Der Dialogfehlerereignisablauf kann sowohl auf Skill- als auch auf Ablaufebene vorhanden sein. Der Dialogfehlerfluss auf Skillebene, der dem integrierten Ereignis "Dialogfehler" zugeordnet ist, fungiert als Fallback, wenn kein Fehlerbehandlungsablauf vorhanden ist, der dem Dialogfehlerereignis auf Ablaufebene zugeordnet ist. Wenn Ihr Skill keine Dialogfehlerflüsse aufweist, gibt der Skill die Standardfehlermeldung aus (Hoppla! Ich habe ein Problem erkannt).
Beispielnachrichten für integrierte Ereignisabläufe
Integriertes Ereignis | Ausdruckssyntax und Beispiele |
---|---|
Antwortzweck | Verwenden Sie die folgende Syntax für generische Abläufe, die alle Antwort-Intents für den Skill verarbeiten:
Beispiel: Hallo, |
Dialogfehler | Verwenden Sie die folgende Syntax für Dialogfehlermeldungen: Beispiel:Fehler bei der Verarbeitung Ihrer Bestellung: |