Fundierte Entscheidungsfindung mit Dialogflow CX-Generatoren und Datenspeichern

1. Übersicht

Zuletzt aktualisiert:10.10.2023

Aufgaben

In diesem Codelab verwenden Sie Vertex AI Conversation und Dialogflow CX, um einen virtuellen Kundenservicemitarbeiter zu erstellen, bereitzustellen und zu konfigurieren, der Personen hilft, die Blut spenden möchten, und dafür zu sorgen, dass sie die Teilnahmevoraussetzungen erfüllen. Der Agent verwendet echte öffentliche Daten und die generativen Large Language Models (LLMs) von Google während der Dialogflow CX-Auftragsausführung.

Welche Funktionen werden verwendet?

Im Codelab konfigurieren und verwenden Sie drei verschiedene Funktionen:

Datenspeicher-Agents

Mit der Funktion Vertex AI Conversation wird ein spezieller Dialogflow-Agent erstellt, der als Datenspeicher-Agent bezeichnet wird.

Mit dieser Funktion geben Sie eine Website-URL, strukturierte Daten oder unstrukturierte Daten (Datenspeicher) an. Google parst Ihre Inhalte und erstellt einen virtuellen Kundenservicemitarbeiter, der auf Datenspeichern und Large Language Models basiert. Ihre Kunden und Endnutzer können dann mit dem Kundenservicemitarbeiter sprechen und Fragen zu den Inhalten stellen. Informationen zu diesem Agent-Typ finden Sie in der Einführung in Vertex AI Conversation.

Generatoren

Die Generator-Funktion ist eine Dialogflow CX-Funktion, mit der Entwickler die neuesten generativen Large Language Models (LLMs) und benutzerdefinierten Prompts von Google verwenden können, um zur Laufzeit Agent-Antworten zu generieren. Ein Generator kann allgemeine Antworten verarbeiten, die allgemeines Wissen aus einem großen Text-Dataset, mit dem er trainiert wurde, oder Kontext aus der Unterhaltung beinhalten.

Generatives Fallback

Die generative Fallback-Funktion verwendet die neuesten generativen Large Language Models (LLMs) von Google, um Antworten des virtuellen Kundenservicemitarbeiters zu generieren, wenn die Endnutzereingabe keinem Intent oder Parameter für das Ausfüllen eines Formulars entspricht. Das Feature kann mit einem Text-Prompt konfiguriert werden, der das LLM anweist, wie zu antworten ist. Sie können einen vordefinierten Text-Prompt verwenden oder eigene Prompts hinzufügen. Sie können das generative Fallback für No-Match-Event-Handler aktivieren, die in Abläufen, Seiten oder beim Ausfüllen von Parametern verwendet werden. Wenn das generative Fallback für ein No-Match-Ereignis aktiviert ist, versucht Dialogflow bei jedem Auslösen dieses Ereignisses, eine generierte Antwort zu erzeugen, die dem Nutzer zurückgegeben wird. Wenn die Antwort nicht generiert werden kann, wird stattdessen die reguläre Agent-Antwort ausgegeben. Wenn Sie mehr über generatives Fallback erfahren möchten, probieren Sie dieses Codelab aus.

Lerninhalte

  • Datenspeicher-Agent aus unstrukturierten Daten erstellen
  • Wissens-Handler verwenden, um Endnutzern die Kommunikation mit einem virtuellen Kundenservicemitarbeiter über die einem Datenspeicher hinzugefügten Inhalte zu ermöglichen.
  • Hier erfahren Sie, wie Sie einen Generator-Prompt-Text konfigurieren und ihn mithilfe von Platzhaltern für integrierte Generator-Prompts kontextabhängig gestalten.
  • So markieren Sie Wörter als Platzhalter für Generator-Prompts und verknüpfen sie später in der Auftragsausführung mit Sitzungsparametern, um ihre Werte während der Ausführung zu verwenden.
  • Wie ein Generator für Antworten konfiguriert wird, die Wissen aus einem großen Text-Dataset und Kontext aus der aktuellen Unterhaltung beinhalten.
  • Mit Generatoren eine formelle E-Mail erstellen
  • Agent testen und Kundenfragen simulieren, die Antworten auslösen

Voraussetzungen

  • Ein Google Cloud-Projekt
  • Ein Browser wie Chrome

