La fonction AI.GENERATE_TABLE vous permet d'extraire des attributs structurés d'un texte non structuré dans des colonnes de table typées dans BigQuery. Dans ce tutoriel, vous allez créer un modèle distant sur un modèle Gemini, et extraire les sentiments et les mots clés d'un ensemble de données public d'avis de films.
Objectifs
- Créer un ensemble de données et une connexion aux ressources Cloud
- accorder des autorisations au compte de service de la connexion ;
- Créer un modèle distant BigQuery ML
- Générez des données structurées à partir de texte non structuré à l'aide de la fonction
AI.GENERATE_TABLE.
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Cloud de Confiance by S3NS :
- BigQuery: You incur costs for the data that you process in BigQuery.
- Gemini Enterprise Agent Platform: You incur costs for calls to the Agent Platform model.
Pour en savoir plus, consultez les tarifs de BigQuery et les tarifs d'Agent Platform.
Avant de commencer
Console
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
Enable the BigQuery, BigQuery Connection, and Agent Platform API APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Assurez-vous de disposer du ou des rôles suivants sur le projet : Administrateur BigQuery, Administrateur IAM du projet.
Vérifier les rôles
-
Dans la console Cloud de Confiance , accédez à la page IAM.
Accéder à IAM - Sélectionnez le projet.
-
Dans la colonne Compte principal, recherchez toutes les lignes qui vous identifient ou identifient un groupe dont vous faites partie. Pour savoir à quels groupes vous appartenez, contactez votre administrateur.
- Pour toutes les lignes qui vous spécifient ou vous incluent, consultez la colonne Rôle pour vous assurer que la liste inclut les rôles requis.
Attribuer les rôles
-
Dans la console Cloud de Confiance , accédez à la page IAM.
Accéder à IAM - Sélectionnez le projet.
- Cliquez sur Accorder l'accès.
-
Dans le champ Nouveaux comptes principaux, saisissez votre identifiant utilisateur. Il s'agit généralement de l'identifiant associé à un utilisateur dans un pool d'identités de personnel. Pour en savoir plus, consultez Représenter les utilisateurs de pools de personnel dans les stratégies IAM ou contactez votre administrateur.
- Cliquez sur Sélectionner un rôle, puis recherchez le rôle.
- Pour attribuer des rôles supplémentaires, cliquez sur Ajouter un autre rôle et ajoutez tous les rôles supplémentaires.
- Cliquez sur Enregistrer.
-
gcloud
-
Installez la Google Cloud CLI.
-
Configurez la gcloud CLI afin d'utiliser votre identité fédérée.
Pour en savoir plus, consultez Se connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
Créez ou sélectionnez un projet Cloud de Confiance .
Rôles requis pour sélectionner ou créer un projet
- Sélectionner un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique. Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
-
Créer un projet : pour créer un projet, vous devez disposer du rôle "Créateur de projet" (
roles/resourcemanager.projectCreator), qui contient l'autorisationresourcemanager.projects.create. Découvrez comment attribuer des rôles.
-
Créez un projet Cloud de Confiance :
gcloud projects create PROJECT_ID
Remplacez
PROJECT_IDpar le nom du projet Cloud de Confiance que vous créez. -
Sélectionnez le projet Cloud de Confiance que vous avez créé :
gcloud config set project PROJECT_ID
Remplacez
PROJECT_IDpar le nom de votre projet Cloud de Confiance .
-
Vérifiez que la facturation est activée pour votre projet Cloud de Confiance .
Activez les API BigQuery, BigQuery Connection et Agent Platform, si elles ne le sont pas déjà :
Rôles requis pour activer les API
Pour activer des API, vous devez disposer de l'autorisation
serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation via le rôle Propriétaire (roles/owner). Sinon, vous pouvez l'obtenir via le rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.gcloud services enable bigquery.googleapis.com
bigqueryconnection.googleapis.com aiplatform.googleapis.com -
Attribuez des rôles à votre compte utilisateur. Exécutez la commande suivante une fois pour chacun des rôles IAM suivants :
roles/bigquery.admin, roles/resourcemanager.projectIamAdmingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Remplacez les éléments suivants :
PROJECT_ID: ID du projet.USER_IDENTIFIER: identifiant de votre compte utilisateur . Pour obtenir des exemples, consultez Représenter les utilisateurs de pools de personnel dans les stratégies IAM.ROLE: rôle IAM que vous attribuez à votre compte utilisateur.
Créer un ensemble de données
Pour créer un ensemble de données BigQuery, sélectionnez l'une des options suivantes :
Console
Dans la console Cloud de Confiance , accédez à la page BigQuery.
Dans le volet de gauche, cliquez sur Explorateur :

