Gerar texto usando a função ML.GENERATE_TEXT
Neste documento, mostramos como criar um modelo remoto do BigQuery ML que representa um modelo da Vertex AI e usar esse modelo remoto com a função ML.GENERATE_TEXT para gerar texto.
Os seguintes tipos de modelos remotos são compatíveis:
- Modelos remotos em qualquer um dos modelos do Gemini disponíveis de forma geral ou em pré-lançamento.
- Modelos remotos em vez de modelos do Anthropic Claude.
- Modelos remotos em modelos Llama
- Modelos remotos em modelos da Mistral AI
- Modelos remotos em modelos abertos compatíveis.
Dependendo do modelo da Vertex AI escolhido, é possível gerar texto com base em dados não estruturados de tabelas de objetos ou entrada de texto de tabelas padrão.
Funções exigidas
Para criar um modelo remoto e gerar texto, você precisa das seguintes funções do Identity and Access Management (IAM):
- Criar e usar conjuntos de dados, tabelas e modelos 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.- Se você não tiver uma conexão padrão configurada, crie e defina uma como parte da execução da instrução - CREATE MODEL. Para isso, você precisa ter a função de administrador do BigQuery (- roles/bigquery.admin) no seu projeto. Para mais informações, consulte Configurar a conexão padrão.
- 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. Este é o projeto atual para modelos remotos que você cria especificando o nome do modelo como um endpoint. Esse é o projeto identificado no URL para modelos remotos que você cria especificando um URL como endpoint.- Se você usar o modelo remoto para analisar dados não estruturados de uma tabela de objetos e o bucket do Cloud Storage usado na tabela estiver em um projeto diferente do seu endpoint da Vertex AI, também será necessário ter o papel de administrador do Storage ( - roles/storage.admin) no bucket do Cloud Storage usado pela tabela de objetos.
- 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
- Crie um modelo e execute a inferência:
    - bigquery.jobs.create
- bigquery.models.create
- bigquery.models.getData
- bigquery.models.updateData
- bigquery.models.updateMetadata
 
Essas permissões também podem ser concedidas com papéis personalizados ou outros papéis predefinidos.
Antes de começar
- 
  
   
   
     
   
  
   
   
     
   
  
 
   
 
 
  
    
    
      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
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 
- 
  
   
   
  
   
   
  
 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
  
   
   
  
   
   
  
 
 
  
  
    
      Enable the BigQuery, BigQuery Connection, and Vertex AI APIs. 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.
crie um conjunto de dados
Crie um conjunto de dados do BigQuery para conter seus recursos:
Console
- No console do Google Cloud , acesse a página BigQuery. 
- No painel à esquerda, clique em Explorer:  - Se o painel esquerdo não aparecer, clique em Expandir painel esquerdo para abrir. 
- 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: - Em ID do conjunto de dados, digite um nome para o conjunto de dados. 
- Em Tipo de local, selecione Região ou Multirregião. - Se você selecionou Região, escolha um local na lista Região.
- Se você selecionou Multirregião, escolha EUA ou Europa na lista Multirregião.
 
- Clique em Criar conjunto de dados. 
 
bq
Crie uma conexão
Pule esta etapa se você tiver uma conexão padrão configurada ou a função de administrador do BigQuery.
Crie uma Conexão de recursos do Cloud para o modelo remoto usar 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.
Selecione uma das seguintes opções:
Console
- 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, insira um nome para a conexão. 
- 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 em uma etapa posterior. 
bq
- Em um ambiente de linha de comando, crie uma conexão: - bq mk --connection --location=REGION --project_id=PROJECT_ID \ --connection_type=CLOUD_RESOURCE CONNECTION_ID - O parâmetro - --project_idsubstitui o projeto padrão.- Substitua: - REGION: sua região de conexão
- PROJECT_ID: o ID do projeto Google Cloud
- CONNECTION_ID: um ID para sua conexão
 - Quando você cria um recurso de conexão, o BigQuery cria uma conta de serviço do sistema exclusiva e a associa à conexão. - Solução de problemas: se você receber o seguinte erro de conexão, atualize o SDK Google Cloud: - Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of... 
- Recupere e copie o ID da conta de serviço para uso em uma etapa posterior: - bq show --connection PROJECT_ID.REGION.CONNECTION_ID - O resultado será assim: - name properties 1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
Terraform
Use o
recurso
google_bigquery_connection.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
O exemplo a seguir cria uma conexão de recurso do Google Cloud chamada
my_cloud_resource_connection na região US:
Para aplicar a configuração do Terraform em um projeto Google Cloud , siga as etapas nas seções a seguir.
Preparar o Cloud Shell
- Inicie o Cloud Shell.
- 
    Defina o projeto Google Cloud padrão em que você quer aplicar as configurações do Terraform. Você só precisa executar esse comando uma vez por projeto, e ele pode ser executado em qualquer diretório. export GOOGLE_CLOUD_PROJECT=PROJECT_ID As variáveis de ambiente serão substituídas se você definir valores explícitos no arquivo de configuração do Terraform. 
Preparar o diretório
Cada arquivo de configuração do Terraform precisa ter o próprio diretório, também chamado de módulo raiz.
- 
    No Cloud Shell, crie um diretório e um novo
    arquivo dentro dele. O nome do arquivo precisa ter a extensão
    .tf, por exemplo,main.tf. Neste tutorial, o arquivo é chamado demain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf 
- 
    Se você estiver seguindo um tutorial, poderá copiar o exemplo de código em cada seção ou etapa. Copie o exemplo de código no main.tfrecém-criado.Se preferir, copie o código do GitHub. Isso é recomendado quando o snippet do Terraform faz parte de uma solução de ponta a ponta. 
- Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
- Salve as alterações.
- 
    Inicialize o Terraform. Você só precisa fazer isso uma vez por diretório.
    terraform init Opcionalmente, para usar a versão mais recente do provedor do Google, inclua a opção -upgrade:terraform init -upgrade 
Aplique as alterações
- 
    Revise a configuração e verifique se os recursos que o Terraform vai criar ou
    atualizar correspondem às suas expectativas:
    terraform plan Faça as correções necessárias na configuração. 
- 
    Para aplicar a configuração do Terraform, execute o comando a seguir e digite yesno prompt:terraform apply Aguarde até que o Terraform exiba a mensagem "Apply complete!". 
- Abra seu Google Cloud projeto para conferir os resultados. No console do Google Cloud , navegue até seus recursos na UI para verificar se foram criados ou atualizados pelo Terraform.
Conceder um papel à conta de serviço da conexão do modelo remoto
Você precisa conceder o papel de usuário da Vertex AI à conta de serviço da conexão usada pelo modelo remoto.
Se você planeja especificar o endpoint do modelo remoto como um URL,
por exemplo, endpoint = 'https://us-central1-aiplatform.googleapis.com/v1/projects/myproject/locations/us-central1/publishers/google/models/gemini-2.0-flash',
conceda essa função no mesmo projeto especificado no URL.
Se você planeja especificar o endpoint do modelo remoto usando o nome do modelo, por exemplo, endpoint = 'gemini-2.0-flash', conceda essa função no mesmo projeto em que planeja criar o modelo remoto.
Conceder a função em um projeto diferente resulta no erro
bqcx-1234567890-wxyz@gcp-sa-bigquery-condel.iam.gserviceaccount.com does not have the permission to access resource.
Para conceder o papel de usuário da Vertex AI, siga estas etapas:
Console
- Acesse a página IAM 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 Salvar. 
gcloud
Use o comando gcloud projects add-iam-policy-binding.
gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/aiplatform.user' --condition=None
Substitua:
- PROJECT_NUMBER: o ID do seu projeto
- MEMBER: o ID da conta de serviço que você copiou anteriormente
Conceder um papel à conta de serviço da conexão da tabela de objetos
Se você estiver usando o modelo remoto para gerar texto com base em dados da tabela de objetos, conceda à conta de serviço da conexão da tabela de objetos a função de usuário da Vertex AI no mesmo projeto em que planeja criar o modelo remoto. Caso contrário, pule esta etapa.
Para encontrar a conta de serviço da conexão da tabela de objetos, siga estas etapas:
- Acessar a página do BigQuery. 
- No painel à esquerda, clique em Explorer:  - Se o painel esquerdo não aparecer, clique em Expandir painel esquerdo para abrir. 
- No painel Explorer, clique em Conjuntos de dados e selecione um conjunto que contenha a tabela de objetos. 
- Clique em Visão geral > Tabelas e selecione a tabela de objetos. 
- No painel do editor, clique na guia Detalhes. 
- Anote o nome da conexão no campo ID da conexão. 
- No painel Explorer, clique em Conexões. 
- Selecione a conexão que corresponde ao campo ID da conexão da tabela de objetos. 
- Copie o valor no campo ID da conta de serviço. 
Para conceder o papel, siga estas etapas:
Console
- Acesse a página IAM 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 Salvar. 
gcloud
Use o comando gcloud projects add-iam-policy-binding.
gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/aiplatform.user' --condition=None
Substitua:
- PROJECT_NUMBER: o ID do seu projeto
- MEMBER: o ID da conta de serviço que você copiou anteriormente
Ativar um modelo de parceiro
Esta etapa só é necessária se você quiser usar os modelos de IA do Anthropic Claude, Llama ou Mistral.
- No console do Google Cloud , acesse a página Model Garden da Vertex AI. 
- Pesquise ou procure o modelo de parceiro que você quer usar. 
- Clique no card de modelo. 
- Na página do modelo, clique em Ativar. 
- Preencha as informações de ativação solicitadas e clique em Avançar. 
- Na seção Termos e condições, marque a caixa de seleção. 
- Clique em Concordar para aceitar os Termos e Condições e ativar o modelo. 
Escolher um método de implantação de modelo aberto
Se você estiver criando um modelo remoto em um
modelo aberto compatível,
é possível implantar automaticamente o modelo aberto ao mesmo tempo em que
cria o modelo remoto especificando o ID do modelo do Model Garden da Vertex AI
ou da Hugging Face na instrução CREATE MODEL.
Outra opção é implantar manualmente o modelo aberto primeiro e depois usar esse modelo com o modelo remoto especificando o endpoint do modelo na instrução CREATE MODEL. Para mais informações, consulte
Implantar modelos abertos.
Criar um modelo remoto do BigQuery ML
Crie um modelo remoto:
Novos modelos abertos
- No console do Google Cloud , acesse a página BigQuery. 
- Usando o editor de SQL, crie um modelo remoto: - CREATE OR REPLACE MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME` REMOTE WITH CONNECTION {DEFAULT | `PROJECT_ID.REGION.CONNECTION_ID`} OPTIONS ( {HUGGING_FACE_MODEL_ID = 'HUGGING_FACE_MODEL_ID' | MODEL_GARDEN_MODEL_NAME = 'MODEL_GARDEN_MODEL_NAME'} [, HUGGING_FACE_TOKEN = 'HUGGING_FACE_TOKEN' ] [, MACHINE_TYPE = 'MACHINE_TYPE' ] [, MIN_REPLICA_COUNT = MIN_REPLICA_COUNT ] [, MAX_REPLICA_COUNT = MAX_REPLICA_COUNT ] [, RESERVATION_AFFINITY_TYPE = {'NO_RESERVATION' | 'ANY_RESERVATION' | 'SPECIFIC_RESERVATION'} ] [, RESERVATION_AFFINITY_KEY = 'compute.googleapis.com/reservation-name' ] [, RESERVATION_AFFINITY_VALUES = RESERVATION_AFFINITY_VALUES ] [, ENDPOINT_IDLE_TTL = ENDPOINT_IDLE_TTL ] ); - Substitua: - PROJECT_ID: o ID do projeto.
- DATASET_ID: o ID do conjunto de dados para conter o modelo. Esse conjunto de dados precisa estar no mesmo local que a conexão que você está usando.
- MODEL_NAME: o nome do modelo
- REGION: a região usada pela conexão.
- CONNECTION_ID: o ID da conexão do BigQuery- Para conseguir esse valor, veja os detalhes da conexão no console do Google Cloud e copie o valor na última seção do ID da conexão totalmente qualificado mostrado em ID da conexão. Por exemplo: - projects/myproject/locations/connection_location/connections/myconnection.
- HUGGING_FACE_MODEL_ID: um valor- STRINGque especifica o ID de um modelo compatível do Hugging Face, no formato- provider_name/- model_name. Por exemplo,- deepseek-ai/DeepSeek-R1. Para conseguir o ID do modelo, clique no nome dele no Hub de modelos do Hugging Face e copie o ID na parte de cima do card.
- MODEL_GARDEN_MODEL_NAME: um valor- STRINGque especifica o ID e a versão de um modelo compatível do Model Garden da Vertex AI, no formato- publishers/publisher/models/- model_name@- model_version. Exemplo:- publishers/openai/models/gpt-oss@gpt-oss-120b. Para conseguir o ID do modelo, clique no card dele no Model Garden da Vertex AI e copie o ID no campo ID do modelo. Para copiar a versão padrão do modelo, acesse o campo Versão no card do modelo. Para ver outras versões de modelo que podem ser usadas, clique em Implantar modelo e depois no campo ID do recurso.
- HUGGING_FACE_TOKEN: um valor- STRINGque especifica o token de acesso do usuário do Hugging Face a ser usado. Só é possível especificar um valor para essa opção se você também especificar um valor para a opção- HUGGING_FACE_MODEL_ID.- O token precisa ter pelo menos a função - read, mas tokens com um escopo mais amplo também são aceitos. Essa opção é obrigatória quando o modelo identificado pelo valor- HUGGING_FACE_MODEL_IDé um modelo restrito ou particular do Hugging Face.- Alguns modelos restritos exigem concordância explícita com os Termos de Serviço antes de conceder o acesso. Para concordar com estes termos, siga estas etapas: - Acesse a página do modelo no site do Hugging Face.
- Localize e leia os Termos de Serviço do modelo. Normalmente, um link para o contrato de serviço é encontrado no card do modelo.
- Aceite os termos conforme solicitado na página.
 
- MACHINE_TYPE: um valor- STRINGque especifica o tipo de máquina a ser usado ao implantar o modelo na Vertex AI. Para informações sobre tipos de máquinas compatíveis, consulte Tipos de máquinas. Se você não especificar um valor para a opção- MACHINE_TYPE, será usado o tipo de máquina padrão do Model Garden da Vertex AI para o modelo.
- MIN_REPLICA_COUNT: um valor- INT64que especifica o número mínimo de réplicas de máquina usadas ao implantar o modelo em um endpoint da Vertex AI. O serviço aumenta ou diminui a contagem de réplicas conforme necessário para a carga de inferência no endpoint. O número de réplicas usadas nunca é menor que o valor- MIN_REPLICA_COUNTnem maior que o valor- MAX_REPLICA_COUNT. O valor- MIN_REPLICA_COUNTprecisa estar no intervalo- [1, 4096]. O valor padrão é- 1.
- MAX_REPLICA_COUNT: um valor- INT64que especifica o número máximo de réplicas de máquina usadas ao implantar o modelo em um endpoint da Vertex AI. O serviço aumenta ou diminui a contagem de réplicas conforme necessário para a carga de inferência no endpoint. O número de réplicas usadas nunca é menor que o valor- MIN_REPLICA_COUNTnem maior que o valor- MAX_REPLICA_COUNT. O valor- MAX_REPLICA_COUNTprecisa estar no intervalo- [1, 4096]. O valor padrão é o valor- MIN_REPLICA_COUNT.
- RESERVATION_AFFINITY_TYPE: determina se o modelo implantado usa reservas do Compute Engine para garantir a disponibilidade de máquina virtual (VMs) ao veicular previsões e especifica se o modelo usa VMs de todas as reservas disponíveis ou apenas de uma reserva específica. Para mais informações, consulte Afinidade de reserva do Compute Engine.- Só é possível usar reservas do Compute Engine compartilhadas com a Vertex AI. Para mais informações, consulte Permitir o consumo de uma reserva. - Confira os valores compatíveis: - NO_RESERVATION: nenhuma reserva é consumida quando o modelo é implantado em um endpoint da Vertex AI. Especificar- NO_RESERVATIONtem o mesmo efeito que não especificar uma afinidade de reserva.
- ANY_RESERVATION: a implantação do modelo da Vertex AI consome máquinas virtuais (VMs) de reservas do Compute Engine que estão no projeto atual ou que são compartilhadas com o projeto e que estão configuradas para consumo automático. Somente as VMs que atendem às seguintes qualificações são usadas:- Eles usam o tipo de máquina especificado pelo valor MACHINE_TYPE.
- Se o conjunto de dados do BigQuery em que você está criando o
  modelo remoto for de uma única região, a reserva precisará estar na
  mesma região. Se o conjunto de dados estiver na multirregião US, a reserva precisará estar na regiãous-central1. Se o conjunto de dados estiver na multirregiãoEU, a reserva precisará estar na regiãoeurope-west4.
 - Se não houver capacidade suficiente nas reservas disponíveis ou se nenhuma reserva adequada for encontrada, o sistema vai provisionar VMs do Compute Engine sob demanda para atender aos requisitos de recursos. 
- Eles usam o tipo de máquina especificado pelo valor 
- SPECIFIC_RESERVATION: a implantação do modelo da Vertex AI consome VMs apenas da reserva especificada no valor- RESERVATION_AFFINITY_VALUES. Essa reserva precisa ser configurada para consumo segmentado especificamente. A implantação falha se a reserva especificada não tiver capacidade suficiente.
 
- RESERVATION_AFFINITY_KEY: a string- compute.googleapis.com/reservation-name. É necessário especificar essa opção quando o valor de- RESERVATION_AFFINITY_TYPEfor- SPECIFIC_RESERVATION.
- RESERVATION_AFFINITY_VALUES: um valor- ARRAY<STRING>que especifica o nome completo do recurso da reserva do Compute Engine, no seguinte formato:
 - projects/myproject/zones/reservation_zone/reservations/reservation_name- Por exemplo, - RESERVATION_AFFINITY_values = ['projects/myProject/zones/us-central1-a/reservations/myReservationName'].- É possível conferir o nome e a zona da reserva na página Reservas do console do Google Cloud . Para mais informações, consulte Conferir reservas. - Você precisa especificar essa opção quando o valor de - RESERVATION_AFFINITY_TYPEé- SPECIFIC_RESERVATION.
- ENDPOINT_IDLE_TTL: um valor- INTERVALque especifica a duração da inatividade após a qual o modelo aberto é automaticamente removido do endpoint da Vertex AI.- Para ativar a remoção automática, especifique um valor de literal de intervalo entre 390 minutos (6,5 horas) e 7 dias. Por exemplo, especifique - INTERVAL 8 HOURpara que o modelo seja removido após 8 horas de inatividade. O valor padrão é 390 minutos (6,5 horas).- A inatividade do modelo é definida como o período que passou desde que uma das seguintes operações foi realizada no modelo: - Executar a
  instrução CREATE MODEL.
- Executar a
  instrução ALTER MODELcom o argumentoDEPLOY_MODELdefinido comoTRUE.
- Enviar uma solicitação de inferência para o endpoint do modelo. Por exemplo, executando a função ML.GENERATE_EMBEDDINGouML.GENERATE_TEXT.
 - Cada uma dessas operações redefine o timer de inatividade para zero. A redefinição é acionada no início do job do BigQuery que realiza a operação. - Depois que o modelo é removido da implantação, as solicitações de inferência enviadas a ele retornam um erro. O objeto do modelo do BigQuery permanece inalterado, incluindo os metadados do modelo. Para usar o modelo novamente para inferência, é necessário implantá-lo novamente executando a instrução - ALTER MODELno modelo e definindo a opção- DEPLOY_MODELcomo- TRUE.
- Executar a
  instrução 
 
Modelos abertos implantados
- No console do Google Cloud , acesse a página BigQuery. 
- Usando o editor de SQL, crie um modelo remoto: - CREATE OR REPLACE MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME` REMOTE WITH CONNECTION {DEFAULT | `PROJECT_ID.REGION.CONNECTION_ID`} OPTIONS ( ENDPOINT = 'https://ENDPOINT_REGION-aiplatform.googleapis.com/v1/projects/ENDPOINT_PROJECT_ID/locations/ENDPOINT_REGION/endpoints/ENDPOINT_ID' ); - Substitua: - PROJECT_ID: o ID do projeto.
- DATASET_ID: o ID do conjunto de dados para conter o modelo. Esse conjunto de dados precisa estar no mesmo local que a conexão que você está usando.
- MODEL_NAME: o nome do modelo
- REGION: a região usada pela conexão.
- CONNECTION_ID: o ID da conexão do BigQuery- Para conseguir esse valor, veja os detalhes da conexão no console do Google Cloud e copie o valor na última seção do ID da conexão totalmente qualificado mostrado em ID da conexão. Por exemplo: - projects/myproject/locations/connection_location/connections/myconnection.
- ENDPOINT_REGION: a região em que o modelo aberto está implantado.
- ENDPOINT_PROJECT_ID: o projeto em que o modelo aberto está implantado.
- ENDPOINT_ID: o ID do endpoint HTTPS usado pelo modelo aberto. Para conseguir o ID do endpoint, localize o modelo aberto na página Previsão on-line e copie o valor no campo ID.
 
