Gemini जवाब ढूँढ रहा है

Gemini 2.5 मॉडल, "सोचने की प्रोसेस" का इस्तेमाल कर सकते हैं. इससे, उनकी तर्क करने और कई चरणों वाली प्लानिंग करने की क्षमता बेहतर होती है. इसलिए, ये मॉडल कोडिंग, गणित के मुश्किल सवालों को हल करने, और डेटा के विश्लेषण जैसे मुश्किल कामों को आसानी से कर सकते हैं.

थिंकिंग बजट का इस्तेमाल करके, यह कॉन्फ़िगर किया जा सकता है कि मॉडल कितना सोच-विचार कर सकता है. अगर लेटेन्सी या लागत को कम करना आपकी प्राथमिकता है, तो यह कॉन्फ़िगरेशन खास तौर पर ज़रूरी है. इसके अलावा, टास्क के मुश्किल होने की तुलना करके देखें. इससे यह तय करने में मदद मिलेगी कि किसी मॉडल को सोचने-समझने की कितनी ज़रूरत है.

सोच-समझकर जवाब देने वाले मॉडल का इस्तेमाल करना

सोचने वाले मॉडल का इस्तेमाल उसी तरह करें जिस तरह किसी अन्य Gemini मॉडल का इस्तेमाल किया जाता है (अपनी चुनी हुई Gemini API सेवा देने वाली कंपनी को शुरू करें, GenerativeModel इंस्टेंस बनाएं वगैरह). इन मॉडल का इस्तेमाल, टेक्स्ट या कोड जनरेट करने से जुड़े टास्क के लिए किया जा सकता है. जैसे, स्ट्रक्चर्ड आउटपुट जनरेट करना या मल्टीमॉडल इनपुट (जैसे, इमेज, वीडियो, ऑडियो या पीडीएफ़) का विश्लेषण करना. आउटपुट स्ट्रीम करते समय, थिंकिंग मॉडल का भी इस्तेमाल किया जा सकता है.

इन मॉडल के साथ काम करता है

सिर्फ़ Gemini 2.5 मॉडल में यह सुविधा काम करती है.

  • gemini-2.5-pro
  • gemini-2.5-flash
  • gemini-2.5-flash-lite-preview-06-17

सोचने के मॉडल इस्तेमाल करने के सबसे सही तरीके

हमारा सुझाव है कि आप अपने प्रॉम्प्ट को Google AI Studio या Vertex AI Studio में टेस्ट करें. यहां आपको जवाब जनरेट करने की पूरी प्रोसेस दिखेगी. इससे आपको यह पता चल सकता है कि मॉडल ने किन विषयों पर सही जानकारी नहीं दी है. इससे आपको अपने प्रॉम्प्ट को बेहतर बनाने में मदद मिलेगी, ताकि आपको ज़्यादा सटीक और भरोसेमंद जवाब मिल सकें.

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

  • सिलसिलेवार तरीके से निर्देश देना
  • इनपुट-आउटपुट पेयर के कई उदाहरण देना
  • आउटपुट और जवाबों को किस तरह से लिखा जाना चाहिए और उन्हें किस फ़ॉर्मैट में होना चाहिए, इसके बारे में दिशा-निर्देश देना
  • पुष्टि करने के लिए खास चरण उपलब्ध कराना

