Routingverhalten optimieren

Bevor Sie Ihren digitalen Assistenten in die Produktion versetzen, müssen Sie die Art und Weise, wie Ihr digitaler Assistent Intents weiterleitet und auflöst, testen und optimieren.

Digitalen Assistenten trainieren

Bevor Sie Ihren digitalen Assistenten optimieren, stellen Sie sicher, dass dieser trainiert ist. Durch Trainieren des digitalen Assistenten konsolidieren Sie die Trainingsdaten für alle Skills, die er enthält, und geben Trainingsdaten für die integrierten Intents des digitalen Assistenten an (Help, Exit und UnresolvedIntent).

So trainieren Sie einen digitalen Assistenten:

  1. Öffnen Sie den digitalen Assistenten.
  2. Klicken Sie auf die Schaltfläche Trainieren (Dies ist ein Bild der Schaltfläche "Trainieren".), und wählen Sie ein Trainingsmodell aus.

    Verwenden Sie das Trainingsmodell, das zum Trainieren der meisten Skills verwendet wird.

    Eine nähere Vertiefung der Trainingsmodelle finden Sie unter Welches Trainingsmodell sollte ich verwenden?

Umfang des Tests

Routingverhaltensweisen, die Sie testen und optimieren sollten:

  • Expliziter Aufruf (Benutzereingabe, die den Aufrufnamen enthält).

    Beispiel (wobei Financial Wizard der Aufrufname ist): send money using financial wizard

  • Impliziter Aufruf (Benutzereingabe, die die Verwendung eines Skills impliziert, ohne den Aufrufnamen tatsächlich einzubeziehen).

    Beispiel: send money

  • Mehrdeutige Äußerungen (um festzustellen, wie gut die Mehrdeutigkeit durch den digitalen Assistenten aufgelöst wird).

    Beispiel (bei dem Sie mit mehreren Skills Dinge bestellen können): place order

  • Unterbrechung eines Unterhaltungsablaufs durch Themaänderung (auch als Gedankenspruch bezeichnet).

Hier erhalten Sie weitere Einzelheiten zur Funktionsweise des Routingmodells und zu den Routingparametern, die Sie anpassen können, um das Verhalten des digitalen Assistenten zu optimieren.

Hinweis

Die wichtigste Komponente bei einem erfolgreichen Routing in einem digitalen Assistenten ist das Design des Skills selbst. Wenn Sie an einem Projekt arbeiten, in dem Sie sowohl an der Zusammensetzung des digitalen Assistenten als auch am Design der darin enthaltenen Skills mitarbeiten, sollten Sie sich am besten auf die Optimierung der Intent-Auflösung in den einzelnen Skills konzentrieren, bevor Sie die Routingparameter des digitalen Assistenten optimieren. Siehe DOs und DON'Ts für das Konversationsdesign

Das Routingmodell

Wenn ein Benutzer eine Wortgruppe in den digitalen Assistenten eingibt, bestimmt der digitale Assistent, wie die Unterhaltung weitergeleitet wird - zu einem bestimmten Skill, zu einem anderen Status im aktuellen Ablauf oder zu einem integrierten Intent für den digitalen Assistenten.

Den Kern des Routingmodells bilden Konfidenzscores, die für die einzelnen Skills und Intents berechnet werden, um zu messen, wie gut diese mit der Benutzereingabe übereinstimmen. Konfidenzscores werden abgeleitet, indem die zugrundeliegenden NLP-Algorithmen (Natural Language Processing) auf die Trainingsdaten für Ihre Skills und den digitalen Assistenten angewendet werden.

Anschließend werden Routingentscheidungen getroffen, indem die Konfidenzscores mit den Werten verschiedener Routingparameter wie Konfidenzschwellenwert für Kandidatenskills und Konfidenzgewinnmarge abgeglichen werden.

Das Routingmodell verfügt über folgende Hauptschichten:

  • System-Intents des Kandidaten bestimmen: Die Benutzereingabe wird ausgewertet, und Konfidenzscores werden auf die Intents des digitalen Assistenten angewendet (exit, help und unresolvedIntent). Alle Intents mit einem Konfidenzscore, der den Konfidenzschwellenwert für integrierte System-Intents des digitalen Assistenten überschreitet, werden als Kandidaten für eine weitere Auswertung behandelt.

  • Kandidatenskills bestimmen: Die Benutzereingabe wird bewertet, und auf jeden Skill werden Konfidenzscores angewendet. Alle Skills mit Konfidenzscores, die den Wert des Routingparameters "Konfidenzschwellenwert für Kandidatenskills" des digitalen Assistenten überschreiten, werden als Kandidatenskills für eine weitere Auswertung behandelt.

  • Kandidatenabläufe bestimmen: Nach der Ermittlung der Kandidatenskills werden die einzelnen Intents in diesen Skills (entsprechend dem Intent-Modell für jeden Skill) ausgewertet, und die Konfidenzscores werden auf die einzelnen Intents angewendet. Im Allgemeinen wird jedes Intent mit einem Konfidenzscore, der den Wert des Routingparameters "Konfidenzschwellenwert" des zugehörigen Skills überschreitet (nicht den Wert des Parameters "Konfidenzschwellenwert für Kandidatenskills" des digitalen Assistenten), als Kandidatenablauf behandelt.

Das Verhalten dieses Routings kann durch Anpassung der Routingparameter des digitalen Assistenten optimiert werden.

Darüber hinaus gibt es Regeln für spezielle Fälle, die sich auf die Routingformel auswirken. Diese Fälle umfassen:

  • Expliziter Aufruf: Wenn ein Benutzer den Aufrufnamen eines Skills in seine Eingabe aufnimmt, leitet der digitale Assistent direkt zu diesem Skill weiter, selbst wenn die Eingabe auch mit anderen Skills übereinstimmt.

  • Kontextbezogenes Routing: Wenn ein Benutzer bereits mit einem Skill interagiert, erhält dieser Skill eine größere Gewichtung bei der Intent-Auflösung als Intents von anderen Skills.

  • Kontextbezogenes Pinning: Wenn die Benutzereingabe einen expliziten Aufruf für einen Skill, aber keine intent-bezogene Äußerung enthält, "pinnt" der Router die Unterhaltung an den Skill. Das bedeutet, dass sich die nächste Äußerung auf diesen Skill bezieht.

Start-, Willkommens- und Hilfestatus

Um die Navigation zwischen verschiedenen Skills für den Benutzer zu verbessern, verwalten digitale Assistenten das Routing zu und die Anzeige von Start-, Willkommens- und Hilfestatus für jeden Skill, den Sie dem digitalen Assistenten hinzufügen.

Sie können jeden Skill so konfigurieren, dass er angibt, welche Status in seinem Dialogablauf der digitale Assistent als Willkommens-, Start- und Hilfestatus verwenden soll. Wenn diese Status nicht im Skill angegeben sind, wendet der digitale Assistent das Standardverhalten an.

