QueryData ist ein NL2SQL-Tool (Natural Language to SQL) in der Conversational Analytics API, mit dem Ihre KI-Agenten und Anwendungen operative Datenbanken in natürlicher Sprache abfragen können. Wenn eine Anwendung oder ein KI-Agent eine Frage in natürlicher Sprache sendet, übersetzt QueryData die Frage in eine dialektspezifische SQL-Abfrage, führt die Abfrage für Ihre Datenbank aus und gibt die Abfrageergebnisse zusammen mit dem generierten SQL und einer Erklärung zurück, wie QueryData die Frage interpretiert hat.
Weitere Informationen zur Verwendung von QueryData mit Ihrer Datenbank finden Sie in der Dokumentation zu den unterstützten Datenbanken:
- AlloyDB for PostgreSQL: QueryData – Übersicht
- Cloud SQL for MySQL: QueryData-Übersicht
- Cloud SQL for PostgreSQL: QueryData-Übersicht
- Spanner: QueryData-Übersicht (GoogleSQL-Dialekt-Datenbanken)
- Firestore mit MongoDB-Kompatibilität: QueryData-Übersicht
Hauptmerkmale
QueryData bietet die folgenden Funktionen für agentische Datenbankanwendungen:
- Hohe Genauigkeit: Sie erreichen eine Genauigkeit von fast 100 % bei geschäftskritischen Abfragen, indem Sie Metadaten des Datenbankschemas mit von Ihnen zusammengestellten Kontextsets kombinieren.
- Geschäftsrelevanz: Die SQL-Generierung basiert auf der Fachterminologie, den Messwertdefinitionen und der Geschäftslogik Ihrer Organisation, anstatt sich nur auf Rohdaten aus Tabellen- und Spaltennamen zu verlassen.
- Erklärbarkeit: Generieren Sie menschenlesbare Erklärungen der Absicht zusammen mit der synthetisierten SQL-Abfrage und der Antwort in natürlicher Sprache, damit Sie und Ihre Nutzer überprüfen können, wie QueryData eine Anfrage übersetzt hat.
- Datensicherheit: Erzwingen Sie die Zugriffssteuerung auf Zeilenebene und schützen Sie Nutzerdaten vor Prompt Injection, indem Sie parametrisierte sichere Ansichten in AlloyDB, Cloud SQL for MySQL und Cloud SQL for PostgreSQL verwenden.
Wann sollte QueryData verwendet werden?
QueryData wurde für Entwickler entwickelt, die interaktive Anwendungen und KI-Agenten erstellen, die schnellen, vorhersehbaren und genauen Zugriff auf operative Datenbankdaten benötigen. QueryData eignet sich beispielsweise ideal für die folgenden Anwendungsfälle:
- Automatisierung des Kundenservice: Beantwortung einer großen Anzahl von Nutzeranfragen wie „Wo ist meine Bestellung?“ oder „Wie hoch ist mein aktuelles Guthaben?“
- E-Commerce- und Katalogsuchassistenten: Helfen Nutzern, strukturierte Kataloge mit Fragen zu mehreren Kriterien zu filtern und zu durchsuchen, z. B. „Zeige mir leichte Laptops mit mindestens 16 GB RAM und einer Akkulaufzeit von über 10 Stunden.“
- Außendienst und interne Tools: Mitarbeiter können Live-Inventarbestände, Teileverfügbarkeit oder Serviceticketstatus in Echtzeit abfragen.
- Multi-Agenten-Workflows: Strukturierte Datenbankabfragen als Tool in agentischen Frameworks wie dem Agent Development Kit (ADK), der MCP Toolbox for Databases oder LangChain bereitstellen.
Funktionsweise von QueryData
Generische Large Language Models (LLMs) haben keine Informationen zu den privaten Datenwerten, kryptischen Spaltennamen oder domainspezifischen Geschäftsregeln Ihrer Organisation. Um die Lücke zwischen der Art und Weise, wie Nutzer Fragen stellen, und der Art und Weise, wie Ihre Datenbank Daten speichert, zu schließen, verwendet QueryData den folgenden mehrschichtigen Kontext:
- Schema-Ontologien: Angereicherte Tabellen- und Spaltenbeschreibungen in Ihrem Datenbankkatalog oder Knowledge Catalog, die die geschäftliche Bedeutung von Tabellen, Spalten, Statuscodes und Join-Beziehungen erklären.
- Kontextsätze: Kuratierte Sammlungen, die mit Ihrer Datenbankinstanz verknüpft sind und die folgenden drei Bausteine definieren:
- Abfragevorlagen: repräsentative Fragen in natürlicher Sprache, die mit validierten, parametrisierten SQL-Anweisungen und Erläuterungen zur Absicht verknüpft sind.
- Abfragefacetten: Modulare SQL-Prädikate und Filterfragmente, die von QueryData dynamisch mit Abfragevorlagen kombiniert werden, um die facettierte Suche zu unterstützen, ohne dass für jede Filterkombination eine separate Vorlage erforderlich ist.
- Wertsuchen: Exakte, Fuzzy-Trigramm- oder semantische Vektorsuchanfragen, die informelle Nutzerformulierungen, Synonyme oder falsch geschriebene Begriffe mit tatsächlichen Werten und Spalten in Ihrer Datenbank verknüpfen.
Wenn Ihre Anwendung die Methode projects.locations.queryData in der Conversational Analytics API aufruft, führt QueryData die folgenden Schritte aus:
- Wertauflösung: Führt Suchanfragen für Werte in Ihrer Datenbank aus, um Entitätsphrasen im Prompt (z. B. Städtenamen, Produktkategorien oder Codes) genauen Datenbankspaltenwerten zuzuordnen.
- Intent-Abgleich und Disambiguierung: Die Frage des Nutzers wird mit den Abfragevorlagen und Facetten in Ihrem Kontextset sowie mit Ihrer Schema-Ontologie abgeglichen. Wenn eine Frage mehrdeutig ist oder erforderliche Parameter fehlen, kann QueryData Fragen zur Mehrdeutigkeitsauflösung zurückgeben, um die Absicht des Nutzers zu klären.
- Abfragesynthese: Synthetisiert eine dialektspezifische SQL-Abfrage, indem die übereinstimmende Vorlagenstruktur, die anwendbaren Facetten und die aufgelösten Literalwerte kombiniert werden, oder generiert SQL aus Ihrer Schema-Ontologie, wenn keine Vorlage übereinstimmt.
- Abfrageausführung und Antwort: Der generierte SQL-Code wird für die Zieldatenbank ausgeführt und das tabellarische Ergebnisset, die generierte SQL-Abfrage, eine Erklärung der Absicht und eine optionale Zusammenfassung in natürlicher Sprache werden zurückgegeben.
Strategien für eine nahezu exakte Umwandlung von Text zu SQL-Abfragen
Eine nahezu 100%ige Genauigkeit bei der Umwandlung von Text zu SQL-Abfragen ist ein iterativer Engineering-Prozess, der als Hill-Climbing bezeichnet wird. Anstatt zu versuchen, jede mögliche Nutzerfrage im Voraus zu antizipieren, beginnen Sie mit grundlegenden Schemabeschreibungen, bewerten Ihren Agenten anhand einer repräsentativen Benchmark von Golden SQL-Abfragen mit EvalBench und beheben dann Genauigkeitslücken.
Weitere Informationen zu empfohlenen Strategien (oder Rezepten) zum Beheben von Genauigkeitslücken, einschließlich Architekturdiagrammen, SQL-Beispielen und Bewertungsbenchmarks, finden Sie unter Sechs Rezepte für eine nahezu 100 % genaue Text-zu-SQL-Konvertierung. Probieren Sie auch das begleitende Codelab aus, um zu erfahren, wie Sie diese Rezepte für die Text-zu-SQL-Genauigkeit implementieren.
Zusammenfassend sind die sechs Rezepte:
- Rezept 0: Kontextsatz initialisieren und Anwendung verbinden Beginnen Sie mit aussagekräftigen Tabellen- und Spaltenkommentaren in Ihrem Schema und verbinden Sie Ihre Anwendung mit QueryData. Verwenden Sie dazu die Clientbibliotheken der Conversational Analytics API oder das
cloud-gemini-data-analytics-query-Tool in der MCP-Toolbox für Datenbanken. - Rezept 1: Interpretation mit Abfragevorlagen einfügen. Stellen Sie validierte SQL-Beispielabfragen für Ihre wichtigsten Geschäftsfragen bereit und verallgemeinern Sie sie in parametrisierte SQL-Vorlagen, parametrisierte Intent-Erklärungen und Manifeste, die semantisch äquivalente Fragevarianten erfassen.
- Rezept 2: Facettenvorlagen verwenden. Kombinieren Sie Basisabfragevorlagen mit modularen Abfragefacetten (wiederverwendbare SQL-Bedingungen mit eigenen Manifesten und Intents), damit QueryData dynamisch Abfragen mit mehreren Filtern erstellen kann, ohne dass für jede Kombination von Bedingungen eine separate Vorlage erforderlich ist.
- Rezept 3: Mehrdeutigkeitsauflösung mit Wertsuche. Definieren Sie Suchanfragen für Werte, um Wertphrasen in Fragen in natürlicher Sprache – einschließlich privater Terminologie, Synonymen und Rechtschreibfehlern – mit tatsächlichen Datenbankspalten und -werten zu verknüpfen. Lassen Sie QueryData um Klärung bitten, wenn ein Begriff mit mehreren Entitätstypen übereinstimmt.
- Rezept 4: Semantische Suche und KI-Operatoren einbinden Kombinieren Sie strukturierte SQL-Vorlagen und Facetten mit der Vektorsuche und datenbankinternen KI-Operatoren (z. B.
AI.IFundAI.RANKin AlloyDB), um unstrukturierte Text- oder multimodale Daten nach semantischen Kriterien zu filtern und zu bewerten. - Rezept 5: Parametrisierte sichere Ansichten verwenden Sie können strenge Sicherheit auf Zeilenebene erzwingen und Nutzerdaten vor Prompt Injection schützen, indem Sie authentifizierte Nutzerparameter in parametrisierten sicheren Ansichten für AlloyDB, Cloud SQL for MySQL und Cloud SQL for PostgreSQL binden.
Sie können diese Rezepte manuell anwenden oder den Hill-Climbing-Workflow automatisieren, indem Sie den Open-Source-Kontext-Engineering-Agenten verwenden. Damit können Sie Bewertungssätze erweitern, EvalBench-Bewertungen ausführen, Genauigkeitslücken analysieren und neue Vorlagen, Facetten und Wertesuchen vorschlagen.
Nächste Schritte
- Lesen Sie das Whitepaper Sechs Schemata für eine nahezu exakte Umwandlung von Text zu SQL-Abfragen.
- Sehen Sie sich die QueryData-Dokumentation für Ihre Datenbank an:
- Kontext für KI-Datenagenten für Datenbank-Datenquellen in der Conversational Analytics API definieren
projects.locations.queryDataREST API-Referenz ansehen