Dialogflow-Grundlagen

Auf dieser Seite werden die Grundlagen der Verwendung von Dialogflow beschrieben. Lesen Sie diese Seite, bevor Sie mit anderen Dokumenten oder Kurzanleitungen fortfahren.

Nutzerinteraktionen mit Technologie unterstützen

Herkömmliche Benutzeroberflächen funktionieren nur mit strukturierten und vorhersagbaren Eingaben. Die Verwendung dieser Oberflächen wird dadurch unnatürlich und manchmal schwierig. Diese strukturierte Eingabe muss leicht nachzuvollziehen sein, damit Nutzer erkennen können, was zu tun ist. Idealerweise sollten Benutzeroberflächen anhand der von den Nutzern verwendeten natürlichen Sprache erkennen können, was diese wollen.

Stellen Sie sich beispielsweise eine einfache Nutzeranfrage wie "Wie ist die Wettervorhersage für heute?" vor. Andere Endnutzer fragen möglicherweise auch Folgendes:

  • "Wie ist das Wetter gerade?"
  • "Wie ist die Temperatur morgen in San Francisco?"
  • "Wie wird das Wetter am 21. sein?"

Selbst bei so einfachen Fragen ist erkennbar, dass Unterhaltungen schwer zu implementieren sind. Damit natürliche Sprache richtig interpretiert und verarbeitet werden kann, ist ein sehr leistungsfähiger Sprach-Parser erforderlich. Dialogflow übernimmt dies für Sie, sodass Sie eine hochwertige Nutzererfahrung mit der Konversation bereitstellen können.

Agents

Ein Dialogflow-Agent ist ein virtueller Agent, der Unterhaltungen mit Ihren Endnutzern abwickelt. Mithilfe von "Natural Language Understanding" (NLU) versteht der Agent die Nuancen der menschlichen Sprache. Im Laufe der Unterhaltung übersetzt Dialogflow Nutzereingaben in Text- oder Audioform in strukturierte Daten, die Ihre Anwendungen und Dienste verstehen können. Sie entwerfen und erstellen einen Dialogflow-Agent, der die für Ihr System erforderlichen verschiedenen Typen von Unterhaltungen verarbeitet.

Ein Dialogflow-Agent ähnelt einem menschlichen Callcenter-Agent. Sie trainieren beide, um erwartete Konversationsszenarien zu bewältigen, und Ihre Schulung muss nicht übermäßig explizit sein.

Intents

Ein Intent kategorisiert die Absicht eines Endnutzers für eine Unterhaltungsrunde. Definieren Sie für jeden Agent einen Vielzahl von Intents, damit die kombinierten Intents eine vollständige Unterhaltung verarbeiten können. Wenn ein Endnutzer etwas schreibt oder sagt, wird dies als Endnutzerausdruck bezeichnet. Dialogflow ordnet den Endnutzerausdruck dem geeignetsten Intent im Agent zu. Die Zuordnung eines Intents wird auch als Intent-Klassifizierung bezeichnet.

Sie können beispielsweise einen Wetter-Agent erstellen, der Endnutzerfragen zum Wetter erkennt und darauf reagiert. In diesem Fall würden Sie wahrscheinlich einen Intent für Fragen zur Wettervorhersage definieren. Wenn ein Endnutzer dann fragt: "Wie wird das Wetter?", ordnet Dialogflow den Endnutzerausdruck dem Wettervorhersage-Intent zu. Sie können den Intent auch so definieren, dass nützliche Informationen aus dem Endnutzerausdruck extrahiert werden, z. B. eine Zeit oder einen Ort für die gewünschte Wettervorhersage. Diese extrahierten Daten sind wichtig für das System, damit eine Wetterabfrage für den Endnutzer ausgeführt werden kann.

Agent extrahiert Daten aus einem Endnutzerausdruck zur Vorhersage des Wetters

Ein einfacher Intent umfasst Folgendes:

  • Trainingsformulierungen: Es folgen einige Beispielformulierungen zu möglichen Endnutzeräußerungen. Wenn ein Endnutzerausdruck eine gewisse Ähnlichkeit mit einer dieser Formulierungen aufweist, ordnet Dialogflow den Intent zu. Sie müssen dabei nicht jede denkbare Formulierung angeben. Das integrierte maschinelle Lernen von Dialogflow erweitert Ihre Liste automatisch um ähnliche Äußerungen.
  • Aktion: Sie können eine Aktion für jeden Intent definieren. Wenn ein Intent zugeordnet wird, stellt Dialogflow die Aktion für das System bereit. Sie können dann damit bestimmte Aktionen auslösen, die im System definiert sind.
  • Parameter: Wenn ein Intent zur Laufzeit zugeordnet wird, übergibt Dialogflow die aus dem Endnutzerausdruck extrahierten Werte als Parameter. Jeder Parameter hat einen Typ, der als Entitätstyp bezeichnet wird und genau bestimmt, wie die Daten extrahiert werden. Im Unterschied zu unstrukturierten Endnutzereingaben sind Parameter strukturierte Daten, mit denen auf einfache Weise ein bestimmter Ablauf ausgeführt werden kann oder Antworten generiert werden können.
  • Antworten: Sie definieren Text-, Sprach- oder visuelle Antworten, die an den Endnutzer zurückgegeben werden sollen. Diese können die Frage des Endnutzers beantworten, ihn um weitere Informationen bitten oder die Unterhaltung beenden.