Todos os outros modelos
- No console do Google Cloud , acesse a página BigQuery. 
- Usando o editor de SQL, crie um modelo remoto: - CREATE OR REPLACE MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME` REMOTE WITH CONNECTION {DEFAULT | `PROJECT_ID.REGION.CONNECTION_ID`} OPTIONS (ENDPOINT = 'ENDPOINT'); - Substitua: - PROJECT_ID: o ID do projeto.
- DATASET_ID: o ID do conjunto de dados para conter o modelo. Esse conjunto de dados precisa estar no mesmo local que a conexão que você está usando.
- MODEL_NAME: o nome do modelo
- REGION: a região usada pela conexão.
- CONNECTION_ID: o ID da conexão do BigQuery- Para conseguir esse valor, veja os detalhes da conexão no console do Google Cloud e copie o valor na última seção do ID da conexão totalmente qualificado mostrado em ID da conexão. Por exemplo: - projects/myproject/locations/connection_location/connections/myconnection.
- ENDPOINT: o endpoint do modelo da Vertex AI a ser usado.- Para modelos pré-treinados da Vertex AI, modelos do Claude e modelos da Mistral AI, especifique o nome do modelo. Em alguns desses modelos, é possível especificar uma versão específica como parte do nome. Para modelos do Gemini compatíveis, é possível especificar o endpoint global para melhorar a disponibilidade. - Para modelos Llama, especifique um endpoint da API OpenAI no formato - openapi/<publisher_name>/<model_name>. Por exemplo,- openapi/meta/llama-3.1-405b-instruct-maas.- Para mais informações sobre nomes e versões de modelos compatíveis, consulte - ENDPOINT.- O modelo da Vertex AI especificado precisa estar disponível no local em que você está criando o modelo remoto. Para mais informações, consulte Locais. 
 
Gerar texto usando dados da tabela padrão
Gere texto usando a
função ML.GENERATE_TEXT
com dados de comando de uma tabela padrão:
Gemini
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (PROMPT_QUERY)}, STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences, GROUND_WITH_GOOGLE_SEARCH AS ground_with_google_search, SAFETY_SETTINGS AS safety_settings, REQUEST_TYPE AS request_type) );
Substitua:
- PROJECT_ID: o ID do projeto.
- DATASET_ID: o ID do conjunto de dados que contém o modelo.
- MODEL_NAME: o nome do modelo
- TABLE_NAME: o nome da tabela que contém o comando. Essa tabela precisa ter uma tabela chamada- promptou é possível utilizar um alias para usar uma coluna com um nome diferente.
- PROMPT_QUERY: uma consulta que fornece os dados do comando. Essa consulta precisa gerar uma coluna chamada- prompt.
- TOKENS: um valor- INT64que define o número máximo de tokens que podem ser gerados na resposta. Esse valor deve estar no intervalo- [1,8192]. Especifique um valor mais baixo para respostas mais curtas e um valor mais alto para respostas mais longas. O padrão é- 128.
- TEMPERATURE: um valor- FLOAT64no intervalo- [0.0,1.0]que controla o grau de aleatoriedade na seleção de token. O padrão é- 0.- Valores mais baixos para - temperaturesão bons para comandos que exigem uma resposta mais determinista e menos aberta ou criativa, enquanto valores mais altos para- temperaturepodem gerar resultados mais diversos ou criativos. Um valor de- 0para- temperatureé determinista, o que significa que a resposta de maior probabilidade é sempre selecionada.
- TOP_P: um valor- FLOAT64no intervalo- [0.0,1.0]ajuda a determinar a probabilidade dos tokens selecionados. Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias. O padrão é- 0.95.
- FLATTEN_JSON: um valor- BOOLque determina se o texto gerado e os atributos de segurança serão retornados em colunas separadas. O padrão é- FALSE.
- STOP_SEQUENCES: um valor- ARRAY<STRING>que remove as strings especificadas se elas estiverem incluídas nas respostas do modelo. As strings têm correspondência exata, incluindo as letras maiúsculas. O padrão é uma matriz vazia.
- GROUND_WITH_GOOGLE_SEARCH: um valor de- BOOLque determina se o modelo da Vertex AI usa o [Embasamento com a Pesquisa Google](/vertex-ai/generative-ai/docs/grounding/overview#ground-public) ao gerar respostas. O embasamento permite que o modelo use informações adicionais da Internet ao gerar uma resposta para torná-las mais específicas e factuais. Quando- flatten_json_outpute esse campo são definidos como- True, uma coluna- ml_generate_text_grounding_resultextra é incluída nos resultados, fornecendo as fontes usadas pelo modelo para coletar mais informações. O padrão é- FALSE.
- SAFETY_SETTINGS: um valor de- ARRAY<STRUCT<STRING AS category, STRING AS threshold>>que configura limites de segurança de conteúdo para filtrar respostas. O primeiro elemento no struct especifica uma categoria de dano, e o segundo especifica um limite de bloqueio correspondente. O modelo filtra o conteúdo que viola essas configurações. Só é possível especificar cada categoria uma vez. Por exemplo, não é possível especificar- STRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)e- STRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_ONLY_HIGH' AS threshold)ao mesmo tempo. Se não houver uma configuração de segurança para uma determinada categoria, a configuração de segurança- BLOCK_MEDIUM_AND_ABOVEserá usada. As categorias compatíveis são as seguintes:- HARM_CATEGORY_HATE_SPEECH
- HARM_CATEGORY_DANGEROUS_CONTENT
- HARM_CATEGORY_HARASSMENT
- HARM_CATEGORY_SEXUALLY_EXPLICIT
 - BLOCK_NONE(Restrito)
- BLOCK_LOW_AND_ABOVE
- BLOCK_MEDIUM_AND_ABOVE(padrão)
- BLOCK_ONLY_HIGH
- HARM_BLOCK_THRESHOLD_UNSPECIFIED
 
- REQUEST_TYPE: um valor- STRINGque especifica o tipo de solicitação de inferência a ser enviada ao modelo do Gemini. O tipo de solicitação determina qual cota ela usa. Estes são os valores válidos:- DEDICATED: a função- ML.GENERATE_TEXTusa apenas a cota de capacidade de processamento provisionada. A função- ML.GENERATE_TEXTretorna o erro- Provisioned throughput is not purchased or is not activese a cota de taxa de transferência provisionada não estiver disponível.
- SHARED: a função- ML.GENERATE_TEXTusa apenas a cota compartilhada dinâmica (DSQ), mesmo que você tenha comprado a cota de capacidade de processamento provisionada.
- UNSPECIFIED: a função- ML.GENERATE_TEXTusa a cota da seguinte maneira:- Se você não tiver comprado a cota de capacidade de processamento provisionada,
              a função ML.GENERATE_TEXTusará a cota de DSQ.
- Se você comprou uma cota de taxa de transferência provisionada, a função ML.GENERATE_TEXTusa essa cota primeiro. Se as solicitações excederem a cota de capacidade de processamento provisionada, o tráfego de estouro usará a cota de DSQ.
 
- Se você não tiver comprado a cota de capacidade de processamento provisionada,
              a função 
 - O valor padrão é - UNSPECIFIED.- Para mais informações, consulte Usar a taxa de transferência provisionada da Vertex AI. - Exemplo 1 - O exemplo a seguir mostra uma solicitação com estas características: - Solicita um resumo do texto na coluna bodyda tabelaarticles.
- Analisa a resposta JSON do modelo em colunas separadas.
 - SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT(TRUE AS flatten_json_output)); - Exemplo 2 - O exemplo a seguir mostra uma solicitação com estas características: - Usa uma consulta para criar os dados do prompt, concatenando as strings que fornecem prefixos do prompt com as colunas da tabela.
- Retorna uma resposta curta.
- Não analisa a resposta JSON do modelo em colunas separadas.
 - SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens, FALSE AS flatten_json_output)); - Exemplo 3: - O exemplo a seguir mostra uma solicitação com estas características: - Usa a coluna promptda tabelapromptspara a solicitação.
- Analisa a resposta JSON do modelo em colunas separadas.
 - SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts, STRUCT(TRUE AS flatten_json_output)); - Exemplo 4 - O exemplo a seguir mostra uma solicitação com estas características: - Usa a coluna promptda tabelapromptspara a solicitação.
- Retorna uma resposta curta.
- Nivela a resposta JSON em colunas separadas.
- Recupera e retorna dados públicos da Web para embasamento de resposta.
- Filtra respostas não seguras usando duas configurações de segurança.
 - SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts, STRUCT( 100 AS max_output_tokens, 0.5 AS top_p, TRUE AS flatten_json_output, TRUE AS ground_with_google_search, [STRUCT('HARM_CATEGORY_HATE_SPEECH' AS category, 'BLOCK_LOW_AND_ABOVE' AS threshold), STRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)] AS safety_settings)); - Exemplo 5 - O exemplo a seguir mostra uma solicitação com estas características: - Usa a coluna promptda tabelapromptspara a solicitação.
- Retorna uma resposta mais longa.
- Nivela a resposta JSON em colunas separadas.
 - SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.flash_2_model`, TABLE mydataset.prompts, STRUCT( 0.4 AS temperature, 8192 AS max_output_tokens, TRUE AS flatten_json_output)); - Exemplo 6 - O exemplo a seguir mostra uma solicitação com estas características: - Solicita um resumo do texto na coluna bodyda tabelaarticles.
