Genera testo con la funzione AI.GENERATE

Questo tutorial mostra come generare testo da dati di testo o multimodali utilizzando la funzione AI.GENERATE. Con la funzione AI.GENERATE, utilizzi una connessione a una risorsa Cloud per connetterti a un modello Gemini ospitato, in modo da non dover creare e gestire un modello personalizzato.

Questo tutorial mostra come completare le seguenti attività:

  • Riassumi i contenuti di testo e restituisci i risultati nel formato predefinito della funzione.
  • Riassumere i contenuti di testo e restituire risultati strutturati.
  • Trascrivere e tradurre i contenuti video.
  • Analizzare i contenuti del file audio.

Costi

In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:

  • BigQuery ML: You incur costs for the data that you process in BigQuery.
  • Vertex AI: You incur costs for calls to the Vertex AI model.

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il calcolatore prezzi.

I nuovi utenti di Google Cloud potrebbero avere diritto a una prova senza costi.

Per ulteriori informazioni sui prezzi di BigQuery, consulta la sezione Prezzi di BigQuery nella documentazione di BigQuery.

Per ulteriori informazioni sui prezzi dell'AI generativa di Vertex AI, consulta la pagina Prezzi di Vertex AI.

Prima di iniziare

  1. Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. BigQuery viene attivato automaticamente nei nuovi progetti. Per attivare BigQuery in un progetto preesistente, vai a

    Abilita l'API BigQuery.

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin), che include l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

    Abilitare l'API

Ruoli obbligatori

Per utilizzare la funzione AI.GENERATE, devi disporre dei seguenti ruoli IAM (Identity and Access Management):

  • Crea e utilizza set di dati e tabelle BigQuery: Editor dati BigQuery (roles/bigquery.dataEditor) nel tuo progetto.
  • Crea, delega e utilizza le connessioni BigQuery: BigQuery Connections Admin (roles/bigquery.connectionsAdmin) sul tuo progetto.
  • Concedi le autorizzazioni al account di servizio della connessione: Amministratore IAM progetto (roles/resourcemanager.projectIamAdmin) sul progetto che contiene l'endpoint Vertex AI.
  • Crea job BigQuery: Utente job BigQuery (roles/bigquery.jobUser) nel tuo progetto.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per eseguire le attività descritte in questo documento. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

  • Crea un set di dati: bigquery.datasets.create
  • Crea, delega e utilizza una connessione: bigquery.connections.*
  • Imposta le autorizzazioni del account di servizio: resourcemanager.projects.getIamPolicy e resourcemanager.projects.setIamPolicy
  • Esegui query sui dati della tabella: bigquery.tables.getData

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Crea un set di dati

Crea un set di dati BigQuery per archiviare il tuo modello ML.

Console

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai alla pagina BigQuery

  2. Nel riquadro Explorer, fai clic sul nome del progetto.

  3. Fai clic su Visualizza azioni > Crea set di dati.

  4. Nella pagina Crea set di dati, segui questi passaggi:

    • In ID set di dati, inserisci bqml_tutorial.

    • Per Tipo di località, seleziona Multi-regione e poi Stati Uniti.

    • Lascia invariate le restanti impostazioni predefinite e fai clic su Crea set di dati.

bq

Per creare un nuovo set di dati, utilizza il comando bq mk --dataset.

  1. Crea un set di dati denominato bqml_tutorial con la località dei dati impostata su US.

    bq mk --dataset \
      --location=US \
      --description "BigQuery ML tutorial dataset." \
      bqml_tutorial
  2. Verifica che il set di dati sia stato creato:

    bq ls

API

Chiama il metodo datasets.insert con una risorsa dataset definita.

{
  "datasetReference": {
     "datasetId": "bqml_tutorial"
  }
}

Crea una connessione

Crea una connessione risorsa Cloud e ottieni il account di servizio della connessione. Crea la connessione nella stessa posizione del set di dati creato nel passaggio precedente.