प्रॉम्प्ट के अलावा, इन सुझावों का इस्तेमाल करें:

  • सिस्टम के निर्देश सेट करें. ये निर्देश, "प्रीएम्बल" की तरह होते हैं. इन्हें मॉडल को प्रॉम्प्ट या असली उपयोगकर्ता से मिलने वाले किसी भी निर्देश से पहले जोड़ा जाता है. इनकी मदद से, अपनी ज़रूरतों और इस्तेमाल के उदाहरणों के आधार पर मॉडल के व्यवहार को कंट्रोल किया जा सकता है.

  • सोचने के लिए बजट सेट करें, ताकि यह कॉन्फ़िगर किया जा सके कि मॉडल कितना सोच सकता है. अगर आपने कम बजट सेट किया है, तो मॉडल अपने जवाब के बारे में "ज़्यादा नहीं सोचेगा". अगर आपने ज़्यादा बजट सेट किया है, तो मॉडल ज़रूरत पड़ने पर ज़्यादा सोच सकता है. सोचने के लिए बजट सेट करने से, जवाब के लिए ज़्यादा टोकन आउटपुट लिमिट भी रिज़र्व हो जाती है.

  • (अगर Vertex AI Gemini API का इस्तेमाल किया जा रहा है) पक्का करें कि आपने Vertex AI Gemini API कंसोल में एआई मॉनिटरिंग की सुविधा चालू की हो. इससे, आपको उन अनुरोधों की लेटेन्सी को मॉनिटर करने में मदद मिलेगी जिनमें सोचने की सुविधा चालू है.Firebase ध्यान दें कि थिंकिंग टोकन, मॉनिटरिंग डैशबोर्ड में अब तक नहीं दिखाए गए हैं.

सोचने के लिए बजट को कंट्रोल करना

जवाब जनरेट करने के लिए, मॉडल को कितना सोचने की अनुमति है, यह कंट्रोल करने के लिए, सोचने के बजट वाले टोकन की संख्या तय की जा सकती है.

उन स्थितियों में, मैन्युअल तरीके से थिंकिंग बजट सेट किया जा सकता है जहां आपको डिफ़ॉल्ट थिंकिंग बजट से ज़्यादा या कम टोकन की ज़रूरत हो सकती है. इस सेक्शन में, टास्क की जटिलता और सुझाए गए बजट के बारे में ज़्यादा जानकारी पाएं. यहां कुछ सामान्य दिशा-निर्देश दिए गए हैं:

  • अगर लेटेंसी कम रखना ज़रूरी है या टास्क कम जटिल हैं, तो सोचने के लिए कम बजट सेट करें
  • ज़्यादा मुश्किल कामों के लिए, सोचने-समझने का बजट ज़्यादा सेट करें

सोचने के लिए बजट सेट करना

इस पेज पर, Gemini API उपलब्ध कराने वाली कंपनी के हिसाब से कॉन्टेंट और कोड देखने के लिए, उस कंपनी पर क्लिक करें.

GenerationConfig इंस्टेंस बनाते समय, GenerativeModel में थिंकिंग बजट सेट करें. कॉन्फ़िगरेशन, इंस्टेंस के लाइफ़टाइम के लिए सेव रहता है. अगर आपको अलग-अलग अनुरोधों के लिए, अलग-अलग थिंकिंग बजट का इस्तेमाल करना है, तो हर बजट के साथ कॉन्फ़िगर किए गए GenerativeModel इंस्टेंस बनाएं.

इस सेक्शन में, सोचने के लिए इस्तेमाल किए जा सकने वाले बजट की वैल्यू के बारे में बाद में जानें.

Swift

GenerativeModel इंस्टेंस बनाते समय, GenerationConfig में थिंकिंग बजट सेट करें.


// ...

// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
let generationConfig = GenerationConfig(
  thinkingConfig: ThinkingConfig(thinkingBudget: 1024)
)

// Specify the config as part of creating the `GenerativeModel` instance
let model = FirebaseAI.firebaseAI(backend: .googleAI()).generativeModel(
  modelName: "GEMINI_MODEL_NAME",
  generationConfig: generationConfig
)

// ...

Kotlin

GenerativeModel इंस्टेंस बनाते समय, GenerationConfig में पैरामीटर की वैल्यू सेट करें.


// ...

// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
val generationConfig = generationConfig {
  thinkingConfig = thinkingConfig {
      thinkingBudget = 1024
  }
}

// Specify the config as part of creating the `GenerativeModel` instance
val model = Firebase.ai(backend = GenerativeBackend.googleAI()).generativeModel(
  modelName = "GEMINI_MODEL_NAME",
  generationConfig,
)

// ...

Java

GenerativeModel इंस्टेंस बनाते समय, GenerationConfig में पैरामीटर की वैल्यू सेट करें.


