Allgemeine Best Practices für das Design von Agents

Dieser Leitfaden enthält allgemeine Best Practices für die Entwicklung aller Arten von Agents.

Sie sollten auch die Voice Agent Design für das Entwerfen von Sprach-Agents, und die Best Practices Anleitung zur Verwendung des Dialogflow-Dienstes.

Allgemeine Empfehlung

Agents iterativ entwickeln

Wenn der Agent groß oder komplex ist, erstellen Sie zuerst einen Dialog, in dem nur Anfragen der obersten Ebene behandelt werden. Sobald die Grundstruktur geschaffen ist, Konversationspfade iterieren damit Sie alle Routen abdecken, die Endnutzer unter Umständen nutzen.

Während sich der Agent weiterentwickelt, können Sie die Funktion Testläufe verwenden. für die testgesteuerte Entwicklung.

Vordefinierte Agents

Dialogflow bietet Agent-Vorlagen, die Ihnen den Einstieg erleichtern. Vordefinierte Agents decken gängige Anwendungsfälle wie Finanzdienstleistungen, Telekommunikation und Reisen ab. Sie enthalten bereits Intents und Entitäten, die häufig gestellte Anfragen abdecken. Fügen Sie unternehmensspezifische Routen und Auftragsausführungen hinzu. und Sie erstellen schnell einen funktionierenden Agent.

Integrationen und Verbindung Ihrer Dienste

Es gibt mehrere Möglichkeiten, Dialogflow-Agents einzubinden. In diesem Abschnitt finden Sie Best Practices zur Auswahl der richtigen Einbindung.

Integrationen

Dialogflow Integrationen eine einsatzbereite Benutzeroberfläche für Ihren Agent bereitstellen. Wenn Sie eine Integration verwenden, Sie müssen die Dialogflow API nicht direkt aufrufen, da die Integrationen dies für Sie erledigen. Diese Integrationen bieten einen Text-Agent, den du auf deiner Website einbetten kannst. können Sie sich mit anderen Messaging-Plattformen vernetzen, oder eine Telefonieschnittstelle bereitstellen.

Dialogflow API

Wenn keine der gebrauchsfertigen Integrationen geeignet ist, oder die Benutzeroberfläche an dein System anpassen möchtest, können Sie verwenden Sie die Dialogflow API direkt. Bei diesem Ansatz müssen Sie die Benutzeroberfläche für Ihren Agent implementieren, oder eine vorhandene Benutzeroberfläche zu nutzen.

Webhooks

Wenn Ihr Agent nicht vollständig mit statischen Daten definiert werden kann, müssen Sie webhooks um Ihren Dienst zu verbinden und einen Agent bereitzustellen, der dynamische Szenarien handhaben kann. Dies gilt unabhängig davon, ob Sie Integrationen oder die Dialogflow API verwenden.

Agent-Ressourcen

Die Dialogflow-Agent-Ressourcen können vielfältig eingesetzt werden. um ein gewünschtes Ergebnis zu erzielen. Dieser Abschnitt enthält Tipps zur Auswahl der richtigen Ressourcen. für die richtigen Szenarien.

Abläufe und Seiten

Abläufe und Seiten Ihrem Kundenservicemitarbeiter Struktur zu geben. Stellen Sie sich Seiten als Knoten in einer Zustandsmaschine vor. und Abläufe als Gruppen verwandter Seiten. Übergänge zwischen Knoten steuern Sie mit State-Handler, die aufgerufen werden, wenn ein Intent zugeordnet wird, eine Bedingung erfüllt ist oder ein Ereignis aufgerufen wird.

Ein einfacher Agent kann mit einem einzigen Ablauf gut funktionieren, Komplexe Agents sind jedoch fast immer besser mit mehreren Abläufen konzipiert. Jeder Ablauf sollte ein übergeordnetes Thema für Ihren Agent darstellen. Dabei hilft jede mit dem Ablauf verknüpfte Seite bei der Verarbeitung des Themas. Außerdem kann jeder Ablauf eigene Einstellungen haben. und es kann sein, Gehört mir von einer Teilmenge von Teammitgliedern was hilft, die Arbeit beim Entwerfen großer Agents aufzuteilen.

Beim Entwerfen eines großen, komplexen Agents müssen Sie die „Flows pro Agent“ und „Seiten pro Besucherfluss“ . Diese Limits tragen dazu bei, die Leistung des Agents aufrechtzuerhalten.

Wenn Ihr Agent-Design zu viele Abläufe pro Agent hat, verwandte Themen in einem Ablauf kombinieren. Beispiel: könnten Sie die folgenden Themen zu einem einzigen „Guthaben abrufen“ kombinieren, Ablauf:

  • Girokonto abrufen
  • Guthaben abrufen
  • Hypothekenguthaben abrufen
  • Guthaben abrufen

