생성형 모델은 처리를 위해 데이터를 토큰이라는 단위로 분할합니다. 각 모델에는 프롬프트 및 대답에서 처리할 수 있는 최대 토큰 수가 있습니다.
이 페이지에서는 토큰 수 API를 사용하여 Gemini 모델에 대한 요청의 토큰 수와 청구 가능한 문자 수를 추정하는 방법을 보여줍니다. 응답의 토큰 추정치를 가져오는 API는 없습니다.
토큰 수 API는 Imagen 모델에 사용할 수 없습니다.
개수에는 어떤 정보가 제공되나요?
토큰 및 청구 가능한 문자 수 계산에 관해 다음 사항에 유의하세요.
총 토큰 수 계산
이 개수는 요청이 허용되는 컨텍스트 윈도우를 초과하지 않는지 확인하는 데 유용합니다.
토큰 수는 요청 입력의 일부로 제공되는 모든 파일 (예: 이미지)의 크기를 반영합니다. 이미지 수나 동영상의 초 수는 계산되지 않습니다.
모든 Gemini 모델에서 토큰은 약 4자에 해당합니다. 토큰 100개는 영어 단어 약 60~80개에 해당합니다.
청구 가능한 총 문자 수 계산
Vertex AI의 경우 문자 수가 가격 계산에 포함되므로 이 개수는 비용을 파악하고 관리하는 데 유용합니다.
청구 가능한 문자 수는 요청 입력의 일부로 제공되는 텍스트의 문자 수를 반영합니다.
이전 Gemini 모델의 경우 토큰은 가격 책정 계산에 포함되지 않습니다. 하지만 Gemini 2.0 및 Gemini 2.5 모델의 경우 토큰이 가격 책정 계산에 사용됩니다. 모델별 토큰 한도 및 모델별 가격 책정에 대해 자세히 알아보세요.
토큰 및 청구 가능한 문자 수 계산 가격 및 할당량
CountTokens
API 사용에는 요금 또는 할당량 제한이 없습니다. CountTokens
API의 최대 할당량은 분당 요청 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}");