// ...

// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
ThinkingConfig thinkingConfig = new ThinkingConfig.Builder()
    .setThinkingBudget(1024)
    .build();

GenerationConfig generationConfig = GenerationConfig.builder()
    .setThinkingConfig(thinkingConfig)
    .build();

// Specify the config as part of creating the `GenerativeModel` instance
GenerativeModelFutures model = GenerativeModelFutures.from(
        FirebaseAI.getInstance(GenerativeBackend.googleAI())
                .generativeModel(
                  /* modelName */ "<var>GEMINI_MODEL_NAME</var>",
                  /* generationConfig */ generationConfig
                );
);

// ...

Web

GenerativeModel इंस्टेंस बनाते समय, GenerationConfig में पैरामीटर की वैल्यू सेट करें.


// ...

const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });

// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
const generationConfig = {
  thinkingConfig: {
    thinkingBudget: 1024
  }
};

// Specify the config as part of creating the `GenerativeModel` instance
const model = getGenerativeModel(ai, { model: "GEMINI_MODEL_NAME", generationConfig });

// ...

Dart

Flutter की अगली रिलीज़ में, थिंकिंग बजट सेट करने की सुविधा उपलब्ध होगी.

Unity

Unity के लिए थिंकिंग बजट सेट करने की सुविधा, इसकी अगली रिलीज़ में उपलब्ध होगी.

सोचने के लिए इस्तेमाल किए जा सकने वाले बजट की वैल्यू

नीचे दी गई टेबल में, थिंकिंग बजट की उन वैल्यू के बारे में बताया गया है जिन्हें हर मॉडल के लिए सेट किया जा सकता है. इसके लिए, मॉडल को thinkingBudget कॉन्फ़िगर करें.

मॉडल डिफ़ॉल्ट वैल्यू सोचने के लिए उपलब्ध बजट की सीमा
सोचने की सुविधा बंद करने के लिए वैल्यू

डाइनैमिक थिंकिंग को चालू करने के लिए वैल्यू
कम से कम वैल्यू ज़्यादा से ज़्यादा वैल्यू
Gemini 2.5 Pro 8,192 128 32,768 बंद नहीं किया जा सकता -1
Gemini 2.5 Flash 8,192 1 24,576 0 -1
Gemini 2.5 Flash‑Lite 0
(सोचने की सुविधा डिफ़ॉल्ट रूप से बंद होती है)
512 24,576 0
(या बजट को कॉन्फ़िगर न करें)
-1

प्रोसेस छिपाएँ

कुछ आसान टास्क के लिए, सोचने-समझने की क्षमता की ज़रूरत नहीं होती. इसके लिए, सामान्य अनुमान लगाने की तकनीक काफ़ी होती है. इसके अलावा, अगर आपको जवाब मिलने में लगने वाले समय को कम करना है, तो हो सकता है कि आप मॉडल को जवाब जनरेट करने में ज़रूरत से ज़्यादा समय न लेने दें.

इन स्थितियों में, 'सोच-विचार' सुविधा को बंद किया जा सकता है:

  • Gemini 2.5 Pro: सोचने की सुविधा को बंद नहीं किया जा सकता
  • Gemini 2.5 Flash: thinkingBudget को 0 टोकन पर सेट करें
  • Gemini 2.5 Flash-Lite: इसमें सोचने की सुविधा डिफ़ॉल्ट रूप से बंद होती है

डाइनैमिक थिंकिंग की सुविधा चालू करना

thinkingBudget एट्रिब्यूट की वैल्यू -1 पर सेट करके, मॉडल को यह तय करने की अनुमति दी जा सकती है कि कब और कितना सोचना है. इसे डाइनैमिक थिंकिंग कहा जाता है. मॉडल, ऊपर दी गई टोकन की ज़्यादा से ज़्यादा वैल्यू तक, जितने चाहें उतने टोकन इस्तेमाल कर सकता है.

