تقسم النماذج التوليدية البيانات إلى وحدات تُعرف باسم الرموز المميّزة بهدف معالجتها. لكل نموذج الحد الأقصى لعدد الرموز المميّزة التي يمكنه التعامل معها في الطلب والاستجابة.
توضّح لك هذه الصفحة كيفية استخدام 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}");