Kesin token sayımı için kodlama ve kapsam belirtilmelidir
İki sayaç farklı sonuç verdiğinde biri mutlaka bozuk değildir. Sayıları karşılaştırmadan önce hangi kodlamayı kullandıklarına ve neyi saydıklarına bakın.
Önce ölçü birimini belirleyin
Sözcükler okumaya, UTF-8 baytları metnin kodlanmış boyutuna ilişkindir. Tokenlar belirli bir kodlamaya göre oluşur; her sözcük veya karakter için geçerli sabit bir oran yoktur.
ToolRoof, metni olduğu gibi cl100k_base ile sayar; token ve bayt değerlerini gösterir. Kesinlik tüm modeller için değil bu kodlama içindir. Uygulamanızda başka model seçmeniz sayacı değiştirmez.
Görünen metin isteğin tamamı değildir
Bir API isteği mesaj rolleri, araç tanımları, dosyalar ve ek yapı içerebilir. Bir paragrafın doğru sayılması tüm isteğin ölçüldüğü anlamına gelmez.
Sınıra yaklaşırken sağlayıcının uygun istek sayımını veya kullanım raporunu esas alın. Sabit bir ek pay, eksik kalan her şeyi karşılamayı garanti etmez.
Kaynaklar: OpenAI — Plain-text counts versus complete request token counts
Ölçtüğünüz metni aynen saklayın
Boşluklar, satır sonları ve karakterlerin gösterimi girdinin parçasıdır. Karşılaştırmayı tekrarlayabilmek için ölçülen sürümü koruyun.
Sayaç Unicode normalleştirmesi yapmaz, rakamları değiştirmez. Sınır 20000 UTF-16 kod birimidir; bu, aynı sayıda görünür karakter veya token demek değildir. Bozuk metin sessizce değiştirilmez, reddedilir.
Örnek: benzer görünüm, farklı gösterim
cl100k_base ile hello world, 11 UTF-8 baytı ve 2 token eder. Bayt boyutu ile token sayısı farklı ölçülerdir.
U+00E9 olarak é, 1 token ve 2 bayttır. e ardından U+0301 benzer görünür ama 2 token ve 3 bayttır. Bu fark dilleri sıralamaz; ölçümle birlikte özgün metnin ve kodlamanın saklanması gerektiğini gösterir.