Gemini मॉडल के लिए टोकन की संख्या गिनना

Gemini मॉडल, इनपुट और आउटपुट को टोकन नाम की इकाइयों में प्रोसेस करते हैं.

टोकन, z जैसे सिंगल वर्ण या cat जैसे पूरे शब्द हो सकते हैं. लंबे शब्दों को कई टोकन में बांटा जाता है. मॉडल के इस्तेमाल किए जाने वाले सभी टोकन के सेट को शब्दावली कहा जाता है. साथ ही, टेक्स्ट को टोकन में बांटने की प्रोसेस को टोकनाइज़ेशन कहा जाता है.

Gemini मॉडल के लिए, एक टोकन करीब चार वर्णों के बराबर होता है. 100 टोकन, करीब 60 से 80 अंग्रेज़ी शब्दों के बराबर होते हैं.

हर मॉडल के लिए, प्रॉम्प्ट और रिस्पॉन्स में इस्तेमाल किए जा सकने वाले टोकन की संख्या की एक अधिकतम सीमा होती है. अपने प्रॉम्प्ट में इस्तेमाल किए गए टोकन की संख्या जानने से, आपको यह पता चलता है कि आपने इस सीमा को पार किया है या नहीं. इसके अलावा, किसी अनुरोध की लागत, इनपुट और आउटपुट टोकन की संख्या के आधार पर तय की जाती है. इसलिए, टोकन की गिनती करने का तरीका जानना मददगार साबित हो सकता है.

काम करने वाले मॉडल

  • gemini-3.1-pro-preview
  • gemini-3-flash-preview
  • gemini-3.1-flash-lite
  • gemini-3-pro-image-preview
  • gemini-3.1-flash-image-preview
  • gemini-2.5-pro
  • gemini-2.5-flash
  • gemini-2.5-flash-lite

टोकन की गिनती करने के विकल्प

Gemini API के लिए सभी इनपुट और आउटपुट को टोकनाइज़ किया जाता है. इनमें टेक्स्ट, इमेज फ़ाइलें, और टेक्स्ट के अलावा अन्य मोडैलिटी शामिल हैं. टोकन की गिनती करने के विकल्प यहां दिए गए हैं:

सिर्फ़ अपने अनुरोधों के लिए टोकन की संख्या देखें. इसके बाद ही, उन्हें मॉडल को भेजें .
अनुरोध को मॉडल को भेजने से पहले, countTokens को कॉल करें और अनुरोध का इनपुट दें. इससे ये जानकारी मिलती है:
  • total_tokens: सिर्फ़ इनपुट में इस्तेमाल किए गए टोकन की संख्या
अपने अनुरोधों और रिस्पॉन्स, दोनों के लिए टोकन की संख्या देखें.
रिस्पॉन्स ऑब्जेक्ट पर मौजूद usageMetadata एट्रिब्यूट को ऐक्सेस करें. इसमें ये जानकारी शामिल होती है:
  • prompt_token_count: सिर्फ़ इनपुट में इस्तेमाल किए गए टोकन की संख्या
  • candidates_token_count: सिर्फ़ आउटपुट में इस्तेमाल किए गए टोकन की संख्या (इसमें, सोच के लिए इस्तेमाल किए गए टोकन शामिल नहीं होते)
  • thoughts_token_count: रिस्पॉन्स जनरेट करने के लिए, सोच के लिए इस्तेमाल किए गए टोकन की संख्या
  • total_token_count: इनपुट और आउटपुट दोनों के लिए टोकन की कुल संख्या. इसमें, सोच के लिए इस्तेमाल किए गए टोकन भी शामिल होते हैं

आउटपुट को स्ट्रीम करते समय, usageMetadata एट्रिब्यूट सिर्फ़ स्ट्रीम के आखिरी हिस्से पर दिखता है. बीच के हिस्सों के लिए, यह nil होता है.

