Creare un agente di esplorazione dei dati AI con Gemini

Crea un'interfaccia di chat basata sull'intelligenza artificiale (IA) per le interfacce di programmazione del tuo sistema aziendale e consenti ai tuoi colleghi di porre domande sui tuoi dati aziendali. Eseguire analisi e report sui dati della tua organizzazione è fondamentale per migliorare la tua attività. Trovare problemi, scoprire tendenze e analizzare i risultati è tutto ciò che è possibile fare con i dati giusti, ma in qualità di sviluppatore, aiutare i colleghi che non si occupano di programmazione a scoprire i dati giusti può essere complicato.

Il progetto SQL Talk è un'applicazione open source che utilizza la tecnologia di IA generativa per rispondere a domande sui dati aziendali. Il progetto utilizza l'API Gemini e la funzionalità Chiamate di funzione per trasformare le domande sui dati aziendali in query SQL e chiamate API, quindi trasformare i risultati in un linguaggio normale. Puoi utilizzare questo progetto come punto di partenza per creare un agente di dati per la tua attività e aiutare i tuoi colleghi a ottenere risposte senza che tu debba scrivere codice monouso.

Per una panoramica video del progetto e di come estenderlo, inclusi gli insight delle persone che lo creano, dai un'occhiata ad AI Data Agent | Build with Google AI. Altrimenti, puoi iniziare a estendere il progetto utilizzando le seguenti istruzioni.

Interfaccia utente dell'applicazione del progetto SQL Talk

Figura 1. Interfaccia utente dell'applicazione del progetto SQL Talk.

Configurazione del progetto

Queste istruzioni illustrano come configurare il progetto SQL Talk per lo sviluppo e i test. I passaggi generali prevedono la creazione del progetto SQL Talk, la configurazione di un progetto di sviluppo dell'editor di Google Cloud Shell, il recupero di un ID progetto Google Cloud e l'utilizzo di uno script per configurare le impostazioni del progetto. Queste istruzioni descrivono come configurare il progetto utilizzando l'editor di Cloud Shell, in modo da configurare, eseguire e aggiornare il progetto in modo rapido e pratico.

crea un'istanza di Cloud Shell per il progetto

Puoi configurare il progetto SQL Talk clonando il repository del progetto in un'istanza di Cloud Shell. Questo processo configura un'istanza dell'ambiente di sviluppo virtuale all'interno dell'infrastruttura Google Cloud per il progetto e clona il repository di codice in quell'ambiente virtuale.

Per creare un'istanza di Cloud Shell per SQL Talk:

Questo link configura un'istanza dell'editor di Google Cloud Shell e clona il repository per SQL Talk nell'istanza.

Editor di Google Cloud Shell con il codice del progetto SQL Talk mostrato

Figura 2. Progetto SQL Talk clonato in un ambiente di sviluppo degli editor di Google Cloud Shell.

Recupera un ID progetto Cloud

Il progetto SQL Talk utilizza un ID progetto Google Cloud per la connessione ai servizi Google Cloud, inclusi i modelli Gemini. Puoi configurare un ID progetto nell'editor di Cloud Shell per consentire all'applicazione di connettersi a questi servizi.

Per connettere l'editor di Cloud Shell a un ID progetto:

  1. Passa alla console Google Cloud e accedi, se necessario.
  2. Seleziona un progetto Cloud esistente o creane uno nuovo.
  3. Prendi nota dell'ID progetto Cloud del progetto.
  4. Connetti l'istanza di Editor al tuo progetto e configuralo. Nella finestra dell'editor di Cloud Shell, nel riquadro del terminale inserisci il seguente comando:

    gcloud config set project YOUR_PROJECT_ID
    

Configurare il progetto SQL Talk

Il progetto SQL Talk utilizza i servizi Google Cloud per eseguire il progetto, inclusi il servizio di database BigQuery e l'API Vertex AI per connettersi ai modelli Gemini. Il progetto SQL Talk include uno script setup.sh che configura il progetto con i servizi Google Cloud richiesti e avvia la versione predefinita del progetto.

Per configurare ed eseguire l'istanza dell'editor di Cloud Shell del progetto:

  1. Nel riquadro del terminale della finestra dell'editor di Cloud Shell, vai alla directory del progetto SQL Talk di Cloud Shell (/sql-talk-app):

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  2. Nel riquadro del terminale, inserisci il seguente comando:

    bash setup.sh
    

Una volta completato lo script di configurazione, nella finestra del terminale dell'editor di Cloud Shell dovrebbe essere visualizzato un messaggio simile al seguente. Questo messaggio indica che il processo di configurazione è riuscito e l'applicazione SQL Talk è in esecuzione:

You can now view your Streamlit app in your browser.
Network URL: http://##.##.##.##:8080
External URL: http://##.##.##.##:8080

Testa il progetto

Una volta completata la configurazione del progetto SQL Talk, puoi testare l'applicazione per verificare che funzioni come previsto. Lo script di configurazione avvia automaticamente l'applicazione quando la esegui e puoi riavviarla seguendo questa procedura.

Per eseguire l'applicazione SQL Talk:

  1. Se l'editor di Cloud Shell è stato inattivo e disconnesso, potrebbe essere necessario riconnettersi al tuo ID progetto Cloud.

    gcloud config set project YOUR_PROJECT_ID
    
  2. Nel riquadro del terminale della finestra dell'editor di Cloud Shell, vai alla directory del progetto SQL Talk di Cloud Shell.

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  3. Nel riquadro del terminale, inserisci il seguente comando.

    ~/miniforge/bin/streamlit run app.py --server.enableCORS=false \
        --server.enableXsrfProtection=false --server.port 8080
    
  4. Visualizza l'applicazione SQL Talk. In alto a destra nella finestra dell'editor di Cloud Shell, seleziona il pulsante Anteprima web, quindi Anteprima sulla porta 8080.

Intestazione dell'editor di Cloud Shell con il pulsante Anteprima web evidenziato

Per visualizzare gli aggiornamenti dell'applicazione SQL Talk:

  • Nell'anteprima web dell'applicazione web SQL Talk, ricarica la scheda del browser o del browser.

Per arrestare l'applicazione SQL Talk:

  • Nel riquadro del terminale della finestra dell'editor di Cloud Shell, premi Ctrl+C.

Modificare l'applicazione

Puoi cambiare il comportamento e aggiungere funzionalità all'applicazione SQL Talk modificando il codice Python dell'applicazione. Questa sezione descrive come aggiungere una nuova chiamata di funzione all'applicazione SQL Talk.

La funzionalità Chiamate di funzioni dell'API Gemini utilizza una sintassi specifica per definire le funzioni che il modello generativo deve utilizzare per rispondere a domande o risolvere problemi. Questa sintassi non deve necessariamente corrispondere esattamente a quella di una chiamata API effettiva. Puoi utilizzare invece la funzionalità Chiamata di funzione per forzare il modello generativo a fornire input di dati o parametri specifici conformi alla sintassi delle chiamate API, quindi utilizzare questi parametri per eseguire le chiamate API effettive all'interno del codice dell'applicazione.

Questa implementazione di esempio mostra come creare una definizione di chiamata di funzione per elencare i job o le query recenti del database, quindi mapparla all'effettiva chiamata API all'interno del codice dell'applicazione SQL Talk.

Aggiungi una definizione della chiamata di funzione

Aggiungi una nuova chiamata funzione per elencare i job o le query recenti del database. Questa definizione viene utilizzata dal modello generativo per comprendere lo scopo della chiamata API e i parametri di input richiesti. Questa definizione di funzione di esempio è definita senza parametri.

Per aggiungere una nuova chiamata di funzione all'applicazione:

  1. Nella finestra dell'editor di Cloud Shell, apri il file di codice sql-talk-app/app.py.
  2. Dopo la list_datasets_funcdichiarazione della funzione, aggiungi una nuova FunctionDeclaration.

    list_jobs_func = FunctionDeclaration(
        name="list_jobs",
        description="Get a list of the 10 most recent database requests to help answer the user's question",
        parameters={
            "type": "object",
            "properties": {
      },
    },
    )
    
  3. Aggiungi la nuova funzione all'oggetto sql_query_tool.

    sql_query_tool = Tool(
        function_declarations=[
            sql_query_func,
            list_datasets_func,
            List_jobs_func,  # add this new function
            list_tables_func,
            get_table_func,
        ],
    )
    

Per aggiungere il codice per eseguire la chiamata API per la nuova funzione:

  • Nel file di codice sql-talk-app/app.py, aggiungi una nuova clausola if al loop while function_calling_in_process:.

    if response.function_call.name == "list_datasets":
        ...
    
    # add this if clause for list_jobs function
    if response.function_call.name == "list_jobs":
        api_response = client.list_jobs(max_results=10)  # API request(s)
        api_response = str([job.job_id for job in api_response])
        api_requests_and_responses.append(
          [response.function_call.name,params, api_response])
    

Altre risorse

Per ulteriori informazioni sul progetto SQL Query, consulta il repository del codice e il post del blog della community Cloud sul progetto SQL Talk. Se hai bisogno di assistenza per creare l'applicazione o vuoi collaborare con altri sviluppatori, dai un'occhiata al server Google Developers Community Discord e al forum su IA/ML di Google Cloud. Per altri progetti IA di Build with Google, dai un'occhiata alla playlist dei video.