Generatoren verwenden die neuesten generativen Large Language Models (LLMs) von Google. Prompts, um das Verhalten des Agents und die Antworten zur Laufzeit zu generieren. Die verfügbaren Modelle werden von Vertex AI bereitgestellt.
Mit einem Generator können Sie ein LLM nativ aus Dialogflow CX aufrufen ohne einen eigenen externen Webhook erstellen zu müssen. Sie können die einen Generator für alles zu tun, worum Sie normalerweise ein LLM bitten würden.
Generatoren eignen sich hervorragend für Aufgaben wie die Zusammenfassung, Parameterextraktion, Transformationen usw. finden Sie siehe Beispiele unten.
Beschränkungen
Dieses Feature ist für Agents in jeder Dialogflow-Sprache verfügbar, obwohl für die verfügbaren Modelle gelten möglicherweise restriktivere sprachliche Einschränkungen. Weitere Informationen finden Sie unter Vertex AI Informationen.
Konzepte von Generatoren verstehen
Vertex AI-Dokumentation enthält Informationen, die bei der Erstellung von Generatoren wichtig sind. für Dialogflow:
- Modelle (Google-Grundlage Modelle und Modellversionen und Lebenszyklus)
- Prompts
- Steuerelemente (in Vertex AI „Parameterwerte“ genannt)
Generator definieren
So erstellen Sie einen Generator:
- Zur Dialogflow CX Console
- Wählen Sie Ihr Google Cloud-Projekt aus.
- Wählen Sie den Agent 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 Steuerelemente wie beschrieben ein: Konzepten.
- Klicken Sie auf Speichern.
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 zufriedenstellenden Antwort.
Sie können den Prompt kontextabhängig gestalten, indem Sie Wörter als Platzhalter markieren, indem Sie ein
$
vor dem Wort ein. Du kannst diese Generator-Eingabeaufforderung später verknüpfen
Platzhalter mit Sitzungsparametern in der Auftragsausführung. Sie werden durch
während der Ausführung die Sitzungsparameterwerte.
![Generator definieren](https://cloud.google.com/static/dialogflow/cx/docs/images/generator_define.png?authuser=0&hl=de)
Es gibt spezielle Platzhalter für Generator-Prompts, die nicht zwingend die mit Sitzungsparametern verknüpft sind. Diese integrierten Generator-Prompts Platzhalter sind
Begriff | Definition |
---|---|
$conversation |
Die Unterhaltung zwischen dem Agent und dem Nutzer, mit Ausnahme der letzten Nutzeräußerung und der darauffolgenden Äußerungen des Agents. |
$last-user-utterance |
Die letzte Nutzeräußerung. |
Generator bei der Auftragsausführung verwenden
Sie können Generatoren während der Auftragsausführung verwenden (in Routen, Event-Handler Parameter usw.).
Wechseln Sie im Bereich Fulfillment (Auftragsausführung) zum Bereich Generators (Generatoren) und maximieren Sie ihn. Klicken Sie dann auf Generator hinzufügen. Jetzt können Sie einen vordefinierten Generator oder einen neuen Generator zu definieren.
Nachdem du einen Generator ausgewählt hast, musst du den Generator-Prompt verknüpfen. Platzhalter der Aufforderung mit Sitzungsparametern. Außerdem müssen Sie geben Sie den Ausgabeparameter an, der das Ergebnis des Generators nach dem Ausführung.
<ph type="x-smartling-placeholder">![Generator verwenden](https://cloud.google.com/static/dialogflow/cx/docs/images/generator_use.png?authuser=0&hl=de)
Sie können einer Auftragsausführung mehrere Generatoren hinzufügen, die dann ausgeführt werden. .
Der Ausgabeparameter kann dann später verwendet werden, z. B. im Agent Antwort.
<ph type="x-smartling-placeholder">![Generatorausgabe verwenden](https://cloud.google.com/static/dialogflow/cx/docs/images/generator_answer.png?authuser=0&hl=de)
Generator testen
Die Funktion generator kann direkt im Simulator getestet werden.
<ph type="x-smartling-placeholder">![Testgenerator im Simulator](https://cloud.google.com/static/dialogflow/cx/docs/images/generator_test.png?authuser=0&hl=de)
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, Einzelne Ergebnisse aus den folgenden Beispiel-Prompts können abweichen aus der hier dokumentierten Ausgabe. Alle von Google zurückgegebenen Prompt-Ergebnisse sind Best-Effort-Prinzip.
Inhaltszusammenfassung
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:
Zusammenfassung von Unterhaltungen
In diesem Beispiel wird gezeigt, wie Sie eine Zusammenfassung der Unterhaltung erstellen.
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:
Behobene Frage:
Bei einer Beispielunterhaltung kann der geklärte Prompt, der an das generative System gesendet wird, könnte 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's generators?
Agent: You can use all models that Vertex AI provides!
User: Thanks, thats amazing!
Summary:
Markdown-Formatierung
Dieses Beispiel zeigt, 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
Question Answering
Diese Reihe von Beispielen zeigt, wie Sie Generatoren zur Beantwortung von Fragen verwenden.
Erstens können Sie sich einfach auf das interne Wissen über das generative Modell verlassen, beantworten Sie die Frage. Beachten Sie, dass das Modell lediglich eine Antwort liefert, basierend auf Informationen aus den Trainingsdaten. Es gibt keine Garantie ob die Antwort wahr oder aktuell ist.
Aufforderung zur Beantwortung von Fragen durch Selbstwissen
Your goal is to politely reply to a human with an answer to their question.
The human asked:
$last-user-utterance
You answer:
Aufforderung zum Beantworten von Fragen mit den bereitgestellten Informationen
Wenn Sie möchten, dass das Modell auf der Grundlage der von Ihnen bereitgestellten Informationen können Sie es einfach dem Prompt hinzufügen. Dies funktioniert, wenn nicht zu viele Informationen vorliegen. die Sie zur Verfügung stellen möchten (z.B. eine kleine Speisekarte oder Kontaktdaten Ihres Unternehmen).
# 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$
## Deserts
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:
Aufforderung zum Beantworten von Fragen mit dynamisch bereitgestellten Informationen
Oftmals sind die Informationen, auf denen das Modell seine Antwort stützen soll, einfach in den Prompt eingefügt werden. In diesem Fall können Sie den Generator einem Informationsabrufsystem wie einer Datenbank oder Suchmaschine, die Informationen basierend auf einer Abfrage dynamisch abzurufen. Sie können einfach die die Ausgabe dieses Systems in einen Parameter umwandeln und mit einem Platzhalter im .
# 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:
Codegenerierung
Dieses Beispiel zeigt, wie Sie mit einem Generator Code schreiben. Beachten Sie, dass hier ein generatives Modell zu verwenden, das speziell dafür trainiert wurde, Code zu generieren.
Eingabeaufforderung
# 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 Kundenservicemitarbeiter
Dieses Beispiel zeigt, wie die Eskalierung an einen menschlichen Kundenservicemitarbeiter abläuft. Die letzten beiden Anweisungen in der Eingabeaufforderung verhindern, dass das Modell zu ausführlich ist.
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:
Suchanfragenerstellung
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:
Abruf von Kundendaten
In diesem Beispiel wird gezeigt, wie die bereitgestellten Informationen abgerufen und nach bereitgestellten Daten gesucht werden. im String- oder JSON-Format. Diese Formate werden häufig von Dialogflow-Sitzungen verwendet Parameter.
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
Dieses Beispiel zeigt, wie ein JSON-Eingabeobjekt vom Nutzer (oder Webhook) und das Objekt dann entsprechend der Nutzeranfrage bearbeiten.
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
Siehe auch Generatoren Codelab
Fehlerbehebung
Wenn Sie Fehler an der Funktion beheben möchten, können Sie sich die aufgelöste große Sprache Modelleingabe-Prompt (LLM) im Dialogflow-Konsolensimulator:
Klicken Sie auf die Schaltfläche Ursprüngliche Antwort:
Suchen Sie das Feld Generators LLM Inputs (Generatoren LLM-Eingaben). Diese Felder im Nur-Text-Format lesen und prüfen Sie, ob die LLM-Eingabe sinnvoll ist. Wenn eine Wortgruppe Folgendes enthält:
$
, prüfen Sie die Simulatoreingabe und prüfen Sie, ob die$
in den Aufforderungen vorhanden sind. beabsichtigt (z. B. wäre$
inprice is $10
wahrscheinlich beabsichtigt.visit $city
hingegen würde wahrscheinlich nicht bedeuten und könnte Folgendes bedeuten: falsche Verwendung oder einen Programmfehler).Wenn Sie „Generative LLM Inputs“ nicht sehen Feld, wenden Sie sich bitte an den Support.