Nachfolgend finden Sie einen Überblick über die Funktionsweise dieser Status.

  • Startstatus: Wird angewendet, wenn die Intent Engine bestimmt, dass der Benutzer einen bestimmten Skill verwenden möchte. Dies tritt im Allgemeinen auf, wenn der Benutzer ein Intent ausdrückt, das mit dem Skill in Verbindung steht.

    Wenn für den Skill kein Startstatus angegeben ist, verwendet der digitale Assistent einfach den ersten Status im Skill als Startstatus.

  • Willkommensstatus: Wird angewendet, wenn der Benutzer den Aufrufnamen ohne ein zugehöriges Intent eingibt.

    Beispiel (wobei "cash bank" der Aufrufname ist): cash bank

    Wenn im Skill kein Willkommensstatus angegeben wurde, bietet der digitale Assistent automatisch eine Standardantwort. Diese besteht aus einem Prompt und einer Karte mit dem Anzeigenamen des Skills, einer Beschreibung in einem Satz und einigen der Beispieläußerungen. Außerdem erhält der Benutzer die Option, die Unterhaltung zu beenden und die Hilfe für den digitalen Assistenten als Ganzes aufzurufen.

    Hier finden Sie ein Beispiel für eine Standardwillkommensantwort, die auf einen Bankingskill angewendet wird.


    Beschreibung von da-welcome-prompt.png folgt
    Beschreibung der Abbildung da-welcome-prompt.png

    Mit der Konfigurationseinstellung Willkommens-Prompt des Skillbots können Sie außerdem den standardmäßigen Willkommens-Prompt anpassen.

  • Hilfestatus: Wird angewendet, wenn die Intent Engine bestimmt, dass der Benutzer um Hilfe oder andere Informationen bittet.

    Beispiel: Wenn sich ein Benutzer in einem Ablauf im Bankingskill zum Senden von Geld befindet und "Hilfe" eingibt, wenn er zur Eingabe des Kontos aufgefordert wird, von dem Geld gesendet werden soll.

    Wenn im Skill kein Hilfestatus angegeben wurde, bereitet der digitale Assistent automatisch eine Antwort vor, die einen Prompt und eine Karte mit dem Anzeigenamen des Skills, einer Beschreibung aus einem Satz und einigen der Beispieläußerungen enthält. Außerdem erhält der Benutzer die Option, die Unterhaltung zu beenden und die Hilfe für den digitalen Assistenten als Ganzes aufzurufen.

    Nachfolgend finden Sie ein Beispiel für einen Hilfe-Prompt und eine Karte, die vom digitalen Assistenten vorbereitet wurde:


    Beschreibung von da-help-prompt.png folgt
    Beschreibung der Abbildung da-help-prompt.png

    Mit der Konfigurationseinstellung Hilfe-Prompt des Skillbots können Sie außerdem den standardmäßigen Hilfe-Prompt anpassen.

Start-, Willkommens- und Hilfestatus angeben

Wenn der Dialogablauf des Skills im visuellen Modus entworfen ist, können Sie diese Status mit entsprechenden integrierten Ereignissen im Hauptablauf angeben:

  1. Klicken Sie im Skill auf Symbol "Abläufe".
  2. Wählen Sie Hauptfluss aus.
  3. Klicken Sie im Abschnitt "Integrierte Ereignisse" auf Symbol "Hinzufügen"..
  4. Wählen Sie im Dialogfeld "Integrierten Ereignis-Handler erstellen" den Ereignistyp aus dem zugeordneten Ablauf aus, und klicken Sie auf Erstellen.

Wenn der Dialogablauf des Skills im YAML-Modus entworfen wurde, können Sie diese Status in den Einstellungen des Skills angeben:

  1. Klicken Sie im Skill auf Symbol für Einstellungen, und wählen Sie die Registerkarte Digital Assistant aus.
  2. Wählen Sie unter Startstatus, Willkommensstatus und/oder Hilfestatus den jeweils gewünschten Status aus.

Expliziter Aufruf

Ein expliziter Aufruf tritt auf, wenn ein Benutzer im Rahmen seiner Eingabe den Aufrufnamen für einen Skill eingibt. Durch die Verwendung des expliziten Aufrufs können Benutzer sicherstellen, dass die Eingabe sofort an den gewünschten Skill weitergeleitet wird. Somit wird die Anzahl der Interaktionen mit dem digitalen Assistenten reduziert, die zur Ausführung der gewünschten Aufgabe erforderlich sind.

Wenn der explizite Aufruf verwendet wird, erhält der entsprechende Skill beim Bestimmen des Routings zusätzliches Gewicht:

  • Wenn der Benutzer sich noch nicht in einem bestimmten Skill befindet und einen expliziten Aufruf eingibt, erhält dieser Aufruf Vorrang vor anderen Abläufen im Kontext des digitalen Assistenten.

  • Wenn sich der Benutzer in einem Ablauf für einen anderen Skill befindet, wird der digitale Assistent immer versuchen zu bestätigen, ob der Benutzer wirklich den Skill wechseln möchte.

In jedem digitalen Assistenten können Sie den Aufrufnamen bestimmen, den Sie für einen bestimmten Skill verwenden möchten. Sie legen den Aufrufnamen auf der Seite des Skills im digitalen Assistenten fest. Dorthin gelangen Sie folgendermaßen:

  1. Klicken Sie in der linken Navigationsleiste des digitalen Assistenten auf Symbol "Skills".
  2. Wählen Sie den Skill aus, dessen Aufrufnamen Sie prüfen oder ändern möchten.
  3. Scrollen Sie nach unten zum Feld Aufruf.

Dieses Verhalten wird vom Routingparameter Konfidenzschwellenwert für explizite Aufrufe unterstützt. Wenn der Konfidenzscore für einen expliziten Aufruf diesen Schwellenwert überschreitet, werden Intents aus anderen Skills nicht bei der Routingentscheidung berücksichtigt. Der Standardwert für diesen Schwellenwert beträgt 0,8 (80 % Konfidenz).

Hinweis

Bei nicht-englischen Eingaben in einem Skill muss der Aufrufname des Skills vor anderen Wörtern eingegeben werden, damit die Eingabe als expliziter Aufruf erkannt wird. Beispiel: Wenn der Skill den Aufrufnamen "Pizza King" aufweist, wird die Äußerung "Pizza King, quiero una pizza grande" als expliziter Aufruf erkannt, der Ausdruck "Hola Pizza King, quiero una pizza grande" jedoch nicht.

Kontextbezogenheit

Das Routing in digitalen Assistenten ist kontextbezogen. Das bedeutet, dass übereinstimmende Intents des Skills, mit dem der Benutzer gerade interagiert, bei der Intent-Auflösung eine höhere Gewichtung erhalten als Intents aus anderen Skills.

Beispiel: Der digitale Assistent verfügt über einen Bankingskill und einen Skill für einen Onlinestore. Wenn ein Benutzer die Frage "Was ist mein Saldo?" eingibt, kann sich dies sowohl auf den Bankkontosaldo des Benutzers als auch auf das Guthaben einer Geschenkkarte vom Onlinestore beziehen.

  • Wenn der Benutzer diese Frage eingibt, bevor er den Kontext einer der beiden Skills eingibt, muss der digitale Assistent ihm eine Auswahl anbieten, welcher "Saldo"-Ablauf gewünscht wird (entweder im Bankingskill oder im Onlinestoreskill).

  • Wenn der Benutzer diese Frage aus dem Bankingskill heraus eingibt, sollte der digitale Assistent automatisch den "Saldo"-Ablauf auswählen, der dem Bankingskill entspricht (und Intents aus anderen Skills nicht beachten, selbst wenn sie dem Routingparameter für den standardmäßigen Konfidenzschwellenwert entsprechen).

Hinweis

Selbst wenn Benutzer einen Ablauf in einem Skill abgeschlossen haben, bleiben sie weiterhin im Kontext dieses Skills, es sei denn:
  • Sie haben den Skill explizit beendet oder zu einem anderen Skill gewechselt.
  • Die nächste Anforderung wird in unresolvedIntent des Skills aufgelöst und stimmt mit keinem der anderen Intents des Skills überein. In diesem Fall wechselt der Kontext zum digitalen Assistenten, und der digitale Assistent bestimmt, wie das nicht aufgelöste Intent behandelt wird.

Darüber hinaus werden Skillgruppen bei der Kontexterkennung berücksichtigt. Wenn ein Skill also als Teil einer Skillgruppe definiert ist und sich dieser Skill im aktuellen Kontext befindet, umfasst der aktuelle Kontext auch die anderen Skills in dieser Skillgruppe. Siehe Skillgruppen.

