Analyser des PDF dans un pipeline de génération augmentée par récupération
Ce tutoriel vous guide tout au long du processus de création d'un pipeline de génération augmentée par récupération (RAG) basé sur du contenu PDF analysé.
Les fichiers PDF, tels que les documents financiers, peuvent être difficiles à utiliser dans les pipelines RAG en raison de leur structure complexe et de leur mélange de texte, de figures et de tableaux. Ce tutoriel explique comment utiliser les fonctionnalités de BigQuery ML en combinaison avec l'analyseur de mise en page de Document AI pour créer un pipeline RAG basé sur les informations clés extraites d'un fichier PDF.
Vous pouvez également suivre ce tutoriel à l'aide d'un notebook Colab Enterprise.
Objectifs
Ce tutoriel couvre les tâches suivantes :
- Créer un bucket Cloud Storage et importer un exemple de fichier PDF
- Créez une connexion à une ressource cloud pour pouvoir vous connecter à Cloud Storage et Vertex AI depuis BigQuery.
- Créer une table d'objets sur le fichier PDF pour le rendre disponible dans BigQuery.
- Créez un processeur Document AI que vous pourrez utiliser pour analyser le fichier PDF.
- Créer un modèle distant qui vous permet d'utiliser l'API Document AI pour accéder au processeur de documents depuis BigQuery.
- Utilisation du modèle distant avec la fonction
ML.PROCESS_DOCUMENT
pour analyser le contenu du PDF en blocs, puis écrire ce contenu dans une table BigQuery. - Extraire le contenu PDF des données JSON renvoyées par la fonction
ML.PROCESS_DOCUMENT
, puis écrire ce contenu dans une table BigQuery. - Créer un modèle distant qui vous permet d'utiliser le modèle de génération d'embeddings
text-embedding-004
de Vertex AI à partir de BigQuery. - Utilisation du modèle distant avec la fonction
ML.GENERATE_EMBEDDING
pour générer des embeddings à partir du contenu PDF analysé, puis écriture de ces embeddings dans une table BigQuery. Les embeddings sont des représentations numériques du contenu PDF qui vous permettent d'effectuer des recherches et des récupérations sémantiques sur le contenu PDF. - Utiliser la fonction
VECTOR_SEARCH
sur les embeddings pour identifier le contenu PDF sémantiquement similaire. - Créer un modèle distant qui vous permet d'utiliser un modèle de génération de texte Gemini depuis BigQuery.
- Effectuer une génération augmentée de récupération (RAG) en utilisant le modèle distant avec la fonction
ML.GENERATE_TEXT
pour générer du texte, en utilisant les résultats de recherche vectorielle pour augmenter la saisie de la requête et améliorer les résultats.
Coûts
Dans ce document, vous utilisez les composants facturables de Trusted Cloud by S3NSsuivants :
- BigQuery: You incur costs for the data that you process in BigQuery.
- Vertex AI: You incur costs for calls to Vertex AI models.
- Document AI: You incur costs for calls to the Document AI API.
- Cloud Storage: You incur costs for object storage in Cloud Storage.
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, consultez les pages suivantes sur les tarifs :
Avant de commencer
-
In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.
-
Verify that billing is enabled for your Trusted Cloud project.
-
Enable the BigQuery, BigQuery Connection, Vertex AI, Document AI, and Cloud Storage APIs.
Rôles requis
Pour exécuter ce tutoriel, vous devez disposer des rôles IAM (Identity and Access Management) suivants :
- Créer des buckets et des objets Cloud Storage : administrateur Storage (
roles/storage.storageAdmin
) - Créer un processeur de documents : Éditeur Document AI (
roles/documentai.editor
) - Créer et utiliser des ensembles de données, des connexions et des modèles BigQuery : administrateur BigQuery (
roles/bigquery.admin
) - Accorder 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.getIamPolicy
etresourcemanager.projects.setIamPolicy
. - Créez une table d'objets :
bigquery.tables.create
etbigquery.tables.update
- Créez des buckets et des objets Cloud Storage :
storage.buckets.*
etstorage.objects.*
- Créez un modèle et exécutez l'inférence :
bigquery.jobs.create
bigquery.models.create
bigquery.models.getData
bigquery.models.updateData
bigquery.models.updateMetadata
- Créez un processeur de documents :
documentai.processors.create
documentai.processors.update
documentai.processors.delete
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
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 Trusted 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_tutorial
avec l'emplacement des données défini surUS
et une description deBigQuery 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-d
et--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.
Vous pouvez ignorer cette étape si vous avez configuré une connexion par défaut ou si vous disposez du rôle Administrateur BigQuery.
Créez une connexion de ressource cloud pour que le modèle distant puisse l'utiliser, 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.
Sélectionnez l'une des options suivantes :
Console
Accédez à la page BigQuery.
Dans le volet Explorateur, cliquez sur
Ajouter des données :La boîte de dialogue Ajouter des données s'ouvre.
Dans le panneau Filtrer par, dans la section Type de source de données, sélectionnez Applications métier.
Vous pouvez également saisir
Vertex AI
dans le champ Rechercher des sources de données.Dans la section Sources de données recommandées, cliquez sur Vertex AI.
Cliquez sur la fiche solution Modèles Vertex AI : fédération BigQuery.
Dans la liste Type de connexion, sélectionnez Modèles distants Vertex AI, fonctions à distance et BigLake (Ressource cloud).
Dans le champ ID de connexion, saisissez un nom pour votre connexion.
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_id
remplace le projet par défaut.Remplacez les éléments suivants :
REGION
: votre région de connexionPROJECT_ID
: ID de votre projet Trusted 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.s3ns-system.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 Trusted Cloud , suivez les procédures des sections suivantes.
Préparer Cloud Shell
- Lancez Cloud Shell.
-
Définissez le projet Trusted 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.tf
que 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
yes
lorsque vous y êtes invité :terraform apply
Attendez que Terraform affiche le message "Apply completed!" (Application terminée).
- Ouvrez votre projet Trusted Cloud pour afficher les résultats. Dans la console Trusted Cloud , accédez à vos ressources dans l'interface utilisateur pour vous assurer que Terraform les a créées ou mises à jour.
Accorder l'accès au compte de service
Sélectionnez l'une des options suivantes :
Console
Accédez à la page IAM et administration.
Cliquez sur
Accorder l'accès.La boîte de dialogue Ajouter des comptes principaux s'ouvre.
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 Document AI, puis Lecteur Document AI.
Cliquez sur Ajouter un autre rôle.
Dans le champ Sélectionnez un rôle, sélectionnez Cloud Storage, puis Lecteur d'objets Storage.
Cliquez sur Ajouter un autre rôle.
Dans le champ Sélectionner un rôle, sélectionnez Vertex AI, puis Utilisateur Vertex AI.
Cliquez sur Enregistrer.
gcloud
Exécutez la commande gcloud projects add-iam-policy-binding
:
gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/documentai.viewer' --condition=None gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/storage.objectViewer' --condition=None gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/aiplatform.user' --condition=None
Remplacez les éléments suivants :
PROJECT_NUMBER
: votre numéro de projet.MEMBER
: ID du compte de service que vous avez copié précédemment
Importer l'exemple de PDF dans Cloud Storage
Pour importer l'exemple de PDF dans Cloud Storage, procédez comme suit :
- Téléchargez l'exemple de PDF
scf23.pdf
en accédant à https://www.federalreserve.gov/publications/files/scf23.pdf, puis en cliquant sur Télécharger . - Créez un bucket Cloud Storage.
- Importez le fichier
scf23.pdf
dans le bucket.
Créer une table d'objets
Créez une table d'objets sur le fichier PDF dans Cloud Storage :
Dans la console Trusted Cloud , accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante :
CREATE OR REPLACE EXTERNAL TABLE `bqml_tutorial.pdf` WITH CONNECTION `LOCATION.CONNECTION_ID` OPTIONS( object_metadata = 'SIMPLE', uris = ['gs://BUCKET/scf23.pdf']);
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 Trusted Cloud ,
CONNECTION_ID
correspond à 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
).BUCKET
: bucket Cloud Storage contenant le fichierscf23.pdf
. La valeur complète de l'optionuri
doit ressembler à['gs://mybucket/scf23.pdf']
.
Créer un processeur de documents
Créez un processeur de documents basé sur le processeur Layout Parser dans la multirégion us
.
Créer le modèle distant pour le processeur de documents
Créez un modèle distant pour accéder au processeur Document AI :
Dans la console Trusted Cloud , accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante :
CREATE OR REPLACE MODEL `bqml_tutorial.parser_model` REMOTE WITH CONNECTION `LOCATION.CONNECTION_ID` OPTIONS(remote_service_type = 'CLOUD_AI_DOCUMENT_V1', document_processor = 'PROCESSOR_ID');
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 Trusted Cloud ,
CONNECTION_ID
correspond à 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
).PROCESSOR_ID
: ID du processeur de documents Pour trouver cette valeur, affichez les détails du processeur, puis examinez la ligne ID dans la section Informations de base.
Analyser le fichier PDF en blocs
Utilisez le processeur de documents avec la fonction ML.PROCESS_DOCUMENT
pour analyser le fichier PDF en blocs, puis écrivez ce contenu dans une table. La fonction ML.PROCESS_DOCUMENT
renvoie les blocs PDF au format JSON.
Dans la console Trusted Cloud , accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante :
CREATE or REPLACE TABLE
bqml_tutorial.chunked_pdf
AS ( SELECT * FROM ML.PROCESS_DOCUMENT( MODELbqml_tutorial.parser_model
, TABLEbqml_tutorial.pdf
, PROCESS_OPTIONS => (JSON '{"layout_config": {"chunking_config": {"chunk_size": 250}}}') ) );
Analyser les données des blocs PDF dans des colonnes distinctes
Extrayez le contenu PDF et les informations de métadonnées des données JSON renvoyées par la fonction ML.PROCESS_DOCUMENT
, puis écrivez ce contenu dans un tableau :
Dans la console Trusted Cloud , accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante pour analyser le contenu du PDF :
CREATE OR REPLACE TABLE
bqml_tutorial.parsed_pdf
AS ( SELECT uri, JSON_EXTRACT_SCALAR(json , '$.chunkId') AS id, JSON_EXTRACT_SCALAR(json , '$.content') AS content, JSON_EXTRACT_SCALAR(json , '$.pageFooters[0].text') AS page_footers_text, JSON_EXTRACT_SCALAR(json , '$.pageSpan.pageStart') AS page_span_start, JSON_EXTRACT_SCALAR(json , '$.pageSpan.pageEnd') AS page_span_end FROMbqml_tutorial.chunked_pdf
, UNNEST(JSON_EXTRACT_ARRAY(ml_process_document_result.chunkedDocument.chunks, '$')) json );Dans l'éditeur de requête, exécutez l'instruction suivante pour afficher un sous-ensemble du contenu PDF analysé :
SELECT * FROM `bqml_tutorial.parsed_pdf` ORDER BY id LIMIT 5;
Le résultat ressemble à ce qui suit :
+-----------------------------------+------+------------------------------------------------------------------------------------------------------+-------------------+-----------------+---------------+ | uri | id | content | page_footers_text | page_span_start | page_span_end | +-----------------------------------+------+------------------------------------------------------------------------------------------------------+-------------------+-----------------+---------------+ | gs://mybucket/scf23.pdf | c1 | •BOARD OF OF FEDERAL GOVERN NOR RESERVE SYSTEM RESEARCH & ANALYSIS | NULL | 1 | 1 | | gs://mybucket/scf23.pdf | c10 | • In 2022, 20 percent of all families, 14 percent of families in the bottom half of the usual ... | NULL | 8 | 9 | | gs://mybucket/scf23.pdf | c100 | The SCF asks multiple questions intended to capture whether families are credit constrained, ... | NULL | 48 | 48 | | gs://mybucket/scf23.pdf | c101 | Bankruptcy behavior over the past five years is based on a series of retrospective questions ... | NULL | 48 | 48 | | gs://mybucket/scf23.pdf | c102 | # Percentiles of the Distributions of Income and Net Worth | NULL | 48 | 49 | +-----------------------------------+------+------------------------------------------------------------------------------------------------------+-------------------+-----------------+---------------+
Créer le modèle distant pour la génération d'embeddings
Créez un modèle distant représentant un modèle de génération de représentations vectorielles continues de texte Vertex AI hébergé :
Dans la console Trusted Cloud , accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante :
CREATE OR REPLACE MODEL `bqml_tutorial.embedding_model` REMOTE WITH CONNECTION `LOCATION.CONNECTION_ID` OPTIONS (ENDPOINT = 'text-embedding-005');
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 Trusted Cloud ,
CONNECTION_ID
correspond à 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
).
Générer des embeddings
Générez des embeddings pour le contenu PDF analysé, puis écrivez-les dans une table :
Dans la console Trusted Cloud , accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante :
CREATE OR REPLACE TABLE `bqml_tutorial.embeddings` AS SELECT * FROM ML.GENERATE_EMBEDDING( MODEL `bqml_tutorial.embedding_model`, TABLE `bqml_tutorial.parsed_pdf` );
Exécuter une recherche vectorielle
Exécutez une recherche vectorielle sur le contenu PDF analysé.
La requête suivante prend une entrée de texte, crée un embedding pour cette entrée à l'aide de la fonction ML.GENERATE_EMBEDDING
, puis utilise la fonction VECTOR_SEARCH
pour faire correspondre l'embedding d'entrée aux embeddings de contenu PDF les plus similaires. Les résultats sont les dix blocs PDF les plus proches sémantiquement de l'entrée.
Accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction SQL suivante :
SELECT query.query, base.id AS pdf_chunk_id, base.content, distance FROM VECTOR_SEARCH( TABLE `bqml_tutorial.embeddings`, 'ml_generate_embedding_result', ( SELECT ml_generate_embedding_result, content AS query FROM ML.GENERATE_EMBEDDING( MODEL `bqml_tutorial.embedding_model`, ( SELECT 'Did the typical family net worth increase? If so, by how much?' AS content) ) ), top_k => 10, OPTIONS => '{"fraction_lists_to_search": 0.01}') ORDER BY distance DESC;
Le résultat ressemble à ce qui suit :
+-------------------------------------------------+--------------+------------------------------------------------------------------------------------------------------+---------------------+ | query | pdf_chunk_id | content | distance | +-------------------------------------------------+--------------+------------------------------------------------------------------------------------------------------+---------------------+ | Did the typical family net worth increase? ,... | c9 | ## Assets | 0.31113668174119469 | | | | | | | | | The homeownership rate increased slightly between 2019 and 2022, to 66.1 percent. For ... | | +-------------------------------------------------+--------------+------------------------------------------------------------------------------------------------------+---------------------+ | Did the typical family net worth increase? ,... | c50 | # Box 3. Net Housing Wealth and Housing Affordability | 0.30973592073929113 | | | | | | | | | For families that own their primary residence ... | | +-------------------------------------------------+--------------+------------------------------------------------------------------------------------------------------+---------------------+ | Did the typical family net worth increase? ,... | c50 | 3 In the 2019 SCF, a small portion of the data collection overlapped with early months of | 0.29270064592817646 | | | | the COVID- ... | | +-------------------------------------------------+--------------+------------------------------------------------------------------------------------------------------+---------------------+
Créer le modèle distant pour la génération de texte
Créez un modèle distant représentant un modèle de génération de texte Vertex AI hébergé :
Dans la console Trusted Cloud , accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante :
CREATE OR REPLACE MODEL `bqml_tutorial.text_model` REMOTE WITH CONNECTION `LOCATION.CONNECTION_ID` OPTIONS (ENDPOINT = 'gemini-2.0-flash-001');
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 Trusted Cloud ,
CONNECTION_ID
correspond à 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
).
Générer du texte augmenté par les résultats de recherche vectorielle
Effectuez une recherche vectorielle sur les embeddings pour identifier le contenu PDF sémantiquement similaire, puis utilisez la fonction ML.GENERATE_TEXT
avec les résultats de la recherche vectorielle pour augmenter la saisie de la requête et améliorer les résultats de la génération de texte. Dans ce cas, la requête utilise les informations des blocs PDF pour répondre à une question sur l'évolution de la valeur nette de la famille au cours de la dernière décennie.
Dans la console Trusted Cloud , accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante :
SELECT ml_generate_text_llm_result AS generated FROM ML.GENERATE_TEXT( MODEL `bqml_tutorial.text_model`, ( SELECT CONCAT( 'Did the typical family net worth change? How does this compare the SCF survey a decade earlier? Be concise and use the following context:', STRING_AGG(FORMAT("context: %s and reference: %s", base.content, base.uri), ',\n')) AS prompt, FROM VECTOR_SEARCH( TABLE `bqml_tutorial.embeddings`, 'ml_generate_embedding_result', ( SELECT ml_generate_embedding_result, content AS query FROM ML.GENERATE_EMBEDDING( MODEL `bqml_tutorial.embedding_model`, ( SELECT 'Did the typical family net worth change? How does this compare the SCF survey a decade earlier?' AS content ) ) ), top_k => 10, OPTIONS => '{"fraction_lists_to_search": 0.01}') ), STRUCT(512 AS max_output_tokens, TRUE AS flatten_json_output) );
Le résultat ressemble à ce qui suit :
+-------------------------------------------------------------------------------+ | generated | +-------------------------------------------------------------------------------+ | Between the 2019 and 2022 Survey of Consumer Finances (SCF), real median | | family net worth surged 37 percent to $192,900, and real mean net worth | | increased 23 percent to $1,063,700. This represents the largest three-year | | increase in median net worth in the history of the modern SCF, exceeding the | | next largest by more than double. In contrast, between 2010 and 2013, real | | median net worth decreased 2 percent, and real mean net worth remained | | unchanged. | +-------------------------------------------------------------------------------+
Effectuer un nettoyage
- In the Trusted 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.