Đếm số lượng mã thông báo cho các mô hình Gemini

Gemini mô hình xử lý dữ liệu đầu vào và đầu ra theo đơn vị gọi là mã thông báo.

Mã thông báo có thể là các ký tự đơn như z hoặc toàn bộ từ như cat. Các từ dài được chia thành nhiều mã thông báo. Tập hợp tất cả token mà mô hình sử dụng được gọi là từ vựng và quá trình chia văn bản thành token được gọi là tách từ.

Đối với các mô hình Gemini, một mã thông báo tương đương với khoảng 4 ký tự. 100 mã thông báo tương đương với khoảng 60 đến 80 từ tiếng Anh.

Mỗi mô hình có một số lượng mã thông báo tối đa mà mô hình có thể xử lý trong một lời nhắc và phản hồi. Khi biết số lượng mã thông báo của lời nhắc, bạn sẽ biết liệu mình có vượt quá giới hạn này hay không. Ngoài ra, chi phí của một yêu cầu được xác định một phần dựa trên số lượng mã thông báo đầu vào và đầu ra, vì vậy, việc biết cách đếm mã thông báo có thể hữu ích.

Mô hình được hỗ trợ

  • gemini-3.1-pro-preview
  • gemini-3-flash-preview
  • gemini-3.1-flash-lite-preview
  • gemini-3-pro-image-preview
  • gemini-3.1-flash-image-preview
  • gemini-2.5-pro
  • gemini-2.5-flash
  • gemini-2.5-flash-lite
  • gemini-2.0-flash-001 (và bí danh được tự động cập nhật gemini-2.0-flash)
  • gemini-2.0-flash-lite-001 (và bí danh được tự động cập nhật gemini-2.0-flash-lite)

Các lựa chọn đếm mã thông báo

Tất cả dữ liệu đầu vào và đầu ra cho Gemini API đều được tách từ, bao gồm văn bản, tệp hình ảnh và các phương thức không phải văn bản khác. Dưới đây là các lựa chọn đếm mã thông báo:

Kiểm tra số lượng mã thông báo cho chỉ các yêu cầu (trước khi gửi các yêu cầu đó đến mô hình).
Gọi countTokens bằng dữ liệu đầu vào của yêu cầu trước khi gửi yêu cầu đó đến mô hình. Hàm này trả về:
  • total_tokens: số lượng mã thông báo của chỉ dữ liệu đầu vào
Kiểm tra số lượng mã thông báo cho cả yêu cầu và phản hồi.
Truy cập vào thuộc tính usageMetadata trên đối tượng phản hồi. Thuộc tính này bao gồm:
  • prompt_token_count: số lượng mã thông báo của chỉ dữ liệu đầu vào
  • candidates_token_count: số lượng mã thông báo của chỉ dữ liệu đầu ra (không bao gồm mã thông báo suy nghĩ)
  • thoughts_token_count: số lượng mã thông báo của bất kỳ mã thông báo suy nghĩ nào được dùng để tạo phản hồi
  • total_token_count: tổng số lượng mã thông báo cho cả dữ liệu đầu vào và đầu ra (bao gồm mọi mã thông báo suy nghĩ)

Khi truyền trực tuyến dữ liệu đầu ra, thuộc tính usageMetadata chỉ xuất hiện trên phần cuối cùng của luồng. Thuộc tính này là nil đối với các phần trung gian.

Hãy lưu ý những điểm sau về các lựa chọn ở trên:

  • Các lựa chọn này sẽ không đếm số lượng hình ảnh đầu vào hoặc số giây trong tệp đầu vào video hoặc âm thanh. Tuy nhiên, số lượng mã thông báo cho mỗi phương thức này sẽ tương quan với các giá trị này.
  • Số lượng token đầu vào bao gồm câu lệnh (văn bản và mọi tệp đầu vào), cũng như mọi hướng dẫn và công cụ của hệ thống.
  • Số lượng mã thông báo đầu ra không bao gồm bất kỳ mã thông báo suy nghĩ nào; các mã thông báo đó được cung cấp trong một trường riêng.
  • Xem thông tin bổ sung dành riêng cho từng loại yêu cầu sau trên trang này.
  • Các mô hình Gemini Live API không hỗ trợ countTokens. Ngoài ra, Firebase AI Logic hiện chưa hỗ trợ thuộc tính usageMetadata đó trong phản hồi từ Live API mô hình, nhưng tính năng này sắp ra mắt!

Giá cho các lựa chọn này

  • Gọi countTokens: Bạn không phải trả phí khi gọi countTokens (Count Tokens API). Hạn mức tối đa cho Count Tokens API là 3.000 yêu cầu mỗi phút (RPM).

  • Sử dụng thuộc tính usageMetadata: Thuộc tính này luôn được trả về như một phần của phản hồi và không phát sinh bất kỳ mã thông báo hoặc phí nào.

Thông tin khác

Dưới đây là một số thông tin khác khi bạn làm việc với các loại yêu cầu cụ thể.

Đếm mã thông báo đầu vào văn bản

Không có thông tin khác.

Đếm mã thông báo đầu vào nhiều lượt (trò chuyện)

Hãy lưu ý những điểm sau khi gọi countTokens khi sử dụng tính năng trò chuyện:

  • Nếu bạn gọi countTokens bằng nhật ký trò chuyện, thì hàm này sẽ trả về tổng số lượng mã thông báo từ cả hai vai trò trong cuộc trò chuyện (total_tokens).
  • Để hiểu lượt trò chuyện tiếp theo của bạn sẽ có kích thước bao nhiêu, bạn cần thêm lượt trò chuyện đó vào nhật ký khi gọi countTokens.

Đếm mã thông báo đầu vào đa phương thức

Hãy lưu ý những điểm sau về việc đếm token bằng dữ liệu đầu vào đa phương thức:

  • Bạn có thể tuỳ ý gọi countTokens trên văn bản và tệp riêng biệt.
  • Đối với cả hai lựa chọn đếm mã thông báo, bạn sẽ nhận được cùng một số lượng mã thông báo cho dù bạn cung cấp tệp dưới dạng dữ liệu nội dòng hay sử dụng URL của tệp.

Tệp đầu vào hình ảnh

Tệp đầu vào hình ảnh được chuyển đổi thành mã thông báo dựa trên kích thước của tệp:

  • Dữ liệu đầu vào hình ảnh có cả hai kích thước nhỏ hơn hoặc bằng 384 pixel: mỗi hình ảnh được tính là 258 mã thông báo.
  • Dữ liệu đầu vào hình ảnh có kích thước lớn hơn ở một hoặc cả hai chiều: mỗi hình ảnh được cắt và điều chỉnh tỷ lệ khi cần thành các ô có kích thước 768x768 pixel, sau đó mỗi ô được tính là 258 mã thông báo.

Tệp đầu vào video và âm thanh

Tệp đầu vào video và âm thanh được chuyển đổi thành mã thông báo theo các tỷ lệ cố định sau:

  • Video: 263 mã thông báo mỗi giây
  • Âm thanh: 32 mã thông báo mỗi giây

Tệp đầu vào tài liệu (như tệp PDF)

Tệp đầu vào PDF được coi là hình ảnh, vì vậy, mỗi trang của tệp PDF được phân tách thành mã thông báo theo cách tương tự như hình ảnh.