Wenn Ihr Agent-Design zu viele Seiten pro Ablauf hat, ähnliche Seiten zu kombinieren und viele Routen pro Seite.

Wenn Sie immer noch Probleme mit Flows und Seitenlimits haben, liegt das möglicherweise daran, dass zu viel Geschäftslogik in den Agent integriert ist. Wir empfehlen, diese Logik auf Webhooks zu verschieben.

Hier ist der Detaillierungsgrad der Unterhaltungssteuerung von Agent-Ressourcen aufgeführt in aufsteigender Reihenfolge:

  1. Kundenservicemitarbeiter (ein Kundenservicemitarbeiter bearbeitet alle Unterhaltungen)
  2. Abläufe (ein Ablauf verarbeitet ein oder mehrere verwandte Unterhaltungsthemen)
  3. Seiten (eine Seite umfasst eine oder mehrere ähnliche Unterhaltungen)
  4. Routen (eine Route verarbeitet eine Nutzer-Intent- oder Bedingungsprüfung)

Intent-Parameter im Vergleich zu Formularparametern

Ihr System erhält in erster Linie strukturierte Daten von den Endnutzern Parameter: Sie können Parameter sowohl für Intents (Intent-Parameter) oder Seiten (Formularparameter).

Der Hauptzweck einiger Seiten ist das Sammeln spezifischer Informationen von den Endnutzern. Beispiel: kann eine Seite so konzipiert sein, dass sie die Kontaktinformationen des Endnutzers erfasst. In diesem Fall sollten Sie immer Formularparameter verwenden.

In einigen Fällen können Sie Informationen zu den Endnutzern erheben, beim Wechsel von einer Seite zur anderen. Beispiel: wenn die Endnutzer*innen ein bestimmtes Produkt zu Beginn des Gesprächs möchten Sie das gewünschte Produkt während Sie zur entsprechenden Auftragsseite wechseln. In diesem Fall die Verwendung von Intent-Parametern Intent-Routen.

Es gibt auch Situationen, in denen sollten Sie sowohl Intent- als auch Formularparameter verwenden. Beispiel: Die nutzende Person fordert ein kleines Hemd. zu Beginn des Gesprächs Sie möchten den gewünschten Größenparameter (klein) erfassen. während Sie zur T-Shirt-Bestellseite übergehen. Auf der Seite zur Bestellung der T-Shirts werden Sie möglicherweise nach zusätzlichen Informationen gefragt, wie die gewünschte Farbe. Die Seite zur Bestellung von T-Shirts sollte Formparameter für Größe und Farbe enthalten. In diesem Beispiel der Parameter „size“ wurde bereits angegeben. übertragen, sodass der Agent nur die Farbe anfordert. Sie können jedoch anderen Gesprächen vielleicht einem anderen Weg folgen, bei denen der Endnutzer nicht die gewünschte Größe angegeben hat. wenn die Seite zur Bestellung der T-Shirts aktiv wird. Wenn Sie diesen Parameter auf beide Arten definieren, ist der Agent bei der Art und Weise, wie er die Informationen extrahiert, flexibler.

Routen und Routengruppen

Wenn Sie zu einer anderen Seite wechseln möchten, Antwortnachricht in die Warteschlange stellen, oder einen Webhook aufrufen, Intent oder ein condition [Zustand] erfüllt ist, nutzen Routen.

Wenn Sie dieselben Routen auf mehreren Seiten verwenden, nutzen Routengruppen. So vermeiden Sie unnötige Duplikate im Agent-Design.

Intent-Wiederverwendung

Wenn Sie mehrere Intents mit ähnlichen Trainingsformulierungen definieren, können Sie Intents über mehrere Seiten hinweg wiederverwenden. Idealerweise sollten Sie einige allgemeine Intents definieren, die auf vielen Seiten verwendet werden. und bestimmte Intents, die nur auf einer Seite verwendet werden. So vermeiden Sie unnötige Duplikate im Agent-Design.

Beispiel: Bestätigungs-Intents werden in der Regel am besten als wiederverwendbare Intents definiert. Ein confirmation.yes-Intent könnte z. B. folgende Trainingsformulierungen haben:

  • Ja
  • ja
  • Klar
  • Ok
  • Ja, habe ich
  • Bestimmt
  • unbedingt
  • ja bitte

Ein confirmation.no-Intent könnte z. B. folgende Trainingsformulierungen haben:

  • no
  • nah
  • Nein
  • Auf keinen Fall
  • Nicht für mich
  • absolut nicht
  • Nein, danke

Diese wiederverwendbaren Bestätigungs-Intents kann in vielen Szenarien für Ihren Agent verwendet werden.

In einigen Fällen sollten Sie auch spezielle Bestätigungs-Intents erstellen. Beispiel: wenn Sie eine Bestellung bestätigen, sollten Sie einen speziellen order.confirmation.yes-Intent mit Trainingsformulierungen wie:

  • die Bestellung sieht gut aus
  • Ich akzeptiere diese Bestellung