- Nivela a resposta JSON em colunas separadas.
- Recupera e retorna dados públicos da Web para embasamento de resposta.
- Filtra respostas não seguras usando duas configurações de segurança.
 - SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT( .1 AS TEMPERATURE, TRUE AS flatten_json_output, TRUE AS ground_with_google_search, [STRUCT('HARM_CATEGORY_HATE_SPEECH' AS category, 'BLOCK_LOW_AND_ABOVE' AS threshold), STRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)] AS safety_settings)); 
Claude
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (PROMPT_QUERY)}, STRUCT(TOKENS AS max_output_tokens, TOP_K AS top_k, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output) );
Substitua:
- PROJECT_ID: o ID do projeto.
- DATASET_ID: o ID do conjunto de dados que contém o modelo.
- MODEL_NAME: o nome do modelo
- TABLE_NAME: o nome da tabela que contém o comando. Essa tabela precisa ter uma tabela chamada- promptou é possível utilizar um alias para usar uma coluna com um nome diferente.
- PROMPT_QUERY: uma consulta que fornece os dados do comando. Essa consulta precisa gerar uma coluna chamada- prompt.
- TOKENS: um valor- INT64que define o número máximo de tokens que podem ser gerados na resposta. Esse valor deve estar no intervalo- [1,4096]. Especifique um valor mais baixo para respostas mais curtas e um valor mais alto para respostas mais longas. O padrão é- 128.
- TOP_K: um valor- INT64no intervalo- [1,40]que determina o pool inicial de tokens que o modelo considera para seleção. Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias. Se você não especificar um valor, o modelo vai determinar um valor apropriado.
- TOP_P: um valor- FLOAT64no intervalo- [0.0,1.0]ajuda a determinar a probabilidade dos tokens selecionados. Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias. Se você não especificar um valor, o modelo vai determinar um valor apropriado.
- FLATTEN_JSON: um valor- BOOLque determina se o texto gerado e os atributos de segurança serão retornados em colunas separadas. O padrão é- FALSE.
Exemplo 1
O exemplo a seguir mostra uma solicitação com estas características:
- Solicita um resumo do texto na coluna bodyda tabelaarticles.
- Analisa a resposta JSON do modelo em colunas separadas.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT(TRUE AS flatten_json_output));
Exemplo 2
O exemplo a seguir mostra uma solicitação com estas características:
- Usa uma consulta para criar os dados do prompt, concatenando as strings que fornecem prefixos do prompt com as colunas da tabela.
- Retorna uma resposta curta.
- Não analisa a resposta JSON do modelo em colunas separadas.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens, FALSE AS flatten_json_output));
Exemplo 3:
O exemplo a seguir mostra uma solicitação com estas características:
- Usa a coluna promptda tabelapromptspara a solicitação.
- Analisa a resposta JSON do modelo em colunas separadas.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts, STRUCT(TRUE AS flatten_json_output));
Llama
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (PROMPT_QUERY)}, STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences) );
Substitua:
- PROJECT_ID: o ID do projeto.
- DATASET_ID: o ID do conjunto de dados que contém o modelo.
- MODEL_NAME: o nome do modelo
- TABLE_NAME: o nome da tabela que contém o comando. Essa tabela precisa ter uma tabela chamada- promptou é possível utilizar um alias para usar uma coluna com um nome diferente.
- PROMPT_QUERY: uma consulta que fornece os dados do comando. Essa consulta precisa gerar uma coluna chamada- prompt.
- TOKENS: um valor- INT64que define o número máximo de tokens que podem ser gerados na resposta. Esse valor deve estar no intervalo- [1,4096]. Especifique um valor mais baixo para respostas mais curtas e um valor mais alto para respostas mais longas. O padrão é- 128.
- TEMPERATURE: um valor- FLOAT64no intervalo- [0.0,1.0]que controla o grau de aleatoriedade na seleção de token. O padrão é- 0.- Valores mais baixos para - temperaturesão bons para comandos que exigem uma resposta mais determinista e menos aberta ou criativa, enquanto valores mais altos para- temperaturepodem gerar resultados mais diversos ou criativos. Um valor de- 0para- temperatureé determinista, o que significa que a resposta de maior probabilidade é sempre selecionada.
- TOP_P: um valor- FLOAT64no intervalo- [0.0,1.0]ajuda a determinar a probabilidade dos tokens selecionados. Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias. O padrão é- 0.95.
- FLATTEN_JSON: um valor- BOOLque determina se o texto gerado e os atributos de segurança serão retornados em colunas separadas. O padrão é- FALSE.
- STOP_SEQUENCES: um valor- ARRAY<STRING>que remove as strings especificadas se elas estiverem incluídas nas respostas do modelo. As strings têm correspondência exata, incluindo as letras maiúsculas. O padrão é uma matriz vazia.
Exemplo 1
O exemplo a seguir mostra uma solicitação com estas características:
- Solicita um resumo do texto na coluna bodyda tabelaarticles.
- Analisa a resposta JSON do modelo em colunas separadas.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT(TRUE AS flatten_json_output));
Exemplo 2
O exemplo a seguir mostra uma solicitação com estas características:
- Usa uma consulta para criar os dados do prompt, concatenando as strings que fornecem prefixos do prompt com as colunas da tabela.
- Retorna uma resposta curta.
- Não analisa a resposta JSON do modelo em colunas separadas.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens, FALSE AS flatten_json_output));
Exemplo 3:
O exemplo a seguir mostra uma solicitação com estas características:
- Usa a coluna promptda tabelapromptspara a solicitação.
- Analisa a resposta JSON do modelo em colunas separadas.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts, STRUCT(TRUE AS flatten_json_output));
Mistral AI
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (PROMPT_QUERY)}, STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences) );
Substitua:
- PROJECT_ID: o ID do projeto.
- DATASET_ID: o ID do conjunto de dados que contém o modelo.
- MODEL_NAME: o nome do modelo
- TABLE_NAME: o nome da tabela que contém o comando. Essa tabela precisa ter uma tabela chamada- promptou é possível utilizar um alias para usar uma coluna com um nome diferente.
- PROMPT_QUERY: uma consulta que fornece os dados do comando. Essa consulta precisa gerar uma coluna chamada- prompt.
- TOKENS: um valor- INT64que define o número máximo de tokens que podem ser gerados na resposta. Esse valor deve estar no intervalo- [1,4096]. Especifique um valor mais baixo para respostas mais curtas e um valor mais alto para respostas mais longas. O padrão é- 128.
- TEMPERATURE: um valor- FLOAT64no intervalo- [0.0,1.0]que controla o grau de aleatoriedade na seleção de token. O padrão é- 0.- Valores mais baixos para - temperaturesão bons para comandos que exigem uma resposta mais determinista e menos aberta ou criativa, enquanto valores mais altos para- temperaturepodem gerar resultados mais diversos ou criativos. Um valor de- 0para- temperatureé determinista, o que significa que a resposta de maior probabilidade é sempre selecionada.
- TOP_P: um valor- FLOAT64no intervalo- [0.0,1.0]ajuda a determinar a probabilidade dos tokens selecionados. Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias. O padrão é- 0.95.
- FLATTEN_JSON: um valor- BOOLque determina se o texto gerado e os atributos de segurança serão retornados em colunas separadas. O padrão é- FALSE.
- STOP_SEQUENCES: um valor- ARRAY<STRING>que remove as strings especificadas se elas estiverem incluídas nas respostas do modelo. As strings têm correspondência exata, incluindo as letras maiúsculas. O padrão é uma matriz vazia.
Exemplo 1
O exemplo a seguir mostra uma solicitação com estas características:
- Solicita um resumo do texto na coluna bodyda tabelaarticles.
- Analisa a resposta JSON do modelo em colunas separadas.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT(TRUE AS flatten_json_output));
Exemplo 2
O exemplo a seguir mostra uma solicitação com estas características:
- Usa uma consulta para criar os dados do prompt, concatenando as strings que fornecem prefixos do prompt com as colunas da tabela.
- Retorna uma resposta curta.
- Não analisa a resposta JSON do modelo em colunas separadas.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens, FALSE AS flatten_json_output));
Exemplo 3:
O exemplo a seguir mostra uma solicitação com estas características:
- Usa a coluna promptda tabelapromptspara a solicitação.
- Analisa a resposta JSON do modelo em colunas separadas.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts, STRUCT(TRUE AS flatten_json_output));
Modelos abertos
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (PROMPT_QUERY)}, STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_K AS top_k, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output) );
Substitua:
- PROJECT_ID: o ID do projeto.
- DATASET_ID: o ID do conjunto de dados que contém o modelo.
- MODEL_NAME: o nome do modelo
- TABLE_NAME: o nome da tabela que contém o comando. Essa tabela precisa ter uma tabela chamada- promptou é possível utilizar um alias para usar uma coluna com um nome diferente.
- PROMPT_QUERY: uma consulta que fornece os dados do comando. Essa consulta precisa gerar uma coluna chamada- prompt.
- TOKENS: um valor- INT64que define o número máximo de tokens que podem ser gerados na resposta. Esse valor deve estar no intervalo- [1,4096]. Especifique um valor mais baixo para respostas mais curtas e um valor mais alto para respostas mais longas. Se você não especificar um valor, o modelo vai determinar um valor apropriado.
- TEMPERATURE: um valor- FLOAT64no intervalo- [0.0,1.0]que controla o grau de aleatoriedade na seleção de token. Se você não especificar um valor, o modelo vai determinar um valor apropriado.- Valores mais baixos para - temperaturesão bons para comandos que exigem uma resposta mais determinista e menos aberta ou criativa, enquanto valores mais altos para- temperaturepodem gerar resultados mais diversos ou criativos. Um valor de- 0para- temperatureé determinista, o que significa que a resposta de maior probabilidade é sempre selecionada.
- TOP_K: um valor- INT64no intervalo- [1,40]que determina o pool inicial de tokens que o modelo considera para seleção. Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias. Se você não especificar um valor, o modelo vai determinar um valor apropriado.
- TOP_P: um valor- FLOAT64no intervalo- [0.0,1.0]ajuda a determinar a probabilidade dos tokens selecionados. Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias. Se você não especificar um valor, o modelo vai determinar um valor apropriado.
- FLATTEN_JSON: um valor- BOOLque determina se o texto gerado e os atributos de segurança serão retornados em colunas separadas. O padrão é- FALSE.
Exemplo 1
O exemplo a seguir mostra uma solicitação com estas características:
- Solicita um resumo do texto na coluna bodyda tabelaarticles.
- Analisa a resposta JSON do modelo em colunas separadas.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT(TRUE AS flatten_json_output));
Exemplo 2
O exemplo a seguir mostra uma solicitação com estas características:
- Usa uma consulta para criar os dados do prompt, concatenando as strings que fornecem prefixos do prompt com as colunas da tabela.
- Retorna uma resposta curta.
- Não analisa a resposta JSON do modelo em colunas separadas.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens, FALSE AS flatten_json_output));
Exemplo 3:
O exemplo a seguir mostra uma solicitação com estas características:
- Usa a coluna promptda tabelapromptspara a solicitação.
- Analisa a resposta JSON do modelo em colunas separadas.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts, STRUCT(TRUE AS flatten_json_output));
Gerar texto usando dados da tabela de objetos
Gere texto usando a
função ML.GENERATE_TEXT
com um modelo do Gemini para analisar dados não estruturados de uma tabela
de objetos. Você fornece os dados de solicitação no parâmetro prompt.
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, TABLE PROJECT_ID.DATASET_ID.TABLE_NAME, STRUCT(PROMPT AS prompt, TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences, SAFETY_SETTINGS AS safety_settings) );
Substitua:
- PROJECT_ID: o ID do projeto.
- DATASET_ID: o ID do conjunto de dados que contém o modelo.
- MODEL_NAME: o nome do modelo Precisa ser um modelo do Gemini.
- TABLE_NAME: o nome da tabela de objetos que contém o conteúdo a ser analisado. Para saber mais sobre os tipos de conteúdo que podem ser analisados, consulte Entrada.- O bucket do Cloud Storage usado pela tabela de objetos precisa estar no mesmo projeto em que você criou o modelo e em que está chamando a função - ML.GENERATE_TEXT. Se você quiser chamar a função- ML.GENERATE_TEXTem um projeto diferente que contém o bucket do Cloud Storage usado pela tabela de objetos, é preciso conceder o papel de Administrador do Storage no nível do bucket para a conta de serviço- service-A@gcp-sa-aiplatform.iam.gserviceaccount.com.
- PROMPT: o comando a ser usado para analisar o conteúdo.
- TOKENS: um valor- INT64que define o número máximo de tokens que podem ser gerados na resposta. Esse valor deve estar no intervalo- [1,4096]. Especifique um valor mais baixo para respostas mais curtas e um valor mais alto para respostas mais longas. Se você não especificar um valor, o modelo vai determinar um valor apropriado.
- TEMPERATURE: um valor- FLOAT64no intervalo- [0.0,1.0]que controla o grau de aleatoriedade na seleção de token. Se você não especificar um valor, o modelo vai determinar um valor apropriado.- Valores mais baixos para - temperaturesão bons para comandos que exigem uma resposta mais determinista e menos aberta ou criativa, enquanto valores mais altos para- temperaturepodem gerar resultados mais diversos ou criativos. Um valor de- 0para- temperatureé determinista, o que significa que a resposta de maior probabilidade é sempre selecionada.
- TOP_K: um valor- INT64no intervalo- [1,40]que determina o pool inicial de tokens que o modelo considera para seleção. Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias. Se você não especificar um valor, o modelo vai determinar um valor apropriado.
- TOP_P: um valor- FLOAT64no intervalo- [0.0,1.0]ajuda a determinar a probabilidade dos tokens selecionados. Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias. Se você não especificar um valor, o modelo vai determinar um valor apropriado.
- FLATTEN_JSON: um valor- BOOLque determina se o texto gerado e os atributos de segurança serão retornados em colunas separadas. O padrão é- FALSE.
Exemplos
Este exemplo traduz e transcreve o conteúdo de áudio de uma
tabela de objetos chamada feedback:
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.audio_model`, TABLE `mydataset.feedback`, STRUCT('What is the content of this audio clip, translated into Spanish?' AS PROMPT, TRUE AS FLATTEN_JSON_OUTPUT));
Neste exemplo, classificamos o conteúdo PDF de uma tabela de objetos
chamada invoices:
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.classify_model`, TABLE `mydataset.invoices`, STRUCT('Classify this document based on the invoice total, using the following categories: 0 to 100, 101 to 200, greater than 200' AS PROMPT, TRUE AS FLATTEN_JSON_OUTPUT));