टास्क की मुश्किल का लेवल

  • आसान टास्क — थिंकिंग को बंद किया जा सकता है
    ऐसे अनुरोध जिनमें जटिल तर्क की ज़रूरत नहीं होती. जैसे, तथ्यों को ढूंढना या उन्हें कैटगरी में बांटना. उदाहरण:

    • "DeepMind की स्थापना कहाँ हुई थी?"
    • "क्या इस ईमेल में मीटिंग के लिए कहा गया है या सिर्फ़ जानकारी दी गई है?"
  • मीडियम टास्क — डिफ़ॉल्ट बजट या कुछ अतिरिक्त थिंकिंग बजट की ज़रूरत होती है
    सामान्य अनुरोध, जिन्हें चरण-दर-चरण प्रोसेस करने या ज़्यादा समझने से फ़ायदा मिलता है. उदाहरण:

    • "प्रकाश संश्लेषण और बड़े होने के बीच समानताएं बताओ."
    • "इलेक्ट्रिक कारों और हाइब्रिड कारों की तुलना करो."
  • मुश्किल टास्क — इसमें ज़्यादा से ज़्यादा थिंकिंग बजट की ज़रूरत पड़ सकती है
    बेहद मुश्किल चुनौतियाँ, जैसे कि गणित की मुश्किल समस्याओं को हल करना या कोडिंग के टास्क पूरे करना. इस तरह के टास्क के लिए, मॉडल को अपनी पूरी तर्क क्षमता और प्लानिंग की क्षमताओं का इस्तेमाल करना होता है. जवाब देने से पहले, अक्सर इसमें कई इंटरनल चरण शामिल होते हैं. उदाहरण:

    • "AIME 2025 में पहली समस्या हल करें: उन सभी पूर्णांक आधारों b > 9 का योग ज्ञात करें जिनके लिए 17b, 97b का भाजक है."
    • "एक वेब ऐप्लिकेशन के लिए Python कोड लिखो, जो शेयर बाज़ार के रीयल-टाइम डेटा को विज़ुअलाइज़ करता हो. इसमें उपयोगकर्ता की पुष्टि करने की सुविधा भी शामिल हो. इसे ज़्यादा से ज़्यादा असरदार बनाओ."

कीमत और थिंकिंग टोकन की गिनती

सोचने वाले टोकन के लिए, टेक्स्ट आउटपुट वाले टोकन के बराबर कीमत ली जाती है.

जवाब के usageMetadata एट्रिब्यूट में मौजूद thoughtsTokenCount फ़ील्ड से, आपको थिंकिंग टोकन की कुल संख्या मिल सकती है:

Swift

// ...

let response = try await model.generateContent("Why is the sky blue?")

if let usageMetadata = response.usageMetadata {
  print("Thoughts Token Count: \(usageMetadata.thoughtsTokenCount)")
}

Kotlin

// ...

val response = model.generateContent("Why is the sky blue?")

response.usageMetadata?.let { usageMetadata ->
    println("Thoughts Token Count: ${usageMetadata.thoughtsTokenCount}")
}

Java

// ...

ListenableFuture<GenerateContentResponse> response =
    model.generateContent("Why is the sky blue?");

Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() {
    @Override
    public void onSuccess(GenerateContentResponse result) {
        String usageMetadata = result.getUsageMetadata();
        if (usageMetadata != null) {
            System.out.println("Thoughts Token Count: " +
                usageMetadata.getThoughtsTokenCount());
        }
    }

    @Override
    public void onFailure(Throwable t) {
        t.printStackTrace();
    }
}, executor);

Web

// ...

const response = await model.generateContent("Why is the sky blue?");

if (response?.usageMetadata?.thoughtsTokenCount != null) {
    console.log(`Thoughts Token Count: ${response.usageMetadata.thoughtsTokenCount}`);
}

Dart

Flutter की अगली रिलीज़ में, थिंकिंग टोकन को गिनने की सुविधा उपलब्ध होगी.

Unity

Unity के लिए, थिंकिंग टोकन को गिनने की सुविधा, इसके अगले वर्शन में उपलब्ध होगी.

टोकन गिनने से जुड़ी गाइड में टोकन के बारे में ज़्यादा जानें.