Und einen speziellen order.confirmation.no-Intent mit Trainingsformulierungen wie:

  • Ich möchte diese Bestellung nicht
  • Ich nehme diese Bestellung nicht an.

Wenn Ihre Bestellbestätigungsseite aktiv ist, Intent-Routen für alle vier Intents im Geltungsbereich liegen. Dadurch wird sichergestellt, dass jede allgemeine oder spezifische Bestätigung seitens der Endnutzer angemessen gehandhabt werden.

Standardmäßig auszuschließender Intent

Das Feld standardmäßige auszuschließende Absicht mit Formulierungen, die Ihre Endnutzer sagen könnten: sollte aber keinem Intent im Agent entsprechen.

Auftragsausführung

Es gibt viele Möglichkeiten, Auftragsausführung Endanwendenden zu antworten. Während einer Gesprächsrunde kann der Agent mehrere Nachrichten an die Antwortwarteschlange anhängen. und die verkettete Warteschlange wird an den Endnutzer gesendet, am Ende der Gesprächsrunde. In diesem Abschnitt werden die einzelnen Optionen zum Erstellen der einzelnen Nachrichten beschrieben.

  • Ausführung von Seiteneinträgen: Diese Auftragsausführung wird aufgerufen, wenn die Seite zum ersten Mal aktiv wird. Das ist nützlich, wenn Sie eine Nachricht erhalten möchten, die den Zweck der Seite beschreibt, und sollte nur einmal gesagt werden, während die Seite aktiv ist. Beispiel:
    • Was möchten Sie über Ihr Girokonto wissen?
    • Welche Art von Produkt möchten Sie kaufen?
    • Ich brauche ein paar Informationen zu dem T-Shirt, das du bestellen möchtest.
  • Routen: Diese Auftragsausführung wird aufgerufen, wenn entweder eine Intent-Route oder eine Bedingungsroute mit der Auftragsausführung aufgerufen wird. Dies ist nützlich, wenn Sie eine Nachricht wünschen, die Endnutzer über Intent-Übereinstimmung Bedingung erfüllt ist (kann ein Bedingungen für das Ausfüllen des Formulars) oder den Übergang. Beispiel:
    • Ja, in Ihrem internationalen Tarif ist Japan enthalten. (Intent-Übereinstimmung)
    • Möchten Sie wirklich 300 T-Shirts kaufen? (Vergleichsbedingung erfüllt)
    • Okay, dein Termin ist morgen früh um 07:00 Uhr. (Ausfüllen des Formulars)
    • Okay, sprechen wir jetzt über Erdferkel. (Übergang)
  • Event-Handler: Diese Auftragsausführung wird aufgerufen, wenn ein Ereignis aufgerufen wird. Das ist nützlich, wenn Sie eine Nachricht benötigen, die auf das Ereignis reagiert. Beispiel:
    • Die Aktie, die Sie kaufen möchten ist der Wert gerade um 10 % gestiegen. (benutzerdefiniertes Ereignis)
    • Kannst du das anders formulieren? (Ereignis ohne Übereinstimmung)
  • Erste Aufforderungen zu Formularen: Diese Auftragsausführung wird aufgerufen, wenn der Agent ein Formular ausfüllt. In diesen Nachrichten sollte dem Endnutzer eine bestimmte Frage gestellt werden. Für jeden Formularparameter gibt es eine eigene anfängliche Prompt-Ausführung. Beispiel:
    • Welche T-Shirt-Größe möchtest du?
    • Welche Farbe soll das T-Shirt haben?
  • Handler für erneute Eingabeaufforderung für Formulare: Diese Auftragsausführung wird aufgerufen, wenn der Kundenservicemitarbeiter und erkennt die Endnutzerauswahl für den aktuellen Parameter nicht. Diese Auftragsausführung ist nur erforderlich, wenn du eine erneute Aufforderung erhalten möchtest. sich von der ursprünglichen Prompt-Nachricht unterscheidet. Wenn keine Handler für erneute Eingabeaufforderung vorhanden sind, verwendet der Agent nur die erste Aufforderung als Antwortnachricht. Beispiel:
    • Das habe ich nicht verstanden. Können Sie bitte eine gültige Farbe für das Hemd angeben?

Benennung

In diesem Abschnitt finden Sie Tipps zum Benennen von Agent-Ressourcen.

Intent-Benennung

Wenn Ihr Agent viele Intents sollten Sie ein Benennungsschema in Betracht ziehen, das Ihnen hilft, sie zu organisieren. Es ist üblich, Intent-Namen mit Satzzeichen zu segmentieren, wobei die Genauigkeit von links nach rechts zunimmt. Darüber hinaus sollte ein Intent-Name die Absicht des Endnutzers für eine Unterhaltungsrunde widerspiegeln.