Die Kontexterkennung wird vom Routingparameter Nur aktuellen Kontextschwellenwert berücksichtigen unterstützt. Wenn der Konfidenzscore für ein Intent im aktuellen Kontext diesen Schwellenwert überschreitet, werden Intents aus anderen Kontexten nicht bei der Routingentscheidung berücksichtigt. Der Standardwert für diesen Schwellenwert beträgt 0,8 (80 %), da Sie wahrscheinlich relativ sicher sein möchten, dass ein Intent im aktuellen Kontext korrekt ist, bevor Sie die Anzeige anderer Intents ausschließen.

Intents "help" und "unresolvedIntent"

Wenn die Benutzereingabe im Kontext eines Skills mit dem System-Intent help übereinstimmt, wird der Benutzer zu einem Hilfeablauf weitergeleitet, der von diesem Skill bestimmt wird (nicht zu einem Ablauf, der auf Ebene des digitalen Assistenten bestimmt wird).

Beispiel: Wenn ein Benutzer mit einem Skill interagiert und help eingibt, wird die Hilfe für diesen Skill bereitgestellt und nicht die Hilfe für den digitalen Assistenten insgesamt.

Für das System-Intent unresolvedIntent gilt ein anderes Verhalten. Wenn die Benutzereingabe als unresolvedIntent aufgelöst wird (und keine anderen übereinstimmenden Intents im Skill vorhanden sind), wird die Eingabe als nicht aufgelöstes Intent auf Ebene des digitalen Assistenten behandelt. Wenn unresolvedIntent jedoch nur eines der übereinstimmenden Intents innerhalb des Skills ist, verarbeitet der Skill die Antwort.

Dieses Verhalten wird vom Routingparameter Konfidenzschwellenwert für integrierte System-Intents unterstützt. Wenn der Konfidenzscore für eines dieser Intents diesen Schwellenwert überschreitet, wird dieses Intent als Kandidat zur weiteren Auswertung behandelt. Ab Plattformversion 20.12 beträgt der Standardwert für diesen Schwellenwert 0,9 (90 % Konfidenz). Bei früheren Plattformversionen lautet der Standardwert 0,6.

Intent "exit"

Wenn die Benutzereingabe mit dem System-Intent exit übereinstimmt, wird der Benutzer aufgefordert, den aktuellen Ablauf oder den gesamten Skill zu beenden, je nach Benutzerkontext:

  • Wenn der Benutzer sich in einem Ablauf befindet, gilt das Beenden für den Ablauf.
  • Wenn der Benutzer sich in einem Skill befindet, jedoch nicht in einem Ablauf im Skill, gilt das Beenden für den Skill.
Hinweis

Das Intent exit gilt nicht für den digitalen Assistenten selbst. Benutzer, die mit keinem Skill interagieren, werden nur als inaktiv behandelt.

Dieses Verhalten wird vom Routingparameter Konfidenzschwellenwert für integrierte System-Intents unterstützt. Wenn der Konfidenzscore für das Intent exit diesen Schwellenwert überschreitet, wird dieses Intent als Kandidat zur weiteren Auswertung behandelt. Ab Plattformversion 20.12 beträgt der Standardwert für diesen Schwellenwert 0,9 (90 % Konfidenz). In früheren Plattformversionen lautet der Standardwert 0,6.

Skillgruppen

Bei Skilldomains mit vielen Funktionen sollte diese Funktionalität häufig in mehrere spezialisierte Skills aufgeteilt werden. Das ist besonders im Hinblick auf die Entwicklung nützlich. Verschiedene Teams können an verschiedenen Aspekten der Funktionalität arbeiten und die Skills und deren Updates anhand der Zeitpläne veröffentlichen, die ihnen am besten passen.

Wenn Sie mehrere Skills in einer Domain nutzen, müssen Benutzer wahrscheinlich relativ häufig zwischen diesen Skills wechseln. Beispiel: In einer einzelnen Session in einem digitalen Assistenten, der mehrere HR-bezogene Skills enthält, kann ein Benutzer Anfragen im Zusammenhang mit Skills für Vergütung, persönliche Daten und Urlaubszeiten senden.

Um das Routingverhalten unter verwandten Skills zu optimieren, können Sie eine Skillgruppe definieren. Innerhalb eines digitalen Assistenten werden alle Skills innerhalb einer Gruppe als ein einziger, logischer Skill behandelt. Daher werden alle Skills in der Gruppe als Teil des aktuellen Kontexts betrachtet, sodass alle ihre Intents bei der Intent-Auflösung gleich gewichtet werden.

Gruppenkontext und Skillkontext

Wenn Sie über Skillgruppen in Ihrem digitalen Assistenten verfügen, verfolgt die Routing-Engine sowohl den Skillkontext als auch den Gruppenkontext.

Die Routing-Engine wechselt den Skillkontext innerhalb einer Gruppe, wenn sie feststellt, dass ein anderer Skill in der Gruppe besser für die Verarbeitung der Benutzeranforderung geeignet ist. Diese Bestimmung basiert auf dem Skillranking der Gruppe im Routingmodell für Kandidatenskills.

Hinweis

Wenn der Konfidenzscore der Top-Kandidatenskills der Gruppe bis zu 5 % höher als der des aktuellen Skills ist, wird der Skillkontext in der Gruppe nicht geändert.

Bei Verwendung des Routingtesters können Sie den Abschnitt Regeln der Registerkarte Routing prüfen, um zu überwachen, wann sich ein Skillkontext innerhalb einer Gruppe ändert.

Skillgruppen einteilen

Jede Skillgruppe muss eine Sammlung von Skills innerhalb derselben Domain sein, die sprachlich verwandt sind. Die Skills in der Gruppe sollten nach Funktion unterteilt werden.

Beispiel: Es kann sinnvoll sein, Skills für Leistungen, Vergütung, persönliche Daten und Einstellung in einer HCM-Skillgruppe zusammenzustellen. Skills für Vertriebschancen und Accounts könnten zu einer Skillgruppe für den Vertrieb gehören.

Skillgruppen benennen

Um Ihre Skillgruppen am besten zu organisieren und Namenskonflikte zu vermeiden, wird empfohlen, das Muster <company name>.<domain> für die Namen der Skillgruppen zu verwenden.

Beispiel: Sie können eine Gruppe mit dem Namen acme.hcm für die folgenden HCM-Skills für das hypothetische Unternehmen Acme erstellen.

  • Leistungen
  • Vergütung
  • Abwesenheit
  • Persönliche Daten
  • Einstellung

Wenn das hypothetische Unternehmen Acme auch über die folgenden Skills in der Vertriebsdomain verfügt, können Sie gleichermaßen acme.sales als Skillgruppe verwenden:

  • Vertriebschancen
  • Accounts
Allgemeine Skills und Skillgruppen

Wenn Sie allgemeine Skills für Funktionen wie Hilfe oder Handling von Smalltalk nutzen, sollen diese wahrscheinlich nicht als separate Gruppe von Skills behandelt werden, da sie jederzeit im Gespräch aufgerufen werden können, unabhängig davon, mit welcher Skillgruppe der Benutzer primär interagiert. Nach dem Aufruf müssen Sie außerdem sicherstellen, dass der Benutzer nicht in diesen allgemeinen Skills hängen bleibt.

Um sicherzustellen, dass andere Skillgruppen dieselbe Gewichtung wie ein allgemeiner Skill erhalten, nachdem ein Austausch mit dem allgemeinen Skill abgeschlossen ist, können Sie den allgemeinen Skill in eine Gruppe von Gruppen aufnehmen. Dazu fügen Sie das Sternchen (*) in den Gruppennamen des allgemeinen Skills ein. Beispiel:

  • Wenn Sie acme.* als Skillgruppennamen verwenden, werden alle Skills in den Gruppen acme.hcm und acme.sales einbezogen, jedoch kein Skill in einer Gruppe mit dem Namen hooli.hcm.
  • Wenn Sie * als Skillgruppennamen verwenden, werden alle Gruppen einbezogen (jedoch keine Skills, die keiner Gruppe zugewiesen sind).

