Maliyet optimizasyonuKılavuz
İstek göndermeden önce token sayın: Python'da tiktoken
Bir istemin token sayısını tiktoken ile çevrimdışı tahmin edin, bağlam penceresine göre kontrol edin, fiyatlandırın ve API'nin usage alanıyla karşılaştırın.

Bu sayfada
Bir istemin token sayısını gönderilmeden önce kendi makinenizde sayabilirsiniz: tiktoken kurun, metni kodlayın, sonucun len() değerini alın. tiktoken, OpenAI'nin tokenleştiricisidir, dolayısıyla DeepSeek, GLM ve MiniMax modelleri için bu sayı bir tahmindir. Gerçek değer ilk çağrıdan sonra usage. içinde döner ve ikisini karşılaştırmak bir satır daha alır.
Neden uğraşasınız? Çünkü hem fatura hem de hatalar giriş boyutuyla başlar. Uzun bir sözleşmeyi bir betiğe yapıştırın, çok büyük olduğunu ancak API 400 ile yanıt verdiğinde anlarsınız. Beş bin e-postadan oluşan bir toplu iş çalıştırın, maliyetini ancak bakiye düştüğünde öğrenirsiniz. Önce saymak, her iki sürprizi de önceden okuyabileceğiniz bir sayıya dönüştürür.
Token sayan beş satır#
tiktoken README (1 Kasım 2026'da kontrol edildi) tüm fikri gösterir: bir kodlama seçin, metni kodlayın ve listenin uzunluğu token sayısıdır.
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. özgün metni geri verir; bu da modelin göreceği metnin aynısına baktığınızı doğrulamak için kullanışlı bir sağlamlık kontrolüdür. README ayrıca belirli bir OpenAI modeli için tokenleştiriciyi seçen tiktoken.'den de söz eder. Hatırlanmaya değer püf noktası şudur: tokenleştiriciler model ailelerine aittir. README'nin pratik kuralı token başına yaklaşık dört bayt metindir ve yalnızca OpenAI'nin tokenleştiricilerini tanımlar.
Peki bir DeepSeek modeli için ne yaparsınız? Aynı sayımı çalışan bir tahmin olarak kullanın ve aşağıda gösterildiği gibi kalibre edin.
Sayıyı tahmin et
2.000 karakterlik bir İngilizce metin kabaca kaç tokendir?
Tahminin
02.000
Cevabı göster
Cevap: 500
Yaklaşık 500. README'nin token başına dört bayt pratik kuralıyla ve karakter başına yaklaşık bir bayt olan düz İngilizce metinle, 2.000 ÷ 4 = 500. Diğer diller ve emoji karakter başına daha fazla bayt alır, dolayısıyla aynı 2.000 karakter bu kurala göre genellikle daha fazla token demektir.
İstem pencereye sığıyor mu?#
Her modelin bir bağlam penceresi vardır ve girişiniz ile izin verdiğiniz yanıt buna sığmalıdır. Sunduğumuz modellerin pencereleri: DeepSeek-V4-Flash 380K, GLM-5.3-Flash 390K, MiniMax-M2.7 180K token. En uzun yanıt DeepSeek-V4-Flash için 32.768 token, diğer ikisi için 8.192 tokendir (CheapTokens model listesi, 1 Kasım 2026).
Çağrı öncesi bir koruma dört satırdır:
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]Diyelim ki 250.000 tokenlık bir belgeniz var. fits(250_ değeri False olur, bu yüzden o işi daha büyük pencereli bir modele yönlendirir veya belgeyi bölersiniz ve 400 hiç yaşanmaz. fits(250_ değeri True olur. Hatanın nasıl göründüğünün tam hikâyesini istiyorsanız, request too long: 400 vs 413, context window and max_tokens bunu adım adım anlatır.
Maliyeti ne olacak?#
Şimdi bütçe. Tipik bir öğe alın, sayın ve çarpın. 5.000 sipariş e-postasını sınıflandırdığınızı varsayalım. Temsili bir e-postayı sayarsınız ve yaklaşık 800 giriş tokenı elde edersiniz; etiketi ve kısa bir gerekçeyi 200 çıkış tokenıyla sınırlarsınız. Toplamlar: 5.000 × 800 = 4.000.000 giriş tokenı ve 5.000 × 200 = 1.000.000 çıkış tokenı.
Aşağıdaki tablo tam olarak bu iş yükünü canlı fiyatlarla, giriş ve çıkış birlikte sayılarak fiyatlandırır:
| Model | Giriş $/1M | Çıkış $/1M | İstek başına | 5.000 istek | OpenRouter, 5.000 istek |
|---|---|---|---|---|---|
| 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 |
İstek başına 800 giriş ve 200 çıkış token'ı. 1M token başına fiyatlar günceldir ve tarifelerimizle birlikte değişir; OpenRouter sütunu aynı iş yükü için referans fiyatları gösterir.
Toplamda, giriş ve çıkış birlikte sayıldığında, bu modeller için CheapTokens sütunu OpenRouter'dan daha ucuzdur. Üç sayıyı kendi sayımlarınızla değiştirin ve ilk istekten önce bir bütçeniz olsun. Faturanın iki tarafı arasındaki fark için input vs output tokens: what an AI API bills you for ve gerçek ölçülmüş örnekler için how many tokens an API request uses sayfalarına bakın. Güncel fiyatlar her zaman fiyatlandırma sayfasında bulunur.

Tahmini kullanımla karşılaştırın#
Tahmin, başkasının tokenleştiricisi hakkında bir tahmindir, bu yüzden bir kez cevap anahtarıyla kontrol edin. Her yanıt bir usage alanı taşır ve usage. API'nin girişiniz için saydığı değerdir. İki sayıyı yan yana koyun ve bölün.
Adım adım
Karşılaştırmayı çalıştır
Kurulum
Paketleri kurun ve anahtarı bir ortam değişkenine koyun. Asla betiğe yapıştırmayın.
pip install tiktoken openai
export CHEAPTOKENS_API_KEY='your-key-here'Betiği çalıştır
Bunu compare.py olarak kaydedin. Yerel olarak sayar, isteği https:/ adresine gönderir ve her iki sayıyı da yazdırır. Model kimliği, CheapTokens model listesindeki tam kimliktir, çünkü kısaltılmış adlar kabul edilmez.
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}')Farkı okuyun
Son satır üç sayı yazdırır. Diyelim ki estimate 24, usage. gösteriyor. O zaman bütçelemeden önce gelecekteki tahminlerinizi bu oranla çarpın. Gerçek bir istem ayrıca sohbet biçimlendirmesine sarılır, bu yüzden gerçek sayım düz metin tahmininin biraz üzerinde çıkabilir. Bir değil birkaç tipik istem üzerinde çalıştırın ve ortalama oranı kullanın.
Bundan sonra rutin şudur: yerel olarak tahmin edin, pencereyi koruyun, oranınızı bütçeye uygulayın ve her yanıttaki usage değerinin sizi dürüst tutmasına izin verin. Tüm bir iş boyunca kümülatif toplamı da istiyorsanız, track AI agent token cost in Python bunu aynı alan üzerine kurar. Bağlantının kendisinde yeni misiniz? Your first API request with CheapTokens bunu kapsar ve geri kalanı dokümanlarda bulabilirsiniz.
Eşleştir
Her adı size ne söylediğiyle eşleştirin
Soldaki bir öğeye, ardından eşine dokun
- len(enc.encode(text))Giriş boyutuna dair yerel tahmininiz
- usage.prompt_tokensAPI'nin saydığı giriş boyutu
- usage.completion_tokensYanıtın boyutu, çıkış tarafında fiyatlandırılır
- max_tokensPencere kontrolünde ayırdığınız yanıt uzunluğu sınırı
Saymak ucuzdur, yereldir ve saniyeler alır. Bunu para harcayan çağrıdan önce yapın.



