Gere texto com a função AI.GENERATE
Este tutorial mostra como gerar texto a partir de texto ou dados multimodais
através da função
AI.GENERATE.
Com a função AI.GENERATE, usa uma
associação de recursos da nuvem
para se ligar a um modelo do Gemini alojado, para que não tenha de
criar e manter um modelo seu.
Este tutorial mostra como concluir as seguintes tarefas:
- Resumir conteúdo de texto e gerar resultados no formato predefinido 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 ficheiros de áudio.
Custos
Neste documento, usa 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 custos com base na sua utilização prevista,
use a calculadora de preços.
Para mais informações acerca dos preços do BigQuery, consulte os preços do BigQuery na documentação do BigQuery.
Para mais informações sobre os preços da IA generativa do Vertex AI, consulte a página de preços do Vertex AI.
Antes de começar
- 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.
-
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 num projeto pré-existente, aceda a
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 theserviceusage.services.enablepermission. Learn how to grant roles. - 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 associações do BigQuery:
administrador de associações do BigQuery (
roles/bigquery.connectionsAdmin) no seu projeto. - Conceda autorizações à conta de serviço da ligação: administrador de IAM do projeto (
roles/resourcemanager.projectIamAdmin) no projeto que contém o ponto final do Vertex AI. - Criar tarefas do BigQuery: utilizador de tarefas do BigQuery (
roles/bigquery.jobUser) no seu projeto. - Crie um conjunto de dados:
bigquery.datasets.create - Crie, delegue e use uma associação:
bigquery.connections.* - Defina as autorizações da conta de serviço:
resourcemanager.projects.getIamPolicyeresourcemanager.projects.setIamPolicy - Consultar dados de tabelas:
bigquery.tables.getData Na Google Cloud consola, aceda à página BigQuery.
No painel Explorador, clique no nome do 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, introduza
bqml_tutorial.Em Tipo de localização, selecione Várias regiões e, de seguida, selecione EUA (várias regiões nos Estados Unidos).
Deixe as restantes predefinições como estão e clique em Criar conjunto de dados.
Crie um conjunto de dados com o nome
bqml_tutorialcom a localização dos dados definida comoUSe uma descrição deBigQuery 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 omitir-de--dataset, o comando cria um conjunto de dados por predefinição.Confirme que o conjunto de dados foi criado:
bq lsAceda à página do BigQuery.
No painel Explorador, clique em Adicionar dados:
É apresentada a caixa de diálogo Adicionar dados.
No painel Filtrar por, na secção Tipo de origem de dados, selecione Aplicações empresariais.
Em alternativa, no campo Pesquisar origens de dados, pode introduzir
Vertex AI.Na secção Origens de dados em destaque, clique em Vertex AI.
Clique no cartão da solução Modelos da Vertex AI: federação do BigQuery.
Na lista Tipo de ligação, selecione Modelos remotos, funções remotas, BigLake e Spanner da Vertex AI (recurso da nuvem).
No campo ID de associação, escreva
test_connection.Clique em Criar associação.
Clique em Aceder à associação.
No painel Informações da ligação, copie o ID da conta de serviço para utilização no passo seguinte.
Aceda à página IAM e administrador.
Clique em Adicionar.
É apresentada a caixa de diálogo Adicionar responsáveis.
No campo Novos membros, introduza o ID da conta de serviço que copiou anteriormente.
No campo Selecionar uma função, selecione Vertex AI e, de seguida, selecione Utilizador da Vertex AI.
Clique em Adicionar outra função.
No campo Selecionar uma função, escolha Cloud Storage e, de seguida, selecione Visualizador de objetos de armazenamento.
Clique em Guardar.
Na Google Cloud consola, aceda à página BigQuery.
No editor de consultas, execute a seguinte 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 é semelhante ao 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.. | | +---------------------------------------------+------------------------------------+---------------+ | ... | ... | ... | +---------------------------------------------+------------------------------------+---------------+Na Google Cloud consola, aceda à página do BigQuery.
No editor de consultas, execute a seguinte 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 é semelhante ao 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.. | +----------------+--------------------------------------------+ | ... | ... | +----------------+--------------------------------------------+
Na Google Cloud consola, aceda à página do 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
pixel8.mp4ficheiro: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 é semelhante ao 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... | す 。 東京 に は いろんな 顔 が | +--------------------------------------------+--------------------------------+
Na Google Cloud consola, aceda à página do 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 ficheiros 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 têm um aspeto semelhante ao seguinte:
+--------------------------------------------+-----------------------------------------------------------+ | 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 | | +--------------------------------------------+--------------------+--------------------------------------+ | ... | ... | ... | +--------------------------------------------+--------------------+--------------------------------------+
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Funções necessárias
Para usar a função AI.GENERATE, precisa das seguintes funções de gestão de identidade e de acesso (IAM):
Estas funções predefinidas contêm as autorizações necessárias para realizar as tarefas descritas neste documento. Para ver as autorizações exatas necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Crie um conjunto de dados
Crie um conjunto de dados do BigQuery para armazenar o seu modelo de ML.
Consola
bq
Para criar um novo conjunto de dados, use o comando
bq mk
com a flag --location. Para uma lista completa de parâmetros possíveis, consulte a referência do comando
bq mk --dataset.
API
Chame o método datasets.insert
com um recurso de conjunto de dados definido.
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
DataFrames do BigQuery
Antes de experimentar este exemplo, siga as instruções de configuração dos DataFrames do BigQuery no início rápido do BigQuery com os DataFrames do BigQuery. Para mais informações, consulte a documentação de referência do BigQuery DataFrames.
Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure o ADC para um ambiente de desenvolvimento local.
Crie uma associação
Crie uma associação de recursos na nuvem e obtenha a conta de serviço da associação. Crie a associação na mesma localização que o conjunto de dados criado no passo anterior.
Siga estes passos para criar uma associação:
Conceda acesso à conta de serviço
Conceda à conta de serviço da ligação a função de utilizador do Vertex AI.
Para conceder a função, siga estes passos:
Resumir texto e usar o formato de saída predefinido
Siga estes passos para gerar texto com a função AI.GENERATE e apresentar os resultados no formato predefinido da função AI.GENERATE:
Resumir texto e gerar resultados estruturados
Siga estes passos para gerar texto através da função AI.GENERATE e use o argumento output_schema da função AI.GENERATE para formatar a saída:
Transcreva e traduza conteúdo de vídeo
Siga estes passos para criar uma tabela de objetos sobre conteúdo de vídeo público e, de seguida, transcrever e traduzir um vídeo:
Analise o conteúdo de ficheiros de áudio
Siga estes passos para criar uma tabela de objetos sobre conteúdo de áudio público e, em seguida, analisar o conteúdo dos ficheiros de áudio.