Tokenanzahl und abrechenbare Zeichen abrufen

Auf dieser Seite erfahren Sie, wie Sie die Anzahl der Tokens und die Anzahl der abrechenbaren Zeichen für einen Prompt abrufen.

Unterstützte Modelle

Die folgenden multimodalen Modelle unterstützen das Abrufen der Prompt-Tokenanzahl:

  • gemini-1.0-pro
  • gemini-1.0-pro-vision

Tokenanzahl für einen Prompt abrufen

Sie können die Anzahl der Tokens und die Anzahl der abrechenbaren Zeichen für einen Prompt mit der Vertex AI API abrufen.

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.

import vertexai
from vertexai.generative_models import GenerativeModel

def generate_text(project_id: str, location: str) -> str:
    # Initialize Vertex AI
    vertexai.init(project=project_id, location=location)

    # Load the model
    model = GenerativeModel("gemini-1.0-pro")

    # prompt tokens count
    print(model.count_tokens("why is sky blue?"))

    # Load example images
    response = model.generate_content("why is sky blue?")

    # response tokens count
    print(response._raw_response.usage_metadata)
    return response.text

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.

const {VertexAI} = require('@google-cloud/vertexai');

/**
 * TODO(developer): Update these variables before running the sample.
 */
async function countTokens(
  projectId = 'PROJECT_ID',
  location = 'us-central1',
  model = 'gemini-1.0-pro'
) {
  // Initialize Vertex with your Cloud project and location
  const vertexAI = new VertexAI({project: projectId, location: location});

  // Instantiate the model
  const generativeModel = vertexAI.getGenerativeModel({
    model: model,
  });

  const req = {
    contents: [{role: 'user', parts: [{text: 'How are you doing today?'}]}],
  };

  const countTokensResp = await generativeModel.countTokens(req);
  console.log('count tokens response: ', countTokensResp);
}

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. Folgende Optionen sind verfügbar:
    • gemini-1.0-pro-vision
    • gemini-1.0-pro
  • 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.
  • IMAGE_BYTES: Eine Folge von Byte anstelle von Zeichen.
  • 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 oder fileUri 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": [
      {
        "inlineData": {
          "mimeType": "MIME_TYPE",
          "data": "IMAGE_BYTES"
        }
      },
      {
        "fileData": {
          "mimeType": "MIME_TYPE",
          "fileUri": "FILE_URI"
        }
      },
      {
        "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:

Beispiel für einen curl-Befehl für Text mit einem Bild oder Video:

MODEL_ID="gemini-1.0-pro-vision"
PROJECT_ID="my-project"
PROMPT="Provide a summary with about two sentences for the following article."

curl \
-X POST \
-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/publishers/google/models/MODEL_ID:computeTokens-d \
$'{
  "contents": [
    { "prompt": "'"$PROMPT"'" }
    { "inlineData": {"'"$MIME_TYPE"'": "image/jpeg", "data": "'"$IMAGE_BYTES"'" } },
    { "fileData": {"mimeType": "video/avi", "fileUri":"'"$FILE_URI"'" } } ] }}

Beispiel für einen curl-Befehl nur für Text:

MODEL_ID="gemini-1.0-pro-vision"
PROJECT_ID="my-project"
PROMPT="Provide a summary with about two sentences for the following article."

curl \
-X POST \
-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/publishers/google/models/MODEL_ID:computeTokens-d \
$'{
  "contents": [
    { "prompt": "'"$PROMPT"'"}
  ],
}'

Preise und Kontingente

Bei der Verwendung der CountTokens API gibt es keine Gebühren- oder Kontingentbeschränkung. Das maximale Kontingent für die CountTokens API und die ComputeTokens API beträgt 3.000 Anfragen pro Minute.

Nächste Schritte