2. APIs aktivieren

Bevor Sie einen Datenspeicher-Agent in Vertex AI Conversation erstellen können, müssen Sie Dialogflow sowie die Vertex AI Search and Conversation APIs aktivieren.

So aktivieren Sie die Dialogflow API:

  1. Rufen Sie in Ihrem Browser die Seite mit den Dienstdetails der Dialogflow API auf.
  2. Klicken Sie auf die Schaltfläche Aktivieren, um die Dialogflow API in Ihrem Google Cloud-Projekt zu aktivieren.

So aktivieren Sie die Vertex AI Search and Conversation API:

  1. Rufen Sie in der Google Cloud Console die Vertex AI Search and Conversation Console auf.
  2. Lesen und akzeptieren Sie die Nutzungsbedingungen und klicken Sie anschließend auf Fortfahren und API aktivieren.

3. Neue Chat-App und Datenspeicher für die App erstellen

Jetzt erstellen Sie eine neue Chat-App für den virtuellen Kundenservicemitarbeiter und konfigurieren sie mit einer Datenquelle. Der Zweck des von Ihnen erstellten Agents besteht darin, Kunden zu helfen, die Fragen zur Eignung von Blutungen haben. Sie werden das Lifeblood des australischen Roten Kreuzes als „Source of Truth“ verwenden und einen Datenspeicher erstellen, der auf unstrukturierten Daten von der Website zur Bluteignung basiert.

  1. Zum Erstellen einer neuen Chatanwendung in Vertex AI Conversation haben Sie folgende Möglichkeiten:
    1. Rufen Sie die Vertex AI Conversation Console auf und klicken Sie oben in der Konsole auf +Neue Anwendung.
    2. Rufen Sie die Dialogflow CX-Konsole auf, klicken Sie auf + Neuen Agent erstellen und wählen Sie die Option Automatisch generieren aus. Sie werden dann zum folgenden Schritt in der Vertex AI Conversation-Konsole weitergeleitet.
  2. Wählen Sie in der Vertex AI Conversation-Konsole Chat als Anwendungstyp aus, den Sie erstellen möchten.
  3. Geben Sie für Company name den Wert Save a Life ein. Mit diesem Parameter werden das Unternehmen, das der Agent repräsentiert, und den Bereich des Agents definiert.
  4. Geben Sie als Agent-Name Blood Donation Agent an.
  5. Klicken Sie auf Weiter.
  6. Klicken Sie auf Neuen Datenspeicher erstellen.
  7. Wählen Sie Cloud Storage als Datenquelle für den Datenspeicher aus.
  8. Geben Sie den folgenden Google Cloud Storage-Ordner an, der Beispieldaten für dieses Codelab enthält. Das Präfix gs:// ist nicht erforderlich:
    cloud-samples-data/dialogflow-cx/arc-lifeblood
    
  9. Wählen Sie als Datentyp für den Import Unstrukturierte Dokumente aus.
  10. Klicken Sie auf Weiter.
  11. Geben Sie für Datenspeichername Australian Red Cross Lifeblood Unstructured an.
  12. Klicken Sie auf Erstellen, um den Datenspeicher anzulegen.
  13. Wählen Sie in der Liste der Datenspeicher die neu erstellte Australian Red Cross Lifeblood Unstructured aus.
  14. Klicken Sie auf Erstellen, um die Chat-App zu erstellen.

Glückwunsch! Du hast deine wissensbasierte Chat-App fertiggestellt, die bereit ist, potenziellen Spendern zu helfen. Nimm dir also einen Moment Zeit und feiere mit!

Es gibt aber noch viel zu tun, um den Agent für Ihre Nutzer zugänglich zu machen. Im nächsten Abschnitt verwenden Sie einen Wissens-Handler, um Unterhaltungen zwischen dem Agent und den Endnutzern über die Teilnahmevoraussetzungen zu ermöglichen.

4. Kundenservicemitarbeiter so konfigurieren, dass er häufig gestellte Fragen zur Eignung von Blutungen beantwortet

Aufforderung zum Speichern von Daten angeben

