Kontextsets – Ü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 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.

Anwendungsfälle für QueryData

QueryData eignet sich ideal für Anwendungen wie:

  • Automatisierung des Kundenservice: Bearbeiten Sie Anfragen in großem Umfang, z. B. „Wo ist meine Bestellung?“ oder „Wie ist mein aktueller Kontostand?“.
  • E-Commerce-Shopping-Assistenten: Helfen Sie Nutzern, sich in großen Produkt katalogen zurechtzufinden, indem sie Fragen in natürlicher Sprache stellen, z. B. „Zeige mir Laufschuhe unter 100 €“.
  • Tools für den Außendienst: Ermöglichen Sie Mitarbeitern im Außendienst, Lagerbestände, die Verfügbarkeit von Ersatzteilen oder Details zu Servicetickets in Echtzeit abzufragen.

Funktionsweise von QueryData

Um effektive agentenbasierte 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:

Die Kontextdatei des Agents 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"
      }
    }
  ]
}

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 verwaltet. Sobald QueryData eine Übereinstimmung findet, verwendet es die ausgewählte Abfragevorlage und die ausgewählten Facetten, um eine Datenbankabfrage zu erstellen. Die Logik des Kontextsets führt diese Abfrage dann in der Datenbank aus, um genaue Ergebnisse zurückzugeben.

Ein empfohlener Schritt ist, Wertesuchen im Kontext zu definieren. Mit Wertesuchen kann der Agent Wertausdrücke bestimmten Werten zuordnen, die in den 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.

Wenn der Agent keine passende Vorlage findet, verwendet er Wertesuchen, um Ausdrücke in natürlicher Sprache bestimmten Werten zuzuordnen, die in den 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 agentenbasiertes 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 Konversationsverlauf und den Kontext verwaltet.Um die Entitätsauflösung zu erzwingen und gleichzeitig eine strenge Sicherheit auf Zeilenebene beizubehalten, können Sie parametrisierte sichere Ansichten (PSVs) verwenden. Weitere Informationen finden Sie unter Sicheren Zugriff auf Anwendungsdaten mit parametrisierten sicheren Ansichten steuern.

Nächste Schritte