Wenn ein Benutzer von einem Skill in einer einfachen Gruppe (einer Gruppe, die kein Sternchen im Namen enthält) zu einem Skill mit einem Sternchen im Gruppennamen navigiert, bleibt der Gruppenkontext wie vor dem Navigieren zu diesem Skill. Beispiel: Wenn eine Unterhaltung von einem Skill in der Gruppe acme.hcm zu einem Skill in der Gruppe acme.* wechselt, bleibt der Gruppenkontext acme.hcm.

Beispiele: Kontexterkennung in Skillgruppen

Im Folgenden finden Sie einige Beispiele für das Routing innerhalb von und zwischen diesen Gruppen:

  • Ein Benutzer fragt: "Welche Leistungen kann ich beziehen?" Der Skillkontext ist der Skill "Leistungen", und der Gruppenkontext ist acme.hcm. Dann fragt der Benutzer: "Wie hoch ist mein Gehalt?" Der Skillkontext wechselt zu "Vergütung", und der Gruppenkontext bleibt acme.hcm.
  • Der aktuelle Kontext eines Benutzers ist der Skill "Leistungen", d.h. der aktuelle Gruppenkontext ist acme.hcm. Der Benutzer fragt: "Welche Chancen gibt es?" Diese Anfrage liegt außerhalb der Domain des aktuellen Skills sowie aller Skills in der HCM-Gruppe (obwohl "Chancen" eine potenzielle Übereinstimmung im Skill "Einstellung" aufweist). Der Benutzer wird an die Top-Übereinstimmung (Vertriebschancen) weitergeleitet, die sich im Gruppenkontext acme.sales befindet.
Beispiel: Kontexterkennung zwischen Skillgruppen

Im Folgenden finden Sie ein Beispiel für die Kontexterkennung beim Routing zwischen Skillgruppen:

  • Ein Benutzer gibt "Welche Leistungen kann ich beziehen" ein. Dadurch wird der Skill "Leistungen" aufgerufen, der zur Gruppe acme.hcm gehört.

    Der Kontext des Benutzers ist der Skill "Leistungen" und die Gruppe acme.hcm.

  • Der Benutzer gibt "Erzähl mir einen Witz" ein. Dadurch wird der generische ChitChat-Skill aufgerufen, der der Gruppe acme.* zugewiesen ist.

    Der Benutzer befindet sich jetzt im ChitChat-Skillkontext. Der Gruppenkontext ist jetzt jede Gruppe, die mit acme.* übereinstimmt. Das umfasst sowohl acme.hcm (einschließlich des zuvor aufgerufenen Skills "Leistungen") als auch acme.sales,mit den Skills für Vertriebschancen und Accounts.

  • Der Benutzer fragt "Welche Leistungen kann ich beziehen?" und gibt dann "Ich habe noch eine Frage" ein.

    Der Benutzer befindet sich im Kontext acme.hcm, weil er sich zuvor aufgrund der Frage zu Leistungen in diesem Kontext befand, jetzt aber an das Intent "misc.another.question" im Skill "Sonstiges" weitergeleitet wurde, der zur Gruppe acme.* gehört.

    Wenn ein Benutzer zu einem Skill navigiert, der zu einem Gruppennamen mit einem Sternchen (*) gehört, bleibt der Benutzergruppenkontext unverändert (wie in diesem Beispiel acme.hcm), also wie vor dem Wechsel zum Skill, der zu einer *-Gruppe gehört.

  • Der Benutzer befindet sich derzeit im Kontext des Skills "Sonstiges", der allgemeine Funktionen bereitstellt. Er gehört zur Gruppe acme.*. Das bedeutet, dass der aktuelle Gruppenkontext des Benutzers alle acme-Gruppen (acme.sales und acme.hcm) umfasst. Der aktuelle Skillkontext ist "Sonstiges". Der Benutzer gibt "Welche Leistungen kann ich beziehen?" ein. Der aktuelle Skillkontext wechselt zu "Leistungen" in der Gruppe acme.hcm.
Skillgruppen hinzufügen

Sie können im Skill selbst und/oder in einem digitalen Assistenten, der die Gruppe enthält, festlegen, zu welcher Gruppe ein Skill gehört.

Skillgruppe im Skill festlegen

So definieren Sie eine Gruppe für einen Skill:

  1. Klicken Sie auf Symbol zum Öffnen des Seitenmenüs, um das Seitenmenü zu öffnen, wählen Sie Entwicklung > Skills aus, und öffnen Sie Ihren Skill.

  2. Klicken Sie in der linken Navigationsleiste für den Skill auf Symbol für Einstellungen, und wählen Sie die Registerkarte Digital Assistant aus.

  3. Geben Sie einen Gruppennamen in das Feld Gruppe ein.

    Nachdem Sie den Skill einem digitalen Assistenten hinzugefügt haben, wird jeder andere Skill im digitalen Assistenten mit diesem Namen als Teil derselben Skillgruppe betrachtet.

Skillgruppen im digitalen Assistenten festlegen

Wenn der Skill bereits einem digitalen Assistenten hinzugefügt wurde, können Sie die Gruppe im digitalen Assistenten festlegen (oder die Gruppe außer Kraft setzen, die in den Einstellungen des Skills angegeben wurde). Führen Sie hierzu die folgenden Schritte aus:

  1. Klicken Sie auf Symbol zum Öffnen des Seitenmenüs, um das Seitenmenü zu öffnen, wählen Sie Entwicklung > Digitale Assistenten aus, und öffnen Sie Ihren digitalen Assistenten.

  2. Klicken Sie in der linken Navigationsleiste für den digitalen Assistenten auf Symbol "Skills", und wählen Sie den Skill aus. Wählen Sie dann die Registerkarte Allgemein aus.

  3. Geben Sie einen Gruppennamen in das Feld Gruppe ein.

Kontextbezogenes Pinning

Wenn die Benutzereingabe einen expliziten Aufruf für einen Skill, aber keine intent-bezogene Äußerung enthält, "pinnt" der Router die Unterhaltung an den Skill für den nächsten Teil der Benutzereingabe. Das bedeutet, dass davon ausgegangen wird, dass sich die nächste Äußerung auf diesen Skill bezieht, sodass der Router keine Intents aus anderen Skills berücksichtigt.

Wenn der Benutzer dann etwas eingibt, das sich nicht auf diesen Skill bezieht, behandelt der Router diese Eingabe als nicht aufgelöstes Intent innerhalb des Skills, selbst wenn eine hohe Übereinstimmung mit einem Intent aus einem anderen Skill vorhanden ist. (Das Intent exit bildet eine Ausnahme. Es wird immer berücksichtigt.) Danach wird der Pin entfernt. Wenn der Benutzer diese Eingabe dann wiederholt oder etwas anderes eingibt, das nicht mit dem gepinnten Kontext zusammenhängt, werden wieder alle Abläufe berücksichtigt.

Nachfolgend finden Sie ein Beispiel für ein erwartetes Benutzerverhalten:

  • Der Benutzer gibt "Gehe zum Pizzaskill" ein. Das ist ein expliziter Aufruf des Pizzaskills. (Wenn Sie den Namen des Skills in die Äußerung aufnehmen, wird dieser explizit aufgerufen.)

    An dieser Stelle wird die Unterhaltung an den Pizzaskill gepinnt, d.h. der digitale Assistent sucht nur nach Übereinstimmungen im Pizzaskill.

  • Anschließend gibt der Benutzer "Ich möchte eine Bestellung aufgeben" ein.

    Der digitale Assistent findet eine Übereinstimmung mit dem OrderPizza-Intent im Pizzaskill und beginnt den Ablauf zur Bestellung einer Pizza.

    An dieser Stelle wird der Pin entfernt.