Si le volet de gauche ne s'affiche pas, cliquez sur Développer le volet de gauche pour l'ouvrir.
Dans Explorateur, développez votre projet, puis cliquez sur Ensembles de données.
Sur la page Ensembles de données, cliquez sur Créer un ensemble de données.
Dans le volet Créer un ensemble de données, procédez comme suit :
Dans le champ ID de l'ensemble de données, saisissez
bqml_tutorial.Pour Emplacement des données, sélectionnez US.
Ne modifiez pas les autres paramètres par défaut.
Cliquez sur Créer un ensemble de données.
bq
Pour créer un ensemble de données, utilisez la commande bq mk --dataset.
Créez un ensemble de données nommé
bqml_tutorialavec l'emplacement des données défini surUS:bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Vérifiez que l'ensemble de données a bien été créé :
bq ls
API
Appelez la méthode datasets.insert avec une ressource d'ensemble de données définie :
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Créer une connexion
Créez une connexion aux ressources Cloud dans l'emplacement multirégional US, où vous avez créé l'ensemble de données. Ensuite, obtenez le compte de service de la connexion.
Console
Accédez à la page BigQuery.
Dans le volet de gauche, cliquez sur Explorateur :

Si le volet de gauche ne s'affiche pas, cliquez sur Développer le volet de gauche pour l'ouvrir.
Dans le volet Explorateur, développez le nom de votre projet, puis cliquez sur Connexions.
Sur la page Connexions, cliquez sur Créer une connexion.
Dans le champ Type de connexion, sélectionnez Modèles distants Vertex AI, fonctions à distance, BigLake et Spanner (Ressource cloud).
Dans le champ ID de connexion, saisissez un nom pour votre connexion.
Dans le champ Type d'emplacement, sélectionnez un emplacement pour votre connexion. La connexion doit être colocalisée avec vos autres ressources, telles que les ensembles de données.
Cliquez sur Créer une connexion.
Cliquez sur Accéder à la connexion.
Dans le volet Informations de connexion, copiez l'ID du compte de service à utiliser à l'étape suivante.
SQL
Utilisez l'instruction CREATE CONNECTION :
Dans la console Cloud de Confiance , accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante :
CREATE CONNECTION [IF NOT EXISTS] `CONNECTION_NAME` OPTIONS ( connection_type = "CLOUD_RESOURCE", friendly_name = "FRIENDLY_NAME", description = "DESCRIPTION" );
Remplacez les éléments suivants :
-
CONNECTION_NAME: nom de la connexion au formatPROJECT_ID.LOCATION.CONNECTION_ID,LOCATION.CONNECTION_IDouCONNECTION_ID. Si le projet ou l'emplacement sont omis, ils sont déduits du projet et de l'emplacement où l'instruction est exécutée. -
FRIENDLY_NAME(facultatif) : nom descriptif de la connexion. -
DESCRIPTION(facultatif) : description de la connexion.
-
Cliquez sur Exécuter.
Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.
bq
Dans un environnement de ligne de commande, créez une connexion :
bq mk --connection --location=REGION --project_id=PROJECT_ID \ --connection_type=CLOUD_RESOURCE CONNECTION_ID
Le paramètre
--project_idremplace le projet par défaut.Remplacez les éléments suivants :
REGION: votre région de connexionPROJECT_ID: ID de votre projet Cloud de ConfianceCONNECTION_ID: ID de votre connexion
Lorsque vous créez une ressource de connexion, BigQuery crée un compte de service système unique et l'associe à la connexion.
Dépannage : Si vous obtenez l'erreur de connexion suivante, mettez à jour le Google Cloud SDK :
Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
Récupérez et copiez l'ID du compte de service pour l'utiliser lors d'une prochaine étape :
bq show --connection PROJECT_ID.REGION.CONNECTION_ID
Le résultat ressemble à ce qui suit :
name properties 1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.s3ns-system.iam.gserviceaccount.com"}
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI pour Python.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour les bibliothèques clientes.
Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js décrites dans le guide de démarrage rapide de Vertex AI sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI pour Node.js.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour les bibliothèques clientes.
Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.
Terraform
Utilisez la ressource google_bigquery_connection.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
L'exemple suivant crée une connexion aux ressources Cloud nommée my_cloud_resource_connection dans la région US :
Pour appliquer votre configuration Terraform dans un projet Cloud de Confiance , suivez les procédures des sections suivantes.
Préparer Cloud Shell
- Lancez Cloud Shell.
-
Définissez le projet Cloud de Confiance par défaut dans lequel vous souhaitez appliquer vos configurations Terraform.
Vous n'avez besoin d'exécuter cette commande qu'une seule fois par projet et vous pouvez l'exécuter dans n'importe quel répertoire.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Les variables d'environnement sont remplacées si vous définissez des valeurs explicites dans le fichier de configuration Terraform.
Préparer le répertoire
Chaque fichier de configuration Terraform doit avoir son propre répertoire (également appelé module racine).
-
Dans Cloud Shell, créez un répertoire et un nouveau fichier dans ce répertoire. Le nom de fichier doit comporter l'extension
.tf, par exemplemain.tf. Dans ce tutoriel, le fichier est appelémain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si vous suivez un tutoriel, vous pouvez copier l'exemple de code dans chaque section ou étape.
Copiez l'exemple de code dans le fichier
main.tfque vous venez de créer.Vous pouvez également copier le code depuis GitHub. Cela est recommandé lorsque l'extrait Terraform fait partie d'une solution de bout en bout.
- Examinez et modifiez les exemples de paramètres à appliquer à votre environnement.
- Enregistrez les modifications.
-
Initialisez Terraform. Cette opération n'est à effectuer qu'une seule fois par répertoire.
terraform init
Vous pouvez également utiliser la dernière version du fournisseur Google en incluant l'option
-upgrade:terraform init -upgrade
Appliquer les modifications
-
Examinez la configuration et vérifiez que les ressources que Terraform va créer ou mettre à jour correspondent à vos attentes :
terraform plan
Corrigez les modifications de la configuration si nécessaire.
-
Appliquez la configuration Terraform en exécutant la commande suivante et en saisissant
yeslorsque vous y êtes invité :terraform apply
Attendez que Terraform affiche le message "Apply completed!" (Application terminée).
- Ouvrez votre projet Cloud de Confiance pour afficher les résultats. Dans la console Cloud de Confiance , accédez à vos ressources dans l'interface utilisateur pour vous assurer que Terraform les a créées ou mises à jour.
Accorder des autorisations au compte de service de la connexion
Attribuez le rôle d'utilisateur Agent Platform (roles/aiplatform.user) au compte de service de la connexion. Vous devez accorder ce rôle dans le projet que vous avez créé ou sélectionné dans la section Avant de commencer. L'attribution du rôle dans un autre projet génère l'erreur bqcx-1234567890-xxxx@gcp-sa-bigquery-condel.s3ns-system.iam.gserviceaccount.com does not have the permission to access resource.
Pour accorder le rôle, procédez comme suit :
Accédez à la page IAM et administration.
Cliquez sur Accorder l'accès.
Dans le champ Nouveaux comptes principaux, saisissez l'ID du compte de service que vous avez copié précédemment.
Dans le champ Sélectionner un rôle, recherchez le rôle Utilisateur Agent Platform.
Cliquez sur Enregistrer.
Créer le modèle distant
Utilisez l'instruction CREATE MODEL pour créer un modèle distant représentant un modèle Agent Platform hébergé :
Dans la console Cloud de Confiance , accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante :
CREATE OR REPLACE MODEL `bqml_tutorial.gemini_model` REMOTE WITH CONNECTION `LOCATION.CONNECTION_ID` OPTIONS (ENDPOINT = 'gemini-3.5-flash-lite');
Remplacez les éléments suivants :
LOCATION: emplacement de la connexionCONNECTION_ID: ID de votre connexion BigQuery.Lorsque vous affichez les détails de la connexion dans la console Cloud de Confiance , il s'agit de la valeur de la dernière section de l'ID de connexion complet affiché dans ID de connexion (par exemple,
projects/myproject/locations/connection_location/connections/myconnection).
L'exécution de la requête prend plusieurs secondes, après quoi le modèle
gemini_modelapparaît dans l'ensemble de donnéesbqml_tutorial. Aucun résultat de requête.
Générer des données structurées
Extrayez des sentiments et des mots clés structurés à partir d'avis sur des films à l'aide de la fonction AI.GENERATE_TABLE et du modèle distant :
Dans la console Cloud de Confiance , accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante pour extraire les sentiments et les mots clés de cinq avis de films :
SELECT movie_id, sentiment, keywords FROM AI.GENERATE_TABLE( MODEL `bqml_tutorial.gemini_model`, ( SELECT CONCAT( """Analyze the following movie review. Extract a sentiment (positive or negative) and up to 3 keywords: """, review) AS prompt, movie_id FROM `bigquery-public-data.imdb.reviews` LIMIT 5 ), STRUCT( "sentiment STRING, keywords ARRAY<STRING>" AS output_schema));
Le résultat ressemble à ce qui suit :
+-----------+-----------+----------------------------------------------+ | movie_id | sentiment | keywords | +-----------+-----------+----------------------------------------------+ | tt0369053 | positive | ["cinematography", "performances", "comedy"] | | tt0328400 | negative | ["disregarded", "disappointing", "poorly"] | | ... | ... | ... | +-----------+-----------+----------------------------------------------+
Effectuer un nettoyage
Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.
Supprimer le projet
Supprimer un projet Cloud de Confiance :
gcloud projects delete PROJECT_ID
Supprimer des ressources individuelles
Si vous souhaitez réutiliser le projet, supprimez les ressources que vous avez créées pour le tutoriel :
Console
Dans la console Cloud de Confiance , accédez à la page BigQuery.
Supprimer l'ensemble de données
bqml_tutorialLa suppression de l'ensemble de données entraîne également la suppression du modèle distant.Dans le volet Explorateur, développez votre projet et cliquez sur Ensembles de données.
Dans la liste Ensembles de données, cliquez sur l'ensemble de données
bqml_tutorial.Dans le volet Détails, cliquez sur Supprimer.
Dans la boîte de dialogue Supprimer l'ensemble de données, cliquez sur Supprimer.
Supprimez la connexion.
Dans le volet Explorateur, développez votre projet et cliquez sur Connexions.
Dans la liste Connexions, cliquez sur la connexion que vous avez créée.
Dans le volet Détails, cliquez sur Supprimer.
Dans la boîte de dialogue Supprimer la connexion, saisissez
deletepour confirmer la suppression.Cliquez sur Supprimer.
gcloud
Supprimez l'ensemble de données
bqml_tutorialet le modèle distant :bq rm --dataset --recursive bqml_tutorialSupprimez la connexion :
bq rm --connection <var>PROJECT_ID</var>.<var>LOCATION</var>.<var>CONNECTION_ID</var>Remplacez les éléments suivants :
<var>PROJECT_ID</var>: ID de votre projet Cloud de Confiance by S3NS<var>LOCATION</var>: emplacement de la connexion<var>CONNECTION_ID</var>: ID de connexion
Étapes suivantes
- En savoir plus sur la fonction
AI.GENERATE_TABLE - En savoir plus sur l'IA générative dans BigQuery
- Découvrez comment choisir une fonction de génération de texte.