Es gibt viele gute Namensschemas, beispielsweise:

  • phone-service.order.cancel
  • phone-service.order.create
  • phone-service.order.change
  • tv-service.order.cancel
  • tv-service.order.create
  • tv-service.order.change
  • account.balance.get
  • account.balance.pay
  • account.address.get
  • account.address.update

Übergänge

In Zustands-Handler definierte Übergänge Kontrolle über die Konversation geben, indem Sie die aktive Seite ändern. In diesem Abschnitt finden Sie Tipps zum Organisieren der Umstellung von Agents.

Kostenlose Umstellungen

Wenn Sie eine Route definieren, die einen Übergang auslöst, dass es einen komplementären oder umgekehrten Weg geben kann.

Beispiel:

  • Wenn Sie eine Intent-Route für confirmation.yes haben, gehen Sie so vor: Sie können eine andere Route für confirmation.no festlegen.
  • Wenn Sie eine Bedingungsroute mit dem booleschen =-Operator definieren, Definieren Sie eine andere Route mit !=.

Endnutzereingaben verarbeiten

Dieser Abschnitt enthält Richtlinien für Intents und Trainingsformulierungen, damit der Agent Endnutzereingaben optimal verarbeiten kann.

Definieren Sie mindestens 20 Trainingsformulierungen

Sie sollten mindestens 20 Trainingsformulierungen für jeden Intent. Andernfalls hat das NLU-Modell möglicherweise nicht genügend Informationen um den Intent entsprechend anzupassen. Dies ist eine absolute Richtlinie. Idealerweise sollten Sie mehr, insbesondere für Head Intents großer Agenten wobei etwa 50 erwünscht sind.

Absichtsverzerrung beachten

Wenn ein oder mehrere Intents deutlich mehr Trainingsformulierungen als andere Intents haben, führt dies dazu, dass das NLU-Modell zugunsten der größeren Intents aufgrund unausgeglichene Daten. Diese Intent-Verzerrung kann auftreten, wenn sich die Anzahl der Trainingsformulierungen unterscheidet. in einer Größenordnung oder mehr.

In einigen Fällen ist das gewünschte Verhalten, weil Sie einige Intents definieren können, die häufiger abgeglichen werden sollten als andere, da sie den Eingaben der Endnutzer entsprechen, häufiger bei Live-Traffic.

In anderen Fällen kann dieses Verhalten unerwünscht sein, weil Sie keine Verzerrung zugunsten dieser größeren Intents wünschen. In diesem Fall die Anzahl der Trainingsformulierungen für diese größeren Intents reduzieren in der gleichen Größenordnung wie andere Intents haben. Beispiel:

Trainingsformulierungen für Intent A Trainingsformulierungen für Intent B Verzerrung für Intent B
20 50 Nein
20 200 Grenzwert
20 2000 Ja

Anzahl der Entitäten und Trainingsformulierungen

Für alle Entitätstypen, die in einem Intent verwendet werden:

  • Versehen Sie jedes Beispiel der Entitätstypen mit Anmerkungen.
  • Für jeden Entitätstyp Geben Sie mindestens fünf Trainingsformulierungen mit annotierten Beispielen an.
  • Geben Sie mindestens dreimal so viele Trainingsformulierungen wie Entitätstypen an. Beispiel: wenn Sie zehn verschiedene Entitätstypen für Anmerkungen in einem Intent verwenden, sollten Sie mindestens 30 Trainingsformulierungen haben.

Trainingsformulierungen sollten natürlich sein

Trainingsformulierungen sollten dialogorientiert und natürlich sein. sollten sie mit dem übereinstimmen, was die Nutzer tatsächlich sagen. Wenn möglich, Eingaben von Endnutzern aus der Produktion als Trainingsdaten verwenden, und dabei besonders auf die häufigsten achten.

Erforderliche Vielfalt an Trainingsformulierungen

Variationen von Fragen, Befehlen, Verben und Synonymen für Gattungsnamen hinzufügen damit deine Formulierungen ein breites Spektrum möglicher Anfragen abdecken.

Am besten formulieren Sie kürzere Formulierungen wie „Bezahlen Sie meine Rechnung“, sowie längere Sätze und Sätze wie „Ich habe gerade eine E-Mail erhalten, in der steht, dass ich meinen Kontoauszug bezahlen muss.“ Es wird kein Verhältnis zwischen kurzen und langen Wortgruppen empfohlen. aber Sie sollten dafür die tatsächlichen Endnutzereingaben berücksichtigen, an den Agent in der Produktion gesendet.

