API CountTokens

CountTokens API menghitung jumlah token input sebelum mengirim permintaan ke Gemini API. Gunakan CountTokens API untuk mencegah permintaan melebihi jendela konteks model dan memperkirakan potensi biaya berdasarkan karakter yang dapat ditagih.

Pengguna dapat mengirim parameter contents yang sama dengan yang mereka gunakan dengan permintaan inferensi Gemini API.

Model yang Didukung:

  • Gemini 1.0 Pro
    • gemini-1.0-pro
    • gemini-1.0-pro-001
    • gemini-1.0-pro-002
  • Gemini 1.0 Pro Vision
    • gemini-1.0-pro-vision
    • gemini-1.0-pro-vision-001
  • Gemini 1.0 Ultra
    • gemini-1,0-ultra
    • gemini-1.0-ultra-001
  • Gemini 1.0 Ultra Vision
    • gemini-1.0-ultra-vision
    • gemini-1.0-ultra-vision-001
  • Gemini 1.5 Pro
    • gemini-1.5-pro-preview-0409
  • Eksperimental Gemini
    • gemini-eksperimental

Batasan:

  • gemini-1.0-pro-vision-001 dan gemini-1.0-ultra-vision-001 menggunakan token dengan jumlah tetap untuk input video

Sintaksis

  • ID_PROJECT = PROJECT_ID
  • WILAYAH = REGION
  • MODEL_ID = MODEL_ID

curl

https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/publishers/google/models/${MODEL_ID}:countTokens \
  -d '{
    "contents": [{
      ...
    }]
  }'

Python

gemini_model = GenerativeModel(MODEL_ID)
model_response = gemini_model.count_tokens([...])

Daftar parameter

Class ini terdiri dari dua properti utama: role dan parts. Properti role menunjukkan individu yang membuat konten, sedangkan properti parts berisi beberapa elemen, yang masing-masing merepresentasikan segmen data dalam pesan.

Parameter

role

Opsional: string

Identitas entity yang membuat pesan. Setel string ke salah satu nilai berikut:

  • user: Hal ini menunjukkan bahwa pesan dikirim oleh orang sungguhan. Misalnya, pesan buatan pengguna.
  • model: Hal ini menunjukkan bahwa pesan dihasilkan oleh model.

Nilai model digunakan untuk menyisipkan pesan dari model ke dalam percakapan selama percakapan multi-giliran.

Untuk percakapan non-giliran banyak giliran, kolom ini dapat dibiarkan kosong atau tidak ditetapkan.

parts

part

Daftar bagian yang diurutkan yang membentuk satu pesan. Bagian yang berbeda mungkin memiliki jenis MIME IANA yang berbeda.

Bagian

Parameter

text

Opsional: string

Dialog teks atau cuplikan kode.

inline_data

Opsional: blob

Data inline dalam byte mentah.

file_data

Opsional: FileData

Data yang disimpan dalam file.

Blob

Parameter

mime_type

string

Jenis MIME IANA untuk data.

data

bytes

Byte mentah.

FileData

Parameter

mime_type

string

Jenis MIME IANA untuk data.

file_uri

string

URI Cloud Storage ke file yang menyimpan data

Contoh

  • ID_PROJECT = PROJECT_ID
  • WILAYAH = REGION
  • MODEL_ID = MODEL_ID

Kasus Penggunaan Dasar

Contoh ini menunjukkan penggunaan dengan satu perintah teks.

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/publishers/google/models/${MODEL_ID}:countTokens \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [{
        "text": "Write a story about a magic backpack."
      }]
    }]
  }'

Python

import vertexai
from vertexai.generative_models import GenerativeModel

vertexai.init(project=PROJECT_ID, location=REGION)

gemini_model = GenerativeModel(MODEL_ID)
model_response = gemini_model.count_tokens("Write a story about a magic backpack.")

print(model_response)

Kasus Penggunaan Lanjutan

Contoh ini menampilkan penggunaan media dalam satu perintah

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/publishers/google/models/${MODEL_ID}:countTokens \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [
        {
          "file_data": {
            "file_uri": "gs://cloud-samples-data/generative-ai/video/pixel8.mp4",
            "mime_type": "video/mp4"
          }
        },
        {
          "text": "Provide a description of the video."
        }
      ]
    }]
  }'

Python

import vertexai
from vertexai.generative_models import GenerativeModel, Part

vertexai.init(project=PROJECT_ID, location=REGION)

contents = [
    Part.from_uri(
        "gs://cloud-samples-data/generative-ai/video/pixel8.mp4", mime_type="video/mp4"
    ),
    "Provide a description of the video.",
]

gemini_model = GenerativeModel(MODEL_ID)
model_response = gemini_model.count_tokens(contents)

print(model_response)

Jelajahi lebih lanjut

Untuk dokumentasi mendetail, lihat berikut ini: