Utilizza l'API CountTokens per impedire alle richieste di superare la finestra del contesto del modello e stimare i potenziali costi in base ai caratteri fatturabili.
L'API CountTokens può utilizzare lo stesso parametro contents
delle richieste di inferenza dell'API Gemini.
Modelli supportati:
Modello | Codice |
---|---|
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 |
Limitazioni:
gemini-1.0-pro-vision-001
e gemini-1.0-ultra-vision-001
utilizzano un numero fisso di token per gli input video.
Sintassi di esempio
Sintassi per inviare una richiesta di token di conteggio.
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([...])
Elenco dei parametri
Questa classe è composta da due proprietà principali: role
e parts
. La proprietà role
indica la persona che produce i contenuti, mentre la proprietà parts
contiene più elementi, ciascuno dei quali rappresenta un segmento di dati all'interno di un
messaggio.
Parametri | |
---|---|
|
(Facoltativo) L'identità dell'entità che crea il messaggio. Imposta la stringa su una delle seguenti opzioni:
Il valore Per le conversazioni non con più turni, questo campo può essere lasciato vuoto o non impostato. |
|
Un elenco di parti ordinate che compongono un singolo messaggio. Parti diverse possono avere tipi MIME IANA diversi. |
Part
Un tipo di dati contenente contenuti multimediali che fanno parte di un messaggio Content
con più parti.
Parametri | |
---|---|
|
(Facoltativo) Un prompt di testo o uno snippet di codice. |
|
(Facoltativo) Dati in linea in byte non elaborati. |
|
(Facoltativo) Dati archiviati in un file. |
Blob
Blob di contenuti. Se possibile, invia il messaggio come testo anziché come byte non elaborati.
Parametri | |
---|---|
|
Tipo MIME IANA dei dati. |
|
Byte non elaborati. |
FileData
Dati basati su URI.
Parametri | |
---|---|
|
Tipo MIME IANA dei dati. |
|
L'URI Cloud Storage del file che memorizza i dati. |
system_instruction
Questo campo è destinato al system_instructions
fornito dall'utente. È lo stesso
contents
, ma con un supporto limitato dei tipi di contenuti.
Parametri | |
---|---|
|
Tipo MIME IANA dei dati. Questo campo viene ignorato internamente. |
|
Solo testo. Istruzioni che gli utenti vogliono passare al modello. |
FunctionDeclaration
Una rappresentazione strutturata di una dichiarazione di funzione come definita dalla specifica OpenAPI 3.0 che rappresenta una funzione per la quale il modello può generare input JSON.
Parametri | |
---|---|
|
Il nome della funzione da chiamare. |
|
(Facoltativo) Descrizione e scopo della funzione. |
|
(Facoltativo) Descrive i parametri della funzione nel formato dell'oggetto dello schema JSON OpenAPI: specifica OpenAPI 3.0. |
|
(Facoltativo) Descrive l'output della funzione nel formato dell'oggetto dello schema JSON OpenAPI: specifica OpenAPI 3.0. |
Esempi
Ottenere il conteggio dei token dal prompt di testo
Questo esempio conteggia i token di un singolo prompt di testo:
REST
Per ottenere il conteggio dei token e il numero di caratteri fatturabili per un prompt utilizzando l'API Vertex AI, invia una richiesta POST
all'endpoint del modello del publisher.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la regione in cui elaborare la richiesta. Le opzioni disponibili includono:
Fai clic per espandere un elenco parziale delle regioni disponibili
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: il tuo ID progetto.
- MODEL_ID: l'ID del modello multimodale che vuoi utilizzare.
- ROLE:
Il ruolo in una conversazione associato ai contenuti. La specifica di un ruolo è obbligatoria anche nei casi d'uso con un solo turno.
I valori accettabili sono:
USER
: specifica i contenuti inviati da te.
- TEXT: le istruzioni di testo da includere nel prompt.
- NAME: il nome della funzione da chiamare.
- DESCRIPTION: descrizione e scopo della funzione.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens
Corpo JSON della richiesta:
{ "contents": [{ "role": "ROLE", "parts": [{ "text": "TEXT" }] }], "system_instruction": { "role": "ROLE", "parts": [{ "text": "TEXT" }] }, "tools": [{ "function_declarations": [ { "name": "NAME", "description": "DESCRIPTION", "parameters": { "type": "OBJECT", "properties": { "location": { "type": "TYPE", "description": "DESCRIPTION" } }, "required": [ "location" ] } } ] }] }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Dovresti ricevere una risposta JSON simile alla seguente.
Python
NodeJS
Java
Vai
Ottenere il conteggio dei token dal prompt multimediale
Questo esempio conteggia i token di un prompt che utilizza vari tipi di media.
REST
Per ottenere il conteggio dei token e il numero di caratteri fatturabili per un prompt utilizzando l'API Vertex AI, invia una richiesta POST
all'endpoint del modello del publisher.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la regione in cui elaborare la richiesta. Le opzioni disponibili includono:
Fai clic per espandere un elenco parziale delle regioni disponibili
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: il tuo ID progetto.
- MODEL_ID: l'ID del modello multimodale che vuoi utilizzare.
- ROLE:
Il ruolo in una conversazione associato ai contenuti. La specifica di un ruolo è obbligatoria anche nei casi d'uso con un solo turno.
I valori accettabili sono:
USER
: specifica i contenuti inviati da te.
- TEXT: le istruzioni di testo da includere nel prompt.
- FILE_URI:
l'URI o l'URL del file da includere nel prompt. I valori accettabili sono:
- URI del bucket Cloud Storage: l'oggetto deve essere leggibile pubblicamente o trovarsi nello stesso progetto Google Cloud che invia la richiesta. Per
gemini-1.5-pro
egemini-1.5-flash
, il limite di dimensioni è 2 GB. Pergemini-1.0-pro-vision
, il limite di dimensioni è 20 MB. - URL HTTP:l'URL del file deve essere pubblicamente leggibile. Puoi specificare un file video e fino a 10 file immagine per richiesta. I file audio e i documenti non possono superare i 15 MB.
- URL del video di YouTube: il video di YouTube deve essere di proprietà dell'account che hai utilizzato per accedere alla console Google Cloud o essere pubblico. È supportato un solo URL video di YouTube per richiesta.
Quando specifichi un
fileURI
, devi specificare anche il tipo di media (mimeType
) del file. - URI del bucket Cloud Storage: l'oggetto deve essere leggibile pubblicamente o trovarsi nello stesso progetto Google Cloud che invia la richiesta. Per
- MIME_TYPE:
il tipo di media del file specificato nei campi
data
ofileUri
. I valori accettabili sono:Fai clic per espandere i tipi 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
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens
Corpo JSON della richiesta:
{ "contents": [{ "role": "ROLE", "parts": [ { "file_data": { "file_uri": "FILE_URI", "mime_type": "MIME_TYPE" } }, { "text": "TEXT } ] }] }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Dovresti ricevere una risposta JSON simile alla seguente.
Python
NodeJS
Java
Vai
Passaggi successivi
- Scopri di più sull'API Gemini.