Nachfolgend finden Sie ein Beispiel für ein eher unerwartetes Benutzerverhalten:

  • Der Benutzer gibt "Gehe zum Pizzaskill" ein. Das ist ein expliziter Aufruf des Pizzaskills.

    An dieser Stelle wird die Unterhaltung an den Pizzaskill gepinnt.

  • Anschließend gibt der Benutzer "Geld überweisen" ein.

    Diese Eingabe stimmt überhaupt nicht mit dem Pizzaskill überein. Daher behandelt der Router diese Eingabe als nicht aufgelöstes Intent im Pizzaskill (und je nachdem, wie der Ablauf für unresolvedIntent definiert wurde, wird der Benutzer zur Klarstellung aufgefordert). Intents aus anderen Skills (z.B. Finanzskill) werden ignoriert, auch wenn sie geeignete Übereinstimmungen ergeben würden.

    Der Pin wird aus dem Pizzaskill entfernt.

  • Der Benutzer wiederholt seine Anfrage, Geld zu überweisen.

    Im Finanzskill wird eine Übereinstimmung gefunden, und der Ablauf "Geld überweisen" wird gestartet.

Gewinnmarge und "Alle berücksichtigen"

Für Fälle, bei denen die Benutzereingabe mit mehreren Kandidatenskills übereinstimmt, können Sie die folgenden Routingparameter anpassen:

  • Konfidenzgewinnmarge: Die maximale Differenz zwischen dem Konfidenzscore des Top-Kandidatenskills und den Konfidenzscores aller Kandidatenskills mit niedrigeren Werten (die ebenfalls den Konfidenzschwellenwert überschreiten), die vorliegen darf, damit die Kandidatenskills mit niedrigeren Werten berücksichtigt werden. Die integrierten Intents des digitalen Assistenten (help, exit und unresolvedIntent) werden ebenfalls berücksichtigt.

    Beispiel: Wenn dieser Wert auf 10 % (0,10) gesetzt ist und der Top-Kandidatenskill einen Wert von 60 % aufweist, werden alle weiteren Skills mit Konfidenzscores zwischen 50 % und 60 % ebenfalls berücksichtigt.

  • Alle berücksichtigen - Schwellenwert: Der minimale Konfidenzscore, der erforderlich ist, um alle übereinstimmenden Intents und Abläufe zu berücksichtigen. Dieser Wert hat auch Vorrang vor der Gewinnmarge. (Bei einer derart hohen Konfidenz ist nicht sicher, welchen Ablauf der Benutzer verwenden möchte.)

    Beispiel: Wenn dieser Wert auf 70 % (0,70) gesetzt ist und Sie Kandidatenskills mit Konfidenzscores von 71 % und 90 % haben, werden beide Kandidatenskills berücksichtigt, unabhängig vom Wert des Parameters "Konfidenzgewinnmarge".

Unterbrechungen

Digitale Assistenten sind für die Verarbeitung von Nicht-Sequenzen konzipiert. Dies sind Fälle, in denen ein Benutzer eine Eingabe bereitstellt, die nicht direkt auf die letzte Antwort des digitalen Assistenten eingeht. Beispiel: Wenn eine Benutzerin mitten in einer Pizzabestellung ist, fordert sie plötzlich ihren Bankkontensaldo an, um sicherzustellen, dass sie die Pizza bezahlen kann. Digitale Assistenten können Übergänge zu verschiedenen Abläufen verarbeiten und den Benutzer dann zum ursprünglichen Ablauf zurückführen.

  • Bevor sie Routingentscheidungen treffen, prüfen digitale Assistenten immer, ob Folgendes vorliegt:

    • Benutzer versucht, den Ablauf zu beenden

    • Explizite Aufrufe anderer Skills

    Wenn der Konfidenzscore für das exit-Intent des Systems oder der explizite Aufruf eines anderen Skills den entsprechenden Schwellenwert erreicht, leitet der digitale Assistent sofort zu dem entsprechenden Intent weiter.

  • Wenn der Benutzer nicht versucht, den Vorgang zu beenden oder explizit einen anderen Skill aufzurufen, aber der aktuelle Status das Intent des Benutzers nicht auflösen kann, wertet der digitale Assistent die Eingabe des Benutzers erneut anhand aller Skills aus und leitet den Benutzer dann zu dem entsprechenden Skill und Intent weiter.

    Dies könnte aus folgenden Gründen geschehen:

Aufrufe der System.Intent-Komponente eines Skills erzwingen

Unterbrechungen im Ablauf können daran liegen, dass ein Benutzer plötzlich zu einem anderen Ablauf in demselben Skill oder zu einem anderen Skill gehen muss. Um in YAML-basierten Skills Unterbrechungen zu unterstützen, bei denen der Benutzer zu einem separaten Skill gehen muss, fangen digitale Assistenten standardmäßig Aufrufe ab, die an die Komponente System.Intent des Skills gesendet werden, bevor der aktuelle Ablauf beendet wird (also bevor ein return-Übergang im Ablauf aufgerufen wird).

Beispiel: Dieser Code aus dem Dialogablauf eines Skills enthält Aktionen, die den Schaltflächen für das Bestellen von Pizza und das Bestellen von Pasta entsprechen. Es gibt jedoch auch die Aktion textReceived: Intent, mit der der Fall verarbeitet wird, dass ein Benutzer eine Nachricht eingibt, anstatt auf eine der Schaltflächen zu klicken.

ShowMenu:
 component: System.CommonResponse
 properties:
   metadata: ...
   processUserMessage: true
 transitions:
   actions:
     pizza: "OrderPizza"
     pasta: "OrderPasta"
     textReceived: Intent

Wenn ein solcher Skill eigenständig ausgeführt wird (nicht in einem digitalen Assistenten) und ein Benutzer Text eingibt, ruft der Skill System.Intent auf, um die Eingabe des Benutzers auszuwerten und eine entsprechende Antwort bereitzustellen. Innerhalb eines digitalen Assistenten werden jedoch Intents aller Skills im digitalen Assistenten bei der Auswertung berücksichtigt (Standardverhalten).

Wenn Sie nicht möchten, dass der digitale Assistent diese Aufrufe an System.Intent abfängt, setzen Sie die Eigenschaft daIntercept der System.Intent-Komponente auf "never", d.h.:

      daIntercept: "never"

Dies gilt nur für Dialogabläufe, die im YAML-Modus entworfen wurden (da der Visual Flow Designer kein Äquivalent zur Komponente System.Intent aufweist).

Hinweis

Wenn der Wert der Eigenschaft daIntercept von dem Status der Unterhaltung abhängig sein soll, können Sie eine Variable im Dialogablauf einrichten. Beispiel: Sie können den Wert der Eigenschaft auf ${daInterceptSetting.value} setzen, wobei daInterceptSetting eine Variable ist, die Sie im Dialogablauf definiert haben und der der Wert ("always" oder "never") zugewiesen ist, je nach Verlauf des Benutzerablaufs in der Unterhaltung.

Direkt von einem Skill zum anderen weiterleiten

Sie können den Dialogablauf eines Skills so entwerfen, dass direkt ein anderer Skill im digitalen Assistenten aufgerufen wird. Beispiel: Ein Skill zum Bestellen von Pizza könnte eine Schaltfläche aufweisen, mit der ein Benutzer seinen Banksaldo prüfen kann, bevor er eine Bestellung aufgibt.

Wenn ein Benutzer eine Option in einem Skill auswählt, der zu einem anderen Skill führt, sorgt der digitale Assistent sowohl für das Routing zum zweiten Skill als auch für das Routing zurück zum ursprünglichen Skill (nach Abschluss des Ablaufs im zweiten Skill).

Siehe Skill von einem anderen Skill aus einem YAML-Dialogablauf aufrufen.

Beendigungs-Prompt unterdrücken

Wenn das Intent exit erkannt wird, wird der Benutzer in der Regel aufgefordert, das Beenden zu bestätigen.

Wenn Sie festlegen möchten, dass der Benutzer den Vorgang ohne einen Bestätigungs-Prompt beenden kann, wenn der Konfidenzscore für das exit-Intent einen bestimmten Schwellenwert erreicht, können Sie dazu den Wert des Parameters Konfidenzschwellenwert für Beendigungs-Prompt ändern. (Standardmäßig ist dieser Parameter auf 1,01 (101 % Konfidenz) gesetzt, d.h. es wird immer ein Beendigungs-Prompt angezeigt.)

