Panoramica degli agenti di dati

Gli agenti di dati ti consentono di interagire con i dati nel tuo database utilizzando un linguaggio conversazionale. Puoi creare agenti di dati definendo il contesto per un insieme di tabelle nel database, il che consente agli agenti di dati di tradurre le domande in linguaggio naturale in query accurate per i casi d'uso di destinazione.

Il contesto è costituito da informazioni specifiche del database che consentono all'LLM di generare query con elevata precisione. Il contesto include modelli e sfaccettature (frammenti) che aiutano l'agente a comprendere lo schema del database e la logica di business delle tue applicazioni.

Sono supportati i seguenti database:

  • AlloyDB per PostgreSQL
  • Cloud SQL per MySQL
  • Cloud SQL per PostgreSQL
  • Spanner

Quando utilizzare gli agenti dati

Puoi utilizzare gli agenti di dati per creare applicazioni di dati conversazionali ideali per casi d'uso quali:

  • 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 $".
  • Sistemi di prenotazione: consentono agli utenti di verificare la disponibilità e prenotare appuntamenti, voli o servizi di ristorazione tramite interfacce di chat.
  • Strumenti per le operazioni sul campo: consentono ai dipendenti in mobilità di eseguire query in tempo reale sui livelli di inventario, sulla disponibilità dei componenti o sui dettagli dei ticket di assistenza.

Come funzionano gli agenti dei dati

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

Definisci il contesto dell'agente in file che contengono oggetti JSON per modelli e sfaccettature. Questi file di contesto vengono creati con l'aiuto dell'interfaccia a riga di comando di Gemini. Successivamente, carica il file di contesto in un agente dati che crei nella console Google Cloud. Questo processo consente all'agente di apprendere lo schema specifico del database e la logica di business dell'applicazione.

Il file di contesto dell'agente è 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"
      }
    }
  ],
  "fragments": [
    {
      "fragment": "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_fragment": "T.\"A11\" BETWEEN $1 AND $2"
      }
    }
  ]
}

Quando un utente finale pone una domanda in linguaggio naturale, l'agente dà la priorità all'abbinamento della domanda ai modelli e ai prospetti sottoposti a controllo da parte dello sviluppatore che cura il contesto. Una volta identificata una corrispondenza, l'agente utilizza il modello di query e i prospetti selezionati per sintetizzare una query del database. L'agente esegue quindi la query sul database per restituire risultati accurati.

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

Contesto dell'agente

Il contesto dell'agente è costituito da un insieme curato di modelli e sfaccettature in formato JSON che guidano l'agente nella traduzione di domande in linguaggio naturale in query per un database specifico. La definizione del contesto garantisce una generazione SQL di alta precisione per i pattern di query comuni.

Assicurati che il contesto dell'agente sia accurato e completo nella copertura delle query dell'applicazione previste per massimizzare l'accuratezza.

Modelli di query

I modelli di query sono un insieme selezionato di domande rappresentative in linguaggio naturale con le query SQL corrispondenti. Includono anche spiegazioni per fornire una motivazione dichiarativa per la generazione da linguaggio naturale a SQL.

Un oggetto modello di query è 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"
      }
    }
  ]
},
...

I componenti principali dell'oggetto JSON del modello di query sono i seguenti:

  • nl_query: Un esempio di query in linguaggio naturale gestita dall'agente dati.
  • sql: la query SQL per la query in linguaggio naturale.
  • intent: Lo scopo o la finalità della query in linguaggio naturale. Se non viene impostato, questo valore corrisponde per impostazione predefinita alla query in linguaggio naturale.
  • manifest: una forma generalizzata e generata automaticamente dell'intent.
  • parameterized_intent: una forma predefinita e generata automaticamente dell'intent, con i valori delle entità sostituiti dai parametri.
  • parameterized_sql: una forma con modello e generata automaticamente della query SQL che corrisponde all'intent con parametri.

Facet di query

I facet di query sono un insieme curato di condizioni rappresentative in linguaggio naturale con predicati SQL corrispondenti. I facet gestiscono i filtri e le condizioni, il che consente ai modelli di query di eseguire ricerche per facet.

Un oggetto sfaccettatura (frammento) della query è simile al seguente:

{
...
"fragments": [
    {
      "fragment": "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_fragment": "T.\"A11\" BETWEEN $1 AND $2"
      }
    }
  ]
}

I componenti principali dell'oggetto JSON del frammento sono i seguenti:

  • fragment: un predicato SQL.
  • intent: una spiegazione del predicato SQL.
  • manifest: una forma generalizzata e generata automaticamente dell'intento.
  • parameterized_intent: una forma predefinita e generata automaticamente dell'intent, con i valori delle entità sostituiti dai parametri.
  • parameterized_fragment: una forma del frammento basata su un modello e generata automaticamente che corrisponde all'intent parametrizzato.

Limitazioni

Gli agenti dati presentano le seguenti limitazioni:

  • Il contesto dell'agente per i database supporta solo modelli e sfaccettature.
  • Il contesto dell'agente per i database viene utilizzato solo dall'endpoint QueryData nell'API Conversational Analytics.

Passaggi successivi