Gemini modelleri için jetonları ve faturalandırılabilir karakterleri sayma

Üretken modeller, işleme için verileri token adı verilen birimlere ayırır. Her modelin, istem ve yanıtta işleyebileceği bir maksimum jeton sayısı vardır.

Bu sayfada, bir Gemini modeline yapılan istek için jeton sayısının ve faturalandırılabilir karakter sayısının tahminini almak üzere Jeton Sayısı API'sinin nasıl kullanılacağı gösterilmektedir. Yanıt içindeki jetonların tahminini almak için bir API yoktur.

Count Tokens API'nin Imagen modelleri için kullanılamayacağını unutmayın.

Sayımda hangi bilgiler sağlanır?

Parça sayma ve faturalandırılabilir karakterler hakkında aşağıdaki noktalara dikkat edin:

  • Toplam jeton sayısını belirleme

    • Bu sayı, isteklerinizin izin verilen bağlam penceresini aşmadığından emin olmanıza yardımcı olur.

    • Jeton sayısı, istek girişi kapsamında sağlanan tüm dosyaların (ör. resimler) boyutunu yansıtır. Resim sayısı veya videodaki saniye sayısı sayılmaz.

    • Tüm Gemini modellerinde bir jeton yaklaşık 4 karaktere eşittir. 100 jeton yaklaşık 60-80 İngilizce kelimeye karşılık gelir.

  • Faturalandırılabilir toplam karakter sayısını belirleme

    • Vertex AI için karakter sayısı fiyatlandırma hesaplamasına dahil edildiğinden bu sayı, maliyetlerinizi anlamanıza ve kontrol etmenize yardımcı olur.

    • Faturalandırılabilir karakter sayısı, istek girişi olarak sağlanan metindeki karakter sayısını yansıtır.

Daha eski Gemini modellerinde jetonlar fiyatlandırma hesaplamasına dahil edilmez. Ancak Gemini 2.0 ve Gemini 2.5 modellerinde jetonlar fiyatlandırma hesaplamasında kullanılır. Model başına jeton sınırları ve model başına fiyatlandırma hakkında daha fazla bilgi edinin.

Parça sayma ve faturalandırılabilir karakterler için fiyatlandırma ve kota

CountTokens API'nin kullanımı için ücret alınmaz veya kota sınırlaması uygulanmaz. CountTokens API'nin maksimum kotası, dakika başına 3.000 istektir (RPM).

Kod örnekleri

Yalnızca metin girişi

Swift

let response = try await model.countTokens("Write a story about a magic backpack.")
print("Total Tokens: \(response.totalTokens)")
print("Total Billable Characters: \(response.totalBillableCharacters)")

Kotlin

val response = generativeModel.countTokens("Write a story about a magic backpack.")
println("Total Tokens: ${response.totalTokens}")
println("Total Billable Characters: ${response.totalBillableCharacters}")

Java

Content prompt = new Content.Builder()
        .addText("Write a story about a magic backpack.")
        .build();

GenerativeModelFutures modelFutures = GenerativeModelFutures.from(model);
ListenableFuture countTokensResponse =
        modelFutures.countTokens(prompt);

Futures.addCallback(countTokensResponse, new FutureCallback() {
    @Override
    public void onSuccess(CountTokensResponse response) {
        System.out.println("Total Tokens = " + response.getTotalTokens());
        System.out.println("Total Billable Characters: = " +
                response.getTotalBillableCharacters());
    }

    @Override
    public void onFailure(Throwable t) {
        t.printStackTrace();
    }
}, executor);

Web

const { totalTokens, totalBillableCharacters } = await model.countTokens("Write a story about a magic backpack.");
console.log(`Total tokens: ${totalTokens}, total billable characters: ${totalBillableCharacters}`);

Dart

final tokenCount = await model.countTokens(Content.text("Write a story about a magic backpack."));
print('Token count: ${tokenCount.totalTokens}, billable characters: ${tokenCount.totalBillableCharacters}');

Unity

var response = await model.CountTokensAsync("Write a story about a magic backpack.");
UnityEngine.Debug.Log($"Total Tokens: {response.TotalTokens}");
UnityEngine.Debug.Log($"Total Billable Characters: {response.TotalBillableCharacters}");

Çok formatlı giriş

Swift

let response = try await model.countTokens(image, "What's in this picture?")
print("Total Tokens: \(response.totalTokens)")
print("Total Billable Characters: \(response.totalBillableCharacters)")

Kotlin

val prompt = content {
  image(bitmap)
  text("What's in this picture?")
}
val response = generativeModel.countTokens(prompt)
println("Total Tokens: ${response.totalTokens}")
println("Total Billable Characters: ${response.totalBillableCharacters}")

Java

Content prompt = new Content.Builder()
        .addImage(bitmap)
        .addText("What's in this picture?")
        .build();

GenerativeModelFutures modelFutures = GenerativeModelFutures.from(model);
ListenableFuture countTokensResponse =
        modelFutures.countTokens(prompt);

Futures.addCallback(countTokensResponse, new FutureCallback() {
    @Override
    public void onSuccess(CountTokensResponse response) {
        System.out.println("Total Tokens = " + response.getTotalTokens());
        System.out.println("Total Billable Characters: = " +
                response.getTotalBillableCharacters());
    }

    @Override
    public void onFailure(Throwable t) {
        t.printStackTrace();
    }
}, executor);

Web

const prompt = "What's in this picture?";
const imagePart = { inlineData: { mimeType: 'image/jpeg', data: imageAsBase64 }};

const { totalTokens, totalBillableCharacters } = await model.countTokens([prompt, imagePart]);
console.log(`Total tokens: ${totalTokens}, total billable characters: ${totalBillableCharacters}`);

Dart

final prompt = TextPart("What's in the picture?");
final tokenCount = await model.countTokens([
  Content.multi([prompt, imagePart])
]);
print('Token count: ${tokenCount.totalTokens}, billable characters: ${tokenCount.totalBillableCharacters}');

Unity

var response = await model.CountTokensAsync(new [] {
  ModelContent.Text("What's in this picture?"),
  ModelContent.InlineData("image/png", imageData)
});
UnityEngine.Debug.Log($"Total Tokens: {response.TotalTokens}");
UnityEngine.Debug.Log($"Total Billable Characters: {response.TotalBillableCharacters}");