Optimasi biayaPanduan
Hitung token sebelum mengirim permintaan: tiktoken di Python
Estimasi jumlah token sebuah prompt secara offline dengan tiktoken, periksa terhadap context window, beri harga, dan bandingkan dengan field usage dari API.

Di halaman ini
Anda dapat menghitung token sebuah prompt di mesin Anda sendiri sebelum dikirim: pasang tiktoken, encode teksnya, ambil len() dari hasilnya. tiktoken adalah tokeniser milik OpenAI, jadi untuk model DeepSeek, GLM dan MiniMax angkanya adalah perkiraan. Angka sebenarnya dikembalikan di usage. setelah panggilan pertama, dan membandingkan keduanya hanya butuh satu baris lagi.
Mengapa repot-repot? Karena tagihan dan error keduanya berawal dari ukuran input. Tempel kontrak panjang ke dalam skrip, dan Anda baru tahu itu terlalu besar saat API menjawab dengan 400. Jalankan batch lima ribu email, dan Anda baru tahu berapa biayanya saat saldo sudah berkurang. Menghitung lebih dulu mengubah kedua kejutan itu menjadi angka yang bisa Anda baca sebelumnya.
Lima baris yang menghitung token#
README tiktoken (diperiksa 1 November 2026) menunjukkan seluruh idenya: pilih encoding, encode teksnya, dan panjang list adalah jumlah 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. mengembalikan teks asli, yang merupakan pemeriksaan kewajaran yang berguna bahwa Anda melihat teks yang sama dengan yang akan dilihat model. README juga menyebut tiktoken., yang memilih tokeniser untuk model OpenAI tertentu. Itulah jebakannya yang perlu diingat: tokeniser milik keluarga model. Aturan praktis README adalah sekitar empat byte teks per token, dan itu hanya menjelaskan tokeniser OpenAI.
Jadi apa yang Anda lakukan untuk model DeepSeek? Gunakan hitungan yang sama sebagai perkiraan kerja, dan kalibrasi, seperti ditunjukkan di bawah.
Tebak angkanya
Kira-kira berapa token teks bahasa Inggris 2.000 karakter?
Tebakan Anda
02.000
Tampilkan jawaban
Jawaban: 500
Sekitar 500. Dengan aturan praktis README empat byte per token, dan teks bahasa Inggris biasa sekitar satu byte per karakter, 2.000 ÷ 4 = 500. Bahasa lain dan emoji memakan lebih banyak byte per karakter, jadi 2.000 karakter yang sama biasanya berarti lebih banyak token menurut aturan itu.
Apakah prompt muat di jendela?#
Setiap model memiliki context window, dan input Anda ditambah jawaban yang Anda izinkan harus muat di dalamnya. Jendela untuk model yang kami layani: DeepSeek-V4-Flash 380K, GLM-5.3-Flash 390K, MiniMax-M2.7 180K token. Jawaban terpanjang adalah 32.768 token untuk DeepSeek-V4-Flash dan 8.192 untuk dua lainnya (daftar model CheapTokens, 1 November 2026).
Penjaga sebelum panggilan adalah empat baris:
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]Katakanlah Anda punya dokumen 250.000 token. fits(250_ adalah False, jadi Anda mengarahkan pekerjaan itu ke model dengan jendela lebih besar atau memecah dokumennya, dan 400 tidak pernah terjadi. fits(250_ adalah True. Jika Anda ingin cerita lengkap tentang seperti apa error itu, request too long: 400 vs 413, context window and max_tokens membahasnya.
Berapa biayanya?#
Sekarang anggarannya. Ambil satu item tipikal, hitung, dan kalikan. Misalkan Anda mengklasifikasikan 5.000 email pesanan. Anda menghitung satu email perwakilan dan mendapat sekitar 800 token input, dan Anda membatasi label dan alasan singkat pada 200 token output. Totalnya: 5.000 × 800 = 4.000.000 token input dan 5.000 × 200 = 1.000.000 token output.
Tabel di bawah ini memberi harga persis untuk beban kerja itu dengan harga live, dengan input dan output dihitung bersama:
| Model | Input $/1Jt | Output $/1Jt | Per permintaan | 5.000 permintaan | OpenRouter, 5.000 permintaan |
|---|---|---|---|---|---|
| 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 input dan 200 token output per permintaan. Harga per 1 juta token adalah harga saat ini dan berubah seiring tarif kami; kolom OpenRouter menunjukkan harga referensi untuk beban kerja yang sama.
Secara total, dengan input dan output dihitung bersama, kolom CheapTokens lebih murah daripada OpenRouter untuk model-model ini. Ubah ketiga angka itu menjadi hitungan Anda sendiri dan Anda punya anggaran sebelum permintaan pertama. Untuk perbedaan antara kedua sisi tagihan, lihat input vs output tokens: what an AI API bills you for, dan untuk contoh terukur nyata how many tokens an API request uses. Harga terkini selalu ada di halaman harga.

Bandingkan estimasi dengan usage#
Estimasi adalah tebakan tentang tokeniser orang lain, jadi periksa sekali terhadap kunci jawabannya. Setiap respons membawa field usage, dan usage. adalah yang dihitung API untuk input Anda. Letakkan kedua angka berdampingan dan bagi.
Langkah demi langkah
Jalankan perbandingannya
Siapkan
Pasang paketnya dan taruh kunci di environment variable. Jangan pernah menempelkannya ke dalam skrip.
pip install tiktoken openai
export CHEAPTOKENS_API_KEY='your-key-here'Jalankan skripnya
Simpan ini sebagai compare.py. Skrip ini menghitung secara lokal, mengirim permintaan ke https:/, dan mencetak kedua angka. Id model adalah yang lengkap dari daftar model CheapTokens, karena nama yang dipendekkan tidak diterima.
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}')Baca selisihnya
Baris terakhir mencetak tiga angka. Katakanlah itu menampilkan estimate 24, usage.. Lalu kalikan estimasi Anda di masa depan dengan rasio itu sebelum menyusun anggaran. Prompt nyata juga dibungkus dalam format chat, jadi hitungan nyata bisa keluar sedikit di atas estimasi teks biasa. Jalankan pada beberapa prompt tipikal, bukan satu, dan gunakan rasio rata-ratanya.
Sejak saat itu rutinitasnya adalah: estimasi secara lokal, jaga jendela, terapkan rasio Anda ke anggaran, dan biarkan usage di setiap respons menjaga Anda tetap jujur. Jika Anda juga ingin total berjalan sepanjang satu pekerjaan, track AI agent token cost in Python membangunnya di atas field yang sama. Baru mengenal koneksinya? Your first API request with CheapTokens membahasnya, dan dokumentasi punya sisanya.
Cocokkan pasangan
Cocokkan setiap nama dengan apa yang diberitahukannya
Ketuk item di kiri, lalu pasangannya
- len(enc.encode(text))Estimasi lokal Anda atas ukuran input
- usage.prompt_tokensUkuran input sebagaimana dihitung API
- usage.completion_tokensUkuran jawaban, diberi harga di sisi output
- max_tokensBatas panjang jawaban yang Anda cadangkan dalam pemeriksaan jendela
Menghitung itu murah, lokal dan hanya butuh beberapa detik. Lakukan sebelum panggilan yang memakan biaya.



