Kontextsets – Übersicht

Ein Kontextset ist das Fachwissen, das QueryData unterstützt. Sie definiert, wie Ihre Geschäftslogik funktioniert, bevor Ihre Anwendung live geht, damit QueryData Fragen in natürlicher Sprache mit nahezu 100 % Genauigkeit und geringer Onlinelatenz beantworten kann.

Der Domainkontext kann viele Formen annehmen, aber Kontextsets unterstützen drei spezielle Kontexttypen:

  • Abfragevorlagen: Vorab genehmigte SQL-Abfragen für gängige Geschäftsfragen.
  • Abfragefacetten: Modulare Filter wie „Starterfamilie“ oder „Meerblick“, die dynamisch an Vorlagen angehängt werden.
  • Wertsuchen: Entitätssuchen, die Nutzerformulierungen genauen Datenbankwerten zuordnen und Mehrdeutigkeiten auflösen.

Die folgenden Datenbanken werden unterstützt:

  • AlloyDB for PostgreSQL
  • Cloud SQL for MySQL
  • Cloud SQL for PostgreSQL
  • Spanner
  • Firestore mit MongoDB-Kompatibilität
  • Bigtable

Was sind Kontextsets?

Sie erstellen und optimieren Kontextsets während der Designphase mit dem Context-Engineering-Agenten. Der Context Engineering-Agent führt einen repräsentativen Golden Benchmark über QueryData aus, bewertet die Ergebnisse und optimiert Ihr Kontextset iterativ (Hill-Climbing). Anschließend wird die endgültige Version mit einem nicht sichtbaren, zurückgehaltenen Testset verglichen, um eine Überanpassung zu vermeiden. Das Kontextset wird automatisch inGoogle Cloudhochgeladen.

Die Verknüpfung Ihrer Datenbank mit einem ausgewählten Kontextset bietet zwei wesentliche Vorteile für die Produktion:

  • Nahezu 100 % Genauigkeit, die verallgemeinert werden kann: Datenbankschemas beschreiben Tabellen und Spalten, können einem Modell aber nicht sagen, welche Entfernung als „nah“ gilt oder welche Bewertung eine Schule „gut“ macht. Kontextsets fundieren QueryData in den verifizierten Geschäftsregeln Ihrer Organisation, während parametrisierte Muster es einem kompakten Kontextset ermöglichen, über Formulierungen, Filterkombinationen und Entitätswerte hinweg zu generalisieren.
  • Schnelle Onlineausführung und niedrige Latenz: Durch Context Engineering werden rechenintensive Schemaschlussfolgerungen offline in die Entwurfsphase verlagert:
    • Kontextbezogene Ausführung mit einem Kontextset: Schnelle Ausführung in einem Durchgang durch vorkompilierten Vorlagenabgleich und indexierte Wertesuchen.
    • Zero-Shot-Synthese für unerwartete Abfragen ohne Vorlagen: Dauert zwei- bis dreimal länger, da das Modell Schemametadaten untersuchen und SQL zur Laufzeit synthetisieren muss.
    • Offene agentische Erkundung mit rohen SQL-Tools: Dauert oft länger als 30 Sekunden, da mehrere Abfragen und Fehlerkorrekturschleifen erforderlich sind.

Kontexttypen in einem Kontextset

Zur Laufzeit kombiniert QueryData alle drei Kontexttypen in einem einzigen Durchgang. Beispiel: Ein Nutzer fragt:

„Suche mir Häuser in der Nähe von guten Schulen in Del Mar für eine junge Familie mit Meerblick.“

QueryData löst die Anfrage in vier koordinierten Schritten:

  1. Eine Abfragevorlage stellt die grundlegende Abfragestruktur für „Häuser in der Nähe von guten Schulen in $1“ bereit und wendet Geschäftsregeln für die Entfernung (innerhalb von 3 km) und das Schulranking (5 oder besser) an.
  2. Abfragefacetten fügen modulare Filter für „Starterfamilie“ (3 bis 4 Schlafzimmer, 2 oder mehr Badezimmer) und „Meerblick“ (Vektorähnlichkeitssuche) ein.
  3. Bei einer Wertsuche wird 'Del Mar' in der Spalte cities.city_name gefunden und der Konzepttyp wird überprüft.
  4. Die Erklärungen der Absicht werden zu einer zertifizierten Erklärung zusammengefasst, die zusammen mit den Abfrageergebnissen zurückgegeben wird: „Häuser in Del Mar im Umkreis von 3,2 km von Schulen mit einer Bewertung von 5 oder besser, mit 3 bis 4 Schlafzimmern und Meerblick.“

Abfragevorlagen

Abfragevorlagen sind eine Sammlung von repräsentativen Fragen in natürlicher Sprache mit entsprechenden SQL-Abfragen. Sie enthalten auch Erklärungen, die eine zertifizierte Begründung dafür liefern, wie eine Frage interpretiert wurde.

