Dialogflow ES-Agent erstellen

In dieser Anleitung erfahren Sie, wie Sie mit der Dialogflow-Konsole einen einfachen Agent erstellen und testen.

Hinweise

Bevor Sie diese Anleitung lesen, sollten Sie mit Folgendem vertraut sein:

  1. Grundlagen von Dialogflow
  2. Einrichtungsschritte ausführen

Agent erstellen

Wenn Sie noch keinen Agent erstellt haben, erstellen Sie jetzt einen:

  1. Rufen Sie die Dialogflow ES-Konsole auf.
  2. Wenn Sie dazu aufgefordert werden, melden Sie sich in der Dialogflow-Konsole an. Weitere Informationen finden Sie unter Dialogflow-Konsole – Übersicht.
  3. Klicken Sie im linken Seitenleistenmenü auf Create agent (Agent erstellen). Wenn Sie bereits andere Agents haben, klicken Sie auf den Agent-Namen, scrollen Sie nach unten und klicken Sie dann auf Create new agent (Neuen Agent erstellen).
  4. Geben Sie den Namen des Agents, die Standardsprache und die Standardzeitzone ein.
  5. Wenn Sie bereits ein Projekt erstellt haben, geben Sie dieses Projekt ein. Wenn Sie zulassen möchten, dass die Dialogflow-Konsole das Projekt erstellt, wählen Sie Create a new Google project (Neues Google-Projekt erstellen) aus.
  6. Klicken Sie auf Erstellen.

Beispieldatei in Agent importieren

Bei den Schritten in dieser Anleitung werden hinsichtlich des Agents Annahmen getroffen. Daher müssen Sie einen für diese Anleitung vorbereiteten Agent import. Beim Import wird für diese Schritte die Wiederherstellungsoption verwendet, die alle Agent-Einstellungen, -Intents und -Entitäten überschreibt.

Der für diese Anleitung vorbereitete Agent ist ein neuer Agent ohne benutzerdefinierte Intents oder Entitäten.

So importieren Sie die Datei:

  1. Laden Sie die Datei new-agent.zip herunter.
  2. Rufen Sie die Dialogflow ES-Konsole auf.
  3. Wählen Sie den Agent aus.
  4. Klicken Sie neben dem Namen des Agents auf die Schaltfläche für die Einstellungen.
  5. Wählen Sie den Tab Export and Import (Export und Import) aus.
  6. Wählen Sie Wiederherstellen aus ZIP-Datei aus und folgen Sie der Anleitung, um die heruntergeladene ZIP-Datei wiederherzustellen.

Intents

Intents kategorisieren die Absicht des Endnutzers, eine Unterhaltung zu führen. Definieren Sie für jeden Agent eine Vielzahl von Intents, damit die kombinierten Intents eine vollständige Unterhaltung verarbeiten können.

Standard-Intent

Wenn Sie einen Agent erstellen, werden zwei Standard-Intents für Sie erstellt:

  • Standard-Begrüßungs-Intent: Dieser Intent wird zugeordnet, wenn der Endnutzer eine Unterhaltung mit Ihrem Agent beginnt. Der Intent sollte eine Antwort zurückgeben, der der Endnutzer entnehmen kann, was Ihr Agent macht oder was der Nutzer für den Start der Unterhaltung sagen muss.
  • Standard-Fallback-Intent: Dieser Intent wird zugeordnet, wenn der Agent den Endnutzerausdruck keinem anderen Intent zuordnen kann.

Rufen Sie die Intent-Liste für Ihren Agent auf, um die Intents zu sehen:

  1. Rufen Sie die Dialogflow ES-Konsole auf.
  2. Wählen Sie den Agent aus, den Sie gerade erstellt haben.
  3. Klicken Sie im linken Seitenleistenmenü auf Intents.

In der Mitte der Konsole wird dann die Liste der Intents für den Agent angezeigt.

Screenshot: Intents-Liste

Standard-Fallback-Intent testen

Screenshot: Simulator

Der Dialogflow-Simulator befindet sich außen rechts in der Konsole. Mit diesem Simulator können Sie Ihren Agent testen. Dazu sprechen Sie Mitteilungen oder geben diese ein.

Probieren Sie den Agent jetzt aus:

  • Klicken Sie auf das Feld Try it now.
  • Geben Sie What is your name? ein.
  • Drücken Sie die Eingabetaste.

