Generare testo con la funzione AI.GENERATE

Questo tutorial mostra come generare testo da dati di testo o multimodali utilizzando la AI.GENERATE funzione. Con la funzione AI.GENERATE, utilizzi una connessione alle risorse 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à:

  • Riassumere i contenuti di testo e restituire 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 dei 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.
  • Gemini Enterprise Agent Platform: You incur costs for calls to the Agent Platform model.

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

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

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

Per ulteriori informazioni sui prezzi dell'AI generativa di Agent Platform, consulta la pagina dei prezzi di Agent Platform.

Prima di iniziare

  1. Accedi al tuo Google Cloud account. 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 carichi di lavoro.
  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 è abilitato automaticamente nei nuovi progetti. Per attivare BigQuery in un progetto preesistente, vai a

    Abilita l'API BigQuery.

    Ruoli necessari per abilitare le API

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

    Abilita l'API

Ruoli obbligatori

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

  • Crea e utilizza set di dati e tabelle BigQuery: BigQuery Data Editor (roles/bigquery.dataEditor) nel tuo progetto.
  • Crea, delega e utilizza le connessioni BigQuery: BigQuery Connections Admin (roles/bigquery.connectionsAdmin) nel tuo progetto.
  • Concedi le autorizzazioni al account di servizio della connessione: Project IAM Admin (roles/resourcemanager.projectIamAdmin) nel progetto che contiene l'endpoint di Gemini Enterprise Agent Platform.
  • Crea job BigQuery: BigQuery Job User (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 Google Cloud console, vai alla pagina BigQuery.

    Vai alla pagina BigQuery

  2. Nel riquadro Spazio di esplorazione, 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.

    • In Tipo di località, seleziona Multi-regione e poi seleziona 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 bq mk --dataset comando.

  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 datasets.insert metodo con una risorsa del set di dati definita.

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

Crea una connessione

Crea una connessione alle risorse Cloud e recupera il account di servizio della connessione. Crea la connessione nella stessa località del set di dati che hai creato nel passaggio precedente.

Per creare una connessione, segui questi passaggi:

  1. Vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro Spazio di esplorazione, 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 primo piano, fai clic su Vertex AI.

  5. Fai clic sulla scheda della soluzione Modelli Vertex AI: federazione BigQuery.

  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 del account di servizio per utilizzarlo 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 del account di servizio che hai copiato in precedenza.

  4. Nel campo Seleziona un ruolo, seleziona Vertex AI e poi 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

Per generare testo utilizzando la funzione AI.GENERATE e restituire i risultati nel formato predefinito della funzione AI.GENERATE:

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

    Vai a BigQuery

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

    WITH
    bbc_news AS (
      SELECT body FROM `bigquery-public-data.bbc_news.fulltext` LIMIT 5
    )
    SELECT AI.GENERATE(body) 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

Per generare testo utilizzando la funzione AI.GENERATE e utilizzare l'argomento output_schema della funzione AI.GENERATE per formattare l'output:

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

    Vai a BigQuery

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

    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, 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

Per creare una tabella di oggetti sui contenuti video pubblici, quindi trascrivere e tradurre un video:

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

    Vai a BigQuery

  2. Nell'editor di query, esegui la seguente query per creare la tabella di 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.'),
      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 dei file audio

Per creare una tabella di oggetti sui contenuti audio pubblici, quindi analizzare i contenuti dei file audio:

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

    Vai a BigQuery

  2. Nell'editor di query, esegui la seguente query per creare la tabella di 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.'),
      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      |                                      |
    +--------------------------------------------+--------------------+--------------------------------------+
    | ...                                        | ...                | ...                                  |
    +--------------------------------------------+--------------------+--------------------------------------+
    

Libera spazio

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

    Vai a Gestisci risorse

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