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

So erstellen Sie einen visuellen Flow-Skill:
  1. Klicken Sie auf der Landingpage für Skills auf + Neuer Skill.
  2. 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.
  3. Erstellen Sie Intents und Entitys. Diese müssen vorhanden sein, bevor Sie Variablen und Intent-Abläufe erstellen.
  4. Klicken Sie in der linken Navigationsleiste auf Abläufe Dieses Bild zeigt das Symbol "Dialogabläufe" in der linken Navigationsleiste.. 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 von df-2-0-event-mapping-dialog.png folgt
Beschreibung der Abbildung df-2-0-event-mapping-dialog.png

Sie können auf dieses Dialogfeld zugreifen, indem Sie auf Dieses Bild zeigt das Symbol "Hinzufügen". klicken.
Beschreibung von df-2-0-event-mappings-page.png folgt
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:

  1. 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.
  2. Trainieren Sie den Skill.
  3. 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.


  4. Erstellen Sie alle Variablen, die im Ablauf verwendet werden:
    1. Öffnen Sie die Registerkarte Konfiguration. Klicken Sie dann auf + Variable hinzufügen.
    2. 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.
  5. Fluss erstellen:
    1. Öffnen Sie die Registerkarte Ablauf.
    2. Klicken Sie im Ablaufstart auf das Menü Das Menüsymbol "Status hinzufügen". und dann auf Startstatus hinzufügen, um das Dialogfeld "Status hinzufügen" zu öffnen.
      Option "Startstatus hinzufügen".

    3. Wählen Sie in der Komponentenauswahl einen Status aus, und klicken Sie auf Einfügen.
    4. Öffnen Sie den Eigenschaftsinspektor des Status, um die Komponente zu konfigurieren.
Mit dem Pizza-Skill als Beispiel würden Sie den Ablauf wie folgt beginnen:
  1. Wählen Sie Frage fragen aus, und klicken Sie auf Einfügen.
  2. Öffnen Sie die Registerkarte Komponente im Eigenschaftsfenster des Fragenstatus.
  3. 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.


  4. Fügen Sie einen weiteren Status nach der Frage hinzu, indem Sie auf das Menü klicken.Dieses Bild zeigt das Menüsymbol.
  5. Wählen Sie Nachricht senden aus, und klicken Sie auf Einfügen.
  6. 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:
    Your ${PizzaType.value.value} pizza is on the way.
    Wenn Sie eine Composite Bag-Entity auf Flow-Ebene referenzieren, verwenden Sie die Syntax ${cbVarName.value.itemName.<attribute>}.

    Nachdem Sie dem Ablauf Status hinzugefügt haben, können Sie den Startstatus neu zuweisen, indem Sie auf das Menü Dieses Bild zeigt das Menüsymbol. klicken und dann "Startstatus erstellen" auswählen.
    Beschreibung von df-2-0-make-start-state.png folgt
    Beschreibung von Abbildung df-2-0-make-start-state.png

  7. Ö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}.

Verwenden Sie für Mischentitys ${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 Elementname date in der Mischentity lautet, verwenden Sie ${cbVarName.value.date}. Für ein NUMBER-Entityelement (number) verwenden Sie ${cbVarName.value.number}.
Die Referenzsyntax ist vom Kontext abhängig. Um zuzulassen, dass die verschiedenen Abläufe in Ihrem Skill eine Variable auf Skillebene referenzieren, stellen Sie dem Variablennamen im Ausdruck 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:

  1. Erstellen oder importieren Sie ein Antwort-Intent, und trainieren Sie dann den Skill.
  2. Klicken Sie auf Abläufe und dann auf + Ablauf hinzufügen.
  3. Geben Sie einen Ablaufnamen für den Antwort-Intent-Ablauf ein, und klicken Sie auf Erstellen.
  4. Klicken Sie im Ablaufstart auf das Menü Das Menüsymbol "Status hinzufügen". und dann auf Startstatus hinzufügen, um das Dialogfeld "Status hinzufügen" zu öffnen.
    Option "Startstatus hinzufügen".

  5. 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.


  6. Klicken Sie auf den Antwortstatus "Intent anzeigen", um die Registerkarte "Komponente" des Eigenschaftsinspektors zu öffnen. Klicken Sie dann auf Antwortelemente bearbeiten.
  7. 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

  8. Klicken Sie auf Anwenden.
  9. Klicken Sie auf Hauptfluss.
  10. Klicken Sie neben den Built-in-Veranstaltungen auf Dieses Bild zeigt das Symbol "Hinzufügen"..
  11. Füllen Sie das Dialogfeld {\b Create Built-In Event Handler} aus:
  12. Klicken Sie auf Erstellen.
Hinweis

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

Verwenden Sie FreeMarker-Ausdrücke, um auf die Fehler und Antwort-Intents zuzugreifen. Weitere Ideen finden Sie unter Praktische Ausdrücke.
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:
${skill.system.event.value.intent.answer}

Beispiel:

Hallo, ${profile.firstName?capitalize} ${profile.lastName?capitalize}, Sie haben nach ${skill.system.event.value.intent.intentName?lower_case} gefragt. Hier ist Ihre Antwort: ${skill.system.event.value.intent.answer}.

Dialogfehler Verwenden Sie die folgende Syntax für Dialogfehlermeldungen:
${skill.system.event.value.dialogError.errorMessage}
Beispiel:

Fehler bei der Verarbeitung Ihrer Bestellung: ${skill.system.event.value.dialogError.errorMessage}