Mit QueryData können Sie in Konversationssprache mit den Daten in Ihrer Datenbank interagieren und Daten-Agents erstellen. QueryData schreibt Abfragen für Ihre Datenbank mithilfe von Kontextsets. Das sind Sammlungen von Code, die eindeutige Informationen zu Ihrer Datenbank enthalten. Dieser Kontext ermöglicht es QueryData, Fragen in natürlicher Sprache in genaue Abfragen für Ihre Zielanwendungsfälle zu übersetzen.
Wann sollte QueryData verwendet werden?
QueryData eignet sich ideal für Anwendungen wie:
- Automatisierung des Kundenservice: Bearbeiten Sie Anfragen mit hohem Volumen wie „Wo ist meine Bestellung?“ oder „Wie hoch ist mein aktueller Kontostand?“.
- E-Commerce-Shopping-Assistenten: Helfen Sie Nutzern, sich in großen Produkt katalogen mit Abfragen in natürlicher Sprache zurechtzufinden, z. B. „Zeige mir Laufschuhe unter 100 $“.
- Tools für den Außendienst: Ermöglichen Sie Außendienstmitarbeitern, Lagerbestände, die Verfügbarkeit von Ersatzteilen oder Details zu Servicetickets in Echtzeit abzufragen.
Funktionsweise von QueryData
Um effektive Agent-Anwendungen zu erstellen, muss QueryData Ihre Datenorganisation und Geschäftslogik verstehen. Sie stellen diese Informationen in Form eines Kontextsets bereit.
Sie definieren den Kontext in Dateien, die JSON-Objekte für jeden Kontexttyp enthalten. Sie erstellen diese Kontextdateien mit der Gemini CLI. Anschließend laden Sie die Kontextdatei in ein Kontextset hoch, das Sie in der Google Cloud Console erstellen. So kann QueryData das spezifische Schema der Datenbank und die Geschäftslogik der Anwendung erlernen.
Die Kontextdatei 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"
}
}
],
"facets": [
{
"sql_snippet": "employee.\"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_sql_snippet": "employee.\"A11\" BETWEEN $1 AND $2"
}
}
],
"value_searches": [
{
"query": "SELECT $value as value, 'accounts.account_type' as columns, 'Account Type' as concept_type, 0 as distance, '{}'::text as context FROM \"accounts\" T WHERE T.\"account_type\" = $value",
"concept_type": "Account Type",
"description": "Exact match for account types"
}
]
}
Wenn ein Endnutzer eine Frage in natürlicher Sprache stellt, priorisiert QueryData die Zuordnung der Frage zu den Vorlagen und Facetten, die vom Entwickler, der den Kontext kuratiert, geprüft wurden. Sobald QueryData eine Übereinstimmung findet, wird mit der ausgewählten Abfragevorlage und den Facetten eine Datenbankabfrage synthetisiert. Die Kontextsetlogik führt diese Abfrage dann in der Datenbank aus, um genaue Ergebnisse zurückzugeben.
Ein empfohlener Schritt ist das Definieren von Wertesuchen im Kontext. Mit Wertesuchen kann der Agent Wertausdrücke bestimmten Werten zuordnen, die in Ihren Datenbankspalten gespeichert sind. So werden die Schlussfolgerungen des LLM auf Ihren tatsächlichen Daten basiert, was dazu beiträgt, Mehrdeutigkeiten aufzulösen, z. B. ob sich ein Begriff auf einen District-Namen oder eine City bezieht.
Der Agent verwendet Wertesuchen, um Ausdrücke in natürlicher Sprache bestimmten Werten zuzuordnen, die in Ihren Datenbankspalten gespeichert sind. So werden die Schlussfolgerungen des LLM auf Ihren tatsächlichen Daten basiert, was dazu beiträgt, Mehrdeutigkeiten aufzulösen, z. B. ob sich ein Begriff auf einen District, Name oder eine City bezieht.
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 im Framework verwendet werden, das den Unterhaltungsverlauf und den Kontext verwaltet.
Nächste Schritte
- QueryData in Spanner Studio testen