Während der Dokumentensammlungsprozess im Hintergrund ausgeführt wird, geben wir dem Agent eine Marke, indem wir die Datenspeicher-Eingabeaufforderung bearbeiten.

  1. Klicken Sie in der Vertex AI Conversation Console auf den Namen Ihrer Chat-App. Sie werden dann für weitere Tests und Anpassungen zur Dialogflow CX-Konsole weitergeleitet.
  2. Klicken Sie in der Dialogflow CX-Konsole und im Agent auf Agent settings (Agent-Einstellungen) oben rechts auf der Seite, wechseln Sie dann zum Tab ML (ML) und öffnen Sie schließlich den Tab Generative AI (Generative KI).

Zur Datenspeicheraufforderung gehen

  1. Füllen Sie das Formular wie unten aus, um die folgende Datenspeicheraufforderung zu generieren: Ihr Name ist Donate und Sie sind chatbot bei Save a life, a fictitious organization hilfsbereit und höflich. Ihre Aufgabe ist es, humans with eligibility information zu helfen.

Füllen Sie das Formular aus, um den Prompt zu generieren

Generatives Fallback für das No-Match-Ereignis des Standardstartablaufs aktivieren

  1. Wechseln Sie zum Tab Build und öffnen Sie die Startseite.
  2. Klicken Sie auf den Event-Handler sys.no-match-default. Aktivieren Sie die Generative-Fallback-Funktion, sofern das Kästchen nicht bereits angeklickt ist.

Generatives Fallback bei Ablauf ohne Übereinstimmung aktivieren

Datenspeicher des Agents prüfen

Klicken Sie auf der Startseite auf Datenspeicher bearbeiten, um die Datenspeichereinstellungen aufzurufen.

Datenspeicher bearbeiten

Der zuvor erstellte Datenspeicher wurde bereits von Dialogflow für Sie ausgewählt.

Den von Ihnen erstellten Datenspeicher verknüpfen

Scrollen Sie unter Fulfillment (Auftragsausführung) nach unten zu Agent Responses (Antworten vom Kundenservicemitarbeiter). Eine Auftragsausführung ist die Antwort des Agents an den Endnutzer. Dialogflow hat Agent sagt bereits mit dem Parameter $request.knowledge.answers[0] ausgefüllt, der zur Laufzeit die beste Antwort auf die Frage des Nutzers enthält.

Die Antwort des Kundenservicemitarbeiters enthält die beste Antwort auf die Frage des Nutzers

5. Agent testen

Sobald die Dokumente verfügbar und für den Agent verfügbar sind, prüfen Sie, wie gut die Antworten sind.

Klicken Sie auf Test Agent (Agent testen), um den Simulator noch einmal zu öffnen.

Agent noch einmal testen

Stellen Sie Fragen, die Sie auf der FAQ-Seite der Website erwarten:

  • What age do I need to be to donate?
  • Can pregnant women donate?
  • I've just come back from a trip to Africa. Can I donate?
  • How can I schedule an appointment?

Prüfen, ob Antworten aus der Wissensdatenbank stammen

Die Antworten stammen von der Lifeblood-Website des australischen Roten Kreuzes. Wie auf dieser Seite angegeben, gibt es ein Mindest- und Höchstalter für Blutspenden. Das Mindestalter liegt bei 18 Jahren und das Höchstalter für Erstspender beträgt 75 Jahre. Ein weiterer Beweis dafür, dass wir Informationen aus dem Datenspeicher abrufen, erkennen Sie an dem kleinen Sternsymbol, das auf der Agent-Antwort erscheint, und durch die ursprüngliche JSON-Antwort.

Ursprüngliche JSON-Antwort prüfen

Zum Schluss wollen wir dem Kundenservicemitarbeiter eine Frage stellen, die nichts mit Blutspenden zu tun hat.

Nutzer: „Wie ist das Wetter in Melbourne?“

Agent: „Tut mir leid, darauf habe ich keine Antwort. Wie kann ich Ihnen bei den Informationen zur Teilnahmeberechtigung helfen?“

Diese Antwort enthält KI-generierte Inhalte und leitet sich aus dem Text-Prompt ab, den Dialogflow erstellt hat. Er basiert auf der zuvor angegebenen Einstellung für Wissensconnectors: „Ihr Name ist Donate und Sie sind ein hilfsbereiter und höflicher Chatbot bei Save a Life. Ihre Aufgabe ist es, Nutzern bei der Ermittlung der Berechtigungsinformationen zu helfen.“ Dieser Text-Prompt enthält den Namen des Unternehmens, den Agent-Namen und vor allem den Bereich, der von Dialogflow zum Generieren der Agent-Antwort verwendet wird.