Trainingsformulierungen definieren, die sich in Länge, Formulierung und Satzstruktur unterscheiden ist wichtig, damit Ihr Agent gut trainiert werden kann. Für den vielfältigen Sake ist es nicht notwendig, aber es ist notwendig, genügend Abwechslung dass das NLU-Modell die der verschiedenen Endnutzereingaben zu verstehen. Wenn die Vielfalt zu gering ist, besteht die Gefahr einer Überanpassung. Mit anderen Worten: besteht die Gefahr, dass das Modell zu eng miteinander verbunden ist. zu den konkreten Beispielen, die Sie und lassen sich nicht genügend auf andere Beispiele verallgemeinern.

Vielfalt der Großschreibung

Die Großschreibung variiert je nach NLU-Modell, das der Agent verwendet.

Standard-NLU

Beim Standard-NLU-Modell wird nicht zwischen Groß- und Kleinschreibung unterschieden. In seltenen Fällen müssen Sie möglicherweise Trainingsformulierungen, die sich nur in der Groß- und Kleinschreibung unterscheiden. Dies gilt in der Regel in denen Sie erwarten, dass Endnutzer Text in Großbuchstaben eingeben.

Mögliche alternative Ansätze:

Erweiterte NLU

Im Gegensatz zum Standard-NLU-Modell muss beim erweiterten NLU-Modell die Groß- und Kleinschreibung beachtet werden. Mi. zu testen und die relevanten Trainingsdaten zu verwenden, um Abgleichsrate der Absichten.

Unnötige Vielfalt von Trainingsformulierungen

Vermeiden Sie geringe Abweichungen in Trainingsformulierungen, da sie dem NLU-Modell doppelte Informationen liefern. Beispiel: enthalten keine Varianten, die sich nur in folgenden Punkten unterscheiden:

  • Großschreibung: Wenn Sie das Standard-NLU-Modell verwenden, vermeiden Sie doppelte Einträge. Wortgruppen wie „Ticket bestellen“ und „Ticket bestellen“ außer in seltenen Fällen Cases. Beim erweiterten NLU-Modell wird jedoch zwischen Groß- und Kleinschreibung unterschieden und es sind mehr Trainingsformulierungen, um mehr Intent-Übereinstimmungen zu erzielen. Weitere Informationen finden Sie in der Weitere Informationen
  • Füllwörter: Beispiel: „Okay, Ticket bestellen“ und „Ticket bestellen“.
  • Zeichensetzung: Sag zum Beispiel: „Kannst du bitte helfen?“ und „Kannst du bitte helfen?“,

Konsistenz von Anmerkungen

Die für eine Anmerkung ausgewählte Trainingsformulierung sollte Folgendes enthalten: und nicht mehr als den Text, der zum Abgleich mit einer Entität erforderlich ist. Achten Sie außerdem darauf, dass ähnliche Teile von Trainingsformulierungen annotiert werden. für den gesamten Intent.

Beispiel: In der folgenden Tabelle sehen Sie gute und schlechte Erfahrungen, zum Annotieren mit der Systementität @sys.date:

Gut Schlecht
Abreise: 7. September Abflug zum 7. September
Abflug am 4. Juli Abreise am 4. Juli

Semantisch aussagekräftige Annotationen für Systementitäten verwenden

Die semantische Bedeutung einer für eine Anmerkung ausgewählten Trainingsformulierung kann vom Rest des Textes in einer Trainingsformulierung beeinflusst werden. Beispiel:

Trainingsformulierung mit Anmerkungen Semantische Bedeutung von annotiertem Text
Ich bin 7 Jahre alt Alter einer Person
Der Vertrag ist 7 Jahre lang gültig. Eine Zeitdauer

Dialogflow-Modelle für maschinelles Lernen berücksichtigen die semantische Bedeutung wenn Systementitäten abgeglichen werden. Die semantische Bedeutung der Trainingsformulierung muss mit der beabsichtigten semantischen Bedeutung der Systementität übereinstimmen.

Sie sollten beispielsweise nicht die Systementität @sys.duration verwenden. für die Anmerkung der ersten „7 Jahre“ Beispiel oben. Die semantische Bedeutung von „7 Jahre“ entspricht keiner einfachen Zeitdauer. Stattdessen sollten Sie „7“ auswählen. für die Anmerkung und verwenden Sie die Systementität @sys.number.

Intents zur Verarbeitung nicht konformer Antworten zum Ausfüllen von Formularen definieren

Sie können Intents definieren, um nicht konforme Antworten zum Ausfüllen von Formularen zu verarbeiten. Beispiel: fragt Ihr Kundenservicemitarbeiter möglicherweise „wann reisen Sie an?“, gefolgt von der Endnutzerantwort „Ich weiß es noch nicht“. Diese Antwort erfüllt nicht die Eingabeaufforderung für den Formularparameter, Wenn Ihr Agent jedoch eine Intent-Route hat, die dieser Antwort entsprechen kann, kann der Kundenservicemitarbeiter die Situation gut bewältigen.

@sys.any vermeiden

