Introduzione a QueryData

QueryData è uno strumento di conversione da linguaggio naturale a SQL (NL2SQL) nell'API Analisi conversazionale che consente alle tue applicazioni e ai tuoi agenti AI di eseguire query sui database operativi utilizzando il linguaggio naturale. Quando un'applicazione o un agente invia una domanda utilizzando il linguaggio naturale, QueryData la traduce in una query SQL specifica per il dialetto, la esegue sul database e restituisce i risultati della query insieme all'SQL generato e a una spiegazione di come QueryData ha interpretato la domanda.

Per saperne di più sull'utilizzo di QueryData con il tuo database, consulta la documentazione relativa ai database supportati:

Funzionalità chiave

QueryData offre le seguenti funzionalità per le applicazioni di database agentiche:

  • Alta precisione: ottieni una precisione di quasi il 100% sulle query business-critical combinando i metadati dello schema del database con i set di contesto che curi.
  • Rilevanza aziendale: basa la generazione di SQL sulla terminologia del dominio, sulle definizioni delle metriche e sulla logica di business della tua organizzazione, anziché fare affidamento solo sui nomi di tabelle e colonne non elaborati.
  • Spiegabilità: genera spiegazioni degli intenti leggibili dalle persone insieme alla query SQL sintetizzata e alla risposta in linguaggio naturale, in modo che tu e i tuoi utenti possiate verificare in che modo QueryData ha tradotto una richiesta.
  • Sicurezza dei dati: applica controllo dell'accesso a livello di riga e proteggi i dati utente dagli attacchi di prompt injection utilizzando viste sicure parametrizzate in AlloyDB, Cloud SQL per MySQL e Cloud SQL per PostgreSQL.

Quando utilizzare QueryData

QueryData è progettato per gli sviluppatori che creano applicazioni interattive e agenti AI che necessitano di un accesso rapido, prevedibile e accurato ai dati dei database operativi. Ad esempio, QueryData è ideale per i seguenti casi d'uso:

  • Automazione dell'assistenza clienti: rispondi a un volume elevato di richieste degli utenti, ad esempio "Dov'è il mio ordine?" o "Qual è il saldo dell'account attuale?"
  • Assistenti per la ricerca di e-commerce e cataloghi: aiutano gli utenti a filtrare ed esplorare cataloghi strutturati con domande multicriterio come "Mostrami laptop leggeri con almeno 16 GB di RAM e una durata della batteria di oltre 10 ore".
  • Operazioni sul campo e strumenti interni: consenti ai dipendenti di eseguire query sui livelli di inventario in tempo reale, sulla disponibilità dei componenti o sugli stati dei ticket di assistenza in tempo reale.
  • Workflow multiagente: esponi le query di database strutturate come strumento in framework agentici come Agent Development Kit (ADK), MCP Toolbox for Databases o LangChain.

Come funziona QueryData

I modelli linguistici di grandi dimensioni (LLM) generici non dispongono di informazioni sui valori dei dati privati della tua organizzazione, sui nomi delle colonne criptici o sulle regole aziendali specifiche del dominio. Per colmare il divario tra il modo in cui gli utenti pongono le domande e il modo in cui il database archivia i dati, QueryData utilizza il seguente contesto a più livelli:

  • Ontologie dello schema: descrizioni arricchite di tabelle e colonne nel catalogo del database o nel Knowledge Catalog che spiegano il significato aziendale di tabelle, colonne, codici di stato e relazioni di join.
  • Set di contesto: raccolte selezionate associate all'istanza del database che definiscono i seguenti tre componenti di base:
    • Modelli di query: domande rappresentative in linguaggio naturale abbinate a istruzioni SQL con parametri convalidate e spiegazioni degli intenti.
    • Facet di query: predicati SQL modulari e frammenti di filtro che QueryData combina dinamicamente con i modelli di query per supportare la ricerca con facet senza richiedere un modello separato per ogni combinazione di filtri.
    • Ricerche di valori: query di ricerca esatta, fuzzy trigram o vettoriale semantica che collegano frasi informali degli utenti, sinonimi o termini con errori ortografici ai valori e alle colonne effettivi del database.

