Use a API CountTokens para evitar que as solicitações excedam a janela de contexto do modelo e estime os possíveis custos com base em caracteres faturáveis.
A API CountTokens pode usar o mesmo parâmetro contents
das solicitações de inferência da API Gemini.
Modelos com suporte:
Modelo | Código |
---|---|
Gemini 1.5 Flash | gemini-1.5-flash-002 gemini-1.5-flash-001 gemini-1.5-flash-preview-0514 |
Gemini 1.5 Pro | gemini-1.5-pro-002 gemini-1.5-pro-001 gemini-1.5-pro-preview-0514 |
Gemini 1.0 Pro Vision | gemini-1.0-pro-vision gemini-1.0-pro-vision-001 |
Gemini 1.0 Pro | gemini-1.0-pro gemini-1.0-pro-001 gemini-1.0-pro-002 |
Gemini Experimental | gemini-experimental |
Limitações:
gemini-1.0-pro-vision-001
e gemini-1.0-ultra-vision-001
usam um número fixo de tokens para entradas de vídeo.
Exemplo de sintaxe
Sintaxe para enviar uma solicitação de contagem de tokens.
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}/publishers/google/models/${MODEL_ID}:countTokens \ -d '{ "contents": [{ ... }], "system_instruction": { "role": "...", "parts": [{ ... }], "tools": [{ "function_declarations": [{ ... }] }], } }'
Python
gemini_model = GenerativeModel(MODEL_ID) model_response = gemini_model.count_tokens([...])
Lista de parâmetros
Essa classe consiste em duas properties principais: role
e parts
. A property role
indica o indivíduo que produz o conteúdo, enquanto a property parts
contém vários elementos, cada um representando um segmento de dados em uma mensagem.
Parâmetros | |
---|---|
|
Opcional: A identidade da entidade que cria a mensagem. Defina a string com uma das seguintes opções:
O valor Para conversas que não têm vários turnos, esse campo pode ser deixado em branco ou sem definição. |
|
Uma lista de partes ordenadas que compõem uma única mensagem. Partes diferentes podem ter tipos MIME IANA distintos. |
Part
Um tipo de dados que contém mídia que faz parte de uma mensagem Content
de várias partes.
Parâmetros | |
---|---|
|
Opcional: Um comando de texto ou snippet de código. |
|
Opcional: Dados inline em bytes brutos. |
|
Opcional: Dados armazenados em um arquivo. |
Blob
blob de conteúdo Se possível, envie como texto em vez de bytes brutos.
Parâmetros | |
---|---|
|
Tipo MIME IANA dos dados. |
|
Bytes brutos. |
FileData
Dados baseados em URI.
Parâmetros | |
---|---|
|
Tipo MIME IANA dos dados. |
|
O URI do Cloud Storage para o arquivo que armazena os dados. |
system_instruction
Este campo é para system_instructions
fornecido pelo usuário. Ele é igual
a contents
, mas com suporte limitado aos tipos de conteúdo.
Parâmetros | |
---|---|
|
Tipo MIME IANA dos dados. Este campo é ignorado internamente. |
|
Somente texto. Instruções que os usuários querem transmitir ao modelo. |
FunctionDeclaration
Uma representação estruturada de uma declaração de função, conforme definido pela especificação OpenAPI 3.0 (link em inglês) que representa uma função em que o modelo pode gerar entradas JSON.
Parâmetros | |
---|---|
|
O nome da função a ser chamada. |
|
Opcional: Descrição e propósito da função. |
|
Opcional: Descreve os parâmetros da função no formato de objeto de esquema JSON da OpenAPI: especificação OpenAPI 3.0. |
|
Opcional: Descreve a saída da função no formato de objeto de esquema JSON da OpenAPI: especificação OpenAPI 3.0. |
Exemplos
Receber a contagem de tokens de um comando de texto
Este exemplo conta os tokens de um único comando de texto:
REST
Para conferir a contagem de tokens e o número de caracteres faturáveis de um comando
usando a API do Vertex AI, envie uma solicitação POST
para o endpoint do modelo do editor.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: a região para processar a solicitação. As opções disponíveis incluem:
Clicar para abrir uma lista parcial das regiões disponíveis
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: o ID do projeto.
- MODEL_ID: o ID do modelo multimodal que você quer usar.
- ROLE: o papel em uma conversa associada ao conteúdo. É necessário especificar um papel mesmo em
casos de uso de turno único.
Os valores aceitáveis são os seguintes:
USER
: especifica o conteúdo que é enviado por você.
- TEXT: as instruções de texto a serem incluídas no comando.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens
Corpo JSON da solicitação:
{ "contents": [{ "role": "ROLE", "parts": [{ "text": "TEXT" }] }] }
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens"
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a seguinte.
Python
NodeJS
Java
Go
Receber a contagem de tokens do comando de mídia
Neste exemplo, os tokens de um comando que usa vários tipos de mídia são contados.
REST
Para conferir a contagem de tokens e o número de caracteres faturáveis de um comando
usando a API do Vertex AI, envie uma solicitação POST
para o endpoint do modelo do editor.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: a região para processar a solicitação. As opções disponíveis incluem:
Clicar para abrir uma lista parcial das regiões disponíveis
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: o ID do projeto.
- MODEL_ID: o ID do modelo multimodal que você quer usar.
- ROLE: o papel em uma conversa associada ao conteúdo. É necessário especificar um papel mesmo em
casos de uso de turno único.
Os valores aceitáveis são os seguintes:
USER
: especifica o conteúdo que é enviado por você.
- TEXT: as instruções de texto a serem incluídas no comando.
- FILE_URI:
o URI ou URL do arquivo a ser incluído no comando. Os valores aceitáveis são os seguintes:
- URI do bucket do Cloud Storage: o objeto precisa ser publicamente legível ou residir no
mesmo projeto do Google Cloud que está enviando a solicitação. Para
gemini-1.5-pro
egemini-1.5-flash
, o limite de tamanho é de 2 GB. Paragemini-1.0-pro-vision
, o limite de tamanho é de 20 MB. - URL HTTP: o URL do arquivo precisa ser legível publicamente. É possível especificar um arquivo de vídeo, um arquivo de áudio e até 10 arquivos de imagem por solicitação. Os arquivos de áudio, vídeo e documentos não podem exceder 15 MB.
- URL do vídeo do YouTube: o vídeo do YouTube precisa ser de propriedade da conta que você usou para fazer login no console do Google Cloud ou ser público. Somente um URL de vídeo do YouTube é aceito por solicitação.
Ao especificar um
fileURI
, você também precisa especificar o tipo de mídia (mimeType
) do arquivo. Se o VPC Service Controls estiver ativado, não será possível especificar um URL de arquivo de mídia parafileURI
. - URI do bucket do Cloud Storage: o objeto precisa ser publicamente legível ou residir no
mesmo projeto do Google Cloud que está enviando a solicitação. Para
- MIME_TYPE:
O tipo de mídia do arquivo especificado em
data
oufileUri
. Os valores aceitáveis são os seguintes:Clique para expandir os tipos MIME.
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
image/webp
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens
Corpo JSON da solicitação:
{ "contents": [{ "role": "ROLE", "parts": [ { "file_data": { "file_uri": "FILE_URI", "mime_type": "MIME_TYPE" } }, { "text": "TEXT } ] }] }
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens"
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a seguinte.
Python
NodeJS
Java
Go
A seguir
- Saiba mais sobre a API Gemini.