Accédez à plus de 700 ateliers et cours

Créer une application de chat basée sur des LLM et le RAG à l'aide d'AlloyDB et de Vertex AI

Atelier 1 heure 30 minutes universal_currency_alt 5 crédits show_chart Intermédiaire
info Cet atelier peut intégrer des outils d'IA pour vous accompagner dans votre apprentissage.
Accédez à plus de 700 ateliers et cours

Présentation

L'un des meilleurs outils pour améliorer la qualité des réponses des grands modèles de langage (LLM) est la génération augmentée par récupération (RAG). Le RAG est le modèle qui consiste à récupérer des données non publiques et à les utiliser pour enrichir la requête envoyée au LLM. Le RAG permet au LLM de générer des réponses plus précises en fonction des données incluses dans la requête.

Vous allez utiliser AlloyDB, la base de données Google Cloud évolutive, performante et compatible avec PostgreSQL pour stocker et rechercher un type particulier de données vectorielles appelées "embeddings vectoriels" (ou "plongements vectoriels"). Les embeddings vectoriels peuvent être récupérés à l'aide d'une recherche sémantique, qui permet de récupérer les données disponibles les plus pertinentes par rapport à la requête en langage naturel de l'utilisateur. Les données récupérées sont ensuite transmises au LLM dans le prompt.

Pour récupérer des données de la base de données, vous utiliserez MCP Toolbox, un serveur middleware qui expose les opérations de base de données sous la forme d'un ensemble d'outils. L'agent se connecte à Toolbox pour exécuter ces outils. Cela permet de gérer les interactions avec la base de données de manière sécurisée, évolutive et modulaire.

Vous allez également utiliser Vertex AI, la plate-forme de développement d'IA unifiée et entièrement gérée de Google Cloud, qui permet de créer et d'utiliser l'IA générative. Votre application utilise Gemini Pro, un modèle de fondation multimodal qui permet d'ajouter des fichiers image, audio, vidéo et PDF dans des prompts textuels ou de chat, et qui est capable de comprendre un contexte de grande taille.

architecture de l'application d'agent

Objectifs de l'atelier

Dans cet atelier, vous allez découvrir :

  • comment le RAG améliore les fonctionnalités LLM en récupérant des informations pertinentes dans une base de connaissances ;
  • comment utiliser AlloyDB pour trouver des informations pertinentes à l'aide de la recherche sémantique ;
  • comment utiliser Vertex AI et les modèles de fondation de Google pour fournir des capacités d'IA générative performantes à vos applications.

Préparation

Avant de cliquer sur le bouton "Démarrer l'atelier"

Remarque : Lisez ces instructions.

Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.

Cet atelier pratique Qwiklabs vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Des identifiants temporaires vous sont fournis pour vous permettre de vous connecter à Google Cloud le temps de l'atelier.

Conditions requises

Pour réaliser cet atelier, vous devez :

  • avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
  • disposer de suffisamment de temps pour effectuer l'atelier en une fois.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier. Remarque : Si vous utilisez un Pixelbook, veuillez exécuter cet atelier dans une fenêtre de navigation privée.

Démarrer votre atelier et vous connecter à la console

  1. Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement. Sur la gauche, vous verrez un panneau contenant les identifiants temporaires à utiliser pour cet atelier.

    Panneau d'identifiants

  2. Copiez le nom d'utilisateur, puis cliquez sur Ouvrir la console Google. L'atelier lance les ressources, puis la page Sélectionner un compte dans un nouvel onglet.

    Remarque : Ouvrez les onglets dans des fenêtres distinctes, placées côte à côte.
  3. Sur la page "Sélectionner un compte", cliquez sur Utiliser un autre compte. La page de connexion s'affiche.

    Boîte de dialogue "Sélectionner un compte" avec l'option "Utiliser un autre compte" encadrée.

  4. Collez le nom d'utilisateur que vous avez copié dans le panneau "Détails de connexion". Copiez et collez ensuite le mot de passe.

Remarque : Vous devez utiliser les identifiants fournis dans le panneau "Détails de connexion", et non vos identifiants Google Cloud Skills Boost. Si vous possédez un compte Google Cloud, ne vous en servez pas pour cet atelier (vous éviterez ainsi que des frais vous soient facturés).
  1. Accédez aux pages suivantes :
  • Acceptez les conditions d'utilisation.
  • N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
  • Ne vous inscrivez pas aux essais offerts.

