Creare un agente di esplorazione dei dati AI con Gemini

Crea un'interfaccia di chat basata sull'intelligenza artificiale (IA) per la tua azienda interfacce di programmazione di sistema e permettere ai tuoi colleghi di porre domande i dati aziendali. Eseguire analisi e report sui dati dell'organizzazione essenziali per migliorare il tuo modo di lavorare. Trovare problemi, scoprire tendenze e l'analisi dei risultati sono tutti possibili con i dati giusti, ma come sviluppatore, aiutare i colleghi non programmatori a scoprire i dati giusti può essere difficile.

La Discussione SQL progetto è un'applicazione open source che utilizza la tecnologia dell'IA generativa per: e rispondere a domande sui dati aziendali. Il progetto utilizza l'API Gemini e Chiamata di funzione per trasformare le domande sui dati aziendali in query SQL e chiamate API per trasformare nuovamente i risultati in un linguaggio semplice. Puoi utilizzare questo progetto come punto di partenza per creare un agente dati per la tua attività e aiutare i colleghi ricevono risposte senza che tu debba scrivere una grande quantità di codice monouso.

Per una panoramica video del progetto e di come estenderlo, inclusi approfondimenti da chi lo crea, dai un'occhiata Agente dati IA | Crea con l'IA di Google. In caso contrario, puoi iniziare a estendere il progetto utilizzando quanto segue 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 sviluppo e test. I passaggi generali prevedono la creazione di SQL Talk configurazione di un editor di Google Cloud Shell di sviluppo software, recuperando un ID progetto Google Cloud e utilizzando per configurare le impostazioni del progetto. Queste istruzioni descrivono come impostare il progetto usando l'editor di Cloud Shell, che permette di 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 una dell'istanza di Cloud Shell. Questo processo configura un ambiente di sviluppo virtuale all'interno dell'infrastruttura Google Cloud per il progetto e clona di codice sorgente nell'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 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 editor di Google Cloud Shell di sviluppo software.

Ottieni un ID progetto Cloud

Il progetto SQL Talk utilizza un ID progetto Google Cloud per connettersi a Google Cloud tra cui i modelli Gemini. Configuri un ID progetto all'interno 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. Accedi a Google Cloud Google Cloud e accedi, se necessario.
  2. Seleziona un progetto Cloud esistente oppure creane uno nuovo.
  3. Prendi nota dell'ID del progetto Cloud.
  4. Connetti l'istanza Editor al 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
    
di Gemini Advanced.

configura il progetto SQL Talk

Il progetto SQL Talk utilizza i servizi Google Cloud per eseguire il progetto, tra cui: il servizio di database BigQuery e 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 progetto.

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

  1. Nel riquadro terminale della finestra dell'editor di Cloud Shell, vai alla sezione Directory del progetto Shell SQL Talk (/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 correttamente lo script di configurazione, dovresti vedere un messaggio simile al comando seguente nella finestra del terminale dell'editor di Cloud Shell. Questo messaggio indica che il processo di configurazione è stato completato correttamente e che 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

Dopo aver completato la configurazione del progetto SQL Talk, puoi testare per verificare che funzioni come previsto. Script di configurazione avvia automaticamente l'applicazione quando la esegui e puoi riavviare utilizzando la seguente procedura.

Per eseguire l'applicazione SQL Talk:

  1. Se l'editor di Cloud Shell è stato inattivo e disconnesso, potresti aver bisogno per riconnetterti al tuo ID progetto Cloud.

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

    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 nell'editor di Cloud Shell seleziona il pulsante Anteprima web e poi 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 il browser oppure scheda del browser.

Per arrestare l'applicazione SQL Talk:

  • Nel riquadro terminale della finestra dell'editor di Cloud Shell, digita Ctrl-C.

Modificare l'applicazione

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

Le chiamate di funzione dell'API Gemini usa una sintassi specifica per definire le funzioni che devono essere usate dall'IA generativa modello per rispondere a domande o risolvere problemi. Questa sintassi non richiede corrispondono esattamente alla sintassi di una chiamata API effettiva. Utilizza invece il comando Function Chiamata a una caratteristica per forzare il modello generativo a fornire input di dati specifici o che siano conformi alla sintassi della chiamata API e utilizzare questi parametri per le chiamate API effettive all'interno del codice dell'applicazione.

L'implementazione di esempio mostra come creare una definizione di chiamata di funzione per elencare le query o i job recenti del database e poi mappare la definizione al chiamata API effettiva nel codice dell'applicazione SQL Talk.

Aggiungi una definizione di chiamata di funzione

Aggiungi una nuova chiamata di funzione per elencare le query o i job recenti del database. Questo definita dal modello generativo per capire lo scopo della chiamata API e i parametri di input richiesti. Questa definizione di funzione di esempio è definiti 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 dichiarazione della funzione list_datasets_func, 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 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])
    

Risorse aggiuntive

Per ulteriori informazioni sul progetto SQL Query, consulta repository di codice e dai un'occhiata alle Post del blog della community Cloud sul progetto SQL Talk. Se hai bisogno di aiuto per creare l'applicazione o vuoi collaborare con altri sviluppatori, dai un'occhiata al Google Developers Discord della community e Forum su IA/ML di Google Cloud. Per altri progetti di Build with Google AI, dai un'occhiata al playlist video.