Tối ưu chi phíHướng dẫn
Đếm token trước khi gửi yêu cầu: tiktoken trong Python
Ước lượng số token của một prompt ngoại tuyến bằng tiktoken, kiểm tra với cửa sổ ngữ cảnh, định giá, và so sánh với trường usage của API.

Trên trang này
Bạn có thể tự đếm token của một prompt ngay trên máy mình trước khi gửi đi: cài tiktoken, mã hoá văn bản, lấy len() của kết quả. tiktoken là tokeniser của OpenAI, nên với các model DeepSeek, GLM và MiniMax thì con số này chỉ là ước lượng. Con số thật sẽ trả về trong usage. sau lần gọi đầu tiên, và so sánh hai con số chỉ tốn thêm một dòng.
Tại sao phải bận tâm? Vì cả hoá đơn lẫn lỗi đều bắt đầu từ kích thước đầu vào. Dán một hợp đồng dài vào script, và bạn chỉ biết nó quá lớn khi API trả về lỗi 400. Chạy một lô năm nghìn email, và bạn chỉ biết nó tốn bao nhiêu khi số dư đã giảm. Đếm trước biến cả hai bất ngờ đó thành một con số bạn đọc được từ trước.
Năm dòng đếm token#
tiktoken README (kiểm tra ngày 1 tháng 11 năm 2026) cho thấy toàn bộ ý tưởng: chọn một encoding, mã hoá văn bản, và độ dài của danh sách chính là số token.
pip install tiktokenimport tiktoken
enc = tiktoken.get_encoding('o200k_base')
text = 'Hello world'
tokens = enc.encode(text)
print(len(tokens)) # how many tokens the text is
enc. trả lại văn bản gốc, một cách kiểm tra nhanh tiện lợi để chắc rằng bạn đang nhìn đúng văn bản mà model sẽ thấy. README cũng nhắc đến tiktoken., chọn tokeniser cho một model OpenAI cụ thể. Đó là điểm cần nhớ: tokeniser thuộc về từng họ model. Quy tắc ngón tay cái trong README là khoảng bốn byte văn bản mỗi token, và nó chỉ mô tả tokeniser của OpenAI.
Vậy với model DeepSeek thì sao? Dùng cùng cách đếm đó như một ước lượng tạm, rồi hiệu chỉnh, như trình bày bên dưới.
Đoán số
Một đoạn văn tiếng Anh 2.000 ký tự thì khoảng bao nhiêu token?
Dự đoán của bạn
02.000
Hiện đáp án
Trả lời: 500
Khoảng 500. Với quy tắc ngón tay cái của README là bốn byte mỗi token, và văn bản tiếng Anh thông thường khoảng một byte mỗi ký tự, 2.000 ÷ 4 = 500. Các ngôn ngữ khác và emoji tốn nhiều byte hơn mỗi ký tự, nên cùng 2.000 ký tự thường nghĩa là nhiều token hơn theo quy tắc đó.
Prompt có vừa cửa sổ không?#
Mỗi model có một cửa sổ ngữ cảnh, và đầu vào cộng với câu trả lời bạn cho phép phải vừa trong đó. Cửa sổ của các model chúng tôi phục vụ: DeepSeek-V4-Flash 380K, GLM-5.3-Flash 390K, MiniMax-M2.7 180K token. Câu trả lời dài nhất là 32.768 token với DeepSeek-V4-Flash và 8.192 với hai model còn lại (danh sách model CheapTokens, 1 tháng 11 năm 2026).
Một bước kiểm tra trước khi gọi gồm bốn dòng:
CONTEXT = {
'deepseek-ai/DeepSeek-V4-Flash-0731': 380_000,
'zai-org/GLM-5.3-Flash': 390_000,
'MiniMaxAI/MiniMax-M2.7': 180_000,
}
def fits(prompt_tokens, max_tokens, model):
return prompt_tokens + max_tokens <= CONTEXT[model]Giả sử bạn có một tài liệu 250.000 token. fits(250_ là False, nên bạn chuyển việc đó sang model có cửa sổ lớn hơn hoặc chia nhỏ tài liệu, và lỗi 400 không bao giờ xảy ra. fits(250_ là True. Nếu bạn muốn biết đầy đủ lỗi trông như thế nào, request too long: 400 vs 413, context window and max_tokens đi qua từng bước.
Sẽ tốn bao nhiêu?#
Giờ đến ngân sách. Lấy một mục điển hình, đếm nó, rồi nhân lên. Giả sử bạn phân loại 5.000 email đơn hàng. Bạn đếm một email đại diện và được khoảng 800 token đầu vào, và bạn giới hạn nhãn cùng một lý do ngắn ở 200 token đầu ra. Tổng cộng: 5.000 × 800 = 4.000.000 token đầu vào và 5.000 × 200 = 1.000.000 token đầu ra.
Bảng dưới đây định giá đúng khối lượng công việc đó theo giá hiện hành, tính gộp cả đầu vào và đầu ra:
| Mô hình | Đầu vào $/1M | Đầu ra $/1M | Mỗi yêu cầu | 5.000 yêu cầu | OpenRouter, 5.000 yêu cầu |
|---|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.000024 | $0.12 | $0.217 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.000032 | $0.16 | $0.42 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.00007 | $0.35 | $4.20 |
800 token đầu vào và 200 token đầu ra mỗi yêu cầu. Giá trên 1 triệu token là giá hiện hành và thay đổi cùng với biểu phí của chúng tôi; cột OpenRouter hiển thị giá tham chiếu cho cùng khối lượng công việc.
Tổng cộng, khi tính gộp cả đầu vào và đầu ra, cột CheapTokens rẻ hơn OpenRouter với các model này. Đổi ba con số thành số đếm của bạn là bạn có ngân sách trước yêu cầu đầu tiên. Về sự khác biệt giữa hai phía của hoá đơn, xem input vs output tokens: what an AI API bills you for, và để có ví dụ đo thực tế xem how many tokens an API request uses. Giá hiện tại luôn có trên trang giá.

So sánh ước lượng với usage#
Ước lượng là phỏng đoán về tokeniser của người khác, nên hãy đối chiếu một lần với đáp án. Mỗi phản hồi đều mang trường usage, và usage. là con số API đếm cho đầu vào của bạn. Đặt hai con số cạnh nhau và chia.
Từng bước một
Chạy phép so sánh
Thiết lập
Cài các gói và đặt key vào một biến môi trường. Không bao giờ dán nó vào script.
pip install tiktoken openai
export CHEAPTOKENS_API_KEY='your-key-here'Chạy script
Lưu đoạn này thành compare.py. Nó đếm cục bộ, gửi yêu cầu đến https:/, và in cả hai con số. Model id là id đầy đủ từ danh sách model CheapTokens, vì tên rút gọn không được chấp nhận.
import os
import tiktoken
from openai import OpenAI
MODEL = 'deepseek-ai/DeepSeek-V4-Flash-0731'
enc = tiktoken.get_encoding('o200k_base')
messages = [{'role': 'user',
'content': 'Classify this email as order, refund or other: Hi, my parcel from last Tuesday has not arrived yet.'}]
estimate = sum(len(enc.encode(m['content'])) for m in messages)
client = OpenAI(base_url='https://api.cheaptokens.dev/v1',
api_key=os.environ['CHEAPTOKENS_API_KEY'])
r = client.chat.completions.create(model=MODEL, messages=messages, max_tokens=200)
real = r.usage.prompt_tokens
print(f'estimate {estimate}, usage.prompt_tokens {real}, ratio {real / estimate:.2f}')Đọc khoảng chênh
Dòng cuối in ba con số. Giả sử nó hiện estimate 24, usage.. Khi đó hãy nhân các ước lượng tương lai của bạn với tỷ lệ đó trước khi lập ngân sách. Một prompt thật còn được bọc trong định dạng chat, nên số đếm thật có thể cao hơn một chút so với ước lượng văn bản thuần. Hãy chạy trên vài prompt điển hình, không chỉ một, và dùng tỷ lệ trung bình.
Từ đó quy trình là: ước lượng cục bộ, kiểm tra cửa sổ, áp tỷ lệ của bạn vào ngân sách, và để usage trong mỗi phản hồi giữ bạn trung thực. Nếu bạn cũng muốn tổng cộng dồn cho cả một công việc, track AI agent token cost in Python xây dựng điều đó trên cùng trường này. Mới làm quen với kết nối? Your first API request with CheapTokens bao quát phần đó, và tài liệu có phần còn lại.
Ghép cặp
Ghép mỗi tên với điều nó cho bạn biết
Nhấn vào một mục bên trái, rồi đến cặp của nó
- len(enc.encode(text))Ước lượng cục bộ của bạn về kích thước đầu vào
- usage.prompt_tokensKích thước đầu vào theo cách API đếm
- usage.completion_tokensKích thước câu trả lời, được tính giá ở phía đầu ra
- max_tokensGiới hạn độ dài câu trả lời mà bạn dành chỗ trong bước kiểm tra cửa sổ
Đếm rất rẻ, chạy cục bộ và chỉ mất vài giây. Hãy làm trước lần gọi tốn tiền.



