Gerar texto com a função AI.GENERATE
Neste tutorial, mostramos como gerar texto de dados de texto ou multimodais
usando a
AI.GENERATE função.
Com a função AI.GENERATE, você usa uma
conexão a recursos do Cloud
para se conectar a um modelo do Gemini hospedado, sem precisar
criar e manter seu próprio modelo.
Nesta seção, mostramos como concluir as seguintes tarefas:
- Resumir conteúdo de 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 Cloud de Confiance by S3NS:
- 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.
Para mais informações, consulte Preços do BigQuery em a documentação do BigQuery.
Para mais informações sobre os preços da IA generativa da Agent Platform, consulte a página de preços da Agent Platform.
Antes de começar
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance 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 Cloud de Confiance project.
- O BigQuery é ativado automaticamente em novos projetos.
Para ativar o BigQuery em um projeto preexistente, clique no botão abaixo.
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. - Criar, delegar e usar conexões do BigQuery: administrador de conexões do BigQuery (
roles/bigquery.connectionsAdmin) no seu projeto. - Conceder 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 Gemini Enterprise Agent Platform. - 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.* - Definir 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 o modelo de ML.
Console
Noconsole, acesse a página BigQuery. Cloud de Confiance
No painel Explorer, clique no nome do seu projeto.
Clique em Ver ações > Criar conjunto de dados
Na página Criar conjunto de dados, faça o seguinte:
Para o ID do conjunto de dados, insira
bqml_tutorial.Em Tipo de local, selecione Multirregião e selecione EUA.
Mantenha as configurações padrão restantes e clique em Criar conjunto de dados.
bq
Para criar um novo conjunto de dados, use o
bq mk --dataset comando.
Crie um conjunto de dados chamado
bqml_tutorialcom o local de 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 datasets.insert
método com um recurso de conjunto de dados definido.
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Crie uma conexão
Crie uma conexão a 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 será aberta.
No painel Filtrar por, na seção Tipo de fonte de dados, selecione Aplicativos empresariais.
Como alternativa, no campo Pesquisar fontes de dados, você pode inserir
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, 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 gerar os resultados no formato padrão da função AI.GENERATE:
Noconsole, acesse a página BigQuery. Cloud de Confiance
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) AS news FROM bbc_news;
O resultado será assim:
+---------------------------------------------+------------------------------------+---------------+ | 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 usar o argumento output_schema da função AI.GENERATE para formatar a saída:
No Cloud de Confiance 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, output_schema => 'summary STRING, good_sentiment BOOL')]) AS news;
O resultado será assim:
+----------------+--------------------------------------------+ | 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 sobre conteúdo de vídeo público e, em seguida, transcrever e traduzir um vídeo:
No Cloud de Confiance 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.'), 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á assim:
+--------------------------------------------+--------------------------------+ | 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 sobre conteúdo de áudio público e, em seguida, analisar o conteúdo dos arquivos de áudio.
No Cloud de Confiance 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.'), 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
- Noconsole, acesse a página Gerenciar recursos. Cloud de Confiance
- 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.