Panoramica di QueryData

QueryData ti consente di interagire con i dati nel tuo database utilizzando un linguaggio conversazionale e di creare agenti di dati. QueryData scrive query per il tuo database utilizzando i set di contesto, ovvero raccolte di codice che contengono informazioni uniche sul tuo database. Questo contesto consente a QueryData di tradurre le domande in linguaggio naturale in query accurate per i tuoi casi d'uso target.

Quando utilizzare QueryData

QueryData è ideale per applicazioni come:

  • Automazione del servizio clienti: gestisci richieste ad alto volume come "Dov'è il mio ordine?" o "Qual è il mio saldo attuale?".
  • Assistenti per lo shopping e-commerce: aiutano gli utenti a navigare in cataloghi di prodotti di grandi dimensioni con query in linguaggio naturale come "Mostrami scarpe da corsa sotto i 100 $".
  • Strumenti per le operazioni sul campo: consentono ai dipendenti mobili di eseguire query in tempo reale sui livelli di inventario, sulla disponibilità dei pezzi o sui dettagli dei ticket di assistenza.

Come funziona QueryData

Per creare applicazioni agentiche efficaci, QueryData deve comprendere l'organizzazione dei dati e la logica di business. Fornisci queste informazioni sotto forma di insieme di contesto.

Definisci il contesto in file che contengono oggetti JSON per ogni tipo di contesto. Questi file di contesto vengono creati con l'aiuto di Gemini CLI. Quindi, carica il file di contesto in un insieme di contesti che crei nella console Google Cloud. Questo processo consente a QueryData di apprendere lo schema specifico del database e la logica di business dell'applicazione.

Il file di contesto è simile al seguente:

{
  "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"
    }
   ]
}

Quando un utente finale pone una domanda in linguaggio naturale, QueryData assegna la priorità alla corrispondenza della domanda con i modelli e le sfaccettature controllati dallo sviluppatore che cura il contesto. Una volta identificata una corrispondenza, QueryData utilizza il modello di query e i facet selezionati per sintetizzare una query del database. La logica del contesto esegue quindi la query sul database per restituire risultati accurati.

Un passaggio consigliato è definire le ricerche di valori all'interno del contesto. Le ricerche di valori consentono all'agente di mappare le frasi di valori a valori specifici archiviati nelle colonne del database. In questo modo, il LLM si basa sui tuoi dati effettivi, il che lo aiuta a risolvere le ambiguità, ad esempio se un termine si riferisce a un nome di District o a un City.

Se l'agente non riesce a trovare un modello corrispondente, utilizza le ricerche di valori per mappare le frasi in linguaggio naturale a valori specifici memorizzati nelle colonne del database. In questo modo, l'LLM si basa sui tuoi dati effettivi, il che lo aiuta a risolvere le ambiguità, ad esempio se un termine si riferisce a un District, a un Name o a un City.

L'endpoint QueryData nell'API Analisi conversazionale è uno strumento agentico che consente l'integrazione programmatica con le tue applicazioni per consentire la generazione di query SQL da domande in linguaggio naturale. In un'applicazione conversazionale, l'endpoint QueryData deve essere utilizzato all'interno del framework che gestisce la cronologia e il contesto della conversazione.

Passaggi successivi