Dialogflow ES-Agent erstellen
In dieser Anleitung erfahren Sie, wie Sie mit der Dialogflow-Konsole einen einfachen Agent erstellen und testen.
Hinweis
Bevor Sie diese Anleitung lesen, sollten Sie mit Folgendem vertraut sein:
Agent erstellen
Wenn Sie noch keinen Agent erstellt haben, erstellen Sie jetzt einen:
- Rufen Sie die Dialogflow ES-Konsole auf.
- Wenn Sie dazu aufgefordert werden, melden Sie sich in der Dialogflow-Konsole an. Weitere Informationen finden Sie unter Dialogflow-Konsole – Übersicht.
- 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).
- Geben Sie den Namen des Agents, die Standardsprache und die Standardzeitzone ein.
- 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.
- Klicken Sie auf Create.
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 importieren. 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 und Entitäten.
So importieren Sie die Datei:
- Laden Sie die Datei
new-agent.zip
herunter. - Rufen Sie die Dialogflow ES-Konsole auf.
- Wählen Sie den Agent aus.
- Klicken Sie neben dem Namen des Agents auf die Schaltfläche settings für die Einstellungen.
- Wählen Sie den Tab Export and Import aus.
- Wählen Sie Restore From Zip aus und folgen Sie der Anleitung, um die Inhalte der heruntergeladenen 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:
- Rufen Sie die Dialogflow ES-Konsole auf.
- Wählen Sie den Agent aus, den Sie gerade erstellt haben.
- Klicken Sie im linken Seitenleistenmenü auf Intents.
In der Mitte der Konsole wird dann die Liste der Intents für den Agent angezeigt.
Standard-Fallback-Intent testen
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:
- Klicken Sie im linken Seitenleistenmenü neben Intents auf die Schaltfläche , um einen Intent hinzuzufügen.
- Geben Sie in das Feld Intent name den Wert
get-agent-name
ein. - Klicken Sie im Abschnitt Training Phrases auf Add training phrases.
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
Geben Sie im Abschnitt Responses Folgendes im Abschnitt Text Response ein:
My name is Dialogflow!
Klicken Sie auf Save und warten Sie, bis im Dialog Agent Training angezeigt wird, dass das Training abgeschlossen ist.
Intent testen
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:
- Klicken Sie im linken Seitenleistenmenü auf das Pluszeichen neben Intents.
- Benennen Sie den Intent oben im Intent-Formular mit
set-language
. - Fügen Sie die folgenden Trainingsformulierungen hinzu:
I know English
I speak French
I know how to write in German
Klicken Sie auf Save und warten Sie, bis im Dialog Agent Training angezeigt wird, dass das Training abgeschlossen ist.
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:
- 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:
- Scrollen Sie nach unten zum Bereich Responses.
- Fügen Sie die folgende Textantwort hinzu:
Wow! I didn't know you knew $language.
- Klicken Sie auf Save und warten Sie, bis im Dialog Agent Training angezeigt wird, dass das Training abgeschlossen ist.
Parameter testen
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:
- Klicken Sie im linken Seitenleistenmenü neben Entitäten auf die Schaltfläche .
- Geben Sie
language-programming
für den Namen der Entität ein. Fügen Sie die folgenden Entitätseinträge (Zeilen) hinzu:
Referenzwert Synonyme JavaScript JavaScript, js, ECMAScript Java Java Python Python, py Klicken Sie auf Save und warten Sie, bis im Dialog Agent Training angezeigt wird, dass das Training abgeschlossen ist.
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:
- Klicken Sie im linken Seitenleistenmenü auf Intents.
- Klicken Sie auf den Intent
set-language
. - Fügen Sie die folgenden Trainingsformulierungen hinzu:
I know javascript
I know how to code in Java
- Beachten Sie, dass die Programmiersprachen in diesen Trainingsformulierungen automatisch annotiert und den Parametern im Abschnitt Action and Parameters hinzugefügt werden.
- Fügen Sie im Abschnitt Responses die folgende zweite Textantwort hinzu:
$language-programming is an excellent programming language.
. - Klicken Sie auf Save und warten Sie, bis im Dialog Agent Training angezeigt wird, dass das Training abgeschlossen ist.
Neue Entität testen
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:
- Wählen Sie den Intent
set-language
aus, den Sie in den vorherigen Schritten erstellt haben. - Aktualisieren Sie im Abschnitt Response die Textantwort:
Wow! I didn't know you knew $language. How long have you known $language?
- Klicken Sie auf Save und warten Sie, bis im Dialog Agent Training angezeigt wird, dass das Training abgeschlossen ist.
- Klicken Sie im linken Seitenleistenmenü auf Intents.
- Setzen Sie den Mauszeiger auf den Intent
set-language
und klicken Sie auf Add follow-up intent. - Klicken Sie in der angezeigten Liste auf custom.
- Klicken Sie auf Save und warten Sie, bis im Dialog Agent Training angezeigt wird, dass das Training abgeschlossen ist.
Dialogflow benennt den Follow-up-Intent automatisch mit set-language - custom
.
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.
- Klicken Sie im linken Seitenleistenmenü auf Intents.
- Klicken Sie auf den Intent
set-language - custom
. - Fügen Sie die folgenden Trainingsformulierungen hinzu:
3 years
about 4 days
for 5 years
- Klicken Sie auf Save und warten Sie, bis im Dialog 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.
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:
- Aktualisieren Sie die
set-language - custom
-Intent-Textantwort aufI can't believe you've known #set-language-followup.language for $duration!
- Klicken Sie auf Save und warten Sie, bis im Dialog 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.