นับโทเค็นและตัวละครที่เรียกเก็บเงินได้สำหรับโมเดล Gemini

โมเดล Generative จะแบ่งข้อมูลออกเป็นหน่วยที่เรียกว่าโทเค็นเพื่อ ประมวลผล โมเดลแต่ละรายการมีจำนวนโทเค็นสูงสุด ที่สามารถจัดการได้ในพรอมต์และคำตอบ

หน้านี้จะแสดงวิธีใช้ Count Tokens API เพื่อรับค่าประมาณของจำนวนโทเค็นและจำนวนอักขระที่เรียกเก็บเงินได้ สำหรับคำขอไปยังGeminiโมเดล ไม่มี API สำหรับรับค่าประมาณของโทเค็นในการตอบกลับ

โปรดทราบว่าใช้ Count Tokens 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}");