Gemini और अन्य जनरेटिव एआई मॉडल, इनपुट और आउटपुट को टोकन नाम की एक इकाई में प्रोसेस करते हैं.
टोकन के बारे में जानकारी
टोकन, z
जैसे सिंगल वर्ण या cat
जैसे पूरे शब्द हो सकते हैं. लंबे शब्दों को कई टोकन में
तोड़ा जाता है. मॉडल में इस्तेमाल किए गए सभी टोकन के सेट को शब्दावली कहा जाता है. साथ ही, टेक्स्ट को टोकन में बांटने की प्रोसेस को टोकनाइज़ेशन कहा जाता है.
Gemini मॉडल के लिए, एक टोकन का मतलब करीब चार वर्ण होता है. 100 टोकन, अंग्रेज़ी के करीब 60 से 80 शब्दों के बराबर होते हैं.
बिलिंग की सुविधा चालू होने पर, Gemini API को किए गए कॉल की लागत का कुछ हिस्सा, इनपुट और आउटपुट टोकन की संख्या से तय होता है. इसलिए, टोकन की गिनती करने का तरीका जानना आपके लिए फ़ायदेमंद हो सकता है.
Colab में टोकन गिनने की सुविधा आज़माना
Colab का इस्तेमाल करके, टोकन की गिनती की जा सकती है.
![]() |
![]() |
![]() |
कॉन्टेक्स्ट विंडो
Gemini API के ज़रिए उपलब्ध मॉडल में कॉन्टेक्स्ट विंडो होती हैं. इन्हें टोकन में मापा जाता है. कॉन्टेक्स्ट विंडो से यह तय होता है कि कितना इनपुट दिया जा सकता है और मॉडल कितना आउटपुट जनरेट कर सकता है. getModels एंडपॉइंट को कॉल करके या मॉडल के दस्तावेज़ में जाकर, कॉन्टेक्स्ट विंडो का साइज़ पता लगाया जा सकता है.
यहां दिए गए उदाहरण में, आपको दिखेगा कि gemini-1.5-flash
मॉडल में इनपुट के लिए करीब 10,00,000 टोकन और आउटपुट के लिए करीब 8,000 टोकन की सीमा तय की गई है. इसका मतलब है कि कॉन्टेक्स्ट विंडो 10,00,000 टोकन की है.
from google import genai
client = genai.Client()
model_info = client.models.get(model="gemini-2.0-flash")
print(f"{model_info.input_token_limit=}")
print(f"{model_info.output_token_limit=}")
# ( e.g., input_token_limit=30720, output_token_limit=2048 )
टोकन गिनना
Gemini API को दिए गए सभी इनपुट और उससे मिले सभी आउटपुट को टोकन में बदला जाता है. इनमें टेक्स्ट, इमेज फ़ाइलें, और टेक्स्ट के अलावा अन्य मोडेलिटी शामिल हैं.
टोकन को इन तरीकों से गिना जा सकता है:
टेक्स्ट टोकन की गिनती करना
from google import genai
client = genai.Client()
prompt = "The quick brown fox jumps over the lazy dog."
# Count tokens using the new client method.
total_tokens = client.models.count_tokens(
model="gemini-2.0-flash", contents=prompt
)
print("total_tokens: ", total_tokens)
# ( e.g., total_tokens: 10 )
response = client.models.generate_content(
model="gemini-2.0-flash", contents=prompt
)
# The usage_metadata provides detailed token counts.
print(response.usage_metadata)
# ( e.g., prompt_token_count: 11, candidates_token_count: 73, total_token_count: 84 )
मल्टी-टर्न (चैट) वाले टोकन की गिनती करना
from google import genai
from google.genai import types
client = genai.Client()
chat = client.chats.create(
model="gemini-2.0-flash",
history=[
types.Content(
role="user", parts=[types.Part(text="Hi my name is Bob")]
),
types.Content(role="model", parts=[types.Part(text="Hi Bob!")]),
],
)
# Count tokens for the chat history.
print(
client.models.count_tokens(
model="gemini-2.0-flash", contents=chat.get_history()
)
)
# ( e.g., total_tokens: 10 )
response = chat.send_message(
message="In one sentence, explain how a computer works to a young child."
)
print(response.usage_metadata)
# ( e.g., prompt_token_count: 25, candidates_token_count: 21, total_token_count: 46 )
# You can count tokens for the combined history and a new message.
extra = types.UserContent(
parts=[
types.Part(
text="What is the meaning of life?",
)
]
)
history = chat.get_history()
history.append(extra)
print(client.models.count_tokens(model="gemini-2.0-flash", contents=history))
# ( e.g., total_tokens: 56 )
मल्टीमॉडल टोकन की गिनती करना
Gemini API को दिए गए सभी इनपुट को टोकन में बदला जाता है. इनमें टेक्स्ट, इमेज फ़ाइलें, और टेक्स्ट के अलावा अन्य मोडेलिटी शामिल हैं. Gemini API से प्रोसेस किए जाने के दौरान, मल्टीमॉडल इनपुट के टोकनाइज़ेशन के बारे में यहां कुछ खास बातें दी गई हैं:
Gemini 2.0 में, दोनों डाइमेंशन में <=384 पिक्सल वाली इमेज को 258 टोकन के तौर पर गिना जाता है. अगर इमेज का कोई डाइमेंशन या दोनों डाइमेंशन तय सीमा से ज़्यादा हैं, तो उन्हें काटकर और ज़रूरत के हिसाब से स्केल करके 768x768 पिक्सल की टाइल में बदल दिया जाता है. हर टाइल को 258 टोकन के तौर पर गिना जाता है. Gemini 2.0 से पहले, इमेज के लिए 258 टोकन का इस्तेमाल किया जाता था.
वीडियो और ऑडियो फ़ाइलों को इन तय दरों पर टोकन में बदला जाता है: वीडियो को 263 टोकन प्रति सेकंड और ऑडियो को 32 टोकन प्रति सेकंड.
इमेज फ़ाइलें
यहां फ़ाइल एपीआई से अपलोड की गई इमेज का इस्तेमाल करने का उदाहरण दिया गया है:
from google import genai
client = genai.Client()
prompt = "Tell me about this image"
your_image_file = client.files.upload(file=media / "organ.jpg")
print(
client.models.count_tokens(
model="gemini-2.0-flash", contents=[prompt, your_image_file]
)
)
# ( e.g., total_tokens: 263 )
response = client.models.generate_content(
model="gemini-2.0-flash", contents=[prompt, your_image_file]
)
print(response.usage_metadata)
# ( e.g., prompt_token_count: 264, candidates_token_count: 80, total_token_count: 345 )
इनलाइन डेटा के तौर पर इमेज दिखाने वाला उदाहरण:
from google import genai
import PIL.Image
client = genai.Client()
prompt = "Tell me about this image"
your_image_file = PIL.Image.open(media / "organ.jpg")
# Count tokens for combined text and inline image.
print(
client.models.count_tokens(
model="gemini-2.0-flash", contents=[prompt, your_image_file]
)
)
# ( e.g., total_tokens: 263 )
response = client.models.generate_content(
model="gemini-2.0-flash", contents=[prompt, your_image_file]
)
print(response.usage_metadata)
# ( e.g., prompt_token_count: 264, candidates_token_count: 80, total_token_count: 345 )
वीडियो या ऑडियो फ़ाइलें
ऑडियो और वीडियो, दोनों को इन तय दरों पर टोकन में बदला जाता है:
- वीडियो: 263 टोकन प्रति सेकंड
- ऑडियो: 32 टोकन प्रति सेकंड
from google import genai
import time
client = genai.Client()
prompt = "Tell me about this video"
your_file = client.files.upload(file=media / "Big_Buck_Bunny.mp4")
# Poll until the video file is completely processed (state becomes ACTIVE).
while not your_file.state or your_file.state.name != "ACTIVE":
print("Processing video...")
print("File state:", your_file.state)
time.sleep(5)
your_file = client.files.get(name=your_file.name)
print(
client.models.count_tokens(
model="gemini-2.0-flash", contents=[prompt, your_file]
)
)
# ( e.g., total_tokens: 300 )
response = client.models.generate_content(
model="gemini-2.0-flash", contents=[prompt, your_file]
)
print(response.usage_metadata)
# ( e.g., prompt_token_count: 301, candidates_token_count: 60, total_token_count: 361 )
सिस्टम के निर्देश और टूल
सिस्टम के निर्देशों और टूल को भी इनपुट के लिए, टोकन की कुल संख्या में गिना जाता है.
सिस्टम के निर्देशों का इस्तेमाल करने पर, total_tokens
की संख्या बढ़ जाती है, ताकि system_instruction
को शामिल किया जा सके.
फ़ंक्शन कॉलिंग का इस्तेमाल करने पर, total_tokens
की संख्या बढ़ जाती है, ताकि tools
को जोड़ा जा सके.