Routingparameter

Je nach Zusammenstellung der Skills (und deren Intents) in Ihrem digitalen Assistenten müssen Sie möglicherweise die Werte der Routingparameter des digitalen Assistenten anpassen, um die Antwort des digitalen Assistenten auf die Benutzereingabe besser steuern zu können.

Routingparameter akzeptieren Werte von 0 (0 % Konfidenz) bis 1 (100 % Konfidenz).

Übersicht über die Routingparameter des digitalen Assistenten:

  • Konfidenzschwellenwert für integrierte System-Intents: Der minimale Konfidenzscore für den Abgleich integrierter System-Intents, wie "help" und "exit". Standardwert für Plattformversion 20.12 und höher: 0,9. Standardwert für Plattformversion 20.09 und niedriger: 0,6.
    Hinweis

    Wenn Sie einen digitalen Assistenten auf Basis der Plattformversion 20.09 oder früher nutzen und eine neue Version oder einen Klon dieses digitalen Assistenten auf Plattformversion 20.12 oder höher erstellt haben, wird der Wert dieses Parameters im neuen digitalen Assistenten auf 0,9 aktualisiert, selbst wenn Sie den Wert im digitalen Basisassistenten geändert hatten.
  • Konfidenzschwellenwert für Kandidatenskills: Der minimale Konfidenzscore, der für eine Übereinstimmung mit einem Kandidatenskill erforderlich ist. Standardwert: 0,4
  • Konfidenzgewinnmarge: Die maximale Differenz zwischen dem Konfidenzscore des Top-Kandidatenskills und den Konfidenzscores aller Kandidatenskills mit niedrigeren Werten (die ebenfalls den Konfidenzschwellenwert überschreiten), die vorliegen darf, damit die Kandidatenskills mit niedrigeren Werten berücksichtigt werden. Die integrierten Intents des digitalen Assistenten (help, exit und unresolvedIntent) werden ebenfalls berücksichtigt. Standardwert: 0,1

    Für Skills, die auf dieselbe Weise funktionieren, gibt es einen separaten Parameter für die Konfidenzgewinnmarge. Dieser gilt aber für Konfidenzscores von Intents innerhalb des Skills.

  • Alle berücksichtigen - Schwellenwert: Der minimale Konfidenzscore, der erforderlich ist, um alle übereinstimmenden Intents und Abläufe zu berücksichtigen. Dieser Wert hat auch Vorrang vor der Gewinnmarge. (Bei einer derart hohen Konfidenz ist nicht sicher, welchen Ablauf der Benutzer verwenden möchte.) Standardwert: 0,8

  • Nur aktuellen Kontextschwellenwert berücksichtigen: Der minimale Konfidenzscore, der erforderlich ist, wenn nur der aktuelle Skill und das exit-Intent des digitalen Assistenten berücksichtigt werden. Wenn die Benutzereingabe mit einem Intent über diesem Schwellenwert übereinstimmt, werden andere Intents nicht berücksichtigt, selbst wenn sie den Konfidenzschwellenwert erreichen.

    Mit dieser Einstellung können Sie Mehrdeutigkeits-Prompts für Benutzereingaben verhindern, die mit Intents aus mehreren Skills übereinstimmen. Beispiel: Die Benutzereingabe “Bestellung stornieren” könnte mit Intents in mehreren Skills für Lieferdienste übereinstimmen. Standardwert: 0,8

  • Konfidenzschwellenwert für explizite Aufrufe: Der minimale Konfidenzscore für den Abgleich mit einer Eingabe, die einen expliziten Aufruf des Skills enthält. Standardwert: 0,8

  • Konfidenzschwellenwert für Beendigungs-Prompt: Der minimale Konfidenzscore, der zum Beenden erforderlich ist, ohne den Benutzer zur Bestätigung aufzufordern. Der Standardwert 1,01, der nominal außerhalb des Bereichs 0 bis 1 für Konfidenzschwellenwerte festgelegt ist, stellt sicher, dass immer ein Bestätigungs-Prompt angezeigt wird. Wenn Benutzer in der Lage sein sollen, ohne Bestätigung zu beenden, wenn der Konfidenzscore für die Beendigung hoch ist, verringern Sie diesen Wert auf einen geeigneten Schwellenwert. Standardwert: 1,01

Neben den Routingparametern des digitalen Assistenten gibt es auch die folgenden Routingparameter für Skills.

  • Konfidenzschwellenwert: Der minimale Konfidenzscore, der für den Abgleich des Intents eines Skills mit Benutzereingaben erforderlich ist. Wenn keine Übereinstimmung vorhanden ist, wird die Übergangsaktion auf unresolvedIntent gesetzt. Standardwert: 0,7
  • Konfidenzgewinnmarge: Nur das oberste Intent, das den Konfidenzschwellenwert übersteigt, wird ausgewählt, wenn es sich um das Intent mit dem höchsten Ranking handelt, das den Konfidenzschwellenwert überschreitet. Wenn andere Intents, die den Konfidenzschwellenwert überschreiten, Scores aufweisen, die in einem geringeren Abstand als die Gewinnmarge im oberen Intent liegen, werden diese Intents dem Benutzer ebenfalls angezeigt. Standardwert: 0,1

Routingparameter anpassen

So greifen Sie auf die Routingparameter eines digitalen Assistenten zu:

  1. Klicken Sie auf Symbol zum Öffnen des Seitenmenüs, um das Seitenmenü zu öffnen, wählen Sie Entwicklung > Digitale Assistenten aus, und öffnen Sie Ihren digitalen Assistenten.

  2. Klicken Sie in der linken Navigationsleiste für den digitalen Assistenten auf Symbol "Einstellungen", und wählen Sie die Registerkarte Konfiguration aus.

So greifen Sie auf die Routingparameter eines Skills zu:

  1. Klicken Sie auf Symbol zum Öffnen des Seitenmenüs, um das Seitenmenü zu öffnen, wählen Sie Entwicklung > Skills aus, und öffnen Sie Ihren Skill.

  2. Klicken Sie in der linken Navigationsleiste des Skills auf Symbol "Einstellungen", und wählen Sie die Registerkarte Konfiguration aus.

Beispiele zur Verwendung des Testers zur Diagnose des Routingverhaltens finden Sie unter Abbildungen des Routingverhaltens. Außerdem enthält das Tutorial Einführung in das Routing in digitalen Assistenten einige praktische Beispiele für diese Parameter.

Hinweis

Ab Release 21.04 werden Resource Bundle-Schlüssel automatisch für Eigenschaften mit Textwerten generiert. Sie können die Werte für diese Schlüssel auf der Seite "Ressourcen-Bundles" für den digitalen Assistenten bearbeiten. Klicken Sie in der linken Navigationsleiste des digitalen Assistenten auf Symbol für Resource Bundle. und dann auf die Registerkarte Konfiguration, um auf diese Schlüssel zuzugreifen.

Routingtester

Wenn Sie einen digitalen Assistenten testen, können Sie die Registerkarte "Routing" im Tester öffnen, um Folgendes anzuzeigen:

  • Die Intents, die mit der im Tester eingegebenen Äußerung übereinstimmen.

  • Überblick über die ausgeführten Routingschritte.

  • Eine Liste aller Regeln, die auf das Routing angewendet wurden.

  • Eine Liste aller Intents, für die eine Übereinstimmung gefunden wurde, zusammen mit ihren Konfidenzscores.

    Zusätzlich werden die Werte der verschiedenen Konfidenzschwellenwerteinstellungen angezeigt, sodass Sie diese mit den Konfidenzscores für die Intents vergleichen können.