Vermeiden Sie die Verwendung des Systementitätstyps @sys.any. Sie sollte nur verwendet werden, wenn Sie alle Möglichkeiten ausgeschöpft haben, einschließlich der Erstellung benutzerdefinierter Entitäten. Dieser Entitätstyp ist sehr weit gefasst und kann unerwünschtes Verhalten verursachen.

Wenn Sie diesen Entitätstyp verwenden, Vermeiden Sie es, mehrere Teile einer einzelnen Trainingsformulierung mit Anmerkungen zu versehen mit diesem Entitätstyp aus, da dies Unklarheiten schafft, und das Agent-Verhalten ist nicht definiert.

Die Verwendung von @sys.any mit Formularparametern ist weniger gefährlich, Der Kundenservicemitarbeiter erwartet bestimmte Informationen wenn Sie nach Formularparametern gefragt werden.

Anmerkungen sollten eine Vielzahl von Entitätswerten enthalten

Beim Definieren annotierter Trainingsformulierungen sollten Sie in den Wortgruppen verschiedene Beispiele für Entitätswerte verwenden. Sie sollten nicht immer dasselbe Entitätsbeispiel verwenden für die Anmerkungen. Das folgende Beispiel zeigt gute und schlechte Anmerkungen für einen Produktentitätstyp:

Gut Schlecht
ich möchte ein T-Shirt kaufen ich möchte ein T-Shirt kaufen
Einen neuen hat bestellen Neues T-Shirt bestellen
Smartwatch in den Einkaufswagen legen Ein T-Shirt in den Einkaufswagen legen

Benutzerdefinierte Entitäten sollten Vielfalt enthalten

Benutzerdefinierte Entitäten sollten eine Vielzahl von Beispielen abdecken. Das NLU-Modell bietet Vielfalt für grammatische Formen, Sie müssen jedoch alle möglichen Elemente angeben.

Entitäten vermeiden, die aggressiv übereinstimmen

Definieren Sie keine Entitäten, die praktisch allgemeingültig sind. Das beeinträchtigt die Leistung und Qualität von ML. Fast alles in jeder Trainingsformulierung als mögliche Übereinstimmung bewertet.

Karten- und Listenentitäten sollten sich auf unterschiedliche Werte konzentrieren

Typen von Karten- und Listenentitäten sollten einen begrenzten Umfang haben die unterschiedliche Werte eines Informationstyps erfasst. Halten Sie Ihre Entitäten prägnant, kurz und einfach.

Wenn Ihre Entitätswerte kompliziert sind, liegt das möglicherweise daran, dass Trainingsformulierungen für die Absicht besser zu Ihrer Situation passen. Betrachten Sie beispielsweise Endnutzereingaben wie:

  • „Wie kann ich mit Tarif A ein Auslandsgespräch führen?“
  • „Using international data roaming with Plan B.“ (Internationales Daten-Roaming mit Tarif B verwenden.)

Erstellen Sie keine Entitätstypen für die Aktionen und Pläne, wie zum Beispiel so:

Entitätstyp für Aktionen Entitätstyp des Tarifs
„Wie kann ich ein Auslandsgespräch führen?“ Tarif A
"Verwendung von internationalem Daten-Roaming" „Plan B“

Stattdessen sollten Sie Trainingsformulierungen und Intent-Übereinstimmungen um die Aktionen und Entitäten für die Pläne zu erfassen.

Mit RegExp-Entitäten Kennungen erfassen, die keine Wörter sind

Wenn Sie Endnutzereingaben erfassen, die Nicht-Wortkennungen umfassen, sollten Sie RegExp-Entitäten an. Beispiel: Produkt-IDs wie „AA-256“ oder "AC-436", Regexp-Entität wie „[A–Z]{2}-\d{3}“.

Verschachteln von zusammengesetzten Entitäten vermeiden

Verwenden Sie in zusammengesetzten Entitäten nicht mehr als eine Verschachtelungsebene. Jede Verschachtelungsebene beeinträchtigt die Qualität erheblich.

Ähnliche Intents vermeiden

Jeder Intent sollte die Absicht des Endnutzers erfassen. Wenn Sie verschiedene Intents mit ähnlichen Trainingsformulierungen definieren, der Abgleich unzuverlässig, da das NLU-Modell nicht mit ausreichender Zuverlässigkeit feststellen kann, mit welchem Intent sie übereinstimmen soll.

Wenn zwei Trainingsformulierungen dieselbe Absicht darstellen, sollten sie zum selben Intent gehören. Beispiel: „Aktuelles Fälligkeitsdatum der Rechnung ändern“ und „mehr Zeit zum Bezahlen“. sollten beide zum selben Intent gehören. da beide eine Änderung des Fälligkeitsdatums beantragen. Sie können jedoch „Kann ich mit Tarif A ein Auslandsgespräch führen?“ und „Kann ich bei Tarif A internationales Daten-Roaming nutzen?“ zu verschiedenen Intents gehören, da die Endnutzer in jedem Fall etwas anderes wünschen.

