Mit Daten-Agents können Sie mithilfe von Konversationssprache mit den Daten in Ihrer Datenbank interagieren. Sie können Daten-KI-Agents erstellen, indem Sie Kontext für eine Reihe von Tabellen in Ihrer Datenbank definieren. So können Daten-KI-Agents Fragen in natürlicher Sprache in genaue Abfragen für Ihre Zielanwendungsfälle übersetzen.
Kontext sind datenbankspezifische Informationen, mit denen das LLM Abfragen mit hoher Genauigkeit generieren kann. Der Kontext umfasst Vorlagen und Facetten (Fragmente), die dem Agenten helfen, Ihr Datenbankschema und die Geschäftslogik Ihrer Anwendungen zu verstehen.
Die folgenden Datenbanken werden unterstützt:
- AlloyDB for PostgreSQL
- Cloud SQL for MySQL
- Cloud SQL for PostgreSQL
- Spanner
Wann sollten Daten-Agents verwendet werden?
Mit Data Agents können Sie Konversationsdatenanwendungen erstellen, die sich ideal für Anwendungsfälle wie die folgenden eignen:
- Automatisierung des Kundenservice: Bearbeiten Sie Anfragen mit hohem Volumen wie „Wo ist meine Bestellung?“ oder „Wie hoch ist mein aktuelles Guthaben?“.
- E-Commerce-Shopping-Assistenten: Sie helfen Nutzern, große Produktkataloge mit Anfragen in natürlicher Sprache zu durchsuchen, z. B. „Zeige mir Laufschuhe unter 100 €“.
- Buchungs- und Reservierungssysteme: Nutzer können über Chat-Oberflächen die Verfügbarkeit prüfen und Termine, Flüge oder Restaurantbesuche buchen.
- Tools für den Außendienst: Damit können mobile Mitarbeiter in Echtzeit Inventarstände, die Verfügbarkeit von Ersatzteilen oder Details zu Servicetickets abfragen.
Funktionsweise von Daten-KI-Agenten
Damit Sie effektive Agent-Anwendungen erstellen können, muss der Agent Ihre Datenorganisation und Geschäftslogik verstehen. Sie stellen diese Informationen in Form von Agentenkontext bereit.
Sie definieren den Agent-Kontext in Dateien, die JSON-Objekte für Vorlagen und Facetten enthalten. Sie erstellen diese Kontextdateien mit der Gemini CLI. Anschließend laden Sie die Kontextdatei in einen Daten-Agenten hoch, den Sie in der Google Cloud-Konsole erstellen. So kann der Agent das spezifische Schema der Datenbank und die Geschäftslogik der Anwendung kennenlernen.
Die Datei mit dem Agent-Kontext sieht in etwa so aus:
{
"templates": [
{
"nl_query": "Count prague loan accounts",
"sql": "SELECT COUNT(T1.account_id) FROM bird_dev_financial.account AS T1 INNER JOIN bird_dev_financial.loan AS T2 ON T1.account_id = T2.account_id INNER JOIN bird_dev_financial.district AS T3 ON T1.district_id = T3.district_id WHERE T3.\"A3\" = \"Prague\"",
"intent": "How many accounts associated with loans are located in the Prague region?",
"manifest": "How many accounts associated with loans are located in a given city?",
"parameterized": {
"parameterized_intent": "How many accounts associated with loans are located in $1",
"parameterized_sql": "SELECT COUNT(T1.account_id) FROM bird_dev_financial.account AS T1 INNER JOIN bird_dev_financial.loan AS T2 ON T1.account_id = T2.account_id INNER JOIN bird_dev_financial.district AS T3 ON T1.district_id = T3.district_id WHERE T3.\"A3\" = $1"
}
}
],
"fragments": [
{
"fragment": "T.\"A11\" BETWEEN 6000 AND 10000",
"intent": "Average salary between 6000 and 10000",
"manifest": "Average salary between a given number and a given number",
"parameterized": {
"parameterized_intent": "Average salary between $1 and $2",
"parameterized_fragment": "T.\"A11\" BETWEEN $1 AND $2"
}
}
]
}
Wenn ein Endnutzer eine Frage in natürlicher Sprache stellt, priorisiert der Agent die Zuordnung der Frage zu den Vorlagen und Facetten, die vom Entwickler, der den Kontext kuratiert, geprüft wurden. Sobald der Agent eine Übereinstimmung gefunden hat, verwendet er die ausgewählte Abfragevorlage und die Attribute, um eine Datenbankabfrage zu erstellen. Der Agent führt dann die Abfrage für die Datenbank aus, um genaue Ergebnisse zurückzugeben.
Der QueryData-Endpunkt in der Conversational Analytics API ist ein Agent-Tool, das die programmatische Integration in Ihre Anwendungen ermöglicht, um SQL-Abfrage aus Fragen in natürlicher Sprache zu generieren. In einer Konversationsanwendung muss der QueryData-Endpunkt in einem Framework verwendet werden, das den Konversationsverlauf und den Kontext verwaltet.
Agent-Kontext
Der Agentenkontext besteht aus einer kuratierten Gruppe von Vorlagen und Facetten im JSON-Format, die den Agenten bei der Übersetzung von Fragen in natürlicher Sprache in Abfragen für eine bestimmte Datenbank unterstützen. Durch die Definition von Kontext wird eine hohe Genauigkeit bei der SQL-Generierung für gängige Abfragemuster erreicht.
Achten Sie darauf, dass der Kontext des Agents korrekt und umfassend ist, um die Genauigkeit zu maximieren.
Abfragevorlagen
Abfragevorlagen sind eine kuratierte Sammlung repräsentativer Fragen in natürlicher Sprache mit entsprechenden SQL-Abfragen. Sie enthalten auch Erklärungen, um eine deklarative Begründung für die Generierung von natürlicher Sprache in SQL zu liefern.
Ein Abfragevorlagenobjekt sieht etwa so aus:
{
"templates": [
{
"nl_query": "Count prague loan accounts",
"sql": "SELECT COUNT(T1.account_id) FROM bird_dev_financial.account AS T1 INNER JOIN bird_dev_financial.loan AS T2 ON T1.account_id = T2.account_id INNER JOIN bird_dev_financial.district AS T3 ON T1.district_id = T3.district_id WHERE T3.\"A3\" = \"Prague\"",
"intent": "How many accounts associated with loans are located in the Prague region?",
"manifest": "How many accounts associated with loans are located in a given city?",
"parameterized": {
"parameterized_intent": "How many accounts associated with loans are located in $1",
"parameterized_sql": "SELECT COUNT(T1.account_id) FROM bird_dev_financial.account AS T1 INNER JOIN bird_dev_financial.loan AS T2 ON T1.account_id = T2.account_id INNER JOIN bird_dev_financial.district AS T3 ON T1.district_id = T3.district_id WHERE T3.\"A3\" = $1"
}
}
]
},
...
Die Hauptkomponenten des JSON-Objekts für die Abfragevorlage sind:
nl_query: Ein Beispiel für eine Abfrage in natürlicher Sprache, die vom KI-Datenagenten verarbeitet wird.sql: Die SQL-Abfrage für die Abfrage in natürlicher Sprache.intent: Das Ziel oder der Zweck der Abfrage in natürlicher Sprache. Wenn nicht festgelegt, wird standardmäßig die natürliche Sprachabfrage verwendet.manifest: Eine verallgemeinerte, automatisch generierte Form der Intention.parameterized_intent: Eine automatisch generierte Vorlage des Intents, bei der die Werte von Entitäten durch Parameter ersetzt werden.parameterized_sql: Eine auf Vorlagen basierende, automatisch generierte Form der SQL-Abfrage, die dem parametrisierten Intent entspricht.
Abfragefacetten
Abfragefacetten sind eine kuratierte Gruppe repräsentativer Bedingungen in natürlicher Sprache mit entsprechenden SQL-Prädikaten. Mit Facetten werden Filter und Bedingungen verwaltet, sodass mit Abfragevorlagen Attributsuchen durchgeführt werden können.
Ein Objekt für ein Abfrage-Facettenfragment sieht in etwa so aus:
{
...
"fragments": [
{
"fragment": "T.\"A11\" BETWEEN 6000 AND 10000",
"intent": "Average salary between 6000 and 10000",
"manifest": "Average salary between a given number and a given number",
"parameterized": {
"parameterized_intent": "Average salary between $1 and $2",
"parameterized_fragment": "T.\"A11\" BETWEEN $1 AND $2"
}
}
]
}
Die Hauptkomponenten des Fragment-JSON-Objekts sind:
fragment: Ein SQL-Prädikat.intent: Eine Erklärung des SQL-Prädikats.manifest: Eine verallgemeinerte, automatisch generierte Form der Intention.parameterized_intent: Eine automatisch generierte Vorlage des Intents, bei der die Werte von Entitäten durch Parameter ersetzt werden.parameterized_fragment: Eine auf Vorlagen basierende, automatisch generierte Form des Fragments, die dem parametrisierten Intent entspricht.
Beschränkungen
Für Data Agents gelten die folgenden Einschränkungen:
- Der Agent-Kontext für Datenbanken unterstützt nur Vorlagen und Facetten.
- Der Agentenkontext für Datenbanken wird nur vom
QueryData-Endpunkt in der Conversational Analytics API verwendet.