ऊपर दिए गए विकल्पों के बारे में इन बातों का ध्यान रखें:

  • इनसे, इनपुट इमेज की संख्या या वीडियो या ऑडियो इनपुट फ़ाइलों में सेकंड की संख्या नहीं गिनी जाएगी. हालांकि, इनमें से हर मोडैलिटी के लिए टोकन की संख्या, इन वैल्यू से जुड़ी होगी.
  • इनपुट टोकन की संख्या में, प्रॉम्प्ट (टेक्स्ट और सभी इनपुट फ़ाइलें) के साथ-साथ, सिस्टम के निर्देश और टूल भी शामिल होते हैं.
  • आउटपुट टोकन की संख्या में, सोच के लिए इस्तेमाल किए गए टोकन शामिल नहीं होते. इनकी जानकारी, अलग फ़ील्ड में दी जाती है.
  • इस पेज पर, हर तरह के अनुरोध के लिए अतिरिक्त जानकारी देखें.
  • Gemini Live API मॉडल, countTokens के साथ काम नहीं करते. इसके अलावा, Firebase AI Logic अभी तक usageMetadata एट्रिब्यूट के साथ Live API मॉडल से मिलने वाले रिस्पॉन्स में काम नहीं करता. हालांकि, यह जल्द ही उपलब्ध होगा!

इन विकल्पों की कीमत

  • countTokens को कॉल करना: countTokens (Count Tokens API) को कॉल करने के लिए कोई शुल्क नहीं लिया जाता. Count Tokens API के लिए, हर मिनट में ज़्यादा से ज़्यादा 3,000 अनुरोध (आरपीएम) की सीमा तय की गई है.

  • usageMetadata एट्रिब्यूट का इस्तेमाल करना: यह एट्रिब्यूट हमेशा रिस्पॉन्स के हिस्से के तौर पर दिखता है. इसके लिए, कोई टोकन या शुल्क नहीं लिया जाता.

अतिरिक्त जानकारी

यहां, खास तरह के अनुरोधों के साथ काम करने के बारे में कुछ अतिरिक्त जानकारी दी गई है.

टेक्स्ट इनपुट टोकन की गिनती करना

कोई अतिरिक्त जानकारी नहीं.

मल्टी-टर्न (चैट) टोकन की गिनती करना

चैट का इस्तेमाल करते समय, countTokens को कॉल करने के लिए इन बातों का ध्यान रखें:

  • अगर चैट इतिहास के साथ countTokens को कॉल किया जाता है, तो यह चैट में दोनों रोल से मिले टोकन की कुल संख्या (total_tokens) दिखाता है.
  • यह समझने के लिए कि बातचीत का आपका अगला टर्न कितना बड़ा होगा, आपको countTokens को कॉल करते समय, इसे इतिहास में जोड़ना होगा.

मल्टीमोडल इनपुट टोकन की गिनती करना

मल्टीमोडल इनपुट के साथ टोकन की गिनती करने के बारे में इन बातों का ध्यान रखें:

  • आपके पास, टेक्स्ट और फ़ाइल के लिए अलग-अलग countTokens को कॉल करने का विकल्प होता है.
  • टोकन की गिनती करने के दोनों विकल्पों के लिए, आपको टोकन की एक ही संख्या मिलेगी. भले ही, आपने फ़ाइल को इनलाइन डेटा के तौर पर दिया हो या उसके यूआरएल का इस्तेमाल किया हो.

इमेज इनपुट फ़ाइलें

इमेज इनपुट फ़ाइलों को उनके डाइमेंशन के आधार पर टोकन में बदला जाता है:

  • ऐसी इमेज इनपुट जिनका दोनों डाइमेंशन 384 पिक्सल या उससे कम है: हर इमेज को 258 टोकन के तौर पर गिना जाता है.
  • ऐसी इमेज इनपुट जिनका एक या दोनों डाइमेंशन बड़ा है: हर इमेज को ज़रूरत के हिसाब से क्रॉप और स्केल करके, 768x768 पिक्सल की टाइल में बदला जाता है. इसके बाद, हर टाइल को 258 टोकन के तौर पर गिना जाता है.

वीडियो और ऑडियो इनपुट फ़ाइलें

वीडियो और ऑडियो इनपुट फ़ाइलों को इन तय दरों के हिसाब से टोकन में बदला जाता है:

  • वीडियो: हर सेकंड के लिए 263 टोकन
  • ऑडियो: हर सेकंड के लिए 32 टोकन

दस्तावेज़ (जैसे कि PDF) इनपुट फ़ाइलें

PDF इनपुट फ़ाइलों को इमेज के तौर पर माना जाता है. इसलिए, PDF के हर पेज को इमेज की तरह ही टोकनाइज़ किया जाता है.