Après quelques instants, la console Cloud s'ouvre dans cet onglet.

Remarque : Vous pouvez afficher le menu qui contient la liste des produits et services Google Cloud en cliquant sur le menu de navigation en haut à gauche. Menu de la console Cloud

Activer Google Cloud Shell

Google Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud.

Google Cloud Shell vous permet d'accéder à vos ressources Google Cloud grâce à une ligne de commande.

  1. Dans la barre d'outils située en haut à droite dans la console Cloud, cliquez sur le bouton "Ouvrir Cloud Shell".

    Icône Cloud Shell encadrée

  2. Cliquez sur Continuer.

Le provisionnement et la connexion à l'environnement prennent quelques instants. Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Par exemple :

ID de projet mis en évidence dans le terminal Cloud Shell

gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.

  • Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list

Résultat :

Credentialed accounts: - @.com (active)

Exemple de résultat :

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project =

Exemple de résultat :

[core] project = qwiklabs-gcp-44776a13dea667a6 Remarque : Pour consulter la documentation complète sur gcloud, accédez au guide de présentation de la gcloud CLI.

Tâche 1 : Initialiser l'environnement

Dans cette tâche, vous allez installer Python, MCP Toolbox et le client PostgreSQL.

Se connecter en SSH à la VM de l'application

Une machine virtuelle (VM) a été créée. Cette VM héberge l'application et MCP Toolbox.

  1. Pour vous connecter à la VM, exécutez la commande suivante dans Cloud Shell :

    gcloud compute ssh app-vm --zone={{{project_0.default_zone | ZONE }}}

    Si vous êtes invité à donner votre autorisation, cliquez sur Autoriser.

  2. Pour chaque question posée par la commande gcloud compute ssh, cliquez sur Entrée ou Retour pour spécifier la valeur par défaut.

    Après un court délai, vous êtes connecté à la VM.

Installer Python et Git

  1. Pour installer Python et Git, exécutez les commandes suivantes dans la VM :

    sudo apt update sudo apt install -y python3.11-venv git python3 -m venv .venv source ~/.venv/bin/activate pip install --upgrade pip

    Une fois l'installation terminée, vous restez dans l'environnement virtuel Python, avec une invite (.venv).

    Si la session SSH de la VM expire ou si l'onglet est fermé, vous pouvez vous reconnecter à la VM via SSH et utiliser la commande source ~/.venv/bin/activate pour redémarrer l'environnement virtuel Python.

  2. Pour vérifier la version de Python, exécutez la commande suivante :

    python -V

    Votre réponse doit ressembler à ceci :

    (.venv) student@app-vm:~$ python -V Python 3.11.2 (.venv) student@app-vm:~$

Installer le client PostgreSQL

  1. Pour installer le client PostgreSQL, exécutez les commandes suivantes dans la session de la VM :

    sudo apt install -y postgresql-client Remarque : Il est possible que le client soit déjà installé.

Télécharger la démo et MCP Toolbox

  1. Pour cloner le code de cette démo, exécutez les commandes suivantes :

    cd ~ git clone https://github.com/GoogleCloudPlatform/cymbal-air-toolbox-demo.git cd cymbal-air-toolbox-demo
  2. Pour télécharger le binaire MCP Toolbox, exécutez les commandes suivantes :

    export MCP_TOOLBOX_VERSION="{{{project_0.startup_script.gcp_mcp_toolbox_version | TOOLBOX_VERSION}}}" curl -O https://storage.googleapis.com/genai-toolbox/v$MCP_TOOLBOX_VERSION/linux/amd64/toolbox chmod +x toolbox

Tâche 2 : Créer la base de données vectorielle

Dans cette tâche, vous allez utiliser le client PostgreSQL pour créer la base de données vectorielle.

Créer la base de données vectorielle