Gut gemacht! Bisher verwenden Sie den Datenspeicher, um Menschen bei häufig gestellten Fragen im Zusammenhang mit Blutspenden zu unterstützen. Im nächsten Teil des Codelabs sehen wir uns an, wie Sie einen Generator-Text-Prompt an denselben Inhalt binden, um fundierte Entscheidungen zu treffen.

6. Kundenservicemitarbeiter für das Berechtigungsquiz einrichten

Als Nächstes entwickeln wir den Agent, um festzustellen, ob der Nutzer zur Blutspende berechtigt ist. Es gibt strenge Anforderungen, die Spender erfüllen müssen, z. B. Alter, Gewicht, aktuelle Bedingungen, kürzlich gereiste Reisen usw. In diesem Codelab werden nur Alter und Gewicht berücksichtigt. Ein Generator nutzt die Large Language Models (LLMs) von Google, um basierend auf dem Kontext der Unterhaltung und der Wissensdatenbank dynamisch eine fundierte Entscheidung zu treffen.

Neue Routen und Parameter konfigurieren

  1. Öffnen Sie die Startseite und klicken Sie auf Datenspeicher bearbeiten.
  2. Ändern Sie die Antwort des vorhandenen Agents in $request.knowledge.answers[0] Would you like to take the eligibility quiz to find out if you can donate blood, and start changing lives?.

Antwort des Agents auf die häufig gestellten Fragen des Nutzers anreichern

  1. Klicke auf die Schaltfläche Speichern.
  2. Der Agent muss nun so konfiguriert sein, dass er „Ja“ verarbeitet. und „nein“ Antworten. Erstellen Sie zuerst die Intents confirmation.yes und confirmation.no. Halten Sie sich an diese Richtlinien zur Wiederverwendung von Intents.
  3. Erstellen Sie dann auf der Startseite eine Route für den Intent confirmation.yes, der zu einem neuen Berechtigungsquiz übergeht.

Route für den Intent „confirmation.yes“ erstellen

Wenn „confirm.yes“ ausgelöst wird, wird zu einer neuen Seite über das Berechtigungsquiz gewechselt.

  1. Wie bereits erwähnt, werden wir das Quiz vereinfachen und nur das Alter und das Gewicht des Nutzers berücksichtigen, um zu entscheiden, ob er zu einer Spende berechtigt ist oder nicht. Öffnen Sie die Seite Quiz zur Berechtigung, fügen Sie den neuen Formularparameter age-weight hinzu und wählen Sie als Entitätstyp @sys.any aus. Geben Sie "What is your age and weight?" als anfängliche Prompt-Ausführung an. Wir möchten sowohl Alter als auch Gewicht in einem Durchlauf erfassen. Speichern Sie alle Änderungen.

Parameter erstellen

Berechtigungsgenerator erstellen und konfigurieren

Die Generator-Funktion ist eine Dialogflow CX-Funktion, mit der Entwickler die neuesten generativen Large Language Models (LLMs) von Google bei der Dialogflow CX-Auftragsausführung verwenden können. Generatoren zum Generieren von Agent-Antworten zur Laufzeit Ein Generator kann allgemeine Antworten verarbeiten, die allgemeines Wissen aus einem großen Text-Dataset, mit dem er trainiert wurde, oder Kontext aus der Unterhaltung beinhalten.

Wir erstellen einen neuen Generator, der die vom Nutzer bereitgestellten Informationen (z. B. Alter und Gewicht) mit den Teilnahmevoraussetzungen vergleicht, um zu ermitteln, ob der Nutzer spenden kann.

  1. Gehen Sie in der Dialogflow CX-Konsole zum Tab Manage (Verwalten), wählen Sie Generators (Generatoren) aus und klicken Sie auf Create new (Neu erstellen).