Die folgende Grafik zeigt den grundlegenden Ablauf der Intent-Zuordnung und Antworten an den Endnutzer:

Agent und Intent verarbeiten einen Endnutzerausdruck

Entitäten

Jeder Intent-Parameter hat einen Typ, den sogenannten Entitätstyp, der genau festlegt, wie Daten aus einem Endnutzerausdruck extrahiert werden.

Dialogflow stellt vordefinierte Systementitäten bereit, die mit vielen gängigen Datentypen übereinstimmen. So gibt es beispielsweise Systementitäten für den Abgleich von Datumsangaben, Uhrzeiten, Farben und E-Mail-Adressen. Sie können auch eigene benutzerdefinierte Entitäten erstellen, um benutzerdefinierte Daten zuzuordnen. Es ist zum Beispiel möglich, mit der Entität Gemüse alle Gemüsearten zu erfassen, die bei einem Lebensmittelhändler erhältlich sind.

Kontexte

Kontexte in Dialogflow sind vergleichbar mit Kontexten der natürlichen Sprache. Wenn eine Person zu Ihnen sagt, "sie sind orangefarben", benötigen Sie Kontext, um zu verstehen, worauf sie sich bezieht. In ähnlicher Weise benötigt Dialogflow einen Kontext, damit es einen Intent korrekt zuordnen und Endnutzerausdrücke dieser Art verarbeiten kann.

Mithilfe von Kontextangaben können Sie den Ablauf einer Konversation steuern. Sie können den Kontext für einen Intent konfigurieren, wenn Sie Ein- und Ausgabekontexte festlegen, die durch Stringnamen gekennzeichnet sind. Wird ein Intent zugeordnet, werden die für diesen Intent konfigurierten Ausgabekontexte aktiviert. Solange Kontexte aktiv sind, ordnet Dialogflow mit größerer Wahrscheinlichkeit Intents zu, deren konfigurierte Eingabekontexte den derzeit aktiven Kontexten entsprechen.

Das folgende Diagramm zeigt ein Beispiel mit Kontext für einen Bank-Agent.

Diagramm von einem Nutzer, der mit Intents und Kontext interagiert.
  1. Der Endnutzer fragt nach Informationen zu seinem Girokonto.
  2. Dialogflow ordnet den Endnutzerausdruck dem Intent CheckingInfo zu. Der Intent hat einen Ausgabekontext checking, sodass der Kontext aktiv wird.
  3. Der Agent fragt den Endnutzer, welche Art von Informationen er zu seinem Girokonto einholen möchte.
  4. Der Endnutzer antwortet "Meinen Kontostand".
  5. Dialogflow ordnet den Endnutzerausdruck dem Intent CheckingBalance zu. Der Intent hat einen Eingabekontext checking. Er muss aktiv sein, damit der Intent zugeordnet wird. Es kann auch ein ähnlicher SavingsBalance-Intent vorhanden sein, um denselben Endnutzerausdruck zuzuordnen, wenn ein savings-Kontext aktiv ist.
  6. Nachdem Ihr System die erforderlichen Datenbankabfragen ausgeführt hat, antwortet der Agent mit dem Kontostand.

Follow-up-Intents

Mit Follow-up-Intents können Sie automatisch Kontexte für Intent-Paare festlegen. Ein Follow-up-Intent ist ein untergeordnetes Element des zugeordneten übergeordneten Intents. Beim Erstellen eines Follow-up-Intents wird dem übergeordneten Intent automatisch ein Ausgabekontext und dem Follow-up-Intent ein gleichnamiger Eingabekontext hinzugefügt. Der Follow-up-Intent wird nur zugeordnet, wenn in der vorherigen Unterhaltungsrunde der übergeordnete Intent zugeordnet wurde. Sie können auch mehrere Ebenen mit verschachtelten Follow-up-Intents erstellen.

Dialogflow bietet viele vordefinierte Follow-up-Intents für häufige Antworten von Endnutzern wie "Ja", "Nein" oder "Abbrechen". Darüber hinaus können Sie eigene Follow-up-Intents erstellen, um benutzerdefinierte Antworten zu verarbeiten.

Dialogflow-Konsole

Dialogflow bietet mit der Dialogflow-Konsole eine Web-UI (Dokumentation ansehen, Konsole öffnen). Mit dieser Konsole können Sie Agents erstellen und testen.

