QueryData – Übersicht

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 Code-Sammlungen, 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 ist ideal für Anwendungen wie:

  • Kundenservice-Automatisierung: 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 Außendienstmitarbeiter: Ermöglichen Sie mobilen Mitarbeitern, 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": "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_sql_snippet": "T.\"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 geprüft wurden, der den Kontext kuratiert. Sobald QueryData eine Übereinstimmung findet, wird mit der ausgewählten Abfragevorlage und den Facetten eine Datenbankabfrage erstellt. Die Logik des Kontextsets 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 Ihre tatsächlichen Daten gestützt, was dazu beiträgt, Mehrdeutigkeiten aufzulösen, z. B. ob sich ein Begriff auf einen District-Namen oder eine City bezieht.

Wenn der Agent keine passende Vorlage findet, werden mit Wertesuchen Ausdrücke in natürlicher Sprache bestimmten Werten zugeordnet, die in Ihren Datenbankspalten gespeichert sind. So werden die Schlussfolgerungen des LLM auf Ihre tatsächlichen Daten gestützt, 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