Ähnliche Entitätstypen vermeiden

Sie sollten nicht mehrere Entitätstypen definieren mit ähnlichen Entitätseinträgen, da dies zu Ambiguität für das NLU-Modell führen kann.

Verwende No-Match-Ereignisse in der Produktion, um deine Intents zu verbessern

Wenn Sie den Agent in der Produktion ausführen, ist es unvermeidlich, dass manche Endnutzereingaben zu nicht übereinstimmende Ereignisse. Sie können diese Empfehlungen nutzen, um Ihren Agent zu verbessern auf eine der folgenden drei Arten:

  • Fügen Sie die Endnutzereingabe dem gewünschten Intent als Trainingsformulierung hinzu. Dies ist jedoch nicht immer die beste Option. Wenn Sie dies für den Intent mehrmals tun, kann es zu Intent Bias.
  • Bereinigen Sie die Trainingsformulierungen für den gewünschten Intent. damit alle die Absicht widerspiegeln. In einigen Fällen Intents mit abweichenden Trainingsformulierungen kann eine Übereinstimmung für den Intent verhindern.
  • Intents, die nicht mit der Endnutzereingabe abgeglichen werden sollen Trainingsformulierungen haben, die der Endnutzereingabe entsprechen, diese Trainingsformulierungen löschen.

Sonderzeichen vermeiden

