Créer un agent d'exploration de données IA avec Gemini

Créez une interface de chat optimisée par l'intelligence artificielle (IA) pour vos interfaces de programmation de système d'entreprise et permettez à vos collègues de poser des questions sur vos données d'entreprise. Effectuer des analyses et des rapports sur les données de votre organisation est essentiel pour améliorer la façon dont vous travaillez. Avec les bonnes données, il est possible de trouver des problèmes, de découvrir des tendances et d'examiner des résultats. Toutefois, en tant que développeur, il peut être difficile d'aider vos collègues qui ne connaissent pas le codage à découvrir les bonnes données.

Le projet SQL Talk est une application Open Source qui utilise la technologie d'IA générative pour répondre aux questions concernant les données d'entreprise. Le projet exploite l'API Gemini et la fonctionnalité d'appel de fonction pour transformer les questions relatives aux données d'entreprise en requêtes SQL et en appels d'API, puis reconvertir les résultats dans un langage brut. Vous pouvez utiliser ce projet comme point de départ pour créer un agent de données pour votre propre entreprise et aider vos collègues à obtenir des réponses sans que vous ayez à écrire un ensemble de code à usage unique.

Pour obtenir une présentation vidéo du projet et de la manière de l'étendre, y compris les insights des personnes qui le créent, regardez la vidéo AI Data Agent | Build with Google AI. Sinon, vous pouvez commencer à étendre le projet en suivant les instructions suivantes.

Interface utilisateur de l'application du projet SQL Talk

Figure 1. Interface utilisateur de l'application du projet SQL Talk

Configuration du projet

Ces instructions vous guident tout au long de la configuration du projet SQL Talk pour le développement et les tests. Les étapes générales incluent la création du projet SQL Talk, la configuration d'un projet de développement avec l'éditeur Google Cloud Shell, l'obtention d'un ID de projet Google Cloud et l'utilisation d'un script pour configurer les paramètres du projet. Ces instructions décrivent comment configurer le projet à l'aide de l'éditeur Cloud Shell, ce qui facilite et accélère la configuration, l'exécution et la mise à jour du projet.

Créer une instance Cloud Shell pour le projet

Vous pouvez configurer le projet SQL Talk en clonant le dépôt du projet dans une instance Cloud Shell. Ce processus configure une instance d'environnement de développement virtuel dans l'infrastructure Google Cloud pour le projet et clone le dépôt de code dans cet environnement virtuel.

Pour créer une instance Cloud Shell pour SQL Talk:

Ce lien permet de configurer une instance de l'éditeur Google Cloud Shell et de cloner le dépôt dans l'instance pour SQL Talk.

Éditeur Google Cloud Shell avec le code du projet SQL Talk affiché

Figure 2. Projet SQL Talk cloné dans un environnement de développement de l'éditeur Google Cloud Shell.

Obtenir un ID de projet Cloud

Le projet SQL Talk utilise un ID de projet Google Cloud pour se connecter aux services Google Cloud, y compris les modèles Gemini. Vous configurez un ID de projet dans l'éditeur Cloud Shell pour permettre à l'application de se connecter à ces services.

Pour connecter l'éditeur Cloud Shell à un ID de projet, procédez comme suit:

  1. Accédez à la console Google Cloud et connectez-vous si nécessaire.
  2. Sélectionnez un projet Cloud existant ou créez-en un.
  3. Notez l'ID du projet Cloud.
  4. Connectez l'instance Editor à votre projet et configurez-le. Dans la fenêtre de l'éditeur Cloud Shell, saisissez la commande suivante dans le panneau de terminal:

    gcloud config set project YOUR_PROJECT_ID
    

Configurer le projet SQL Talk

Le projet SQL Talk utilise les services Google Cloud pour l'exécuter, y compris le service de base de données BigQuery et l'API Vertex AI pour se connecter aux modèles Gemini. Le projet SQL Talk inclut un script setup.sh qui le configure avec les services Google Cloud requis et démarre la version par défaut du projet.

Pour configurer et exécuter l'instance de l'éditeur Cloud Shell du projet, procédez comme suit:

  1. Dans le panneau de terminal de la fenêtre de l'éditeur Cloud Shell, accédez au répertoire du projet Cloud Shell SQL Talk (/sql-talk-app) :

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  2. Dans le panneau de terminal, saisissez la commande suivante:

    bash setup.sh
    

