Créez une interface de chat basée sur l'intelligence artificielle (IA) pour vos interfaces de programmation de systèmes d'entreprise et laissez vos collègues poser des questions sur vos données d'entreprise. Analyser et créer des rapports sur les données de votre organisation est essentiel pour améliorer votre activité. Trouver des problèmes, découvrir des tendances et examiner les résultats sont tous possibles avec les bonnes données. Toutefois, en tant que développeur, aider vos collègues non codeurs à trouver les bonnes données peut s'avérer difficile.
Le projet SQL Talk est une application Open Source qui utilise la technologie d'IA générative pour répondre aux questions sur les données métier. Le projet utilise l'API Gemini et la fonctionnalité Function Calling (Appel de fonction) pour transformer les questions sur les données métier en requêtes SQL et en appels d'API, puis pour transformer les résultats en langage clair. 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 avoir à écrire un tas de code à usage unique.
Pour obtenir une présentation vidéo du projet et découvrir comment l'étendre, y compris des insights de ses créateurs, consultez Agent de données IA | Créer avec l'IA de Google. Sinon, vous pouvez commencer à étendre le projet en suivant les instructions ci-dessous.
Figure 1. Interface utilisateur de l'application du projet SQL Talk.
Configuration du projet
Ces instructions vous expliquent comment configurer le projet SQL Talk pour le développement et les tests. Les étapes générales consistent à créer le projet SQL Talk, à configurer un projet de développement dans l'éditeur Google Cloud Shell, à obtenir un ID de projet Google Cloud et à utiliser un script pour configurer les paramètres du projet. Ces instructions expliquent comment configurer le projet à l'aide de l'éditeur Cloud Shell, ce qui permet de configurer, d'exécuter et de mettre à jour le projet rapidement et facilement.
Créer une instance Cloud Shell pour le projet
Vous pouvez configurer le projet SQL Talk en clonant son dépôt 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:
- Cliquez sur le lien suivant pour créer une instance Cloud Shell de SQL Talk.
Ce lien configure une instance de l'éditeur Google Cloud Shell et clone le dépôt de SQL Talk dans l'instance.
Figure 2. Projet SQL Talk cloné dans un environnement de développement Google Cloud Shell Editor.
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 aux 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:
- Accédez à la console Google Cloud, puis connectez-vous si nécessaire.
- Sélectionnez un projet Cloud existant ou créez-en un.
- Notez l'ID du projet Cloud pour le projet.
Connectez l'instance de l'éditeur à votre projet et configurez-le. Dans la fenêtre de l'éditeur Cloud Shell, dans le panneau du terminal, saisissez la commande suivante:
gcloud config set project YOUR_PROJECT_ID
Configurer le projet SQL Talk
Le projet SQL Talk utilise les services Google Cloud pour exécuter le projet, 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 configure le projet 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:
Dans le panneau du 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
Dans le panneau du terminal, saisissez la commande suivante:
bash setup.sh
Une fois le script de configuration terminé, un message semblable à celui-ci 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 démarre automatiquement l'application lorsque vous l'exécutez. Vous pouvez redémarrer l'application en procédant comme suit.
Pour exécuter l'application SQL Talk:
Si l'éditeur Cloud Shell a été inactif et déconnecté, vous devrez peut-être vous reconnecter à votre ID de projet Cloud.
gcloud config set project YOUR_PROJECT_ID
Dans le panneau du 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
Dans le panneau du terminal, saisissez la commande suivante.
~/miniforge/bin/streamlit run app.py --server.enableCORS=false \ --server.enableXsrfProtection=false --server.port 8080
Affichez l'application SQL Talk. En haut à droite de la fenêtre de l'éditeur Cloud Shell, sélectionnez le bouton Web Preview (Aperçu sur le Web), puis Preview on port 8080 (Prévisualiser sur le port 8080).
Pour consulter les mises à jour de l'application SQL Talk:
- Dans l'aperçu 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 du terminal de la fenêtre de l'éditeur Cloud Shell, saisissez Ctrl+C.
Modifier l'application
Vous pouvez modifier le comportement et ajouter des fonctionnalités à l'application SQL Talk en modifiant le code Python de l'application. Cette section explique comment ajouter un appel de fonction à l'application SQL Talk.
La fonctionnalité Function Calling (Appel de fonction) de l'API Gemini utilise une syntaxe spécifique pour définir les fonctions à utiliser par le modèle génératif pour répondre aux questions ou résoudre les problèmes. Cette syntaxe n'a pas besoin de correspondre précisément à la syntaxe 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 à utiliser ces paramètres pour exécuter les appels d'API réels dans le code de votre application.
Cet exemple d'implémentation vous montre comment créer une définition d'appel de fonction pour lister les requêtes ou tâches de base de données récentes, puis 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
Ajout d'un appel de fonction pour lister les requêtes ou tâches de base de données récentes. Cette définition est utilisée par le modèle génératif pour comprendre ce que fait l'appel d'API et quels paramètres d'entrée il nécessite. Cet exemple de définition de fonction est défini sans paramètre.
Pour ajouter un appel de fonction à l'application:
- Dans la fenêtre de l'éditeur Cloud Shell, ouvrez le fichier de code
sql-talk-app/app.py
. Après la déclaration de la fonction
list_datasets_func
, ajoutez unFunctionDeclaration
.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": { }, }, )
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 permettant d'exécuter l'appel d'API pour la nouvelle fonction:
Dans le fichier de code
sql-talk-app/app.py
, ajoutez une clauseif
à la bouclewhile 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 de requête SQL, consultez le dépôt de code et le post 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 Discord de la communauté Google Developers et le forum Google Cloud AI/ML. Pour découvrir d'autres projets "Créer avec l'IA de Google", consultez la playlist vidéo.