Sonderzeichen in Trainingsformulierungen ({, _, #, [ usw.) werden ignoriert. Eine Ausnahme bilden Emoticons, wo sie wie erwartet funktionieren.

Füllwörter vermeiden

Füllwörter sind Wörter, die Sie ignorieren können und trotzdem den Text verstehen. Beispiel:

  • gefallen
  • kannst du bitte
  • hmmm
  • wie wäre es mit

Es ist unnötig, aber harmlos, Eingabewörter in Trainingsformulierungen zu verwenden, da sie vom NLU-Modell ignoriert werden. Sie sollten jedoch keine Trainingsformulierungen definieren, die sich nur durch Füllwörter unterscheiden.

Definieren Sie niemals Entitäten, die aus Füllwörtern bestehen.

Mit ML-Einstellungen experimentieren

Die ML-Einstellungen kann verwendet werden, um anzupassen, wie Endnutzereingaben verarbeitet werden. In den meisten Fällen dass die Standardeinstellungen gut funktionieren. Sie können jedoch können Sie die Einstellungen optimieren, um die Leistung des Agents zu verbessern.

Dem Endnutzer antworten

Dieser Abschnitt enthält Richtlinien für die Verwendung der Auftragsausführung Endanwendenden zu antworten.

Begrüßen Sie die Endnutzer

Ein neu erstellter Agent hat eine automatisch erstellte Intent-Route für den welcome-Intent. Sie sollten diese Route so bearbeiten, dass sie eine Nachricht zur Auftragsausführung enthält die den Endnutzer begrüßt. Diese Nachricht sollte den Agent beschreiben und den Endanwendenden ein Gefühl dafür geben, was sie alles kann.

Endnutzerinformationen bestätigen

Häufig ist es am besten, die von den Endnutzern angegebenen Informationen in den Antworten zu wiederholen. Dadurch wird der Endnutzer darüber informiert, dass der Agent seine Anfrage versteht.

Wenn ein Intent zugeordnet wird und ein Wechsel stattfindet, den Endnutzer darüber informieren, dass die Unterhaltung entsprechend ihrer Anfrage voranschreitet. Beispiel:

Dialog Beschreibung
Endnutzer: Ich habe Fragen zu meinem Girokonto.
Agent: Okay, was möchten Sie über Ihr Girokonto wissen?
Die Eingabe des Endnutzers führte zu einer Intent-Übereinstimmung und einer Route wurde gefolgt, die eine Meldung zur Auftragsausführung und einen Wechsel zu einer Seite enthielt, auf der Kontofragen geprüft werden. Der Agent bestätigt, dass der Endnutzer mehr über sein Girokonto erfahren möchte.

Wenn das Formular ausgefüllt ist, die von den Endanwendenden bereitgestellten Daten wiederholt werden. Beispiel:

Dialog Beschreibung
Endnutzer: Morgen
Agent: Okay, Ihr Haarschnitt ist für morgen um 19:00 Uhr geplant. Kann ich sonst noch weiterhelfen?
Der Endnutzer hat den Formularparameter „date“ angegeben. Das war der letzte Formularparameter auf der aktiven Seite. Der Kundenservicemitarbeiter hat Uhrzeit und Datum eines geplanten Haarschnitts bestätigt.

Gespräche anleiten

Der Agent sollte die Unterhaltung mit dem Endnutzer immer leiten. Das geht ganz einfach, indem du jede Antwort beendest. mit einer Frage wie:

  • Kann ich sonst noch weiterhelfen?
  • Was möchtest du über Beagle wissen?
  • Möchten Sie diese Bestellung stornieren oder senden?
  • Wie kann ich Ihnen helfen?
  • Reisen Sie allein oder mit jemandem?

Wenn Sie diese Fragen definieren, stellen Sie nicht mehrere Fragen wie:

  • Bist du noch hier? Auf welche Dienstleistung bezieht sich Ihre Anfrage?
  • Möchtest du diese Bestellung immer noch? Möchtest du etwas hinzufügen?

Die Endanwendenden antworten möglicherweise nur auf eine der Fragen, und der Agent behandelt diese Situation möglicherweise nicht richtig.

Fehler und unerwartete Endnutzereingaben verarbeiten

Dieser Abschnitt enthält Tipps zum Umgang mit Fehlern und unerwarteten Endnutzereingaben.

Event-Handler für integrierte Ereignisse erstellen

Sie sollten Ereignis-Handler für die integrierte Ereignisse je nach Anwendbarkeit. Die Verarbeitung dieser Ereignisse ähnelt dem Abfangen von Ausnahmen bei der Softwareprogrammierung. Je nach Situation sollten Sie die Ereignisse mit Parameterspezifische Event-Handler, seitenspezifische Event-Handler oder ablaufspezifischen Event-Handlern.

Webhook-Fehler verarbeiten

Wenn der Webhook-Dienst fehlschlägt, ist es wichtig, dass Ihr Agent mit dem Fehler umgehen kann. Dazu definieren Sie Event-Handler für die Webhook-spezifischen integrierte Ereignisse verwenden. Hier ist ein empfohlener Ansatz zum Umgang mit Webhook-Fehlern:

  • Geben Sie kein Übergangsziel aus dem Status-Handler das die Webhook-Aufruf Andernfalls wird der Ereignis-Handler für Webhook-Fehler nicht aufgerufen. Legen Sie stattdessen das Übergangsziel in der Webhook-Antwort fest aus dem Webhook-Dienst.
  • Wählen Sie eine Seite aus, auf der ein Fehlerzähler auf null initialisiert werden kann. Diese Seite sollte vor der Seite aktiv sein, die einen Webhook-Aufruf auslöst. Die Auftragsausführung für diese Seite sollte den Fehlerzähler initialisieren an 0 mit einem Voreinstellung für Auftragsausführungsparameter. Beispiel:

    Parameter Wert
    webhook-error-count 0
  • Erstellen Sie eine Webhook-Fehlerseite, die Webhook-Fehlerereignisse verarbeitet:

    • Die Auftragsausführung des Eintrags sollte den Fehler für den Endnutzer bestätigen, Außerdem sollte er einen Sitzungsparameter für Fehlerzähler mithilfe eines Voreinstellung für Auftragsausführungsparameter. Beispiel:

      Parameter Wert
      webhook-error-count $sys.func.ADD($session.params.webhook-error-count, 1)
    • Definieren Sie Zustandsroute mit einer Bedingung, die besagt, dass die Fehleranzahl unter der maximal zulässigen Anzahl liegt. (z. B. $session.params.webhook-error-count <= 3). Diese Route sollte eine Auftragsausführung enthalten, die den Endnutzer benachrichtigt der es noch einmal versucht. Für diese Route sollte folgendes Übergangsziel festgelegt sein: PREVIOUS_PAGE oder auf eine Seite, die einen weiteren Versuch unternehmen kann, den Webhook aufzurufen.

    • Bedingungsroute definieren, die eine Bedingung hat, die vom Fehler gezählt wird ist größer als zulässig (z. B. $session.params.webhook-error-count > 3). Diese Route sollte eine Auftragsausführung enthalten, die den Endnutzer benachrichtigt dass der Agent es nicht mehr versucht. Für diese Route sollte folgendes Übergangsziel festgelegt sein: eine Seite, die keine Webhook-Wiederholungsversuche auslöst.

  • Der Webhook-Event-Handler sollte ein Übergangsziel haben die zur Webhook-Fehlerseite weitergeleitet wird.

Tools

In diesem Abschnitt finden Sie Tipps zur Verwendung von Tools zur Verbesserung des Agent-Designs.

Validierungstool verwenden

Sie sollten in jedem Fall die Methode Validierungstool um den Agent zu prüfen. Dieses Tool erkennt einige der in diesem Leitfaden beschriebenen Probleme.

Funktion „Testläufe“ verwenden

Sie sollten immer Testläufe für Ihren Agent. Diese Testfälle können dazu beitragen, Regressionen zu vermeiden, während Ihr Agent weiterentwickelt wird, um weitere Szenarien zu bewältigen.