Une fois le script de configuration terminé, un message semblable au suivant doit s'afficher dans la fenêtre de terminal de l'éditeur Cloud Shell. Ce message indique que le processus de configuration a réussi et que l'application SQL Talk est en cours d'exécution:

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

Tester le projet

Une fois la configuration du projet SQL Talk terminée, vous pouvez tester l'application pour vérifier qu'elle fonctionne comme prévu. Le script de configuration lance automatiquement l'application lorsque vous l'exécutez. Vous pouvez la redémarrer en procédant comme suit.

Pour exécuter l'application SQL Talk:

  1. Si l'éditeur Cloud Shell a été inactif et déconnecté, vous devrez peut-être vous reconnecter à l'ID de votre projet Cloud.

    gcloud config set project YOUR_PROJECT_ID
    
  2. Dans le panneau de terminal de la fenêtre de l'éditeur Cloud Shell, accédez au répertoire du projet Cloud Shell SQL Talk.

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  3. Dans le panneau de terminal, saisissez la commande suivante :

    ~/miniforge/bin/streamlit run app.py --server.enableCORS=false \
        --server.enableXsrfProtection=false --server.port 8080
    
  4. Affichez l'application SQL Talk. En haut à droite de la fenêtre de l'éditeur Cloud Shell, sélectionnez le bouton Aperçu sur le Web, puis Prévisualiser sur le port 8080.

En-tête de l'éditeur Cloud Shell avec le bouton "Aperçu sur le Web" mis en évidence

Pour afficher les mises à jour de l'application SQL Talk:

  • Dans l'aperçu sur le Web de l'application Web SQL Talk, actualisez le navigateur ou l'onglet du navigateur.

Pour arrêter l'application SQL Talk:

  • Dans le panneau de terminal de la fenêtre de l'éditeur Cloud Shell, appuyez sur Ctrl+C.

Modifier l'application

Vous pouvez modifier le comportement de l'application SQL Talk et ajouter des fonctionnalités en modifiant le code Python de l'application. Cette section explique comment ajouter un appel de fonction à l'application SQL Talk.

La fonctionnalité d'appel de fonction de l'API Gemini utilise une syntaxe spécifique pour définir les fonctions que le modèle génératif doit utiliser pour répondre à des questions ou résoudre des problèmes. Il n'est pas nécessaire que cette syntaxe corresponde exactement à celle d'un appel d'API réel. À la place, vous utilisez la fonctionnalité d'appel de fonction pour forcer le modèle génératif à fournir des entrées de données ou des paramètres spécifiques conformes à la syntaxe d'appel d'API, puis vous utilisez ces paramètres pour exécuter les appels d'API réels dans votre code d'application.

Cet exemple d'implémentation vous montre comment créer une définition d'appel de fonction pour répertorier les requêtes de base de données ou les tâches récentes, puis comment mapper cette définition à l'appel d'API réel dans le code de l'application SQL Talk.

Ajouter une définition d'appel de fonction

Ajoutez un appel de fonction pour répertorier les requêtes ou les tâches de base de données récentes. Cette définition permet au modèle génératif de comprendre le rôle de l'appel d'API et les paramètres d'entrée dont il a besoin. Cet exemple de définition de fonction est défini sans paramètre.

Pour ajouter un appel de fonction à l'application, procédez comme suit:

  1. Dans la fenêtre de l'éditeur Cloud Shell, ouvrez le fichier de code sql-talk-app/app.py.
  2. Après la déclaration de la fonction list_datasets_func, ajoutez une 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. Ajoutez la nouvelle fonction à l'objet 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,
        ],
    )
    

Pour ajouter du code afin d'exécuter l'appel d'API pour la nouvelle fonction, procédez comme suit:

  • Dans le fichier de code sql-talk-app/app.py, ajoutez une nouvelle clause if à la boucle 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])
    

Ressources supplémentaires

Pour en savoir plus sur le projet SQL Query, consultez le dépôt de code et l'article de blog de la communauté Cloud sur le projet SQL Talk. Si vous avez besoin d'aide pour créer l'application ou si vous souhaitez collaborer avec d'autres développeurs, consultez le serveur Google Developers Community Discord et le forum sur l'IA et le ML de Google Cloud. Pour d'autres projets Compiler avec l'IA de Google, regardez la playlist de vidéos.