Mit der CountTokens API können Sie verhindern, dass Anfragen das Modellkontextfenster überschreiten, und potenzielle Kosten anhand der abrechenbaren Zeichen schätzen.
Die CountTokens API kann denselben contents
-Parameter wie die Gemini API-Inferenzanfragen verwenden.
Unterstützte Modelle:
Modell | Code |
---|---|
Gemini 1.5 Flash | gemini-1.5-flash-preview-0514 |
Gemini 1.5 Pro, | 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 |
Beschränkungen:
gemini-1.0-pro-vision-001
und gemini-1.0-ultra-vision-001
verwenden eine feste Anzahl von Tokens für Videoeingaben
Beispielsyntax
Syntax zum Senden einer Anfrage zum Zählen der 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([...])
Parameterliste
Diese Klasse besteht aus zwei Hauptattributen: role
und parts
. Das Attribut role
bezeichnet die Person, die den Inhalt erzeugt, während das Attribut parts
mehrere Elemente enthält, die jeweils ein Datensegment innerhalb einer Nachricht darstellen.
Parameter | |
---|---|
|
Optional: Die Identität der Entität, die die Nachricht erstellt. Legen Sie den String auf einen der folgenden Werte fest:
Der Wert Bei Unterhaltungen, die nicht mehrere Themen enthalten, kann dieses Feld leer bleiben oder nicht festgelegt werden. |
|
Eine Liste geordneter Teile einer einzelnen Nachricht. Verschiedene Teile haben möglicherweise unterschiedliche IANA-MIME-Typen. |
Part
Ein Datentyp mit Medien, die Teil einer mehrteiligen Content
-Nachricht sind.
Parameter | |
---|---|
|
Optional: Ein Text-Prompt oder ein Code-Snippet. |
|
Optional: Inline-Daten in Rohbyte. |
|
Optional: In einer Datei gespeicherte Daten. |
Blob
Inhalts-Blob Wenn möglich, senden Sie dies als Text und nicht als Rohbyte.
Parameter | |
---|---|
|
IANA-MIME-Typ der Daten. |
|
Rohbyte. |
FileData
URI-basierte Daten.
Parameter | |
---|---|
|
IANA-MIME-Typ der Daten. |
|
Der Cloud Storage-URI der Datei, in der die Daten gespeichert werden |
system_instruction
Dieses Feld ist für vom Nutzer angegebene system_instructions
gedacht. Er ist mit contents
identisch, allerdings mit eingeschränkter Unterstützung der Inhaltstypen.
Parameter | |
---|---|
|
IANA-MIME-Typ der Daten. Dieses Feld wird intern ignoriert. |
|
Nur Text Anweisungen, die Nutzer an das Modell übergeben möchten. |
FunctionDeclaration
Eine strukturierte Darstellung einer Funktionsdeklaration gemäß der Definition der OpenAPI 3.0-Spezifikation, die eine Funktion darstellt, für die das Modell JSON-Eingaben generieren kann.
Parameter | |
---|---|
|
Der Name der aufzurufenden Funktion. |
|
Optional: Beschreibung und Zweck der Funktion. |
|
Optional: Beschreibt die Parameter der Funktion im OpenAPI-JSON-Schemaobjektformat: OpenAPI 3.0-Spezifikation. |
|
Optional: Beschreibt die Ausgabe der Funktion im OpenAPI-JSON-Schemaobjektformat: OpenAPI 3.0-Spezifikation. |
Beispiele
Tokenanzahl aus Text-Prompt abrufen
In diesem Beispiel werden die Tokens eines einzelnen Text-Prompts gezählt:
REST
Wenn Sie mithilfe der Vertex AI API die Tokenanzahl und die Anzahl der abrechenbaren Zeichen für einen Prompt abrufen möchten, senden Sie eine POST
-Anfrage an den Publisher-Modellendpunkt.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Die Region, in der die Anfrage verarbeitet werden soll. Folgende Optionen sind verfügbar:
Klicken, um verfügbare Regionen zu maximieren
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: Ihre Projekt-ID.
- MODEL_ID: Die Modell-ID des multimodalen Modells, das Sie verwenden möchten.
- ROLE: Die Rolle in einer Unterhaltung, die mit dem Inhalt verknüpft ist. Die Angabe einer Rolle ist auch bei Anwendungsfällen mit nur einem Schritt erforderlich.
Unter anderem sind folgende Werte zulässig:
USER
: Gibt Inhalte an, die von Ihnen gesendet werden
- TEXT: Die Textanleitung, die in den Prompt eingefügt werden soll.
- NAME: Der Name der aufzurufenden Funktion.
- DESCRIPTION: Beschreibung und Zweck der Funktion.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens
JSON-Text der Anfrage:
{ "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" ] } } ] }] }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$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
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Node.js
Bevor Sie dieses Beispiel anwenden, folgen Sie den Node.js-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Node.js API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Tokenanzahl von Medien-Prompt abrufen
In diesem Beispiel werden die Token eines Prompts gezählt, der verschiedene Medientypen verwendet.
REST
Wenn Sie mithilfe der Vertex AI API die Tokenanzahl und die Anzahl der abrechenbaren Zeichen für einen Prompt abrufen möchten, senden Sie eine POST
-Anfrage an den Publisher-Modellendpunkt.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Die Region, in der die Anfrage verarbeitet werden soll. Folgende Optionen sind verfügbar:
Klicken, um verfügbare Regionen zu maximieren
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: Ihre Projekt-ID.
- MODEL_ID: Die Modell-ID des multimodalen Modells, das Sie verwenden möchten.
- ROLE: Die Rolle in einer Unterhaltung, die mit dem Inhalt verknüpft ist. Die Angabe einer Rolle ist auch bei Anwendungsfällen mit nur einem Schritt erforderlich.
Unter anderem sind folgende Werte zulässig:
USER
: Gibt Inhalte an, die von Ihnen gesendet werden
- TEXT: Die Textanleitung, die in den Prompt eingefügt werden soll.
- FILE_URI: Der Cloud Storage-URI des Bildes oder Videos, das in den Prompt aufgenommen werden soll. Der Bucket, in dem die Datei gespeichert ist, muss sich im selben Google Cloud-Projekt befinden, von dem die Anfrage gesendet wird. Sie müssen auch MIMETYPE angeben.
- MIME_TYPE: Der Medientyp des Bildes oder Videos, das in den Feldern
data
oderfileUri
angegeben wurde. Unter anderem sind folgende Werte zulässig:Zum Maximieren von MIME-Typen klicken
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens
JSON-Text der Anfrage:
{ "contents": [{ "role": "ROLE", "parts": [ { "file_data": { "file_uri": "FILE_URI", "mime_type": "MIME_TYPE" } }, { "text": "TEXT } ] }] }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$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
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Python
Bevor Sie dieses Beispiel anwenden, folgen Sie den Python-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Bevor Sie dieses Beispiel anwenden, folgen Sie den Node.js-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Node.js API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.