Gerar texto com a função AI.GENERATE

Neste tutorial, mostramos como gerar texto de dados de texto ou multimodais usando a função AI.GENERATE. Com a função AI.GENERATE, você usa uma conexão de recurso do Cloud para se conectar a um modelo hospedado do Gemini sem precisar criar e manter um modelo próprio.

Nesta seção, mostramos como concluir as seguintes tarefas:

  • Resuma o conteúdo do texto e gere resultados no formato padrão da função.
  • Resumir conteúdo de texto e gerar resultados estruturados.
  • Transcrever e traduzir conteúdo de vídeo.
  • Analisar o conteúdo de arquivos de áudio.

Custos

Neste documento, você vai usar os seguintes componentes faturáveis do 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.

Para gerar uma estimativa de custo baseada na sua projeção de uso, utilize a calculadora de preços.

Novos usuários do Google Cloud podem estar qualificados para um teste sem custo financeiro.

Para mais informações, consulte Preços do BigQuery na documentação do BigQuery.

Para mais informações sobre os preços da IA generativa da Vertex AI, consulte a página de preços da Vertex AI.

Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  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. O BigQuery é ativado automaticamente em novos projetos. Para ativar o BigQuery em um projeto preexistente, acesse

    Enable the BigQuery API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  7. Funções exigidas

    Para usar a função AI.GENERATE, você precisa dos seguintes papéis do Identity and Access Management (IAM):

    • Criar e usar conjuntos de dados e tabelas do BigQuery: Editor de dados do BigQuery (roles/bigquery.dataEditor) no seu projeto.
    • Crie, delegue e use conexões do BigQuery: administrador de conexões do BigQuery (roles/bigquery.connectionsAdmin) no seu projeto.
    • Conceda permissões à conta de serviço da conexão: Administrador do IAM do projeto (roles/resourcemanager.projectIamAdmin) no projeto que contém o endpoint da Vertex AI.
    • Criar jobs do BigQuery: usuário de jobs do BigQuery (roles/bigquery.jobUser) no seu projeto.

    Esses papéis predefinidos contêm as permissões necessárias para executar as tarefas neste documento. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

    Permissões necessárias

    • Criar um conjunto de dados: bigquery.datasets.create
    • Criar, delegar e usar uma conexão: bigquery.connections.*
    • Defina as permissões da conta de serviço: resourcemanager.projects.getIamPolicy e resourcemanager.projects.setIamPolicy
    • Consultar dados da tabela: bigquery.tables.getData

    Essas permissões também podem ser concedidas com papéis personalizados ou outros papéis predefinidos.

    crie um conjunto de dados

    Crie um conjunto de dados do BigQuery para armazenar seu modelo de ML.

    Console

    1. No console do Google Cloud , acesse a página BigQuery.

      Acessar a página do BigQuery

    2. No painel Explorer, clique no nome do seu projeto.

    3. Clique em Ver ações > Criar conjunto de dados.

    4. Na página Criar conjunto de dados, faça o seguinte:

      • Para o código do conjunto de dados, insira bqml_tutorial.

      • Em Tipo de local, selecione Multirregião e EUA (várias regiões nos Estados Unidos).

      • Mantenha as configurações padrão restantes e clique em Criar conjunto de dados.

    bq

    Para criar um novo conjunto de dados, utilize o comando bq mk com a sinalização --location. Para obter uma lista completa de parâmetros, consulte a referência comando bq mk --dataset.

    1. Crie um conjunto de dados chamado bqml_tutorial com o local dos dados definido como US e uma descrição de BigQuery ML tutorial dataset:

      bq --location=US mk -d \
       --description "BigQuery ML tutorial dataset." \
       bqml_tutorial

      Em vez de usar a flag --dataset, o comando usa o atalho -d. Se você omitir -d e --dataset, o comando vai criar um conjunto de dados por padrão.

    2. Confirme se o conjunto de dados foi criado:

      bq ls

    API

    Chame o método datasets.insert com um recurso de conjunto de dados definido.

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

    BigQuery DataFrames

    Antes de testar esta amostra, siga as instruções de configuração dos BigQuery DataFrames no Guia de início rápido do BigQuery: como usar os BigQuery DataFrames. Para mais informações, consulte a documentação de referência do BigQuery DataFrames.

    Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local.

    import google.cloud.bigquery
    
    bqclient = google.cloud.bigquery.Client()
    bqclient.create_dataset("bqml_tutorial", exists_ok=True)

    Crie uma conexão

    Crie uma Conexão de recursos do Cloud e tenha acesso à conta de serviço da conexão. Crie a conexão no mesmo local do conjunto de dados criado na etapa anterior.

    Siga estas etapas para criar uma conexão:

    1. Acessar a página do BigQuery.

      Acessar o BigQuery

    2. No painel Explorer, clique em Adicionar dados:

      O elemento da interface "Adicionar dados".

      A caixa de diálogo Adicionar dados é aberta.

    3. No painel Filtrar por, na seção Tipo de fonte de dados, selecione Aplicativos comerciais.

      Como alternativa, no campo Pesquisar fontes de dados, insira Vertex AI.

    4. Na seção Fontes de dados em destaque, clique em Vertex AI.

    5. Clique no card da solução Modelos da Vertex AI: federação do BigQuery.

    6. Na lista Tipo de conexão, selecione Modelos remotos da Vertex AI, funções remotas, BigLake e Spanner (recurso do Cloud).

    7. No campo ID da conexão, digite test_connection.

    8. Clique em Criar conexão.

    9. Clique em Ir para conexão.

    10. No painel Informações da conexão, copie o ID da conta de serviço para uso na próxima etapa.

    Conceder acesso à conta de serviço

    Conceda à conta de serviço da conexão a função de usuário da Vertex AI.

    Para conceder o papel, siga estas etapas:

    1. Acessar a página AM e administrador

      Acessar IAM e administrador

    2. Clique em Adicionar.

      A caixa de diálogo Adicionar principais é aberta.

    3. No campo Novos principais, digite o ID da conta de serviço que você copiou anteriormente.

    4. No campo Selecionar um papel, selecione Vertex AI e, em seguida, selecione Usuário da Vertex AI.

    5. Clique em Adicionar outro papel.

    6. No campo Selecionar papel, escolha Cloud Storage e, em seguida, Visualizador de objetos do Storage.

    7. Clique em Salvar.

    Resumir texto e usar o formato de saída padrão

    Siga estas etapas para gerar texto usando a função AI.GENERATE e mostrar os resultados no formato padrão da função AI.GENERATE:

    1. No console do Google Cloud , acesse a página BigQuery.

      Acessar o BigQuery

    2. No Editor de consultas, execute esta consulta:

      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;

      O resultado será o seguinte:

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

    Resumir texto e gerar resultados estruturados

    Siga estas etapas para gerar texto usando a função AI.GENERATE e o argumento output_schema da função AI.GENERATE para formatar a saída:

    1. No Google Cloud console, acesse a página BigQuery.

      Acessar o BigQuery

    2. No Editor de consultas, execute esta consulta:

      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;

      O resultado será o seguinte:

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

    Transcrever e traduzir conteúdo de vídeo

    Siga estas etapas para criar uma tabela de objetos com conteúdo de vídeo público e depois transcrever e traduzir um vídeo:

    1. No Google Cloud console, acesse a página BigQuery.

      Acessar o BigQuery

    2. No editor de consultas, execute a seguinte consulta para criar a tabela de objetos:

      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. No editor de consultas, execute a seguinte consulta para transcrever e traduzir o arquivo 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');

      O resultado será o seguinte:

      +--------------------------------------------+--------------------------------+
      | 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...     | す 。 東京 に は いろんな 顔 が    |
      +--------------------------------------------+--------------------------------+
      

    Analisar o conteúdo de arquivos de áudio

    Siga estas etapas para criar uma tabela de objetos com conteúdo de áudio público e analisar o conteúdo dos arquivos de áudio.

    1. No Google Cloud console, acesse a página BigQuery.

      Acessar o BigQuery

    2. No editor de consultas, execute a seguinte consulta para criar a tabela de objetos:

      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. No editor de consultas, execute a seguinte consulta para analisar os arquivos de áudio:

      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`;

      Os resultados são semelhantes aos seguintes:

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

    Limpar

    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.