सटीक टोकन गिनती के लिए एन्कोडिंग और दायरा स्पष्ट होना चाहिए
दो काउंटर अलग संख्या दें तो जरूरी नहीं कि कोई खराब हो। तुलना से पहले देखें कि वे कौन-सी एन्कोडिंग और कौन-सा हिस्सा गिन रहे हैं।
पहले माप की इकाई पहचानें
शब्द पढ़ने की इकाई हैं; UTF-8 बाइट टेक्स्ट के एन्कोड किए गए रूप का आकार मापते हैं। टोकन किसी खास एन्कोडिंग पर निर्भर होते हैं। हर शब्द या अक्षर के लिए एक स्थिर अनुपात नहीं है।
ToolRoof मूल टेक्स्ट को cl100k_base से गिनता है और टोकन व बाइट दिखाता है। सटीकता इस एन्कोडिंग की है, सभी मॉडलों की नहीं। अपने ऐप में दूसरा मॉडल चुनने से यह काउंटर नहीं बदलता।
दिखता हुआ टेक्स्ट पूरा अनुरोध नहीं है
API अनुरोध में संदेशों की भूमिकाएँ, टूल की परिभाषाएँ, फ़ाइलें और अतिरिक्त संरचना हो सकती है। एक अनुच्छेद की सही गिनती पूरे अनुरोध का माप नहीं है।
सीमा के पास पहुँचने पर प्रदाता की उपयुक्त अनुरोध-गिनती या उपयोग रिपोर्ट देखें। एक तय अतिरिक्त गुंजाइश जोड़ना छूटे हुए सभी हिस्सों को शामिल करने की गारंटी नहीं है।
संदर्भ: OpenAI — Plain-text counts versus complete request token counts
मापा गया टेक्स्ट ज्यों का त्यों रखें
स्पेस, पंक्ति-अंत और अक्षरों का निरूपण भी इनपुट का हिस्सा हैं। तुलना दोहराने के लिए मापा गया संस्करण सुरक्षित रखें।
काउंटर Unicode को सामान्यीकृत नहीं करता और अंक नहीं बदलता। सीमा 20000 UTF-16 कोड इकाइयाँ है, उतने ही दिखने वाले अक्षर या टोकन नहीं। गलत रूप वाले टेक्स्ट को चुपचाप बदलने के बजाय अस्वीकार किया जाता है।
उदाहरण: समान दिखना, अलग निरूपण
cl100k_base में hello world के 11 UTF-8 बाइट और 2 टोकन हैं। बाइट आकार और टोकन संख्या अलग माप हैं।
U+00E9 वाला é, 1 टोकन और 2 बाइट देता है। e के बाद U+0301 लगभग वैसा दिखता है, पर 2 टोकन और 3 बाइट देता है। यह भाषाओं की रैंकिंग नहीं है; माप के साथ मूल टेक्स्ट और एन्कोडिंग रखना जरूरी है।