Une instance AlloyDB a déjà été créée.

  1. Pour créer une base de données, exécutez la commande suivante :

    export PROJECT_ID=$(gcloud config get-value project) export REGION={{{project_0.default_region | REGION }}} export ADBCLUSTER={{{project_0.startup_script.gcp_alloydb_cluster_name | CLUSTER}}} export ADBINSTANCE={{{project_0.startup_script.gcp_alloydb_primary_instance | INSTANCE}}} export INSTANCE_IP=$(gcloud alloydb instances describe $ADBINSTANCE --cluster=$ADBCLUSTER --region=$REGION --format="value(ipAddress)") export PGUSER={{{project_0.startup_script.gcp_alloydb_user | PG_USER}}} export PGPASSWORD={{{project_0.startup_script.gcp_alloydb_password | PG_PASSWORD}}} export PGDATABASE={{{project_0.startup_script.gcp_alloydb_database | DATABASE}}} psql "host=$INSTANCE_IP user=$PGUSER dbname=postgres" -c "CREATE DATABASE $PGDATABASE"

    psql renvoie la réponse CREATE DATABASE.

    Pour que la base de données puisse prendre en charge les recherches sémantiques, les entités doivent être représentées par des embeddings vectoriels.

  2. Pour activer les embeddings vectoriels dans cette base de données, exécutez la commande suivante :

    psql "host=$INSTANCE_IP user=$PGUSER dbname=$PGDATABASE" -c "CREATE EXTENSION vector"

    psql renvoie la réponse CREATE EXTENSION.

Cliquez sur Vérifier ma progression pour valider l'objectif.

Créez la base de données AlloyDB et activez l'extension vector.

Tâche 3 : Insérer des données dans l'exemple de base de données

Dans cette tâche, vous allez utiliser MCP Toolbox pour insérer des exemples de données dans la base de données vectorielle dans AlloyDB. Ces données sont utilisées pour l'application de chat.