Per creare una connessione:

  1. Vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro Explorer, fai clic su Aggiungi dati:

    L'elemento UI Aggiungi dati.

    Si apre la finestra di dialogo Aggiungi dati.

  3. Nel riquadro Filtra per, nella sezione Tipo di origine dati, seleziona Applicazioni aziendali.

    In alternativa, nel campo Cerca origini dati, puoi inserire Vertex AI.

  4. Nella sezione Origini dati in evidenza, fai clic su Vertex AI.

  5. Fai clic sulla scheda della soluzione Vertex AI Models: BigQuery Federation.

  6. Nell'elenco Tipo di connessione, seleziona Modelli remoti di Vertex AI, funzioni remote, BigLake e Spanner (risorsa Cloud).

  7. Nel campo ID connessione, digita test_connection.

  8. Fai clic su Crea connessione.

  9. Fai clic su Vai alla connessione.

  10. Nel riquadro Informazioni sulla connessione, copia l'ID dell'account di servizio da utilizzare nel passaggio successivo.

Concedi l'accesso al account di servizio

Concedi al account di servizio della connessione il ruolo Utente Vertex AI.

Per concedere il ruolo, segui questi passaggi:

  1. Vai alla pagina IAM e amministrazione.

    Vai a IAM e amministrazione

  2. Fai clic su Aggiungi.

    Si apre la finestra di dialogo Aggiungi entità.

  3. Nel campo Nuove entità, inserisci l'ID account di servizio che hai copiato in precedenza.

  4. Nel campo Seleziona un ruolo, seleziona Vertex AI, quindi seleziona Utente Vertex AI.

  5. Fai clic su Aggiungi un altro ruolo.

  6. Nel campo Seleziona un ruolo, scegli Cloud Storage e poi seleziona Visualizzatore oggetti Storage.

  7. Fai clic su Salva.

Riassumere il testo e utilizzare il formato di output predefinito