Quando l'applicazione chiama il metodo projects.locations.queryData nell'API Conversational Analytics, QueryData esegue i seguenti passaggi:

  1. Risoluzione dei valori: esegue query di ricerca dei valori nel database per mappare le frasi delle entità nel prompt (come nomi di città, categorie di prodotti o codici) ai valori esatti delle colonne del database.
  2. Corrispondenza dell'intent e disambiguazione: confronta la domanda dell'utente con i modelli di query e i facet nel set di contesto, nonché con l'ontologia dello schema. Se una domanda è ambigua o mancano i parametri richiesti, QueryData può restituire domande di disambiguazione per chiarire l'intento dell'utente.
  3. Sintesi delle query: sintetizza una query SQL specifica per il dialetto combinando la struttura del template corrispondente, i facet applicabili e i valori letterali risolti o generando SQL dall'ontologia dello schema quando non corrisponde alcun template.
  4. Esecuzione e risposta della query: esegue l'SQL generato sul database di destinazione e restituisce il set di risultati tabulari, la query SQL generata, una spiegazione dell'intent e un riepilogo facoltativo in linguaggio naturale.

Strategie per raggiungere una precisione quasi del 100% Text-to-SQL

Raggiungere un'accuratezza quasi del 100% per il text-to-SQL è un processo di engineering iterativo noto come hill-climbing. Anziché cercare di anticipare ogni possibile domanda degli utenti, inizia con le descrizioni dello schema di base, valuta l'agente rispetto a un benchmark rappresentativo di query SQL golden utilizzando EvalBench e poi risolvi le lacune di accuratezza.

Per saperne di più sulle strategie consigliate (o formule) per risolvere le lacune di accuratezza, inclusi diagrammi dell'architettura, esempi SQL e benchmark di valutazione, consulta Sei formule per raggiungere una precisione quasi del 100% Text-to-SQL e prova il codelab complementare per scoprire come implementare queste formule di accuratezza Text-to-SQL.

In sintesi, le sei formule sono le seguenti:

  • Ricetta 0: inizializza un set di contesti e connetti la tua applicazione. Inizia con commenti descrittivi su tabelle e colonne nello schema e connetti la tua applicazione a QueryData utilizzando le librerie client dell'API Conversational Analytics o lo strumento cloud-gemini-data-analytics-query in MCP Toolbox for Databases.
  • Ricetta 1: inserisci l'interpretazione con i modelli di query. Fornisci query SQL di esempio convalidate per le tue domande aziendali più importanti e generalizzale in modelli SQL parametrizzati, spiegazioni degli intenti parametrizzati e manifesti che acquisiscono varianti di domande semanticamente equivalenti.
  • Ricetta 2: utilizza i modelli con facet. Associa i modelli di query di base a facet di query modulari (condizioni SQL riutilizzabili con i propri manifest e intent) in modo che QueryData possa comporre dinamicamente query con più filtri senza richiedere un modello separato per ogni combinazione di condizioni.
  • Ricetta 3: disambiguazione con ricerca di valori. Definisci query di ricerca dei valori per collegare le frasi di valore nelle domande in linguaggio naturale, tra cui terminologia privata, sinonimi ed errori ortografici, alle colonne e ai valori effettivi del database e consenti a QueryData di richiedere chiarimenti quando un termine corrisponde a più tipi di entità.
  • Ricetta 4: integra la ricerca semantica e gli operatori AI. Combina modelli e facet SQL strutturati con la ricerca vettoriale e gli operatori AI nel database (come AI.IF e AI.RANK in AlloyDB) per filtrare e classificare il testo non strutturato o i dati multimodali utilizzando criteri semantici.
  • Ricetta 5: utilizza le viste sicure con parametri. Applica una rigorosa sicurezza a livello di riga e proteggi i dati degli utenti dagli attacchi di prompt injection associando i parametri degli utenti autenticati nelle viste sicure con parametri per AlloyDB, Cloud SQL per MySQL e Cloud SQL per PostgreSQL.

Puoi applicare queste formule manualmente o automatizzare il flusso di lavoro di hill climbing, espandendo i set di valutazione, eseguendo valutazioni EvalBench, analizzando i gap di accuratezza e proponendo nuovi modelli, aspetti e ricerche di valori, utilizzando l'agente di context engineering open source.

Passaggi successivi