Examiner les modèles de données

  1. Pour afficher le modèle de données, exécutez la commande suivante :

    cd ~/cymbal-air-toolbox-demo cat models/models.py

    Les modèles de données Python sont présentés ici. Le modèle inclut les aéroports, les vols, les services disponibles dans les terminaux, les règles et les billets.

  2. Pour voir un exemple de données sur les aéroports, exécutez les commandes suivantes :

    head -1 data/airport_dataset.csv; grep SFO data/airport_dataset.csv

    Ces commandes affichent l'en-tête CSV qui spécifie les noms de colonne de l'ensemble de données "airport", suivi de la ligne correspondant à l'aéroport international de San Francisco (SFO). Les données du modèle "airport" peuvent être récupérées en fonction du code IATA (International Air Transport Association), ou par pays, ville et nom de l'aéroport. Vous pouvez utiliser la recherche par mots clés pour trouver des lignes dans ce tableau (il n'y a pas d'embeddings vectoriels pour ces données).

  3. Pour voir un exemple de données sur les vols, exécutez les commandes suivantes :

    head -1 data/flights_dataset.csv; grep -m10 "SFO" data/flights_dataset.csv

    Ces commandes affichent l'en-tête CSV qui spécifie les noms de colonne de l'ensemble de données "flights", suivi des 10 premières lignes de vols à destination ou en provenance de l'aéroport de San Francisco. Les données du modèle "flights" peuvent être récupérées en fonction de la compagnie aérienne et du numéro de vol, ou des codes des aéroports de départ et d'arrivée.

  4. Pour voir un exemple de données sur les services, exécutez la commande suivante :

    head -2 data/amenity_dataset.csv

    Cette commande affiche l'en-tête CSV qui spécifie les noms de colonne de l'ensemble de données "amenity", suivi du premier service.

    Vous remarquerez que le premier service comprend plusieurs valeurs simples (nom, description, emplacement, terminal, catégorie et horaires d'ouverture). La valeur suivante est content, qui intègre le nom, la description et l'emplacement. La dernière valeur est embedding, c'est-à-dire l'embedding vectoriel de la ligne.

    L'embedding est un tableau de 768 nombres qui est utilisé lors d'une recherche sémantique. Ces embeddings sont calculés à l'aide d'un modèle d'IA fourni par Vertex AI. Quand un utilisateur effectue une requête, un embedding vectoriel peut être créé à partir de la requête, et les données avec des embeddings vectoriels proches de l'embedding de la recherche peuvent être récupérées.

    Les données de règles utilisent également des embeddings vectoriels de manière similaire.

    Remarque : Le calcul des embeddings prend un certain temps. Ils sont donc déjà fournis. Vous pouvez examiner le script run_generate_embeddings.py pour voir comment les embeddings sont générés.

Démarrer la boîte à outils

  1. Pour configurer les variables d'environnement requises pour MCP Toolbox, exécutez les commandes suivantes :

    export ALLOYDB_POSTGRES_PROJECT=$(gcloud config get-value project) export ALLOYDB_POSTGRES_REGION={{{project_0.default_region | REGION }}} export ALLOYDB_POSTGRES_CLUSTER={{{project_0.startup_script.gcp_alloydb_cluster_name | CLUSTER}}} export ALLOYDB_POSTGRES_INSTANCE={{{project_0.startup_script.gcp_alloydb_primary_instance | PRIMARY_INSTANCE}}} export ALLOYDB_POSTGRES_DATABASE={{{project_0.startup_script.gcp_alloydb_database | DATABASE}}} export ALLOYDB_POSTGRES_USER={{{project_0.startup_script.gcp_alloydb_user | PG_USER}}} export ALLOYDB_POSTGRES_PASSWORD={{{project_0.startup_script.gcp_alloydb_password | PG_PASSWORD}}} export ALLOYDB_POSTGRES_IP_TYPE=private

    Ces variables d'environnement MCP Toolbox sont semblables à celles utilisées pour le client PostgreSQL.

    L'étape suivante consiste à exécuter MCP Toolbox.

  2. Pour exécuter MCP Toolbox en arrière-plan pour l'initialisation des données, exécutez la commande suivante :

    cd ~/cymbal-air-toolbox-demo ./toolbox --prebuilt alloydb-postgres &

    Le caractère esperluette (&) permet à la boîte à outils de s'exécuter en arrière-plan, ce qui vous permet d'initialiser la base de données dans la même session SSH.

Insérer des données dans la base de données

  1. Pour installer les dépendances Python de l'application de démonstration, exécutez la commande suivante :

    source ~/.venv/bin/activate pip install -r requirements.txt
  2. Pour exécuter le script de base de données, exécutez les commandes suivantes :

    export PYTHONPATH=~/cymbal-air-toolbox-demo python data/run_database_init.py

    La première commande ajoute un chemin d'accès aux modules Python et le script d'initialisation remplit la base de données.

  3. Pour vérifier les données insérées, exécutez la commande suivante :

    psql "host=$INSTANCE_IP user=$PGUSER dbname=$PGDATABASE" -c "SELECT COUNT(*) FROM airports"

    La commande PostgreSQL renvoie le nombre d'aéroports dans la table "airports".

  4. Pour mettre fin au processus Toolbox en arrière-plan, exécutez la commande suivante :

    pkill toolbox
Insérez l'exemple d'ensemble de données dans la base de données.

Tâche 4 : Créer un compte de service pour MCP Toolbox

Dans cette tâche, vous allez créer un compte de service pour MCP Toolbox.

Pour notre application de chat, MCP Toolbox est chargé d'extraire les informations pertinentes de la base de données. Il extrait les informations nécessaires de la base de données en fonction de la requête d'une application d'IA. Ce compte de service est utilisé comme identité du service MCP Toolbox exécuté dans Cloud Run.

Créer un compte de service

L'utilisateur SSH ne dispose pas de l'autorisation nécessaire pour que l'instance de projet attribue le rôle approprié au compte de service. Vous allez créer le compte de service dans un nouvel onglet Cloud Shell.

  1. Pour ouvrir un nouvel onglet dans Cloud Shell, cliquez sur Ouvrir un nouvel onglet (+).

  2. Pour créer un compte de service, exécutez la commande suivante dans le nouvel onglet :

    gcloud iam service-accounts create toolbox-identity

    Ce compte de service est créé.

    Remarque : Si une erreur s'affiche indiquant qu'aucun compte actif n'est actuellement sélectionné, il peut s'agir d'un simple délai de propagation. Exécutez à nouveau la commande.
  3. Pour accorder au compte de service les privilèges nécessaires, exécutez la commande suivante :

    export PROJECT_ID=$(gcloud config get-value project) gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/alloydb.client" gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/serviceusage.serviceUsageConsumer" gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/secretmanager.secretAccessor"

    Les rôles suivants sont attribués à ce compte de service :

    • roles/alloydb.client permet à la boîte à outils d'accéder aux bases de données AlloyDB.
    • roles/serviceusage.serviceUsageConsumer permet à la boîte à outils d'utiliser des services.
    • roles/secretmanager.secretAccessor permet à la boîte à outils de récupérer les secrets stockés dans Secret Manager.
  4. Pour fermer le nouvel onglet, exécutez la commande suivante :

    exit
Créez le compte de service "toolbox-identity".

Tâche 5 : Enregistrer l'écran de consentement OAuth

Dans cette tâche, vous allez enregistrer l'écran de consentement OAuth qui s'affiche lorsque les utilisateurs se connectent.

Lorsque vous utilisez OAuth 2.0 pour gérer les autorisations, Google affiche un écran de consentement pour recueillir l'accord de l'utilisateur concernant le partage de ses données avec l'application.

  1. Dans la console Google Cloud, accédez au menu de navigation (Icône du menu de navigation), puis cliquez sur API et services > Écran de consentement OAuth.

  2. Cliquez sur Commencer.

  3. Dans le champ Nom de l'application, saisissez Cymbal Air.

  4. Cliquez sur Adresse e-mail d'assistance utilisateur, sur l'adresse e-mail de l'élève, puis sur Suivant.

  5. Dans le champ Audience, sélectionnez Interne, puis cliquez sur Suivant.

    Les utilisateurs ayant accès au projet doivent pouvoir se connecter à l'application.

  6. Dans le panneau de gauche des instructions de l'atelier, copiez le nom d'utilisateur.

    Copier le nom d'utilisateur

  7. Dans le champ Coordonnées, collez le nom d'utilisateur copié.

  8. Cliquez sur Suivant.

  9. Cochez la case pour accepter le règlement sur les données utilisateur. Cliquez sur Continuer, puis sur Créer.

    L'écran de consentement est maintenant configuré.

Tâche 6 : Créer un ID client pour l'application

Dans cette tâche, vous allez créer un ID client pour l'application.

L'application nécessite un ID client pour utiliser le service OAuth de Google. Vous devez configurer les origines autorisées à effectuer cette requête, ainsi qu'un URI de redirection vers lequel l'application Web est redirigée une fois que l'utilisateur a accepté de se connecter.

  1. Dans la console Google Cloud, accédez au menu de navigation (Icône du menu de navigation), puis cliquez sur API et services > Identifiants.

  2. Cliquez sur + Créer des identifiants, puis sur ID client OAuth.

    Un ID client sert à identifier une application unique auprès des serveurs OAuth de Google.

  3. Dans le champ Type d'application, sélectionnez Application Web.

  4. Dans le champ Nom, saisissez Cymbal Air.

    Vous pouvez générer l'URI d'origine et de redirection JavaScript à l'aide de Cloud Shell.

  5. Pour ouvrir un nouvel onglet dans Cloud Shell, cliquez sur Ouvrir un nouvel onglet (+).

  6. Pour obtenir l'URI d'origine et de redirection, exécutez les commandes suivantes dans le nouvel onglet :

    echo "origin:"; echo "https://8080-$WEB_HOST"; echo "redirect:"; echo "https://8080-$WEB_HOST/login/google"
  7. Pour les Origines JavaScript autorisées, cliquez sur + Ajouter un URI.

    Remarque : utilisez le bouton Ajouter un URI situé sous Origines JavaScript autorisées, et non celui qui se trouve sous URI de redirection autorisés.
  8. Copiez l'URI d'origine créé par la commande "echo", puis collez-le dans le champ URI 1.

  9. Pour URI de redirection autorisés, cliquez sur + Ajouter un URI.

    Remarque : Il s'agit du deuxième bouton Ajouter un URI, sous URI de redirection autorisés.
  10. Copiez l'URI de redirection créé par la commande "echo", puis collez-le dans le champ URI 1.

  11. Pour créer la variable d'environnement, basculez sur l'onglet Cloud Shell SSH de la VM, puis collez la commande suivante sans cliquer sur Entrée :

    export CLIENT_ID= Remarque : Assurez-vous de créer la variable d'environnement CLIENT_ID dans la session de la machine virtuelle.
  12. Dans la fenêtre Identifiants, cliquez sur Créer.

    L'ID client et le code secret du client sont créés. Pour cette application test, vous n'utiliserez que l'ID client.

  13. Cliquez sur Copier l'ID client (Icône "Copier l'ID client").

    L'ID client est copié dans le presse-papiers.

    Remarque : Vous pouvez également copier l'ID client à partir de la page Identifiants.
  14. Dans l'onglet Cloud Shell SSH de la VM, collez l'ID client, puis cliquez sur Entrée.

    L'exportation devrait ressembler à ceci :

    export CLIENT_ID=937631684809-q7hs2r191jbks7f7dopih2uafuknb92h.apps.googleusercontent.com
Créez un ID client pour l'application.

Tâche 7 : Déployer la boîte à outils sur Cloud Run

Dans cette tâche, vous allez déployer MCP Toolbox sur Cloud Run.

Créer le fichier de configuration pour la boîte à outils

Un exemple de fichier tools.yaml est fourni pour la boîte à outils, mais plusieurs paramètres doivent être modifiés.

  1. Pour afficher les paramètres de configuration, exécutez la commande suivante :

    head -20 ~/cymbal-air-toolbox-demo/tools.yaml

    Ce fichier YAML contient les paramètres de configuration de la base de données et d'OAuth.

    Voici à quoi cela doit ressembler :

    sources: my-pg-instance: kind: alloydb-postgres project: retrieval-app-testing region: us-central1 cluster: my-alloydb-cluster instance: my-alloydb-instance database: assistantdemo user: postgres password: postgres authServices: my_google_service: kind: google clientId: 706535509072-qa5v22ur8ik8o513b0538ufo0ne9jfn5.apps.googleusercontent.com
  2. Pour mettre à jour les paramètres afin qu'ils correspondent à votre environnement, exécutez les commandes suivantes :

    export PROJECT="$(gcloud config get-value project)" export REGION="{{{project_0.default_region | REGION }}}" export CLUSTER="{{{project_0.startup_script.gcp_alloydb_cluster_name | CLUSTER}}}" export INSTANCE="{{{project_0.startup_script.gcp_alloydb_primary_instance | PRIMARY_INSTANCE}}}" export DATABASE="{{{project_0.startup_script.gcp_alloydb_database | DATABASE}}}" export USER="{{{project_0.startup_script.gcp_alloydb_user | PG_USER}}}" export PASSWORD="{{{project_0.startup_script.gcp_alloydb_password | PG_PASSWORD}}}" export IP_TYPE="private" sed \ -e "s/^\( *project:\).*$/\1 $PROJECT/" \ -e "s/^\( *region:\).*$/\1 $REGION/" \ -e "s/^\( *cluster:\).*$/\1 $CLUSTER/" \ -e "s/^\( *instance:\).*$/\1 $INSTANCE/" \ -e "s/^\( *database:\).*$/\1 $DATABASE/" \ -e "s/^\( *user:\).*$/\1 $USER/" \ -e "s/^\( *password:\).*$/\1 $PASSWORD\\n ipType: $IP_TYPE/" \ -e "s/^\( *clientId:\).*$/\1 $CLIENT_ID/" \ ~/cymbal-air-toolbox-demo/tools.yaml > ~/tools.yaml

    Ces commandes utilisent sed pour remplacer les paramètres spécifiques dans l'exemple de fichier tools.yaml. La ligne "ipType" est également ajoutée sous la ligne "password", car le type d'adresse IP par défaut est "public".

  3. Pour afficher les mises à jour du fichier, exécutez la commande suivante :

    head -20 ~/tools.yaml

    Le haut du fichier de paramètres contient désormais vos valeurs.

    Les paramètres sensibles (en particulier le mot de passe de la base de données et l'ID client) doivent être sécurisés en tant que secrets.

Créer un secret pour le fichier tools.yaml

Au lieu d'enregistrer des informations sensibles dans un dépôt de code ou dans l'application en cours d'exécution, vous pouvez utiliser Secret Manager pour sécuriser vos secrets.

  1. Pour créer un secret, exécutez la commande suivante :

    cd ~ gcloud secrets create tools --data-file=tools.yaml
  2. Pour vérifier que le secret a été stocké, exécutez la commande suivante :

    gcloud secrets describe tools

    Vous devriez maintenant voir qu'il existe un secret nommé "tools".

Déployer la boîte à outils sur Cloud Run

  1. Pour déployer la boîte à outils sur Cloud Run, exécutez les commandes suivantes dans l'onglet Cloud Shell SSH de la VM :

    export REGION={{{project_0.default_region | REGION }}} export MCP_TOOLBOX_VERSION="{{{project_0.startup_script.gcp_mcp_toolbox_version | TOOLBOX_VERSION}}}" export IMAGE="us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$MCP_TOOLBOX_VERSION" gcloud run deploy toolbox \ --image $IMAGE \ --service-account toolbox-identity \ --region $REGION \ --set-secrets "/app/tools.yaml=tools:latest" \ --args="--tools-file=/app/tools.yaml","--address=0.0.0.0","--port=8080" \ --network default \ --subnet default \ --no-allow-unauthenticated \ --quiet

    Attendez la fin du déploiement.

  2. Pour examiner le service, exécutez la commande suivante :

    curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" $(gcloud run services list --filter="(toolbox)" --format="value(URL)")

    Si le message "Hello World!" s'affiche, cela signifie que le service est opérationnel et traite les requêtes.

Déployez le service de boîte à outils.

Tâche 8 : Exécuter l'exemple d'application

Dans cette tâche, vous allez exécuter un exemple d'application de chat qui utilise le service de récupération.

Exécuter l'application

  1. Pour revenir à la racine de l'application de chat, exécutez les commandes suivantes dans l'onglet Cloud Shell SSH de la VM :

    source ~/.venv/bin/activate cd ~/cymbal-air-toolbox-demo

    Avant de démarrer l'application, vous devez configurer certaines variables d'environnement. Les fonctionnalités de base de l'application, y compris l'interrogation des vols et la restitution des services de l'aéroport, nécessitent une variable d'environnement nommée TOOLBOX_URL contenant l'URL du service de boîte à outils exécuté sur Cloud Run.

  2. Pour spécifier l'URL du service de boîte à outils, exécutez les commandes suivantes :

    export TOOLBOX_URL=$(gcloud run services list --filter="(toolbox)" --format="value(URL)") echo $TOOLBOX_URL

    L'URL de la boîte à outils est utilisée par l'application locale pour accéder aux bases de données par le biais de MCP Toolbox.

  3. Pour exécuter l'application, exécutez la commande suivante :

    python run_app.py

    Votre réponse doit ressembler à ceci :

    (.venv) student-03-d87d6b142a95@app-vm:~/cymbal-air-toolbox-demo$ python run_app.py INFO: Started server process [26127] INFO: Waiting for application startup. Loading application... INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8081 (Press CTRL+C to quit)

    L'application est maintenant en cours d'exécution.

Se connecter à la VM

Vous avez plusieurs façons de vous connecter à l'application exécutée sur la VM. Par exemple, vous pouvez ouvrir le port 8081 sur la VM en utilisant les règles de pare-feu dans le VPC ou créer un équilibreur de charge avec une adresse IP publique. Dans ce cas, vous allez utiliser un tunnel SSH vers la VM en remplaçant le port 8080 de Cloud Shell par le port 8081 de la VM.

  1. Pour ouvrir un nouvel onglet dans Cloud Shell, cliquez sur Ouvrir un nouvel onglet (+).

  2. Pour créer un tunnel SSH vers le port de la VM, exécutez la commande suivante dans le nouvel onglet :

    gcloud compute ssh app-vm --zone={{{project_0.default_zone | ZONE }}} -- -L localhost:8080:localhost:8081

    La commande gcloud connecte le port localhost 8080 dans Cloud Shell au port 8081 sur la VM. Vous pouvez ignorer le message d'erreur indiquant qu'il est impossible d'attribuer l'adresse demandée.

  3. Pour exécuter l'application dans le navigateur Web, cliquez sur Aperçu sur le Web, puis sélectionnez Prévisualiser sur le port 8080.

    Aperçu sur le Web sur le port 8080

    Un nouvel onglet s'ouvre dans le navigateur et l'application s'exécute. L'application Cymbal Air affiche le message "Bienvenue chez Cymbal Air ! Que puis-je faire pour vous ?".

  4. Saisissez la requête suivante :

    Quand est le prochain vol pour Los Angeles ?

    L'application renvoie le prochain vol de SFO à LAX ou vous demande des informations supplémentaires.

  5. Saisissez la requête suivante :

    Quels sont les restaurants à proximité de la porte d'embarquement de ce vol ?

    L'application de chat vous demandera peut-être de préciser le vol, mais elle peut aussi comprendre le contexte et afficher les restaurants à proximité de la porte d'embarquement à l'aéroport de San Francisco.

Tâche 9 : Se connecter à l'application (facultatif)

Dans cette tâche, vous allez vous connecter à l'application pour réserver le vol.

  1. Cliquez sur Connexion.

    Une fenêtre pop-up s'ouvre.

  2. Dans la fenêtre pop-up, sélectionnez l'élève.

  3. Pour autoriser Cymbal Air à accéder aux informations sur l'élève, cliquez sur Continuer.

    Le compte élève est connecté.

  4. Saisissez la requête suivante :

    Réservez-moi ce vol, s'il vous plaît.

    L'application présente le vol dont il est question.

  5. Cliquez sur Cela me semble bien. Merci de procéder à la réservation.

    Le vol est réservé.

  6. Saisissez la requête suivante :

    Quels vols ai-je réservés ?

    Le vol que vous venez de réserver s'affiche.

    L'application de chat peut aider à répondre à ce type de questions des utilisateurs :

    • Y a-t-il des boutiques de luxe à proximité de la porte D50 ?
    • Où puis-je prendre un café près de la porte A6 ?

    L'application utilise les derniers modèles de fondation de Google pour générer des réponses et les enrichir avec des informations sur les vols et services issues de la base de données opérationnelle AlloyDB. Pour en savoir plus sur cette application de démonstration, consultez la page GitHub du projet.

Félicitations !

Vous avez réussi à créer une application de chat qui exploite les grands modèles de langage (LLM) et la génération augmentée par récupération (RAG) pour créer des conversations engageantes et informatives.

Étapes suivantes et informations supplémentaires

Terminer l'atelier

Une fois l'atelier terminé, cliquez sur Terminer l'atelier. Google Cloud Skills Boost supprime les ressources que vous avez utilisées, puis efface le compte.

Si vous le souhaitez, vous pouvez noter l'atelier. Sélectionnez un nombre d'étoiles, saisissez un commentaire, puis cliquez sur Envoyer.

Le nombre d'étoiles correspond à votre degré de satisfaction :

  • 1 étoile = très insatisfait(e)
  • 2 étoiles = insatisfait(e)
  • 3 étoiles = ni insatisfait(e), ni satisfait(e)
  • 4 étoiles = satisfait(e)
  • 5 étoiles = très satisfait(e)

Si vous ne souhaitez pas donner votre avis, vous pouvez fermer la boîte de dialogue.

Pour soumettre des commentaires, suggestions ou corrections, veuillez accéder à l'onglet Assistance.

Dernière mise à jour du manuel : 13 octobre 2025

Dernier test de l'atelier : 13 octobre 2025

Copyright 2025 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms de société et de produit peuvent être des marques des sociétés auxquelles ils sont associés.

Avant de commencer

  1. Les ateliers créent un projet Google Cloud et des ressources pour une durée déterminée.
  2. Les ateliers doivent être effectués dans le délai imparti et ne peuvent pas être mis en pause. Si vous quittez l'atelier, vous devrez le recommencer depuis le début.
  3. En haut à gauche de l'écran, cliquez sur Démarrer l'atelier pour commencer.

Utilisez la navigation privée

  1. Copiez le nom d'utilisateur et le mot de passe fournis pour l'atelier
  2. Cliquez sur Ouvrir la console en navigation privée

Connectez-vous à la console

  1. Connectez-vous à l'aide des identifiants qui vous ont été attribués pour l'atelier. L'utilisation d'autres identifiants peut entraîner des erreurs ou des frais.
  2. Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
  3. Ne cliquez pas sur Terminer l'atelier, à moins que vous n'ayez terminé l'atelier ou que vous ne vouliez le recommencer, car cela effacera votre travail et supprimera le projet.

Ce contenu n'est pas disponible pour le moment

Nous vous préviendrons par e-mail lorsqu'il sera disponible

Parfait !

Nous vous contacterons par e-mail s'il devient disponible

Un atelier à la fois

Confirmez pour mettre fin à tous les ateliers existants et démarrer celui-ci

Utilisez la navigation privée pour effectuer l'atelier

Ouvrez une fenêtre de navigateur en mode navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.