برای مدل های Gemini، نشانه ها و کاراکترهای قابل پرداخت را بشمارید

مدل های مولد داده ها را به واحدهایی به نام توکن برای پردازش تجزیه می کنند. هر مدل دارای حداکثر تعداد نشانه هایی است که می تواند در یک اعلان و پاسخ به آنها رسیدگی کند.

این صفحه به شما نشان می‌دهد که چگونه از Count Tokens API برای تخمین تعداد توکن‌ها و تعداد نویسه‌های قابل پرداخت برای درخواست یک مدل Gemini استفاده کنید. API برای دریافت تخمین توکن ها در پاسخ وجود ندارد.

توجه داشته باشید که Count Tokens API را نمی توان برای مدل های Imagen استفاده کرد.

چه اطلاعاتی در شمارش ارائه می شود؟

در مورد شمارش توکن ها و کاراکترهای قابل پرداخت به موارد زیر توجه کنید:

  • شمارش کل توکن ها

    • این تعداد برای اطمینان از اینکه درخواست‌های شما از پنجره زمینه مجاز عبور نمی‌کنند مفید است.

    • تعداد توکن ها اندازه همه فایل ها (به عنوان مثال، تصاویر) را که به عنوان بخشی از ورودی درخواست ارائه می شوند، منعکس می کند. تعداد تصاویر یا تعداد ثانیه های یک ویدیو را محاسبه نمی کند.

    • برای تمام مدل های جمینی، یک توکن معادل حدود 4 کاراکتر است. 100 توکن حدود 60-80 کلمه انگلیسی است.

  • شمارش کل کاراکترهای قابل پرداخت

    • این تعداد برای درک و کنترل هزینه‌های شما مفید است، زیرا برای Vertex AI ، تعداد کاراکترها بخشی از محاسبه قیمت است.

    • تعداد کاراکترهای قابل صورت‌حساب، تعداد نویسه‌های متن ارائه‌شده به عنوان بخشی از ورودی درخواست را نشان می‌دهد.

برای مدل‌های قدیمی Gemini ، توکن‌ها بخشی از محاسبه قیمت نیستند . با این حال، برای مدل‌های Gemini 2.0 و Gemini 2.5 ، توکن‌ها در محاسبه قیمت‌گذاری استفاده می‌شوند. درباره محدودیت های توکن در هر مدل و قیمت هر مدل بیشتر بیاموزید.

قیمت گذاری و سهمیه شمارش نشانه ها و کاراکترهای قابل پرداخت

هیچ محدودیتی برای استفاده از CountTokens API وجود ندارد. حداکثر سهمیه برای CountTokens API 3000 درخواست در دقیقه (RPM) است.

نمونه کد

ورودی فقط متن

سویفت

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}');

وحدت

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}");

ورودی چندوجهی

سویفت

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}');

وحدت

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}");