Mendapatkan jumlah token dan karakter yang dapat ditagih

Halaman ini menunjukkan cara mendapatkan jumlah token dan jumlah karakter yang dapat ditagih untuk sebuah prompt.

Model yang didukung

Model multimodal berikut mendukung untuk mendapatkan jumlah token perintah:

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

Mendapatkan jumlah token untuk prompt

Anda bisa mendapatkan jumlah token dan jumlah karakter yang dapat ditagih untuk sebuah permintaan menggunakan Vertex AI API.

Python

Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi 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

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Node.js Vertex AI.

Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Guna mendapatkan jumlah token dan jumlah karakter yang dapat ditagih untuk permintaan dengan menggunakan Vertex AI API, kirim permintaan POST ke endpoint model penayang.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • LOCATION: Region untuk memproses permintaan. Opsi yang tersedia mencakup hal berikut:

    Klik untuk meluaskan wilayah yang tersedia

    • us-central1
    • us-west4
    • northamerica-northeast1
    • us-east4
    • us-west1
    • asia-northeast3
    • asia-southeast1
    • asia-northeast1
  • PROJECT_ID: Project ID Anda.
  • MODEL_ID: ID model dari model multimodal yang ingin Anda gunakan. Opsinya adalah:
    • gemini-1.0-pro-vision
    • gemini-1.0-pro
  • ROLE: Peran dalam percakapan yang terkait dengan konten. Penentuan peran diperlukan bahkan dalam kasus penggunaan satu giliran. Nilai yang dapat diterima mencakup:
    • USER: Menentukan konten yang Anda kirimkan.
  • TEXT: Teks petunjuk yang akan disertakan dalam perintah.
  • IMAGE_BYTES: Urutan byte, bukan karakter.
  • FILE_URI: URI Cloud Storage gambar atau video yang akan disertakan dalam perintah. Bucket yang menyimpan file harus berada di project Google Cloud yang sama dengan yang mengirim permintaan. Anda juga harus menentukan MIMETYPE.
  • MIME_TYPE: Jenis media gambar, PDF, atau video yang ditentukan dalam kolom data atau fileUri. Nilai yang dapat diterima mencakup:

    Klik untuk meluaskan jenis MIME

    • 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

Metode HTTP dan URL:

POST http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens

Isi JSON permintaan:

{
  "contents": {
    "role": "ROLE",
    "parts": [
      {
        "inlineData": {
          "mimeType": "MIME_TYPE",
          "data": "IMAGE_BYTES"
        }
      },
      {
        "fileData": {
          "mimeType": "MIME_TYPE",
          "fileUri": "FILE_URI"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens"

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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 "http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens" | Select-Object -Expand Content

Anda akan melihat respons JSON yang mirip seperti berikut:

Contoh perintah curl untuk teks dengan gambar atau 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" \
http://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"'" } } ] }}

Contoh perintah curl untuk teks saja:

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" \
http://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:computeTokens-d \
$'{
  "contents": [
    { "prompt": "'"$PROMPT"'"}
  ],
}'

Harga dan kuota

Tidak ada biaya atau pembatasan kuota untuk menggunakan CountTokens API. Kuota maksimum untuk CountTokens API dan ComputeTokens API adalah 3.000 permintaan per menit.

Langkah selanjutnya