Die Antwort des Agents wird im Bereich Default Response angezeigt. Da Ihre Eingabe keinem Intent entsprochen hat, wurde der Standard-Fallback-Intent zugeordnet und eine der Standardantworten ausgegeben.

Neuen Intent erstellen

Mit den Schritten in diesem Abschnitt wird ein Intent erstellt, der die Frage "Wie lautet dein Name?" beantworten kann. Für jeden Intent müssen Sie eine Vielzahl von Trainingsformulierungen definieren. Eine Trainingsformulierung ist ein Beispiel dafür, was ein Endnutzer dem Agent schriftlich oder mündlich mitteilen könnte. Sie wird auch als Endnutzerausdruck bezeichnet. Sie sollten viele Trainingsformulierungen definieren, um Dialogflow eine Bandbreite an Ausdrücken zur Verfügung zu stellen, die den möglichen Intents entsprechen sollten.

So erstellen Sie einen Intent:

  1. Klicken Sie im linken Seitenleistenmenü neben Intents auf die Schaltfläche , um einen Intent hinzuzufügen.
  2. Geben Sie in das Feld Intent name den Wert get-agent-name ein.
  3. Klicken Sie im Abschnitt Training Phrases auf Add training phrases.
  4. Geben Sie die folgenden Trainingsformulierungen ein und drücken Sie nach jeder Eingabe die Eingabetaste:

    • What is your name?
    • Do you have a name?
    • Tell me your name

    Screenshot: Trainingsformulierungen

  5. Geben Sie im Abschnitt Responses Folgendes im Abschnitt Text Response ein:

    • My name is Dialogflow!

    Screenshot: Trainingsformulierungen

  6. Klicken Sie auf Save (Speichern) und warten Sie, bis im Dialogfeld Agent Training angezeigt wird, dass das Training abgeschlossen ist.

Intent testen

Screenshot: Simulator

Geben Sie in den Simulator What's your name? ein und drücken Sie die Eingabetaste.

Ihr Agent reagiert korrekt auf den Ausdruck, obwohl sich der Ausdruck ein wenig von den von Ihnen bereitgestellten Trainingsformulierungen unterscheidet.

Dialogflow verwendet Trainingsformulierungen als Beispiele für ein ML-Modell, das Endnutzerausdrücke mit Intents abgleicht. Das Modell prüft den Ausdruck für jeden Intent im Agent und gibt jedem Intent einen Wert. Der am höchsten bewertete Intent wird zugeordnet. Wenn der Intent mit der höchsten Bewertung eine sehr niedrige Bewertung hat, wird stattdessen der Fallback-Intent verwendet.

Parameter und Entitäten

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 festlegt, 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.

Beim Erstellen eines Agents legen Sie fest, wie Daten aus den Anmerkungen Ihrer Trainingsformulierungen extrahiert werden, und konfigurieren die zugehörigen Parameter.

Parameter erstellen

Erstellen Sie einen neuen Intent mit Parametern:

  1. Klicken Sie im linken Seitenleistenmenü auf das Pluszeichen neben Intents.
  2. Benennen Sie den Intent oben im Intent-Formular mit set-language.
  3. Fügen Sie die folgenden Trainingsformulierungen hinzu:
    • I know English
    • I speak French
    • I know how to write in German
  4. Klicken Sie auf Save (Speichern) und warten Sie, bis im Dialogfeld Agent Training angezeigt wird, dass das Training abgeschlossen ist.

    Screenshot: Trainingsformulierung mit Anmerkungen

Dialogflow erkennt in Trainingsformulierungen automatisch Parameter für Systementitäten. Diese Entitäten werden von Dialogflow für viele gängige Datentypen wie Ort, Farbe oder Datum bereitgestellt.

Unterhalb des Abschnitts Training phrases erstellt Dialogflow eine Zeile in der Tabelle Action & parameters:

Screenshot: Trainingsformulierung mit Anmerkungen

  • Required: Das Kästchen ist nicht angeklickt, daher ist dieser Parameter optional.
  • Parameter Name: Dieser Parameter erhält automatisch den Namen language, da der Parameter als Sprache erkannt wird.
  • Entity: Dies ist der Entitätstyp. Er wird als Systementität @sys.language erkannt.
  • Value: Dies ist die Kennzeichnung, die Sie verwenden, wenn Sie auf den Wert dieses Parameters verweisen.
  • Is List: Das Kästchen ist nicht angeklickt, daher ist der Parameter keine Liste.