So verwenden Sie den Routingtester für einen digitalen Assistenten:

  1. Öffnen Sie den digitalen Assistenten, den Sie testen möchten.

  2. Klicken Sie oben auf der Seite in der Nähe der Schaltflächen Validieren und Trainieren auf Symbol für den Skilltester.

  3. Wählen Sie in der Dropdown-Liste Kanal den Kanal aus, in dem Sie den digitalen Assistenten bereitstellen möchten.

    Wenn Sie einen Kanal auswählen, können Sie auch anzeigen, welche Einschränkungen eventuell für diesen Kanal gelten.

  4. Geben Sie im Textfeld unten im Tester einen Text ein.

  5. Klicken Sie im Tester auf die Registerkarte Routing.

Nach der Eingabe von "Was ist mein Kontostand" im Tester sieht die Registerkarte "Routing" für den digitalen Beispielassistenten ODA_Pizza_Financial_Retail wie folgt aus.


Beschreibung von what-is-my-balance-fullscreen.png folgt
Beschreibung der Abbildung what-is-my-balance-fullscreen.png

Abbildungen des Routingverhaltens

Hier finden Sie einige Beispiele, die mithilfe des Testers veranschaulichen, wie das Routing in digitalen Assistenten funktioniert.

Beispiel: Routing an Ablauf

Im Folgenden finden Sie ein recht standardmäßiges Beispiel für den digitalen Assistenten, bei dem die Eingabe des Benutzers ausgewertet und die Unterhaltung an einen bestimmten Ablauf weitergeleitet wird.

Zunächst sind hier die Benutzereingabe und die erste Antwort des digitalen Assistenten aufgeführt:


Beschreibung von route-flow1.png folgt
Beschreibung der Abbildung route-flow1.png

In diesem Fall gibt die Antwort des digitalen Assistenten ("Wie alt sind Sie?") den Start des OrderPizza-Ablaufs des Pizzaskills an (bei dem der Benutzer 18 oder älter sein muss, um eine Pizza zu bestellen).

Die Intent-Auswertung, die zu dieser Antwort führt:


Dies ist ein Bild der Intent-Auswertung im Tester.

Wie Sie sehen, hat der digitale Assistent eine hohe Übereinstimmung für den Pizzaskill (100 %) und eine niedrige Übereinstimmung für den Einzelhandelsskill (21,56 %) gefunden.

  • Es gab keine Übereinstimmungen für System-Intents.

  • Es gab eine hohe Übereinstimmung für den Pizzaskill (100 %) und eine niedrige Übereinstimmung für den Einzelhandelsskill (21,56 %).

  • Da die Übereinstimmung für den Pizzaskill den Konfidenzschwellenwert für Kandidatenskills (40 %) überschritten hat, hat der digitale Assistent die Abläufe im Pizzaskill ausgewertet.

    Sie können den Konfidenzschwellenwert für Kandidatenskills in den Konfigurationseinstellungen des digitalen Assistenten anpassen. Dazu klicken Sie auf Symbol "Einstellungen" und wählen die Registerkarte Konfiguration aus.

  • Im Pizzaskill wurde eine Übereinstimmung gefunden (OrderPizza).

  • Da diese Übereinstimmung den Konfidenzschwellenwert für Abläufe im Pizzaskill überschritten hat (und es keine weiteren qualifizierenden Übereinstimmungen zu berücksichtigen gab), wurde der OrderPizza-Ablauf gestartet.

    Sie können den Konfidenzschwellenwert für den Skill in den Einstellungen des digitalen Assistenten des Skills festlegen. Dorthin gelangen Sie, indem Sie den Skill öffnen, auf Symbol "Einstellungen" klicken und die Registerkarte Digitaler Assistent auswählen.

Beispiel: Skill-Intents eindeutig machen

Im Folgenden finden Sie ein einfaches Beispiel, in dem dargestellt wird, wann der Benutzer zur Klärung seines Intents aufgefordert werden muss.

Die Unterhaltung lautet:


Beschreibung von disambiguation1.png folgt
Beschreibung der Abbildung disambiguation1.png

Wie Sie sehen können, ist der digitale Assistent nicht sicher, was der Benutzer tun möchte. Daher wird der Benutzer aufgefordert, aus mehreren Optionen eine auszuwählen (sein Intent eindeutig zu machen).

Im Abschnitt "Intent-Aufrufe" des Testers können Sie die Daten sehen, die den digitalen Assistenten veranlasst haben, diesen Prompt auszugeben. Sowohl der Finanzskill als auch der Einzelhandelsskill haben hohe Scores erreicht (100 %). Anschließend hat der Router für jeden dieser Skills einen Kandidatenablauf ermittelt, der ebenfalls hoch bewertet wurde (auch 100 %).

Da die Kandidatenabläufe "GiftCardBalance" und "Balances" den Konfidenzschwellenwert überschreiten und da die Differenz zwischen ihren Scores unter den Wert für die Konfidenzgewinnmarge (10 %) fällt, fordert der digitale Assistent den Benutzer auf, zwischen diesen Intents auszuwählen.

Beispiel: Expliziter Aufruf

Das folgende Beispiel zeigt ein Beispiel, wo sich die Verwendung des expliziten Aufrufs auf das Routingverhalten auswirkt, indem andere Überlegungen, wie der aktuelle Kontext, ersetzt werden.

Die Unterhaltung lautet:



In diesem Fall hat der Benutzer im digitalen Assistenten begonnen, den Saldo im Einzelhandelsskill zu prüfen, entscheidet dann jedoch, dass er den Saldo für den Geschenkgutschein im Einzelhandelsskill anfordern möchte. Da er einen expliziten Aufruf verwendet (den Skill über seinen Aufrufnamen aufruft, der Retail Skill lautet und auf der Seite für den Skill im digitalen Assistenten festgelegt wird), gibt der Router beim Versuch, das Intent aufzulösen, dem Einzelhandelsskill den Vorrang, obwohl sich der Benutzer im Kontext des Finanzskills befindet.

Hier ruft der Tester die Routingregel auf:



Und hier wird das Handling der Intent-Aufrufe aufgezeigt:



Wie in der Abbildung gezeigt wird, liegt eine Übereinstimmung für den aktuellen Kontext vor, die jedoch ignoriert wird. Die Übereinstimmung für den expliziten Aufruf der GiftCardBalance (100 %) des Einzelhandelsskills hat Vorrang.

Beispiel: Kontextbezogenheit

Im Folgenden finden Sie ein Beispiel dafür, wie der Tester das kontextbezogene Routingverhalten veranschaulicht.

Wie Sie sehen, beginnt der Benutzer mit der Frage "Was ist mein Saldo?", wird aufgefordert, zwischen dem Finanzskill und dem Einzelhandelsskill eindeutig zu unterscheiden, und kann schließlich seinen Kontosaldo einsehen. Anschließend gibt er erneut "Was ist mein Saldo" ein, aber dieses Mal muss er nicht durch Disambiguierungs-Prompts navigieren. Die Informationen in der Registerkarte "Routing" veranschaulichen dies.

Im Abschnitt "Regeln" der Registerkarte wird Folgendes angezeigt:


Dieses Bild zeigt die Regeln, mit einer hohen Konfidenz.

Obwohl übereinstimmende Intents aus dem Einzelhandelsskill vorhanden sind, werden sie ignoriert. Im Abschnitt "Intent-Aufrufe" werden alle übereinstimmenden Intents angezeigt. Der Eintrag für "Aktueller Kontext", der nur das Intent "Balances" des Finanzskills enthält, ist jedoch ausschlaggebend.


Beschreibung von context-awareness-current-context.png folgt
Beschreibung der Abbildung context-awertainment-current-context.png

Sie können den Wert für "Nur aktuellen Kontextschwellenwert berücksichtigen" in den Konfigurationseinstellungen des digitalen Assistenten anpassen. Dazu klicken Sie auf Symbol "Einstellungen" und wählen die Registerkarte Konfiguration aus.

Tutorial: Routing des digitalen Assistenten

