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 a recursos 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:
- Resumir o conteúdo do texto e gerar 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 projeção de uso deste tutorial, use a calculadora de preços.
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
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- O BigQuery é ativado automaticamente em novos projetos.
Para ativar o BigQuery em um projeto preexistente, acesse
Ative a API BigQuery.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.
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.getIamPolicyeresourcemanager.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
No console do Google Cloud , acesse a página BigQuery.
No painel Explorer, clique no nome do seu projeto.
Clique em Conferir ações > Criar conjunto de dados.
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.
Mantenha as configurações padrão restantes e clique em Criar conjunto de dados.
bq
Para criar um conjunto de dados, use o
comando bq mk --dataset.
Crie um conjunto de dados chamado
bqml_tutorialcom o local dos dados definido comoUS.bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
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" } }
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:
Acessar a página do BigQuery.
No painel Explorer, clique em Adicionar dados:
A caixa de diálogo Adicionar dados é aberta.
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.Na seção Fontes de dados em destaque, clique em Vertex AI.
Clique no card da solução Modelos da Vertex AI: federação do BigQuery.
Na lista Tipo de conexão, selecione Modelos remotos da Vertex AI, funções remotas, BigLake e Spanner (recurso do Cloud).
No campo ID da conexão, digite
test_connection.Clique em Criar conexão.
Clique em Ir para conexão.
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:
Acessar a página AM e administrador
Clique em Adicionar.
A caixa de diálogo Adicionar principais é aberta.
No campo Novos principais, digite o ID da conta de serviço que você copiou anteriormente.
No campo Selecionar um papel, selecione Vertex AI e, em seguida, selecione Usuário da Vertex AI.
Clique em Adicionar outro papel.
No campo Selecionar papel, escolha Cloud Storage e, em seguida, Visualizador de objetos do Storage.
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:
No console do Google Cloud , acesse a página BigQuery.
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:
No Google Cloud console, acesse a página BigQuery.
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:
No Google Cloud console, acesse a página BigQuery.
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/*']);
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.
No Google Cloud console, acesse a página BigQuery.
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/*']);
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
- No console Google Cloud , acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.