Neuen Generator erstellen

  1. Geben Sie als Nächstes einen aussagekräftigen Anzeigenamen an und schreiben Sie den Text-Prompt. Behalten Sie die Standardeinstellungen für die Qualitätskontrolle für Modelle bei. Klicken Sie dann auf Speichern, um den Generator zu erstellen.
    • Anzeigename: Blood Donation Eligibility
    • Text-Prompt: Check the users eligibility against the following criteria: the minimum age is 18 and the maximum age is 75. Weight should be above 50 Kg. The user age and weight is $last-user-utterance. Be nice and tell the user if they are eligible to donate (also tell them why not in case)

Der Text-Prompt wird während der Auftragsausführung zur Laufzeit an das generative Modell gesendet. Es sollte eine klare Frage oder Anfrage sein, damit das Modell eine zufriedenstellende Antwort generieren kann. Sie können in Ihrem Text-Prompt spezielle Platzhalter für Generator-Prompts verwenden:

  • $conversation: Die Unterhaltung zwischen dem Agent und dem Nutzer, mit Ausnahme der letzten Nutzeräußerung.
  • $last-user-utterance Die letzte Nutzeräußerung.

Der von Ihnen konfigurierte Text-Prompt erwartet, dass der Nutzer Alter und Gewicht in einer Unterhaltungsrunde angibt (`$last-user-utterance`).

Generator in der Auftragsausführung verwenden und alle erforderlichen Parameter konfigurieren

  1. Fügen Sie auf der Seite Berechtigungstest eine neue Route hinzu. Diese wird ausgeführt, wenn alle Parameter ausgefüllt sind. Geben Sie die Bedingungsanforderung $page.params.status = "FINAL" ein und klicken Sie auf Speichern.

Neue Route hinzufügen, die erfolgt, wenn alle Parameter ausgefüllt sind

  1. Wechseln Sie im Bereich Fulfillment (Auftragsausführung) zum Bereich Generators (Generatoren) und maximieren Sie ihn. Klicke dann auf Generator hinzufügen und wähle den Generator Blutspenden aus. Nachdem Sie den Generator ausgewählt haben, müssen Sie den Ausgabeparameter definieren, der nach der Ausführung das Ergebnis des Generators enthält.

Wähle den Generator für die Berechtigung zur Teilnahme an Blutspenden aus, verknüpfe Prompt-Platzhalter mit Sitzungsparametern und definiere den Ausgabeparameter

  1. Verwenden Sie den Ausgabeparameter in der Agent-Antwort und speichern Sie die Route. Jetzt können Sie alles testen.

Ausgabeparameter in der Agent-Antwort verwenden

7. Agent noch einmal testen

Klicken Sie auf Test Agent (Agent testen), um den Simulator wieder zu öffnen.

Agent noch einmal testen

Starten Sie im Simulator eine neue Unterhaltung mit dem Agent. Erkundige dich zuerst nach dem Mindestalter und mache dann mit dem Quiz weiter. „Aktiv“ testen Geben Sie daher ein Alter zwischen 18 und 75 und ein Gewicht über 50 kg ein.

Zulässiger Pfad

Wenn eine oder beide Voraussetzungen nicht erfüllt sind, prüfen Sie, ob die Prüfung die Voraussetzungen erfüllt.

Unzulässiger Pfad

Super, der Generator funktioniert wie erwartet! Oder doch? Was passiert, wenn Nutzende das Alter angeben, aber nicht das Gewicht (oder umgekehrt)?

Alter, aber kein Gewicht angeben

8. Feinabstimmung von Generator-Prompts

Das Erfassen von Alter und Gewicht in einem früheren Zeitraum scheint nur zu funktionieren, wenn sowohl Alter als auch Gewicht angegeben werden. Wir sollten stattdessen ein Formular erstellen, das beide Werte als Entitätsparameter erfasst. Um die Aufforderung mit einem Kontext zu allen Teilnahmevoraussetzungen (z. B. Alter und Gewicht) zu versehen, können wir Platzhalter verwenden, indem wir vor dem Wort ein $-Zeichen einfügen. Diese Platzhalter für die Generator-Eingabeaufforderung werden später in der Auftragsausführung mit Sitzungsparametern verknüpft und während der Ausführung durch die Sitzungsparameterwerte ersetzt.

  1. Öffne die Seite Quiz zur Berechtigung und füge zwei separate Formularparameter hinzu: einen für das Gewicht und einen für das Alter. Wählen Sie @sys.number-integer als Entitätstyp aus und markieren Sie die erforderlichen Parameter. Geben Sie die ersten Ausführungen des Prompts an, z. B. How old are you? und What is your correct weight?. Speichern Sie alle Änderungen.

