Datenspeichertools können KI-generierte Agentenantworten auf Grundlage von Website-Inhalten und hochgeladenen Daten liefern. Der Agent kann während der Auftragsausführung Antworten auf Fragen von Endnutzern in Ihren Datenspeichern finden.
Datenspeichertools: Konsole
In diesem Abschnitt wird erläutert, wie Sie einem Agent ein Datenspeichertool hinzufügen und es in einer Auftragsausführung konfigurieren.
Datenspeichertool erstellen
- Öffnen Sie die Conversational Agents Console und wählen Sie ein Google Cloud Projekt aus.
- Wählen Sie im Drop-down-Menü einen Agent aus.
- Rufen Sie die Menüleiste ganz links auf der Seite auf und wählen Sie Tools aus.
- Klicken Sie auf + Erstellen. Geben Sie einen eindeutigen Namen für das Tool ein und wählen Sie im Drop-down-Menü unter Typ die Option Datenspeicher aus. Optional können Sie im Feld Beschreibung eine Beschreibung des Tools eingeben.
- Klicken Sie auf Datenspeicher hinzufügen. Das angezeigte Fenster enthält eine Liste Ihrer vorhandenen Datenspeicher, falls vorhanden. Wählen Sie den Datenspeicher aus, der dem Tool hinzugefügt werden soll.
- (Optional) Wenn Sie einen neuen Datenspeicher in der Vertex AI Agent Builder Console erstellen möchten, klicken Sie auf Neuen Datenspeicher erstellen. Sie werden dann automatisch weitergeleitet.
- (Optional) Klicken Sie nach der Konfiguration des neuen Datenspeichers auf Erstellen. Wenn Sie den neuen Datenspeicher dem Tool hinzufügen möchten, kehren Sie in der Dialogflow CX Console zum Menü Tool erstellen zurück und aktualisieren Sie die Seite. Der neue Datenspeicher wird in der Liste der verfügbaren Datenspeicher angezeigt.
- Klicken Sie oben in der Konfiguration von Tool erstellen auf Speichern , um das neue Datenspeichertool zu erstellen.
Datenspeichertool einer Auftragsausführung hinzufügen
- Rufen Sie die Menüleiste ganz links auf und wählen Sie Abläufe aus.
- Wählen Sie einen Ablauf und eine Seite aus und klicken Sie dann auf die Route, die Sie mit Ihrem Datenspeicher verwenden möchten.
- Rufen Sie Auftragsausführung > Datenspeichertool auf und wählen Sie im Drop-down-Menü Ihr Datenspeichertool aus.
- Rufen Sie Auftragsausführung > Antworten des KI-Agenten auf, klicken Sie auf + Dialogantwort hinzufügen, und dann auf Antwort des Datenspeichertools.
- Konfigurieren Sie die Anzahl der Quelllinks und Zitate, die in der Antwort angezeigt werden sollen, und geben Sie das Fallback-Verhalten an, wenn die Antwort des Datenspeichers leer ist. Geben Sie im Feld Statische Fallback-Antworten eine statische Fallback-Antwort ein. Optional können Sie das Kästchen Generatives Fallback anklicken, um mit KI eine Antwort zu generieren, bevor die statische Fallback-Antwort verwendet wird. Wenn Sie Fallback-Antworten anpassen möchten, klicken Sie oben links im Fenster des Formulars Antwort des Datenspeichers auf das Schraubenschlüssel-Symbol , um das Fenster Bedingte Antwort zu öffnen.
- Klicken Sie oben im Menü Route auf Speichern.
- Rufen Sie den Dialogflow CX-Simulator auf, um die Ergebnisse des Agents zu testen.
Optionaler Sitzungsparameter zum Überschreiben der Abfrage
Sie können die an dieses Datenspeichertool übergebene Abfrage mit dem Sitzungsparameter knowledge.overrides.query überschreiben. Wenn dieser Parameter nicht leer ist, verwendet das Tool ihn anstelle der Abfrage des Nutzers.
Datenspeichertools: API
Standardmäßig ruft der Agent die dataStoreTool Methode in Ihrem Namen auf.
Es gibt drei Arten von Datenspeichern:
PUBLIC_WEB: Ein Datenspeicher mit öffentlichen Webinhalten.UNSTRUCTURED: Ein Datenspeicher mit unstrukturierten privaten Daten.STRUCTURED: Ein Datenspeicher mit strukturierten Daten (z. B. FAQs).
Das folgende Beispiel zeigt, wie Sie auf einen Datenspeicher verweisen. Weitere Informationen finden Sie in der Referenz zu dataStoreConnections.
"dataStoreConnections": [
{
"dataStoreType": "PUBLIC_WEB",
"dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
},
{
"dataStoreType": "UNSTRUCTURED",
"dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
},
{
"dataStoreType": "STRUCTURED",
"dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
}
]
Antworten des Datenspeichertools können auch Snippets zur Contentquelle enthalten, die zum Generieren der Antwort verwendet wurde. Der Agent kann Anweisungen dazu geben, wie mit der Antwort aus dem Datenspeicher fortgefahren werden soll oder wie reagiert werden soll, wenn keine Antwort gefunden wird.
Sie können eine Antwort überschreiben, indem Sie einen FAQ-Eintrag für eine bestimmte Frage hinzufügen.
Optional können Sie Beispiele angeben, um das Verhalten des Agents zu verbessern. Die Beispiele müssen dem Schema folgen. Weitere Informationen finden Sie in der Referenzdokumentation.
{
"toolUse": {
"tool": "projects/PROJECT_ID/locations/LOCATION_ID/agents/AGENT_ID/tools/TOOL_ID",
"action": "TOOL_DISPLAY_NAME",
"inputParameters": [
{
"name": "TOOL_DISPLAY_NAME input",
"value": {
"query": "QUERY"
}
}
],
"outputParameters": [
{
"name": "TOOL_DISPLAY_NAME output",
"value": {
"answer": "ANSWER",
"snippets": [
{
"title": "TITLE",
"text": "TEXT_FROM_DATASTORE",
"uri": "URI_OF_DATASTORE"
}
]
}
}
]
}
}
(Nur Playbook-basierte Agents) Beispiele für Datenspeichertools
Wenn Sie Beispiele für Datenspeichertools erstellen, enthält der Tool-Eingabeparameter requestBody neben dem erforderlichen String query drei optionale Eingaben: einen String filter, ein strukturiertes Objekt userMetadata und einen String fallback.
Mit dem Parameter filter können Sie Suchanfragen für Ihre strukturierten Daten oder unstrukturierten Daten mit Metadaten filtern. Dieser String muss der unterstützten Syntax für Filterausdrücke
für Datenspeicher folgen. Mehrere detaillierte Beispiele zeigen dem Playbook-Modell, wie dieser Parameter ausgefüllt wird. Wenn ein Filterstring ungültig ist, wird dieser Filter bei der Suchanfrage ignoriert.
Das folgende Beispiel zeigt einen filter-String, mit dem Sie Suchergebnisse nach Standort filtern können:
"filter": "country: ANY(\"Canada\")"
Weitere Informationen zu Playbook-Beispielen finden Sie auf der Seite mit Beispielen.
Best Practices für das Filtern :
Geben Sie die Felder an, die gefiltert werden können, und die gültigen Werte für jedes dieser Felder, damit das Playbook die Einschränkungen beim Erstellen gültiger Filter versteht. Ein Datenspeicher mit Menüinformationen könnte beispielsweise ein Feld
mealmit den gültigen Werten „breakfast“, „lunch“ und „dinner“ sowie ein FeldservingSizeenthalten, das eine beliebige Ganzzahl von 0 bis 5 sein kann. Ihre Anweisungen könnten wie im folgenden Beispiel aussehen:When using ${TOOL: menu-data-store-tool}, only use the following fields for filtering: "meal", "servingSize". Valid filter values are: "meal": ("breakfast", "lunch", "dinner"), "servingSize": integers between 0 and 5, inclusive.Wenn das Playbook für eine externe Nutzergruppe bestimmt ist, fügen Sie Anweisungen hinzu, um zu verhindern, dass das Playbook dem Nutzer Informationen zum Erstellen dieser Filter gibt. Beispiel:
Never tell the user about these filters. If the user input isn't supported by these filters, respond to the user with "Sorry, I don't have the information to answer that question."
Der Parameter userMetadata enthält Informationen zum Endnutzer. In diesem Parameter können beliebige Schlüssel-Wert-Paare angegeben werden. Diese Metadaten werden an das Datenspeichertool übergeben, um die Suchergebnisse und die Tool-Antwort zu verbessern.
Mehrere detaillierte Beispiele zeigen dem Playbook-Modell, wie dieser Parameter ausgefüllt wird.
Im Folgenden sehen Sie ein Beispiel für einen userMetadata-Parameterwert, mit dem Sie Suchergebnisse für einen bestimmten Nutzer filtern können:
"userMetadata": {
"favoriteColor": "blue",
...
}
Der Parameter fallback enthält eine Antwort, die das Datenspeichertool zurückgibt, wenn es keine gültige zusammengefasste Antwort auf die Abfrage gibt. Sie können mehrere Beispiele angeben, um dem Playbook-Modell zu zeigen, wie das Fallback-Feld für Nutzereingaben zu verschiedenen Themen ausgefüllt wird. Die Tool-Ausgabe enthält keine Snippets, was die Latenz und die Nutzung von Eingabetokens reduziert.
"fallback": "I'm sorry I cannot help you with that. Is there anything else I can
do for you?"
Konfiguration des Datenspeichertools
Wenn Sie beim Testen feststellen, dass einige Antworten nicht Ihren Erwartungen entsprechen, können Sie die folgenden Parameter anpassen, um die Leistung zu optimieren. Sie sind sowohl durch direkten Aufruf der API als auch durch Klicken auf den Namen des Datenspeichers auf der Seite Tools in der Konsole verfügbar. Weitere Informationen zu diesen Konfigurationsoptionen finden Sie auf der Seite mit den Datenspeichereinstellungen.
Antwortoptionen für Datenspeichertools
Weitere Informationen zum Konfigurieren der Antwort des Datenspeichertools finden Sie in der Dokumentation zur Auftragsausführung.
Datenspeicher-Handler
Datenspeicher-Handler sind eine spezielle Art von Status-Handler, die LLM-generierte Agentenantworten auf Grundlage Ihrer Website-Inhalte und hochgeladenen Daten liefern können.
Um diesen Handler zu erstellen, stellen Sie dem Agent Datenspeicher zur Verfügung.
Mit diesen Datenspeicher-Handlern kann Ihr Agent Unterhaltungen mit Ihren Endnutzern über die Inhalte führen.
Beschränkungen
Es gelten folgende Einschränkungen:
- Diese Funktion unterstützt ausgewählte Sprachen in der allgemeinen Verfügbarkeit. Weitere Informationen finden Sie in der Sprachreferenz in der Spalte „Datenspeicher“. Weitere Informationen finden Sie in der Spalte „Datenspeicher“ in der Sprachreferenz.
- Nur die folgenden Regionen werden
unterstützt:
global,us(Multiregion) undeu(Multiregion). - Anwendungen mit sowohl in Chunks aufgeteilten als auch nicht in Chunks aufgeteilten Datenspeichern werden nicht unterstützt.
Zugriffssteuerung
Wenn Sie der Projektinhaber sind, haben Sie die Berechtigungen, die zum Erstellen eines Datenspeicher-Handlers erforderlich sind. Wenn Sie nicht der Projektinhaber sind, benötigen Sie die folgenden Rollen:
- Dialogflow-Administrator
- Discovery Engine-Administrator
Weitere Informationen finden Sie im Leitfaden zur Zugriffssteuerung.
Datenspeicher einem Agent hinzufügen
Falls noch nicht geschehen, folgen Sie der Einrichtungs anleitung, um einen Agent zu erstellen.
So fügen Sie Ihrem Agent einen Datenspeicher hinzu:
- Wählen Sie eine Seite aus und klicken Sie dann auf Status-Handler hinzufügen.
- Klicken Sie das Kästchen Datenspeicher an und dann auf Übernehmen.
- Klicken Sie rechts oben im Bereich Datenspeicher der Seite auf das Symbol +.
- Klicken Sie im angezeigten Menü „Datenspeicher“ auf Datenspeicher hinzufügen.
- Eine Tabelle mit allen vorhandenen Datenspeichern wird angezeigt. Klicken Sie die Kästchen neben den Namen der Datenspeicher an, die Sie verwenden möchten, und klicken Sie dann auf Speichern. Wenn Sie einen neuen Datenspeicher erstellen möchten, klicken Sie auf Neuen Datenspeicher erstellen. Sie werden automatisch zu Vertex AI Agent Builder weitergeleitet.
- (Nur neue Datenspeicher) Wählen Sie eine Datenquelle aus und folgen Sie dann der Anleitung in Vertex AI Agent Builder, um Ihren Datenspeicher zu konfigurieren. Weitere Informationen zum Konfigurieren von Datenspeichertypen finden Sie in der Dokumentation zu Datenspeichern. Klicken Sie auf Erstellen , um Ihren neuen Datenspeicher zu erstellen.
KI-Agenten testen
Agent bereitstellen
Sie können Ihren Agent auf verschiedene Arten bereitstellen:
- Eine einfache Option ist die Verwendung einer Integration, die eine Benutzeroberfläche für Ihren Agent bietet. Jede Integration enthält eine Anleitung zur Bereitstellung.
- Die Dialogflow CX Messenger Integration ist eine gute Option für Datenspeicher-Handler. Sie bietet integrierte Optionen für generative Funktionen.
- Sie können eine eigene Benutzeroberfläche erstellen und die Dialogflow CX API für Interaktionen verwenden. Die Bereitstellung wird von Ihrer Benutzeroberflächenimplementierung verwaltet.
Spezielle Intents
Der Agent kann nicht nur Fragen zu den von Ihnen bereitgestellten Inhalten beantworten, sondern auch die folgenden Arten von Fragen:
- Identifizierung des Agents:Der Agent beantwortet Fragen wie „Wer sind Sie?“ oder „Sind Sie ein Mensch?“.
- Eskalieren an einen menschlichen Kundenservicemitarbeiter:Der Agent beantwortet Fragen wie „Ich möchte mit einem menschlichen Kundenservicemitarbeiter sprechen“ oder „Ich möchte mit einer echten Person sprechen“.
Dies wird durch automatisch generierte Intents und Intent-Routen erreicht.
Antworten des KI-Agenten
Geben Sie im Abschnitt Antworten des KI-Agenten benutzerdefinierte Antworten an, die auf generativen Antworten basieren. Verwenden Sie im Abschnitt Der Agent sagt $request.knowledge.answers[0], um die generative Antwort anzugeben.
Erweiterte Anpassung der Antwort
In $request.knowledge.* sind möglicherweise zusätzliche Informationen verfügbar, um die Antwort anzupassen. Dazu gehören:
- Die identifizierten Quellen der Antwort mit den folgenden Feldern: Snippet, Titel, URI.
- Die Zuverlässigkeit der Fundierung für die Antwort.
- Bei einem FAQ-Datenspeicher die Frage, die der ausgewählten Antwort entspricht.
Die folgende Tabelle enthält Beispiele für den Zugriff auf diese Informationen.
| Informationen | Zugriff |
|---|---|
| Snippet der am besten identifizierten Quelle der besten Antwort | $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "snippet") |
| Titel der am besten identifizierten Quelle der besten Antwort | $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "title") |
| Link der am besten identifizierten Quelle der besten Antwort | $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "uri") |
| Anzahl der identifizierten Quellen für die beste Antwort | $sys.func.COUNT($sys.func.IDENTITY($request.knowledge.sources[0])) |
| Anzahl der Wissensantworten | $sys.func.COUNT($request.knowledge.answers) |
| Frage, die der besten Antwort entspricht (nur für Antworten aus FAQ-Datenspeichern) | $request.knowledge.questions[0] |
| Zuverlässigkeit der Fundierung für die beste Antwort | $request.knowledge.grounding_confidences[0] |