Segui questi passaggi per generare testo utilizzando la funzione AI.GENERATE e restituire i risultati nel formato predefinito della funzione AI.GENERATE:

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, esegui la query seguente:

    WITH
    bbc_news AS (
      SELECT body FROM `bigquery-public-data.bbc_news.fulltext` LIMIT 5
    )
    SELECT AI.GENERATE(body, connection_id => 'us.test_connection') AS news FROM bbc_news;

    L'output è simile al seguente:

    +---------------------------------------------+------------------------------------+---------------+
    | news.result                                 | news.full_response                 | news.status   |
    +---------------------------------------------+------------------------------------+---------------+
    | This article presents a debate about the    | {"candidates":[{"avg_logprobs":    |               |
    | "digital divide" between rich and poor      | -0.31465074559841777, content":    |               |
    | nations. Here's a breakdown of the key..    | {"parts":[{"text":"This article..  |               |
    +---------------------------------------------+------------------------------------+---------------+
    | This article discusses how advanced         | {"candidates":[{"avg_logprobs":    |               |
    | mapping technology is aiding humanitarian   | -0.21313422900091983,"content":    |               |
    | efforts in Darfur, Sudan. Here's a...       | {"parts":[{"text":"This article..  |               |
    +---------------------------------------------+------------------------------------+---------------+
    | ...                                         | ...                                | ...           |
    +---------------------------------------------+------------------------------------+---------------+
    

Riassumere il testo e restituire risultati strutturati

Segui questi passaggi per generare testo utilizzando la funzione AI.GENERATE e utilizza l'argomento output_schema della funzione AI.GENERATE per formattare l'output:

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, esegui la query seguente:

    WITH
    bbc_news AS (
      SELECT
        body
      FROM
        `bigquery-public-data`.bbc_news.fulltext
      LIMIT 5
    )
    SELECT
    news.good_sentiment,
    news.summary
    FROM
    bbc_news,
    UNNEST(ARRAY[AI.GENERATE(body, connection_id  => 'us.test', output_schema  => 'summary STRING, good_sentiment BOOL')]) AS news;

    L'output è simile al seguente:

    +----------------+--------------------------------------------+
    | good_sentiment | summary                                    |
    +----------------+--------------------------------------------+
    | true           | A World Bank report suggests the digital   |
    |                | divide is rapidly closing due to increased |
    |                | access to technology in developing..       |
    +----------------+--------------------------------------------+
    | true           | A review of sports games, focusing on the  |
    |                | rivalry between EA Sports and ESPN, and    |
    |                | the recent deal where EA acquired the..    |
    +----------------+--------------------------------------------+
    | ...            | ...                                        |
    +----------------+--------------------------------------------+
    

Trascrivere e tradurre i contenuti video

Segui questi passaggi per creare una tabella degli oggetti sui contenuti video pubblici, quindi trascrivi e traduci un video:

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, esegui la seguente query per creare la tabella degli oggetti:

    CREATE OR REPLACE EXTERNAL TABLE `bqml_tutorial.video`
    WITH CONNECTION `us.test_connection`
    OPTIONS (
      object_metadata = 'SIMPLE',
      uris =
        ['gs://cloud-samples-data/generative-ai/video/*']);
  3. Nell'editor di query, esegui la seguente query per trascrivere e tradurre il file pixel8.mp4:

    SELECT
    AI.GENERATE(
      (OBJ.GET_ACCESS_URL(ref, 'r'), 'Transcribe the video in Japanese and then translate to English.'),
      connection_id => 'us.test_connection',
      endpoint => 'gemini-2.5-flash',
      output_schema => 'japanese_transcript STRING, english_translation STRING'
    ).* EXCEPT (full_response, status)
    FROM
    `bqml_tutorial.video`
    WHERE
    REGEXP_CONTAINS(uri, 'pixel8.mp4');

    L'output è simile al seguente:

    +--------------------------------------------+--------------------------------+
    | english_translation                        | japanese_transcript            |
    +--------------------------------------------+--------------------------------+
    | My name is Saeka Shimada. I'm a            | 島田 さえか です 。 東京 で フ     |
    | photographer in Tokyo. Tokyo has many      | ォトグラファー を し て い ま      |
    | faces. The city at night is totally...     | す 。 東京 に は いろんな 顔 が    |
    +--------------------------------------------+--------------------------------+
    

Analizzare i contenuti del file audio

Segui questi passaggi per creare una tabella degli oggetti sui contenuti audio pubblici e poi analizzare i contenuti dei file audio.

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, esegui la seguente query per creare la tabella degli oggetti:

    CREATE OR REPLACE EXTERNAL TABLE `bqml_tutorial.audio`
      WITH CONNECTION `us.test_connection`
      OPTIONS (
        object_metadata = 'SIMPLE',
        uris =
          ['gs://cloud-samples-data/generative-ai/audio/*']);
  3. Nell'editor di query, esegui la seguente query per analizzare i file audio:

    SELECT
    AI.GENERATE(
      (OBJ.GET_ACCESS_URL(ref, 'r'), 'Summarize the content of this audio file.'),
      connection_id => 'us.test_connection',
      endpoint => 'gemini-2.5-flash',
      output_schema => 'topic ARRAY<STRING>, summary STRING'
    ).* EXCEPT (full_response, status), uri
    FROM
    `bqml_tutorial.audio`;

    I risultati sono simili ai seguenti:

    +--------------------------------------------+-----------------------------------------------------------+
    | summary                                    | topic              | uri                                  |
    +--------------------------------------------+-----------------------------------------------------------+
    | The audio contains a distinctive 'beep'    | beep sound         | gs://cloud-samples-data/generativ... |
    | sound, followed by the characteristic      |                    |                                      |
    | sound of a large vehicle or bus backing..  |                    |                                      |
    +--------------------------------------------+--------------------+--------------------------------------+
    |                                            | vehicle backing up |                                      |
    |                                            +--------------------+                                      |
    |                                            | bus                |                                      |
    |                                            +--------------------+                                      |
    |                                            | alarm              |                                      |
    +--------------------------------------------+--------------------+--------------------------------------+
    | The speaker introduces themselves          | Introduction       | gs://cloud-samples-data/generativ... |
    | as Gemini and expresses their excitement   |                    |                                      |
    | and readiness to dive into something..     |                    |                                      |
    +--------------------------------------------+--------------------+--------------------------------------+
    |                                            | Readiness          |                                      |
    |                                            +--------------------+                                      |
    |                                            | Excitement         |                                      |
    |                                            +--------------------+                                      |
    |                                            | Collaboration      |                                      |
    +--------------------------------------------+--------------------+--------------------------------------+
    | ...                                        | ...                | ...                                  |
    +--------------------------------------------+--------------------+--------------------------------------+
    

Esegui la pulizia

  1. Nella console Google Cloud , vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona quello che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.