Analyser des PDF dans un pipeline de génération augmentée par récupération

Ce tutoriel vous explique comment créer un pipeline de génération augmentée par récupération (RAG) basé sur le contenu PDF analysé.

Les fichiers PDF, tels que les documents financiers, peuvent être difficiles à utiliser dans les pipelines de classification par risque et opportunité en raison de leur structure complexe et de leur mélange de texte, de chiffres et de tableaux. Ce tutoriel explique comment utiliser les fonctionnalités BigQuery ML en combinaison avec l'analyseur de mise en page de Document AI pour créer un pipeline de 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éer un processeur Document AI que vous pouvez utiliser pour analyser le fichier PDF.
  • Créez un modèle distant qui vous permet d'utiliser l'API Document AI pour accéder au processeur de documents à partir de BigQuery.
  • Utilisation du modèle distant avec la fonction ML.PROCESS_DOCUMENT pour analyser le contenu PDF en segments, puis écrire ce contenu dans une table BigQuery.
  • Extraction du contenu PDF à partir des données JSON renvoyées par la fonction ML.PROCESS_DOCUMENT, puis écriture de 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 représentations vectorielles continues à partir du contenu PDF analysé, puis écrire ces représentations vectorielles continues dans une table BigQuery. Les représentations vectorielles continues 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 représentations vectorielles continues pour identifier le contenu PDF sémantiquement similaire.
  • Créer un modèle distant qui vous permet d'utiliser le modèle de génération de texte gemini-1.5-flash de Vertex AI à partir de BigQuery.
  • Effectuez une génération augmentée de récupération (RAG) à l'aide du 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 suivants de Google Cloud :

  • 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.

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

Pour en savoir plus, consultez les pages des tarifs suivantes:

Avant de commencer

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Enable the BigQuery, BigQuery Connection, Vertex AI, Document AI, and Cloud Storage APIs.

    Enable the APIs

Rôles requis

  • Pour créer des buckets et des objets Cloud Storage, vous devez être membre du rôle roles/storage.storageAdmin.

  • Pour créer un processeur Document AI, vous devez être membre du rôle roles/documentai.editor.

  • Pour créer une connexion, vous devez disposer du rôle roles/bigquery.connectionAdmin.

  • Pour accorder des autorisations au compte de service de la connexion, vous devez être membre du rôle roles/resourcemanager.projectIamAdmin.

  • Les autorisations IAM requises dans ce tutoriel pour les opérations BigQuery restantes sont incluses dans les deux rôles suivants :

    • Éditeur de données BigQuery (roles/bigquery.dataEditor) pour créer des modèles, des tables et des index.
    • Utilisateur BigQuery (roles/bigquery.user) pour exécuter des tâches BigQuery.

Créer un ensemble de données

Vous allez créer un ensemble de données BigQuery pour stocker votre modèle de ML :

  1. Dans la console Google Cloud, accédez à la page "BigQuery".

    Accéder à la page "BigQuery"

  2. Dans le volet Explorateur, cliquez sur le nom de votre projet.

  3. Cliquez sur Afficher les actions > Créer un ensemble de données.

    Créer l'ensemble de données

  4. 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).

      Les ensembles de données publics sont stockés dans l'emplacement multirégional US. Par souci de simplicité, stockez votre ensemble de données dans le même emplacement.

    • Conservez les autres paramètres par défaut, puis cliquez sur Créer un ensemble de données.

      Créer une page d'ensemble de données

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.

Sélectionnez l'une des options suivantes :

Console

  1. Accédez à la page BigQuery.

    Accéder à BigQuery

  2. Pour créer une connexion, cliquez sur Ajouter, puis sur Connexions aux sources de données externes.

  3. Dans la liste Type de connexion, sélectionnez Modèles distants Vertex AI, fonctions distantes et BigLake (ressource Cloud).

  4. Dans le champ ID de connexion, saisissez un nom pour votre connexion.

  5. Cliquez sur Create connection (Créer une connexion).

  6. Cliquez sur Accéder à la connexion.

  7. Dans le volet Informations de connexion, copiez l'ID du compte de service à utiliser à l'étape suivante.

bq

  1. 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 connexion
    • PROJECT_ID : ID de votre projet Google Cloud
    • CONNECTION_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...
    
  2. 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:


# This queries the provider for project information.
data "google_project" "default" {}

# This creates a cloud resource connection in the US region named my_cloud_resource_connection.
# Note: The cloud resource nested object has only one output field - serviceAccountId.
resource "google_bigquery_connection" "default" {
  connection_id = "my_cloud_resource_connection"
  project       = data.google_project.default.project_id
  location      = "US"
  cloud_resource {}
}

Pour appliquer votre configuration Terraform dans un projet Google Cloud, suivez les procédures des sections suivantes.

Préparer Cloud Shell

  1. Lancez Cloud Shell.
  2. 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).

  1. 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 exemple main.tf. Dans ce tutoriel, le fichier est appelé main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 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.

  3. Examinez et modifiez les exemples de paramètres à appliquer à votre environnement.
  4. Enregistrez les modifications.
  5. 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

  1. 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.

  2. 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).

  3. 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 l'accès au compte de service

Sélectionnez l'une des options suivantes :

