Générer du texte à l'aide d'un modèle Gemini et de la fonction AI.GENERATE_TEXT
Ce tutoriel explique comment créer un modèle distant basé sur le modèle gemini-2.5-flash et comment utiliser ce modèle avec la fonction AI.GENERATE_TEXT pour extraire des mots clés et effectuer une analyse des sentiments sur les avis de films à partir de la table publique bigquery-public-data.imdb.reviews.
Rôles requis
Pour exécuter ce tutoriel, vous devez disposer des rôles IAM (Identity and Access Management) suivants :
- Créer et utiliser des ensembles de données, des connexions et des modèles BigQuery : administrateur BigQuery (
roles/bigquery.admin). - Accordez des autorisations au compte de service de la connexion : Administrateur IAM du projet (
roles/resourcemanager.projectIamAdmin).
Ces rôles prédéfinis contiennent les autorisations requises pour effectuer les tâches décrites dans ce document. Pour afficher les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
- Créez un ensemble de données :
bigquery.datasets.create - Créer, déléguer et utiliser une connexion :
bigquery.connections.* - Définissez la connexion par défaut :
bigquery.config.* - Définissez les autorisations du compte de service :
resourcemanager.projects.getIamPolicyetresourcemanager.projects.setIamPolicy - Créez un modèle et exécutez l'inférence :
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateDatabigquery.models.updateMetadata
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Coûts
Dans ce document, vous utilisez les composants facturables de Google Cloudsuivants :
- BigQuery ML: You incur costs for the data that you process in BigQuery.
- Vertex AI: You incur costs for calls to the Vertex AI service that's represented by the remote model.
Vous pouvez obtenir une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Pour en savoir plus sur les tarifs de BigQuery, consultez la page Tarifs de BigQuery dans la documentation BigQuery.
Pour en savoir plus sur les tarifs de Vertex AI, consultez la page Tarifs de Vertex AI.
Avant de commencer
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud 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 Google Cloud project.
-
Enable the BigQuery, BigQuery Connection, and Vertex AI APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
Créer un ensemble de données
Créez un ensemble de données BigQuery pour stocker votre modèle de ML.
Console
Dans la console Google Cloud , accédez à la page BigQuery.
Dans le volet Explorateur, cliquez sur le nom de votre projet.
Cliquez sur Afficher les actions > Créer un ensemble de données.
Sur la page 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 Type d'emplacement, sélectionnez Multirégional, puis sélectionnez US (plusieurs régions aux États-Unis).
Conservez les autres paramètres par défaut, puis cliquez sur Créer un ensemble de données.
bq
Pour créer un ensemble de données, exécutez la commande bq mk en spécifiant l'option --location. Pour obtenir la liste complète des paramètres possibles, consultez la documentation de référence sur la commande bq mk --dataset.
Créez un ensemble de données nommé
bqml_tutorialavec l'emplacement des données défini surUSet la descriptionBigQuery ML tutorial dataset:bq --location=US mk -d \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Au lieu d'utiliser l'option
--dataset, la commande utilise le raccourci-d. Si vous omettez-det--dataset, la commande crée un ensemble de données par défaut.Vérifiez que l'ensemble de données a é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" } }
BigQuery DataFrames
Avant d'essayer cet exemple, suivez les instructions de configuration pour BigQuery DataFrames du guide de démarrage rapide de BigQuery DataFrames. Pour en savoir plus, consultez la documentation de référence sur BigQuery DataFrames.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer les ADC pour un environnement de développement local.
Créer une connexion
Créez une connexion de ressource cloud et obtenez le compte de service de la connexion. Créez la connexion dans le même emplacement que l'ensemble de données que vous avez créé à l'étape précédente.
Vous pouvez ignorer cette étape si vous avez configuré une connexion par défaut ou si vous disposez du rôle Administrateur BigQuery.
Sélectionnez l'une des options suivantes :
Console
Accédez à la page BigQuery.
Dans le panneau de gauche, cliquez sur Explorer :

Si le panneau de gauche n'apparaît pas, cliquez sur Développer le panneau 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.
Pour 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.
Pour 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.
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 Google CloudCONNECTION_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.iam.gserviceaccount.com"}
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 de ressources cloud nommée my_cloud_resource_connection dans la région US :
Pour appliquer votre configuration Terraform dans un projet Google Cloud , suivez les procédures des sections suivantes.
Préparer Cloud Shell
- Lancez Cloud Shell.
-
Définissez le projet Google Cloud 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 du 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 Google Cloud pour afficher les résultats. Dans la console Google Cloud , 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 Vertex AI 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.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, sélectionnez Vertex AI, puis le rôle Utilisateur Vertex AI.
Cliquez sur Enregistrer.
Créer le modèle distant
Créez un modèle distant représentant un modèle Vertex AI hébergé :
Dans la console Google Cloud , 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-2.5-flash');
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 Google Cloud , 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_model apparaît dans l'ensemble de données bqml_tutorial. Étant donné que la requête utilise une instruction CREATE MODEL pour créer un modèle, il n'y a aucun résultat de requête.
Effectuer une extraction de mots clés
Effectuez une extraction de mots clés sur des avis de films IMDB à l'aide du modèle distant et de la fonction AI.GENERATE_TEXT :
Dans la console Google Cloud , accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante pour effectuer l'extraction de mots clés sur cinq avis de films :
SELECT title, result, review FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemini_model`, ( SELECT CONCAT( """Extract a list of only 3 key words from this review. List only the key words, nothing else. Review: """, review) AS prompt, * FROM `bigquery-public-data.imdb.reviews` LIMIT 5 ), STRUCT( 0.2 AS temperature, 100 AS max_output_tokens));
Le résultat ressemble à ce qui suit :
+--------------+------------------+----------------------------------------+ | title | result | review | +--------------+------------------+----------------------------------------+ | The Guardian | * Costner | Once again Mr. Costner has dragged out | | | * Kutcher | a movie for far longer than necessary. | | | * Rescue | Aside from the terrific sea rescue... | | | | | | Trespass | * Generic | This is an example of why the majority | | | * Waste | of action films are the same. Generic | | | * Cinematography | and boring, there's really nothing... | | ... | ... | ... | +--------------+------------------+----------------------------------------+
Effectuer une analyse des sentiments
Effectuez une analyse des sentiments sur des avis de films IMDB à l'aide du modèle distant et de la fonction AI.GENERATE_TEXT :
Dans la console Google Cloud , accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante pour effectuer une analyse des sentiments sur des avis de films :
SELECT title, result, review FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemini_model`, ( SELECT CONCAT( """Perform sentiment analysis on the following text and return one the following categories: positive, negative: """, review) AS prompt, * FROM `bigquery-public-data.imdb.reviews` LIMIT 5 ), STRUCT( 0.2 AS temperature, 100 AS max_output_tokens));
Le résultat ressemble à ce qui suit :
+----------+----------+------------------------------------------------+ | title | result | review | +----------+----------+------------------------------------------------+ | Quitting | Positive | This movie is amazing because the fact that... | | Trespass | Negative | This is an example of why the majority of ... | | ... | ... | ... | +----------+----------+------------------------------------------------+
Effectuer un nettoyage
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.