Parameterdaten in einer Antwort verwenden

Der Wert eines Parameters kann in Ihren Antworten verwendet werden. Sie haben beispielsweise beim Erstellen eines Agents die Möglichkeit, den Parameterverweis $language in Ihren Antworten anzuwenden. Zur Laufzeit wird er dann durch die im Endnutzerausdruck angegebene Sprache ersetzt.

Fügen Sie eine Antwort hinzu, die einen Parameter verwendet:

  1. Scrollen Sie nach unten zum Bereich Responses.
  2. Fügen Sie die folgende Textantwort hinzu: Wow! I didn't know you knew $language.
  3. Klicken Sie auf Save (Speichern) und warten Sie, bis im Dialogfeld Agent Training angezeigt wird, dass das Training abgeschlossen ist.

Parameter testen

Screenshot: Simulator

Geben Sie im Simulator I know Russian ein.

Sie sehen, dass Dialogflow den Parameter language mit dem Wert Russian korrekt extrahiert und in der Antwort Russian korrekt an der Stelle einfügt, an der zuvor der Parameterverweis verwendet wurde.

Eigene Entitäten erstellen

In den meisten Fällen müssen Sie bestimmte Informationen von Nutzern erfassen, die nicht von Systementitäten bereitgestellt werden. Hierfür können Sie benutzerdefinierte Entitäten erstellen.

Erstellen Sie eine benutzerdefinierte Entität:

  1. Klicken Sie im linken Seitenleistenmenü neben Entitäten auf die Schaltfläche .
  2. Geben Sie language-programming für den Namen der Entität ein.
  3. Fügen Sie die folgenden Entitätseinträge (Zeilen) hinzu:

    Referenzwert Synonyme
    JavaScript JavaScript, js, ECMAScript
    Java Java
    Python Python, py
  4. Klicken Sie auf Save (Speichern) und warten Sie, bis im Dialogfeld Agent Training angezeigt wird, dass das Training abgeschlossen ist.

Screenshot: Verwendung der Entität

Dialogflow kann zwar einfache Dinge wie Pluralbildung und Großschreibung verarbeiten, doch wird empfohlen, möglichst viele Synonyme für Ihre Einträge hinzuzufügen. Je mehr Sie hinzufügen, desto besser kann der Agent die Entitäten bestimmen.

Neue Entität verwenden

Fügen Sie dem set-language-Intent Trainingsformulierungen hinzu, die die neue Entität verwenden:

  1. Klicken Sie im linken Seitenleistenmenü auf Intents.
  2. Klicken Sie auf den Intent set-language.
  3. Fügen Sie die folgenden Trainingsformulierungen hinzu:
    • I know javascript
    • I know how to code in Java
  4. Beachten Sie, dass die Programmiersprachen in diesen Trainingsformulierungen automatisch annotiert und den Parametern im Abschnitt Action and Parameters hinzugefügt werden.
  5. Fügen Sie im Abschnitt Responses die folgende zweite Textantwort hinzu: $language-programming is an excellent programming language..
  6. Klicken Sie auf Save (Speichern) und warten Sie, bis im Dialogfeld Agent Training angezeigt wird, dass das Training abgeschlossen ist.

Neue Entität testen

Screenshot: Simulator

Geben Sie im Simulator I know how to code in py ein.

Sie sehen, dass Dialogflow korrekt py für den Parameter language-programming als Python-Entität extrahiert und den Wert in die Antwort eingefügt hat.

Kontexte

Zur Steuerung des Ablaufs einer Unterhaltung können Sie auch zusätzlichen Kontext nutzen.

Follow-up-Intent hinzufügen

Mit Follow-up-Intents können Sie Unterhaltungen auf einfache Weise steuern, ohne Kontexte manuell erstellen oder verwalten zu müssen.

Beim Erstellen eines Follow-up-Intents wird dem übergeordneten Intent ein Ausgabekontext und dem untergeordneten Intent ein Eingabekontext mit dem gleichen Namen hinzugefügt. Das bedeutet, dass der Follow-up-Intent nur dann zugeordnet wird, wenn der übergeordnete Intent in der vorherigen Unterhaltung zugeordnet wurde.