Sie können einen praktischen Überblick über das Routing des digitalen Assistenten erhalten, indem Sie das folgende Tutorial durchgehen: Einführung zum Routing in digitalen Assistenten.

Testfälle für digitale Assistenten

Mit dem Feature "Testsuites" im Unterhaltungstester können Sie Testsuites erstellen und Testfälle darin zusammenstellen. Sie können die Testfälle erstellen, indem Sie Unterhaltungen im Tester aufzeichnen oder sie in JSON schreiben.

Diese Testfälle bleiben Teil der Metadaten des digitalen Assistenten und werden daher versionsübergreifend persistiert. Tatsächlich können digitale Assistenten, die Sie aus dem Skillstore beziehen, durchaus einen Body aus solchen Tests beinhalten, die Sie dann ausführen können, um sicherzustellen, dass die von Ihnen vorgenommenen Änderungen keine der grundlegenden Funktionen des digitalen Assistenten aufheben.

Das Feature "Testsuiten" funktioniert für digitale Assistenten auf die gleiche Weise wie für Skills. Weitere Einzelheiten finden Sie unter Test-Suites und Testfälle.

Routing mit dem Äußerungstester testen

Mit dem Äußerungstester (auf den Sie durch Klicken auf Äußerungen testen auf der Seite "Skills" zugreifen) können Sie die Kontexterkennung und das Routing des digitalen Assistenten testen, indem Sie Testäußerungen eingeben. Wie beim Äußerungstest auf Skillebene können Sie den Äußerungstester für einmalige Tests verwenden oder damit Testfälle erstellen, die über jede Version des digitalen Assistenten hinweg bestehen bleiben.

Äußerungstests für einen digitalen Assistenten dienen nicht dazu, einen gesamten Unterhaltungsablauf zu testen. (Dazu nutzen Sie den Unterhaltungstester.) Stattdessen testen Sie Fragmente einer Unterhaltung. Insbesondere testen Sie, ob der digitale Assistent Benutzer an den richtigen Skill und das richtige Intent weiterleitet und ob er von einem Anfangskontext entsprechend übergehen kann.

Schnelltests

So testen Sie das Routing des digitalen Assistenten:
  1. Wählen Sie den Skill für den Anfangskontext aus, oder wählen Sie Beliebiger Skill für Tests ohne bestimmten Skillkontext aus (z.B. ein Test, der einen anfänglichen Besuch beim digitalen Assistenten emuliert).
  2. Wenn der beim digitalen Assistenten registrierte Skill mehrere native Sprachen unterstützt, wählen Sie die Testsprache aus.
  3. Geben Sie eine Testäußerung ein.
  4. Klicken Sie auf Testen, und prüfen Sie die Routingergebnisse. Anstatt diesen Test zu verwerfen, können Sie ihn als Testfall hinzufügen, indem Sie zuerst auf Als Testfall speichern klicken und dann eine Testsuite auswählen. Anschließend können Sie auf der Seite "Testfälle" (durch Klicken auf Gehe zu Testfällen erreichbar) auf den Testfall zugreifen und ihn bearbeiten.

Testfälle

Sie können einen Äußerungstestfall für digitale Assistenten genauso erstellen wie einen Testfall auf Skillebene: durch Speichern eines Schnelltests als Testfall im Äußerungstester, im Dialogfeld "Neuer Testfall", das Sie öffnen, indem Sie auf + Testfall klicken, oder durch Importieren einer CSV-Datei. Da sich Testfälle für digitalen Assistenten jedoch auf das Skillrouting und Kontextübergänge sowie erwartete Intents konzentrieren, enthalten sie Werte für den erwarteten Skill und den Anfangskontext (ein Skill innerhalb des digitalen Assistenten).

Die Erstellung eines Testlaufs von Testfällen entspricht ebenfalls der Erstellung eines Testfalls auf Skillebene: Sie können die Testfälle filtern, die Sie in einen Lauf aufnehmen möchten, und nach Abschluss des Laufs die Ergebnisse und die Verteilungsanalysen prüfen.

Routing-Testfall erstellen
So erstellen Sie einen einzelnen Testfall:
  1. Klicken Sie auf + Testfall.
  2. Füllen Sie das Dialogfeld "Neuer Testfall" aus:
    • Deaktivieren Sie den Testfall gegebenenfalls.
    • Geben Sie die Testäußerung ein.
    • Wählen Sie die Testsuite aus.
    • Geben Sie den erwarteten Skill ein.
    • Wählen Sie das erwartete Intent aus.
    • Wenn die beim digitalen Assistenten registrierten Skills mehrsprachig sind, können Sie das Sprachtag und die erwartete Sprache auswählen.
    • Wählen Sie den Anfangskontext aus: Wählen Sie einen Skill aus oder Beliebiger Skill für keinen Kontext.
  3. Klicken Sie auf Zu Suite hinzufügen. Anschließend können Sie den Testfall auf der Seite "Testfälle" bearbeiten oder löschen. Sie können die Kontexterkennung testen, indem Sie den Anfangskontext mit dem erwarteten Skill kombinieren. Mit diesen Kombinationen können Sie herausfinden, ob Benutzer in einem Skill hängen bleiben, weil sich der Kontext des Benutzers auch nach einer Anforderung an einen anderen Skill nicht geändert hat. Wenn Sie herausfinden möchten, wie der digitale Assistent eine Anforderung weiterleitet, wenn kein Kontext festgelegt wurde, wählen Sie Beliebiger Skill aus.
  4. Klicken Sie auf Zu Suite hinzufügen.
Testfälle für System-Intents hinzufügen

Wenn Sie die System-Intents mit zusätzlichen Äußerungen trainiert haben, können Sie den Intent-Abgleich testen, indem Sie bestimmte Testfälle mit Systemzweck erstellen. Besteht ein Testfall, bedeutet dies, dass das auf dem Systemzweck basierende Kontext-Routing vor dem Hintergrund des aktualisierten Trainings beibehalten wurde.

Der Prozess zum Erstellen dieser Testfälle ist mit dem Erstellen eines Testfalls für Routing und Kontext identisch. Für Systemintentstests werden jedoch keine erwarteten Skills getestet. Stattdessen stellen Sie sicher, dass das System-Intent weder mit anderen System-Intents noch mit den Intents der Mitglieder-Skills in Konflikt steht.
  • Wählen Sie den digitalen Assistenten für Erwarteter Skill aus.
  • Wählen Sie eines der System-Intents (Beenden, Hilfe, unresolvedIntent) für Erwartetes Intent aus.
    Hinweis

    Sie können das Willkommenssystem-Intent nicht testen.
  • Um das Routing des System-Intents in einem bestimmten Skillkontext zu prüfen, wählen Sie im Menü Anfängliches Routing einen Skill aus.
Testfälle für Testsuites für digitale Assistenten importieren
Sie können Testfälle und Testsuites im Bulkverfahren erstellen, indem Sie eine CSV-Datei wie auf Skillebene importieren (also durch Klicken auf Mehr > Importieren auf der Seite "Testfälle"). CSV-Dateien für digitale Assistenten verwenden dieselben Spalten mit Skill-CSVs, enthalten aber auch die Spalten initialContent und expectedSkill:
  • testSuite: Wenn Sie keine Testsuite angeben, werden die Testfälle der Standardtestsuite hinzugefügt.
  • utterance: Eine Beispieläußerung (erforderlich).
  • expectedIntent: Das übereinstimmende Intent (erforderlich).
  • enabled: TRUE nimmt den Testfall in den Testlauf auf. Bei FALSE wird er ausgeschlossen.
  • languageTag: Optional.
  • expectedLanguageTag: Optional.
  • initialContext: Der Name eines Skills oder "Beliebiger Skill", um die Äußerung ohne Routingkontext zu testen.
  • expectedSkill: Wenn Sie dieses Feld leer lassen, entspricht das der Auswahl von unresolvedSkill.