מודלים גנרטיביים מפרקים את הנתונים ליחידות שנקראות אסימונים לצורך עיבוד. לכל מודל יש מספר אסימונים מקסימלי שהוא יכול לטפל בו בהנחיה ובתגובה.
בדף הזה מוסבר איך משתמשים ב-Count Tokens API כדי לקבל אומדן של מספר האסימונים ומספר התווים שניתנים לחיוב בבקשה למודל Gemini. אין API לקבלת האומדן של האסימונים בתגובה.
חשוב לזכור שאי אפשר להשתמש ב-Count Tokens API במודלים מסוג Imagen.
איזה מידע מוצג בספירה?
חשוב לשים לב לנקודות הבאות לגבי ספירת אסימונים ותווים לחיוב:
ספירת האסימונים הכוללים
הספירה הזו עוזרת לוודא שהבקשות לא חורגות מחלון ההקשר המותר.
מספר האסימונים ישקף את הגודל של כל הקבצים (לדוגמה, תמונות) שסופקו כחלק מהקלט של הבקשה. המערכת לא תספור את מספר התמונות או את מספר השניות בסרטון.
בכל המודלים של Gemini, אסימון שווה ל-4 תווים בערך. 100 אסימונים הם בערך 60-80 מילים באנגלית.
ספירת סך כל התווים לחיוב
המספר הזה עוזר לכם להבין את העלויות ולשלוט בהן, כי מספר התווים הוא חלק מהחישוב של התמחור ב-Vertex AI.
מספר התווים לחיוב ישקף את מספר התווים בטקסט שסופק כחלק מהקלט של הבקשה.
במודלים ישנים יותר מסוג Gemini, האסימונים לא נכללים בחישוב התמחור. לעומת זאת, במודלים מסוג Gemini 2.0 ו-Gemini 2.5, האסימונים נכללים בחישוב התמחור. מידע נוסף על מגבלות האסימונים לכל מודל ומידע נוסף על התמחור לכל מודל
תמחור ומכסה לספירת אסימונים ותווים לחיוב
אין חיוב או הגבלת מכסות על השימוש ב-API של CountTokens
. המכסה המקסימלית של ה-API 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}");