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

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

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

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

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

इस्तेमाल किए जा सकने वाले मॉडल

  • gemini-3.1-pro-preview
  • gemini-3.7-flash (और पुराने gemini-3.6-flash और gemini-3.5-flash)
  • gemini-3.5-flash-lite (और पुराना gemini-3.1-flash-lite)
  • gemini-3-pro-image (इसे "Nano Banana Pro" भी कहा जाता है)
  • gemini-3.1-flash-image (इसे "Nano Banana 2" भी कहा जाता है)
  • gemini-3.1-flash-lite-image (इसे "Nano Banana 2 Lite" भी कहा जाता है)
  • gemini-3.1-flash-tts-preview

Gemini 2.5 मॉडल, सामान्य इस्तेमाल और इमेज जनरेट करने के लिए Gemini 2.5 इस सुविधा के साथ काम करते हैं. हालांकि, इन सभी मॉडल को बंद कर दिया गया है.

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

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 के हर पेज को इमेज की तरह टोकनाइज़ किया जाता है.