Fügen Sie dem Intent set-language einen benutzerdefinierten Follow-up-Intent hinzu:

  1. Wählen Sie den Intent set-language aus, den Sie in den vorherigen Schritten erstellt haben.
  2. Aktualisieren Sie im Abschnitt Response (Antwort) die Textantwort:
    • Wow! I didn't know you knew $language. How long have you known $language?
  3. Klicken Sie auf Save (Speichern) und warten Sie, bis im Dialogfeld Agent Training angezeigt wird, dass das Training abgeschlossen ist.
  4. Klicken Sie im linken Seitenleistenmenü auf Intents.
  5. Setzen Sie den Mauszeiger auf den Intent set-language und klicken Sie auf Add follow-up intent.
  6. Klicken Sie in der angezeigten Liste auf custom.
  7. Klicken Sie auf Save (Speichern) und warten Sie, bis im Dialogfeld Agent Training angezeigt wird, dass das Training abgeschlossen ist.

Dialogflow benennt den Follow-up-Intent automatisch mit set-language - custom.

Screenshot: Follow-up

Intent-Abgleich mit Follow-up-Intents

Follow-up-Intents werden erst zugeordnet, nachdem der übergeordnete Intent zugeordnet wurde. Da der set-language - custom-Intent erst nach dem set-language-Intent zugeordnet wird, können Sie davon ausgehen, dass dem Nutzer gerade die Frage How long have you known $language? gestellt wurde. Nun haben Sie die Möglichkeit, Trainingsformulierungen für wahrscheinliche Nutzerantworten auf diese Frage hinzuzufügen.

  1. Klicken Sie im linken Seitenleistenmenü auf Intents.
  2. Klicken Sie auf den Intent set-language - custom.
  3. Fügen Sie die folgenden Trainingsformulierungen hinzu:
    • 3 years
    • about 4 days
    • for 5 years
  4. Klicken Sie auf Save (Speichern) und warten Sie, bis im Dialogfeld Agent Training angezeigt wird, dass das Training abgeschlossen ist.

Follow-up-Intent testen

Geben Sie I know French in den Simulator ein und beantworten Sie die Frage How long have you known French mit about 2 weeks.

Obwohl es keine Antwort für den zweiten Ausdruck (about 2 weeks) gibt, können Sie sehen, dass der Ausdruck dem richtigen Intent (set-language - custom) zugeordnet und der duration-Parameter korrekt geparst wird (2 weeks).

Intents und Kontexte

Prüfen Sie, ob beim Intent set-language als Ausgabekontext set-language-followup mit vorangestellter Zahl 2 aufgeführt ist. Diese Zahl wird als Lebensdauer bezeichnet.

Screenshot: Ausgabekontext

Nachdem der Intent set-language zugeordnet wurde, ist der Kontext set-language-followup aktiv und für zwei Runden mit der Unterhaltung verknüpft (Lebensdauer 2). Wenn der Nutzer auf die Frage How long have you known $language? antwortet, ist daher der Kontext set-language-followup aktiv.

Prüfen Sie, ob beim Intent set-language - custom als Eingabekontext set-language-followup aufgeführt ist. Dies entspricht dem Ausgabekontext für den Intent set-language.

Intents mit einem Eingabekontext, der mit einem aktiven Kontext übereinstimmt, werden bei der Zuordnung von Intents in Dialogflow erheblich bevorzugt.

Kontexte und Parameter

Kontexte speichern Parameterwerte. Sie können auf die Werte von Parametern zugreifen, die im Intent set-language definiert sind, wenn dessen Ausgabekontext aktiv ist.

Beim Intent set-language - custom haben Sie nur danach gefragt, wie lange der Nutzer die Sprache schon spricht, nicht jedoch nach der betreffenden Sprache selbst.

So verweisen Sie in der Antwort auf die Sprache:

  1. Aktualisieren Sie die set-language - custom-Intent-Textantwort auf I can't believe you've known #set-language-followup.language for $duration!
  2. Klicken Sie auf Save (Speichern) und warten Sie, bis im Dialogfeld Agent Training angezeigt wird, dass das Training abgeschlossen ist.

Der Verweis #set-language-followup.language wird als Parameterverweis für einen aktiven Kontext bezeichnet.

Kontextparameter testen

Geben Sie I know French in den Simulator ein und antworten Sie dann auf die Frage mit 1 week. Beachten Sie, dass dabei der Parameterwert language aus dem Kontext abgerufen wird.

Produktion

Bevor Sie den Agent in der Produktion ausführen, sollten Sie die Best Practices für die Produktion implementieren.

Nächste Schritte

Kurzanleitung für die Auftragsausführung