Berechtigungsformular

  1. Bevor wir den Text-Prompt des Generators ändern können, da wir zwei neue benutzerdefinierte Platzhalter hinzufügen, müssen wir den Generator zuerst aus der Routenausführung entfernen. Klicken Sie auf Speichern.

Generator entfernen

  1. Gehe zum Tab Verwalten, wähle Generatoren aus und aktualisiere die Textaufforderung des Generators Voraussetzungen für die Berechtigung zur Blutspende zu Check the users eligibility against the following criteria: the minimum age is 18 and the maximum age is 75. The weight must be at least 50 kg. The user is $age years old and weighs $weight Kg. Craft an email and politely explain to the user if they're eligible to donate and if not why.. Klicken Sie auf Speichern.

Beachten Sie, dass wir die Text-Prompts nicht nur kontextbezogen auf die Formularparameter für Alter und Gewicht gesetzt haben, sondern auch den letzten Satz so geändert haben, dass wir eine formelle E-Mail an den Nutzer erstellen können, die das offizielle Ergebnis des Berechtigungstests enthält.

Text-Prompt neu konfigurieren

  1. Wählen Sie auf der Seite Berechtigungstest die Route aus und maximieren Sie im Bereich Auftragsausführung den Abschnitt Generatoren. Klicke dann auf Generator hinzufügen und wähle den Berechtigungsgenerator für die Blutspende aus. Nachdem Sie den Generator ausgewählt haben, müssen Sie die neuen Prompt-Platzhalter mit den entsprechenden Sitzungsparametern verknüpfen. Darüber hinaus müssen Sie den Ausgabeparameter neu festlegen. Klicken Sie auf Speichern.

Generatorbindungen aktualisieren

  1. Testen Sie den Agent noch einmal. Bei der Eignungsprüfung werden jetzt sowohl das Alter als auch das Gewicht berücksichtigt. Der Wortlaut hat sich von einem dialogorientierten Ton zu einer höflicheren Antwort geändert, die ohne potenzielle Personen gesendet werden kann.

E-Mail mit dem Hinweis, dass der Nutzer nicht berechtigt ist

E-Mail mit der Mitteilung, dass der Nutzer berechtigt ist

9. Glückwunsch

Sie haben dieses Codelab erfolgreich abgeschlossen.

Sie haben das Codelab erfolgreich abgeschlossen.

Heute haben wir uns mit Generatoren im Zusammenhang mit Quizfragen befasst. Sie haben gesehen, dass Generatoren LLMs verwenden, um Antworten von Agents zu generieren. Wenn sie auf einer Wissensdatenbank basieren, können sie auch fundierte Entscheidungen treffen. Natürlich gibt es noch viele andere Anwendungsfälle, die mithilfe von Generatoren und Datenspeichern implementiert werden können. Wir können es kaum erwarten, sie kennenzulernen!

Bereinigen

Mit der folgenden Bereinigung können Sie vermeiden, dass Ihrem Google Cloud-Konto die in diesem Codelab verwendeten Ressourcen in Rechnung gestellt werden:

  • Löschen Sie Ihr Projekt mit der Google Cloud Console, wenn Sie es nicht benötigen, um unnötige Google Cloud-Gebühren zu vermeiden.
  • Wenn Sie ein vorhandenes Google Cloud-Projekt verwendet haben, löschen Sie die erstellten Ressourcen, damit Ihrem Konto keine Gebühren in Rechnung gestellt werden. Weitere Informationen finden Sie unter App löschen.
  • Wenn Sie die APIs für Vertex AI Conversation und Dialogflow deaktivieren möchten, rufen Sie die Seite mit den Dienstdetails der Discovery Engine API auf. Klicken Sie auf API deaktivieren und bestätigen Sie die Auswahl. Rufen Sie dann die Seite „Dialogflow API-Dienstdetails“ auf, klicken Sie auf API deaktivieren und bestätigen Sie den Vorgang.

Weitere Informationen

In diesen Leitfäden und Ressourcen erfahren Sie mehr über Conversational AI und Generative AI:

Lizenz

Dieser Text ist mit einer Creative Commons Attribution 2.0 Generic License lizenziert.