Die Dialogflow-Konsole unterscheidet sich von der Google Cloud Platform (GCP) Console (Dokumentation ansehen, Konsole öffnen). Die Dialogflow-Konsole dient zum Verwalten von Dialogflow-Agents, während mit der GCP Console GCP-spezifische Dialogflow-Einstellungen (z. B. für die Abrechnung) und andere GCP-Ressourcen verwaltet werden.

In den meisten Fällen sollten Sie die Dialogflow-Konsole zum Erstellen von Agents verwenden, aber Sie können auch die Dialogflow-API verwenden, um Agents für erweiterte Szenarien zu erstellen.

Nutzerinteraktionen mit Integrationen

Dialogflow lässt sich in viele beliebte Unterhaltungsplattformen wie Google Assistant, Slack und Facebook Messenger integrieren. Wenn Sie einen Agent für eine der Plattformen erstellen möchten, sollten Sie eine der vielen Integrationsoptionen verwenden. Direkte Interaktionen von Endnutzern werden für Sie abgewickelt, sodass Sie sich auf die Erstellung Ihres Agents konzentrieren können. Jede Integration behandelt die Interaktionen von Endnutzern auf plattformspezifische Art und Weise. Weitere Informationen finden Sie in der Dokumentation Ihrer Integrationsplattform.

Ausführung für Integrationen

Standardmäßig reagiert Ihr Agent auf einen zugeordneten Intent mit einer statischen Antwort. Wenn Sie eine der Integrationsoptionen verwenden, können Sie mit der Auftragsausführung eine dynamischere Antwort bereitstellen. Wenn Sie die Auftragsausführung für einen Intent aktivieren, antwortet Dialogflow dadurch auf diesen Intent, dass er einen von Ihnen definierten Dienst aufruft. Beispiel: Ein Endnutzer möchte für Freitag einen Friseurtermin vereinbaren. Ihr Dienst kann in diesem Fall Ihre Datenbank prüfen und dem Endnutzer die Verfügbarkeitsinformationen für Freitag mitteilen.

Für jeden Intent gibt es eine Einstellung, mit der die Auftragsausführung aktiviert werden kann. Sie sollten die Auftragsausführung immer aktivieren, wenn ein Intent eine Aktion Ihres Systems oder eine dynamische Antwort benötigt. Für Intents ohne Auftragsausführung verwendet Dialogflow die statische Antwort, die Sie definiert haben.

Für zugeordnete Intents mit aktivierter Auftragsausführung sendet Dialogflow Anfragen mit Informationen über den zugeordneten Intent an Ihren Webhook-Dienst. Ihr System kann alle erforderlichen Aktionen durchführen und Dialogflow Informationen zum weiteren Vorgehen bereitstellen. Das folgende Diagramm zeigt den Ablauf der Auftragsausführung.

Diagramm des Ablaufs der Auftragsausführung
  1. Der Endnutzer gibt einen Ausdruck ein oder spricht ihn aus.
  2. Dialogflow ordnet den Ausdruck des Endnutzers einem Intent zu und extrahiert Parameter.
  3. Dialogflow sendet eine Nachricht mit einer Webhook-Anfrage an Ihren Webhook-Dienst. Diese Nachricht enthält Informationen zum zugeordneten Intent, zur Aktion, zu den Parametern und der für den Intent definierten Antwort.
  4. Ihr Dienst führt die geeigneten Aktionen aus, z. B. Datenbankabfragen oder externe API-Aufrufe.
  5. Ihr Dienst sendet eine Nachricht mit der Webhook-Antwort an Dialogflow. Die Nachricht enthält die Antwort, die an den Endnutzer gesendet werden soll.
  6. Dialogflow sendet die Antwort an den Endnutzer.
  7. Der Endnutzer sieht oder hört die Antwort.

Nutzerinteraktionen mit der API

Wenn Sie keine Integrationsoption verwenden, müssen Sie Code schreiben, der direkt mit dem Endnutzer interagiert. Sie müssen außerdem direkt mit der Dialogflow-API interagieren – für jeden Sprecherwechsel, um Endnutzerausdrücke zu senden und Intent-Übereinstimmungen zu erhalten. Das folgende Diagramm zeigt den Verarbeitungsablauf bei der Interaktion mit der API.

Diagramm zum Ablauf für die API
  1. Der Endnutzer gibt einen Ausdruck ein oder spricht ihn aus.
  2. Der Dienst sendet diesen Endnutzerausdruck in einer Anfragenachricht zur Intent-Erkennung an Dialogflow.
  3. Dialogflow sendet eine Antwortnachricht für die Intent-Erkennung an den Dienst. Diese Nachricht enthält Informationen zum zugeordneten Intent, zur Aktion, zu den Parametern und der für den Intent definierten Antwort.
  4. Ihr Dienst führt die geeigneten Aktionen aus, z. B. Datenbankabfragen oder externe API-Aufrufe.
  5. Ihr Dienst sendet eine Antwort an den Endnutzer.
  6. Der Endnutzer sieht oder hört die Antwort.