Receber previsões em lote para o Gemini

Com as previsões em lote, é possível enviar um grande número de solicitações multimodais em uma única solicitação em lote.

Saiba mais sobre o fluxo de trabalho em lote e como formatar a entrada dados, consulte Receba previsões em lote para o Gemini.

Modelos com suporte:

Modelo Versão
Gemini 1.5 Flash gemini-1.5-flash-001
Gemini 1.5 Pro gemini-1.5-pro-001
Gemini 1.0 Pro gemini-1.0-pro-001
gemini-1.0-pro-002

Exemplo de sintaxe

Sintaxe para enviar uma solicitação de API de previsão em lote.

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \

https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/batchPredictionJobs \
-d '{
    "displayName": "...",
    "model": "publishers/google/models/${MODEL_ID}",
    "inputConfig": {
      "instancesFormat":"bigquery",
      "bigquerySource":{
        "inputUri" : "..."
      }
    },
    "outputConfig": {
      "predictionsFormat":"bigquery",
      "bigqueryDestination":{
        "outputUri": "..."
        }
    }
}'

Parâmetros

Confira exemplos para detalhes de implementação.

Solicitação de corpo

Parâmetros

displayName

Um nome que você escolhe para o job.

model

O modelo a ser usado na previsão em lote.

inputConfig

O formato de dados. Para a previsão em lote do Gemini, a entrada do BigQuery é aceita.

outputConfig

A configuração de saída que determina o local de saída do modelo.

inputConfig

Parâmetros

instancesFormat

O formato de entrada do comando. Use bigquery.

bigquerySource.inputUri

O URI da origem da entrada. Este é um URI de tabela do BigQuery no no formato bq://PROJECT_ID.DATASET.TABLE.

outputConfig

Parâmetros

predictionsFormat

O formato de saída da previsão. Ele precisa corresponder ao formato de entrada. Use bigquery.

bigqueryDestination.outputUri

O URI do BigQuery da tabela de saída de destino, na formulário bq://PROJECT_ID.DATASET.TABLE. Se a tabela já existir, ele será criado para você.

Examples

Solicitar uma resposta em lote

As solicitações em lote para modelos multimodais aceitam apenas origens de armazenamento do BigQuery. Para saber mais, consulte:

Dependendo do número de itens de entrada enviados, uma tarefa de previsão em lote pode levar algum tempo para ser concluída.

REST

Para testar um comando multimodal usando a API Vertex AI, envie uma solicitação POST ao endpoint do modelo do editor.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o nome do seu projeto do Google Cloud.
  • BP_JOB_NAME: um nome que você escolhe para o job.
  • INPUT_URI: o URI da origem da entrada. Este é um URI de tabela do BigQuery no formulário bq://PROJECT_ID.DATASET.TABLE.
  • OUTPUT_URI: o URI do BigQuery da tabela de saída de destino, na formulário bq://PROJECT_ID.DATASET.TABLE. Se a tabela ainda não existe, ela é criada para você.

Método HTTP e URL:

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs

Corpo JSON da solicitação:

{
    "displayName": "BP_JOB_NAME",
    "model": "publishers/google/models/gemini-1.0-pro-002",
    "inputConfig": {
      "instancesFormat":"bigquery",
      "bigquerySource":{
        "inputUri" : "INPUT_URI"
      }
    },
    "outputConfig": {
      "predictionsFormat":"bigquery",
      "bigqueryDestination":{
        "outputUri": "OUTPUT_URI"
        }
    }
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs" | Select-Object -Expand Content

Você receberá uma resposta JSON semelhante a esta:

{
  "name": "projects/{PROJECT_ID}/locations/us-central1/batchPredictionJobs/{BATCH_JOB_ID}",
  "displayName": "My first batch prediction",
  "model": "projects/{PROJECT_ID}/locations/us-central1/models/gemini-1.0-pro-002",
  "inputConfig": {
    "instancesFormat": "bigquery",
    "bigquerySource": {
      "inputUri": "bq://{PROJECT_ID}.mydataset.batch_predictions_input"
    }
  },
  "modelParameters": {},
  "outputConfig": {
    "predictionsFormat": "bigquery",
    "bigqueryDestination": {
      "outputUri": "bq://{PROJECT_ID}.mydataset.batch_predictions_output"
    }
  },
  "state": "JOB_STATE_PENDING",
  "createTime": "2023-07-12T20:46:52.148717Z",
  "updateTime": "2023-07-12T20:46:52.148717Z",
  "modelVersionId": "1"
}

A resposta inclui um identificador exclusivo para a tarefa em lote. É possível pesquisar o status da tarefa em lote usando BATCH_JOB_ID até que o job state seja JOB_STATE_SUCCEEDED. Exemplo:

curl \
  -X GET \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs/BATCH_JOB_ID

Recuperar saída em lote

Quando uma tarefa de previsão em lote é concluída, a saída é armazenada na tabela do BigQuery especificada na solicitação.

A seguir