احتساب الرموز والشخصيات التي يتم تحصيل رسومها لنماذج Gemini

تقسم النماذج التوليدية البيانات إلى وحدات تُعرف باسم الرموز المميّزة بهدف معالجتها. لكل نموذج الحد الأقصى لعدد الرموز المميّزة التي يمكنه التعامل معها في الطلب والاستجابة.

توضّح لك هذه الصفحة كيفية استخدام Count Tokens API للحصول على تقدير لعدد علامات الترميز وعدد الأحرف التي يمكن تحصيل رسومها لـ طلب إلى نموذج Gemini. لا تتوفّر واجهة برمجة تطبيقات للحصول على تقدير الرموز المميّزة في الردّ.

يُرجى العلم أنّه لا يمكن استخدام Count Tokens API مع نماذج Imagen.

ما هي المعلومات التي يتم توفيرها في العدد؟

يُرجى مراعاة ما يلي بشأن احتساب الرموز المميّزة والأحرف المشمولة في الفوترة:

  • احتساب إجمالي الرموز المميزة

    • يساعد هذا العدد في التأكّد من أنّ طلباتك لا تتجاوز مهلة السياق المسموح بها.

    • سيعكس عدد الرموز المميّزة حجم جميع الملفات (مثل الصور) التي يتم تقديمها كجزء من إدخال الطلب. ولن يتم احتساب عدد الصور أو عدد الثواني في الفيديو.

    • في جميع نماذج Gemini، يعادل الرمز المميّز 4 أحرف تقريبًا. تتراوح 100 رمز بين 60 و80 كلمة باللغة الإنجليزية.

  • احتساب إجمالي الأحرف التي يتمّ تحصيل رسومها

    • يساعدك هذا العدد في فهم تكاليفك والتحكّم فيها، لأنّه بالنسبة إلى Vertex AI، يشكّل عدد الأحرف جزءًا من عملية احتساب الأسعار.

    • سيعكس عدد الأحرف التي يتم تحصيل رسومها عدد الأحرف في النص الذي يتم تقديمه كجزء من إدخال الطلب.

بالنسبة إلى طُرز Gemini القديمة، لا تُستخدَم الرموز في عملية حساب قیمته، ولكن بالنسبة إلى طُرز Gemini 2.0 وGemini 2.5، تُستخدَم الرموز في عملية حساب قیمته. اطّلِع على مزيد من المعلومات عن الحدود القصوى للرموز المميّزة لكل نموذج والأسعار لكل نموذج.

الأسعار والحصة الخاصة بعدد الرموز المميّزة والأحرف التي يتمّ تحصيل رسومها

لا يتم فرض أي رسوم أو قيود على الحصة لاستخدام واجهة برمجة التطبيقات CountTokens. الحد الأقصى للحصة لواجهة برمجة التطبيقات CountTokens هي 3,000 طلب في الدقيقة (RPM).

عيّنات تعليمات برمجية

إدخال نصي فقط

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

إدخال متعدد الوسائط

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