Wenn ein Nutzer beispielsweise eine Immobilien-App fragt: „Finde Häuser in der Nähe von guten Schulen in Del Mar“, definiert das Datenbankschema allein nicht, welche Entfernung als „in der Nähe“ gilt, welche Bewertung eine Schule „gut“ macht oder wie passende Immobilien eingestuft werden sollen. Eine Abfragevorlage erfasst genau diese geschäftliche Interpretation, z. B. Immobilien im Umkreis von 3,2 km um eine Schule mit einer Bewertung von 5 oder besser, sortiert nach einer gewichteten Punktzahl aus Bewertung und Nähe, und verallgemeinert sie für jede Stadt.

Die Hauptkomponenten einer Abfragevorlage sind:

  • Beispiel für eine Frage in natürlicher Sprache: Eine repräsentative Frage in einfachem Englisch, z. B. „Suche nach Häusern in der Nähe von guten Schulen in Del Mar.“
  • Beispiel-SQL-Abfrage: Die verifizierte SQL-Abfrage, die die Frage gemäß Ihren Geschäftsregeln beantwortet.
  • Verallgemeinertes Fragemuster: Ein automatisch generiertes Muster, bei dem bestimmte Werte durch allgemeine Beschreibungen ersetzt werden, z. B. „Häuser in der Nähe guter Schulen in einer bestimmten Stadt finden“. Es wird verwendet, um eingehende Fragen mit unterschiedlichen Formulierungen abzugleichen.
  • Erläuterung der Absicht: Eine zertifizierte, leicht verständliche Erklärung der von der Abfrage angewendeten Geschäftsregeln, z. B. „Suche nach Häusern in $1 im Umkreis von 3 km um eine Schule mit einer Bewertung von mindestens 5“.
  • Parametrisierte SQL-Abfrage: Die ausführbare SQL-Abfrage, die der Intent-Erklärung entspricht, mit Parametern wie $1.

Abfragefacetten

Abfragefacetten sind eine ausgewählte Gruppe repräsentativer Bedingungen in natürlicher Sprache mit entsprechenden SQL-Prädikaten. Mit Facetten werden Filter und Bedingungen verwaltet. So können Abfragevorlagen facettierte Suchen durchführen, ohne dass für jede Filterkombination eine separate Vorlage erforderlich ist.

Ein Nutzer kann beispielsweise „Finde Häuser in der Nähe guter Schulen in Del Mar“ um zusätzliche Bedingungen erweitern:

  • „...für eine junge Familie“, was einem strukturierten SQL-Filter wie properties.bedrooms BETWEEN 3 AND 4 AND properties.bathrooms >= 2.0 entspricht.
  • „…mit Meerblick“, die Datenbank-KI-Operatoren wie ai.if oder die Vektorähnlichkeitssuche (<=>) für unstrukturierte Spalten wie listing_description, listing_image_embeddings und customer_reviews verwendet.

Die Hauptkomponenten eines Abfrageattributs sind:

  • SQL-Snippet: Die wiederverwendbare SQL-Filterbedingung, z. B. properties.bedrooms BETWEEN 3 AND 4 AND properties.bathrooms >= 2.0.
  • Generalisiertes Bedingungsmuster: Das Muster in natürlicher Sprache, mit dem die Facette übereinstimmt, z. B. „Geeignet für eine junge Familie“.
  • Intent-Erklärung: Eine zertifizierte Erklärung der Filterbedingung, die als Teil der allgemeinen Antwortbegründung zurückgegeben wird.
  • Parametrisiertes SQL-Snippet: Das ausführbare SQL-Fragment, das der Intent-Erklärung entspricht.

Suchanfragen bewerten

Suchanfragen nach Werten sind von Entwicklern definierte Abfragen, die Übereinstimmungsfunktionen wie genaue Übereinstimmung, Fuzzy-Trigramm-Ähnlichkeit oder semantische Vektorsuche verwenden, um Werte und ihren Kontext in einer Datenbank zu finden. QueryData verwendet die Wertverknüpfung für diese Ergebnisse, um zu ermitteln, welche Tabellen und Spalten einen übereinstimmenden Wert enthalten, den Konzepttyp des Werts zu verstehen, Rechtschreibfehler zu korrigieren und Mehrdeutigkeiten zu erkennen, bevor SQL ausgeführt wird.

Wenn ein Nutzer beispielsweise eine Immobilienanwendung nach „Verkaufte Immobilien in Westwod im letzten Monat“ fragt, filtert ein reines Schemamodell möglicherweise nach `WHERE name = 'Westwod'` und gibt keine Ergebnisse zurück. Bei Suchanfragen nach Werten wird die unscharfe Suche verwendet, um den falsch geschriebenen Wert „Westwod“ in den Datenbankwert 'Westwood' aufzulösen. Wenn 'Westwood' in der Datenbank in mehreren Konzepttypen vorhanden ist, z. B. City, Municipality und Brokerage, erkennt die Wertverknüpfung die Mehrdeutigkeit, sodass QueryData den Nutzer bitten kann, zu klären, welches Konzept er meint, anstatt zu raten.

Die Hauptkomponenten einer Wertsuchanfrage sind: