Generatoren verwenden die neuesten generativen Large Language Models (LLMs) von Google und die von Ihnen bereitgestellten Prompts, um das Verhalten und die Antworten des KI-Agenten zur Laufzeit zu generieren. Die verfügbaren Modelle werden von Vertex AI bereitgestellt.
Mit einem Generator können Sie ein LLM nativ über Dialogflow CX aufrufen, ohne einen eigenen externen Webhook erstellen zu müssen. Sie können den Generator so konfigurieren, dass er alles tut, was Sie normalerweise von einem LLM erwarten würden.
Generatoren eignen sich hervorragend für Aufgaben wie Zusammenfassungen, Parameterextraktion oder Datentransformationen. Beispiele finden Sie unten.
Beschränkungen
Diese Funktion ist für Agenten in jeder Dialogflow CX-Sprache verfügbar, obwohl die verfügbaren Modelle möglicherweise strengere Spracheinschränkungen haben. Weitere Informationen finden Sie unter Vertex AI.
Generatorkonzepte verstehen
Die Vertex AI-Dokumentation enthält Informationen, die für das Erstellen von Generatoren für Dialogflow CX wichtig sind:
- Modelle (Foundation Models von Google und Modellversionen und -lebenszyklus)
- Prompts
- Steuerelemente (in Vertex AI „Parameterwerte“ genannt)
Generator definieren
So erstellen Sie einen Generator:
- Rufen Sie die Dialogflow CX-Konsole auf.
- Wählen Sie Ihr Projekt aus.
- Wählen Sie den KI-Agenten aus.
- Klicke auf den Tab Verwalten.
- Klicken Sie auf Generatoren.
- Klicken Sie auf Neu erstellen.
- Geben Sie einen aussagekräftigen Anzeigenamen für den Generator ein.
- Geben Sie den Text-Prompt, das Modell und die Einstellungen wie unter Konzepte beschrieben ein.
- Klicken Sie auf Speichern.
Der Text-Prompt wird während der Ausführung zur Laufzeit an das generative Modell gesendet. Es sollte sich um eine klare Frage oder Anfrage handeln, damit das Modell eine zufriedenstellende Antwort generieren kann.
Sie können den Prompt kontextbezogen gestalten, indem Sie Wörter als Platzhalter markieren und ein $ vor dem Wort einfügen. Später können Sie diese Platzhalter für Generator-Prompts Sitzungsparametern in der Auftragsausführung zuordnen. Während der Ausführung werden sie durch die Werte der Sitzungsparameter ersetzt.
Es gibt spezielle Generator-Prompt-Platzhalter, die nicht mit Sitzungsparametern verknüpft werden müssen. In der folgenden Tabelle sind die integrierten Platzhalter für Generator-Prompts aufgeführt.
| X | Element |
|---|---|
$conversation |
Die Unterhaltung zwischen dem KI-Agenten und der Nutzerin oder dem Nutzer, ohne die letzte Nutzeräußerung und die darauffolgenden Äußerungen des KI-Agenten. |
$last-user-utterance |
Die letzte Äußerung der Nutzerin oder des Nutzers. |
Generator bei der Auftragsausführung verwenden
Sie können Generatoren während des Auftragsausführung verwenden (in Routen, Event-Handlern, Parametern und mehr).
- Maximieren Sie im Bereich Auftragsausführung den Abschnitt Generatoren.
- Klicken Sie auf Generator hinzufügen.
- Sie können jetzt einen vordefinierten Generator auswählen oder einen neuen Generator definieren.
Nachdem Sie einen Generator ausgewählt haben, müssen Sie die Prompt-Platzhalter des Generators des Prompts mit Sitzungsparametern verknüpfen. Dazu müssen Sie den Ausgabeparameter definieren, der das Ergebnis des Generators nach der Ausführung enthält. Geben Sie im Feld Ausgabeparameter einen Namen für den Ausgabeparameter ein, z. B. things-to-do. Dieser Ausgabeparameter wird in einen Sitzungsparameter geschrieben, auf den Sie später verweisen können.
Anschließend können Sie den Ausgabeparameter verwenden, um später auf das Generatorergebnis zu verweisen, z. B. in der Antwort des KI-Agenten: I'd recommend doing $session.params.things-to-do.
Weitere Informationen zum Parameterformat und zur Verwendung finden Sie in der Dokumentation zu Parametern.
Generator testen
Die Generatorfunktion kann direkt im Simulator getestet werden.
Beispiele
In diesem Abschnitt finden Sie Beispiele für Anwendungsfälle für Generatoren. Da Generatoren eine generative Technologie sind, die auf Large Language Models (LLMs) basiert, können Ihre individuellen Ergebnisse bei der Verwendung der folgenden Beispiel-Prompts von der hier dokumentierten Ausgabe abweichen. Alle von Google zurückgegebenen Prompt-Ergebnisse werden nach bestem Wissen und Gewissen erstellt.
Inhalte zusammenfassen
In diesem Beispiel wird gezeigt, wie Inhalte zusammengefasst werden.
Prompt:
Your goal is to summarize a given text.
Text:
$text
A concise summary of the text in 1 or 2 sentences is:
Unterhaltung wird zusammengefasst
In diesem Beispiel wird gezeigt, wie Sie eine Zusammenfassung der Unterhaltung bereitstellen.
Prompt:
You are an expert at summarizing conversations between a User and an Agent.
When providing the summary, always start with "Dear $email_address, the conversation summary is as follows:"
Provide a summary in a few bullet points.
Try to be as brief as possible with each bullet point,
only noting the key points of the conversation.
Output the summary in markdown format.
Conversation:
$conversation
Summary:
Resolved prompt:
In einer Beispielunterhaltung könnte der aufgelöste Prompt, der an das generative Modell gesendet wird, so aussehen:
You are an expert at summarizing conversations between a User and an Agent.
When providing the summary, always start with "Dear joe@example.com conversation summary is as follows:"
Provide a summary in a few bullet points.
Try to be as brief as possible with each bullet point,
only noting the key points of the conversation.
Output the summary in markdown format.
Conversation:
Agent: Good day! What can I do for you today?
User: Hi, which models can I use in Dialogflow CX's generators?
Agent: You can use all models that Vertex AI provides!
User: Thanks, thats amazing!
Summary:
Text in Markdown formatieren
In diesem Beispiel wird gezeigt, wie Text in Markdown formatiert wird.
# Instructions
You are presented with a text and your goal is to apply markdown formatting to text.
**NOTE:** Do not change the meaning of the text, only the formatting.
# Example
## Text
Generators allow you to use Googles latest generative models to format text,
or to create a summaries, or even to write code. What an amazing feature.
## Text in Markdown
*Generators* allow you to use Google's latest generative models to
* format text
* create a summaries
* write code
What an amazing feature.
# Your current task
## Text
$text
## Text in Markdown
Beantworten von Fragen
In dieser Reihe von Beispielen wird gezeigt, wie Sie Generatoren verwenden, um Fragen zu beantworten.
Erstens können Sie sich auf das interne Wissen des generativen Modells verlassen, um die Frage zu beantworten. Das Modell liefert eine Antwort, die auf Informationen basiert, die Teil seiner Trainingsdaten waren. Es gibt keine Garantie dafür, dass die Antwort wahr oder aktuell ist.
Prompt für die Beantwortung von Fragen mit eigenem Wissen:
Your goal is to politely reply to a human with an answer to their question.
The human asked:
$last-user-utterance
You answer:
Prompt für Question Answering mit bereitgestellten Informationen:
Wenn Sie möchten, dass das Modell auf der Grundlage von Informationen antwortet, die Sie bereitstellen, können Sie diese dem Prompt hinzufügen. Das funktioniert, wenn Sie nicht zu viele Informationen bereitstellen möchten (z. B. eine kleine Speisekarte oder Kontaktdaten Ihres Unternehmens).
# Instructions
Your goal is to politely answer questions about the restaurant menu.
If you cannot answer the question because it's not related to the restaurant
menu or because relevant information is missing from the menu, you politely
decline to answer.
# Restaurant menu:
## Starters
Salat 5$
## Main dishes
Pizza 10$
## Desserts
Ice cream 2$
# Examples
Question: How much is the pizza?
Answer: The pizza is 10$.
Question: I want to order the ice cream.
Answer: We do have ice cream! However, I can only answer questions about the menu.
Question: Do you have spaghetti?
Answer: I'm sorry, we do not have spaghetti on the menu.
# Your current task
Question: $last-user-utterance
Answer:
Prompt für Question Answering mit dynamisch bereitgestellten Informationen:
Oft sind die Informationen, auf denen das Modell seine Antwort basieren soll, zu umfangreich, um sie in den Prompt einzufügen. In diesem Fall können Sie den Generator mit einem Informationsabrufsystem wie einer Datenbank oder einer Suchmaschine verbinden, um die Informationen dynamisch anhand einer Abfrage abzurufen. Sie können die Ausgabe dieses Systems in einem Parameter speichern und mit einem Platzhalter im Prompt verknüpfen.
# Instructions
Your goal is to politely answer questions based on the provided information.
If you can't answer the question given the provided information, you politely
decline to answer.
# Provided information:
$information
Question: $last-user-utterance
Answer:
Code wird erstellt
In diesem Beispiel wird gezeigt, wie Sie mit einem Generator Code schreiben. Hier ist es sinnvoll, ein generatives Modell zu verwenden, das speziell für die Codegenerierung trainiert wurde.
Prompt:
# Instructions:
Your goal is to write code in a given programming language solving a given problem.
Problem to solve:
$problem
Programming language:
$programming-language
# Solution:
Eskalation an einen menschlichen Kundenservicemitarbeiter
In diesem Beispiel wird gezeigt, wie die Weiterleitung an einen menschlichen Kundenservicemitarbeiter gehandhabt wird. Die letzten beiden Anweisungen im Prompt verhindern, dass das Modell zu ausführlich antwortet.
Prompt:
# Instructions:
You are a polite customer service agent that handles requests
from users to speak with an operator.
Based on the $last-user-utterance,
respond to the user appropriately about their request to speak with an operator.
Always be polite and assure the user that you
will do your best to help their situation.
Do not ask the user any questions.
Do not ask the user if there is anything you can do to help them.
# Answer:
Suchanfrage generieren
In diesem Beispiel wird gezeigt, wie eine vom Nutzer bereitgestellte Google-Suchanfrage optimiert wird.
Prompt:
# Instructions:
You are an expert at Google Search and using "Google Fu"
to build concise search terms that provide the highest quality results.
A user will provide an example query,
and you will attempt to optimize this to be the best Google Search query possible.
# Example:
User: when was covid-19 first started and where did it originated from?
Agent: covid-19 start origin
# Your task:
User: $text
Agent:
Kundendaten werden abgerufen
In diesem Beispiel wird gezeigt, wie Sie Informationen abrufen und Daten im String- oder JSON-Format durchsuchen. Diese Formate werden häufig von Dialogflow CX-Sitzungsparametern verwendet.
Prompt:
You are a database engineer and specialize in extracting information
from both structured and unstructured data formats like CSV, SQL, JSON,
and also plain text.
Given a $user_db, extract the information requested
by the user from the $last-user-utterance
EXAMPLE:
user_db: {'customer_name': 'Patrick', 'balance': '100'}
User: What is my current account balance?
Agent: Your current balance is 100.
Begin!
user_db: $user_db
User: $last-user-utterance
Agent:
JSON-Objekt aktualisieren
In diesem Beispiel wird gezeigt, wie ein JSON-Eingabeobjekt vom Nutzer (oder Webhook) akzeptiert und dann basierend auf der Anfrage des Nutzers bearbeitet wird.
Prompt:
You are an expert Software Engineer
that specializes in the JSON object data structure.
Given some user $update_request and existing $json_object,
you will modify the $json_object based on the user's $update_request.
EXAMPLE:
json_object = { "a": 1, "b": 123 }
User: Add a new key/value pair to my JSON
Agent: What do you want to add?
User: c: cat
Agent: { "a": 1, "b": 123, "c": "cat"}
json_object = {"accounts": [{"username": "user1", "account_number": 12345}, {"username": "user2", "account_number": 98765}], "timestamp": "2023-05-25", "version":"1.0"}
User: Add a new value for user1
Agent: What do you want to add?
User: birthday, 12/05/1982
Agent: {"accounts": [{"username": "user1", "account_number": 12345, "birthday": "12/05/1982"}, {"username": "user2", "account_number": 98765}], "timestamp": "2023-05-25", "version":"1.0"}
json_object = $json_object
User: Add a new key value to my db
Agent: What do you want to add?
User: $last-user-utterance
Agent:
Codelab
Weitere Informationen finden Sie im Codelab zu Generatoren.
Fehlerbehebung
Wenn Sie die Funktion debuggen möchten, können Sie den aufgelösten LLM-Eingabeprompt im Simulator der Dialogflow-Konsole prüfen:
Klicken Sie auf den Button Originalantwort:

Suchen Sie das Feld Generators LLM Inputs. Lesen Sie diese Felder als Nur-Text und prüfen Sie, ob die LLM-Eingabe sinnvoll ist. Wenn eine Wortgruppe
$enthält, prüfen Sie die Eingabe des Simulators und klären Sie, ob die$in den Prompts beabsichtigt sind. Beispielsweise wäre$inprice is $10wahrscheinlich beabsichtigt, währendvisit $citywahrscheinlich nicht beabsichtigt wäre und entweder auf eine falsche Verwendung oder einen Fehler hindeuten könnte.Wenn das Feld „Generative LLM-Eingaben“ nicht angezeigt wird, wenden Sie sich an den Support.