Console

  1. Accédez à la page IAM et administration.

    Accéder à IAM et administration

  2. Cliquez sur Accorder l'accès.

    La boîte de dialogue Ajouter des comptes principaux s'ouvre.

  3. Dans le champ Nouveaux comptes principaux, saisissez l'ID du compte de service que vous avez copié précédemment.

  4. Dans le champ Sélectionner un rôle, sélectionnez Document AI, puis Lecteur Document AI.

  5. Cliquez sur Ajouter un autre rôle.

  6. Dans le champ Sélectionnez un rôle, sélectionnez Cloud Storage, puis Lecteur d'objets Storage.

  7. Cliquez sur Ajouter un autre rôle.

  8. Dans le champ Sélectionner un rôle, sélectionnez Vertex AI, puis Utilisateur Vertex AI.

  9. 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 fichier PDF dans Cloud Storage

Pour importer l'exemple de fichier PDF dans Cloud Storage, procédez comme suit:

  1. Téléchargez l'exemple de PDF scf23.pdf en accédant à https://www.federalreserve.gov/publications/files/scf23.pdf et en cliquant sur Télécharger .
  2. Créez un bucket Cloud Storage.
  3. Importez le fichier scf23.pdf dans le bucket.

Créer une table d'objets

Créez une table d'objets pour le fichier PDF dans Cloud Storage:

  1. Dans la console Google Cloud, accédez à la page BigQuery.

    Accéder à BigQuery

  2. 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 connexion
    • CONNECTION_ID : ID de votre connexion BigQuery.

      Lorsque vous affichez les détails de la connexion dans la console Google 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 fichier scf23.pdf. La valeur complète de l'option uri doit ressembler à ['gs://mybucket/scf23.pdf'].

Créer un outil de traitement de documents

Créez un outil de traitement de documents basé sur l'outil de traitement de la mise en page dans la zone multirégionale 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:

  1. Dans la console Google Cloud, accédez à la page BigQuery.

    Accéder à BigQuery

  2. 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 connexion
    • CONNECTION_ID : ID de votre connexion BigQuery.

      Lorsque vous affichez les détails de la connexion dans la console Google 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 fragments

Utilisez le processeur de documents avec la fonction ML.PROCESS_DOCUMENT pour analyser le fichier PDF en segments, puis écrivez ce contenu dans une table. La fonction ML.PROCESS_DOCUMENT renvoie les segments PDF au format JSON.

  1. Dans la console Google Cloud, accédez à la page BigQuery.

    Accéder à BigQuery

  2. 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(
      MODEL bqml_tutorial.parser_model,
      TABLE bqml_tutorial.pdf,
      PROCESS_OPTIONS => (JSON '{"layout_config": {"chunking_config": {"chunk_size": 250}}}')
      )
    );

Analyser les données de blocs PDF dans des colonnes distinctes

Extrayez le contenu PDF et les informations de métadonnées à partir des données JSON renvoyées par la fonction ML.PROCESS_DOCUMENT, puis écrivez ce contenu dans un tableau:

  1. Dans la console Google Cloud, accédez à la page BigQuery.

    Accéder à BigQuery

  2. Dans l'éditeur de requêtes, exécutez l'instruction suivante pour analyser le contenu du fichier 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
    FROM bqml_tutorial.chunked_pdf, UNNEST(JSON_EXTRACT_ARRAY(ml_process_document_result.chunkedDocument.chunks, '$')) json
    );

  3. Dans l'éditeur de requêtes, 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é :

  1. Dans la console Google Cloud, accédez à la page BigQuery.

    Accéder à BigQuery

  2. 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-004');

    Remplacez les éléments suivants :

    • LOCATION : emplacement de la connexion
    • CONNECTION_ID : ID de votre connexion BigQuery.

      Lorsque vous affichez les détails de la connexion dans la console Google 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 représentations vectorielles continues pour le contenu PDF analysé, puis écrivez-les dans une table:

  1. Dans la console Google Cloud, accédez à la page BigQuery.

    Accéder à BigQuery

  2. 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écutez une recherche vectorielle sur le contenu PDF analysé.

La requête suivante reçoit une entrée textuelle, crée un embedding pour cette entrée à l'aide de la fonction ML.GENERATE_EMBEDDING, puis utilise la fonction VECTOR_SEARCH pour mettre en correspondance l'embedding d'entrée avec les embeddings de contenu PDF les plus similaires. Les résultats sont les dix fragments PDF les plus sémantiquement similaires à l'entrée.

  1. Accédez à la page BigQuery.

    Accéder à BigQuery

  2. 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é :

  1. Dans la console Google Cloud, accédez à la page BigQuery.

    Accéder à BigQuery

  2. 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-1.5-flash-002');

    Remplacez les éléments suivants :

    • LOCATION : emplacement de la connexion
    • CONNECTION_ID : ID de votre connexion BigQuery.

      Lorsque vous affichez les détails de la connexion dans la console Google 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 représentations vectorielles continues 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 génération de texte. Dans ce cas, la requête utilise les informations des segments PDF pour répondre à une question sur l'évolution de la valeur nette familiale au cours de la dernière décennie.

  1. Dans la console Google Cloud, accédez à la page BigQuery.

    Accéder à BigQuery

  2. 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

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.