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

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

सोचने वाले मॉडल में ये कॉन्फ़िगरेशन और विकल्प उपलब्ध होते हैं:

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

    इस कॉन्फ़िगरेशन को कंट्रोल करने के लिए, इनमें से किसी एक का इस्तेमाल करें: सोचने के लेवल (Gemini 3.x और उसके बाद के मॉडल) या सोचने के बजट (Gemini 2.5 मॉडल).

  • सोच की खास जानकारी पाना
    जनरेट किए गए जवाब में शामिल करने के लिए, सोच की खास जानकारी को चालू किया जा सकता है. ये खास जानकारी, मॉडल के RAW थॉट के सिंथेसाइज़ किए गए वर्शन होते हैं. इनसे मॉडल की इंटरनल गहराई से विश्लेषण प्रोसेस के बारे में अहम जानकारी मिलती है.

  • थॉट सिग्नेचर मैनेज करना
    Firebase AI Logic एसडीके, आपके लिए थॉट सिग्नेचर को अपने-आप मैनेज करते हैं. इससे यह पक्का होता है कि मॉडल के पास पिछले टर्न के थॉट कॉन्टेक्स्ट का ऐक्सेस है. खास तौर पर, फ़ंक्शन कॉलिंग का इस्तेमाल करते समय.

सोचने वाले मॉडल का इस्तेमाल करने के लिए, सबसे सही तरीके और प्रॉम्प्ट से जुड़े दिशा-निर्देश ज़रूर देखें.



सूझ-बूझ वाले मॉडल का इस्तेमाल करना

सोच-समझकर जवाब देने वाले मॉडल का इस्तेमाल, उसी तरह करें जैसे किसी अन्य Gemini मॉडल का इस्तेमाल किया जाता है.

सोचने के मॉडल का ज़्यादा से ज़्यादा फ़ायदा पाने के लिए, इस पेज पर बाद में सोचने के मॉडल इस्तेमाल करने के सबसे सही तरीके और प्रॉम्प्ट से जुड़ी गाइड पढ़ें.

इस सुविधा के साथ काम करने वाले मॉडल

हाल ही के सभी Gemini मॉडल पर यह सुविधा काम करती है.

  • 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-2.5-pro
  • gemini-2.5-flash
  • gemini-2.5-flash-lite

सोचने वाले मॉडल का इस्तेमाल करने के सबसे सही तरीके और प्रॉम्प्ट से जुड़े दिशा-निर्देश

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

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

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

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

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

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

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



सोचने की क्षमता को कंट्रोल करना

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

टास्क के मुश्किल होने की तुलना ज़रूर देखें, ताकि यह तय किया जा सके कि किसी मॉडल को सोचने-समझने की क्षमता की कितनी ज़रूरत हो सकती है. यहां कुछ सामान्य दिशा-निर्देश दिए गए हैं:

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

इस कॉन्फ़िगरेशन को कंट्रोल करने के लिए, इनमें से किसी एक का इस्तेमाल करें: सोचने के लेवल (Gemini 3.x और उसके बाद के मॉडल) या सोचने के बजट (Gemini 2.5 मॉडल).

सोचने के लेवल (Gemini 3.x और उसके बाद के मॉडल)

Gemini 3.x और बाद के मॉडल को जवाब जनरेट करने के लिए, कितना सोचने की ज़रूरत है, यह कंट्रोल किया जा सकता है. इसके लिए, सोचने का लेवल तय किया जा सकता है. इससे यह तय किया जा सकता है कि मॉडल को सोचने के लिए कितने टोकन इस्तेमाल करने की अनुमति है.

एआई के गहराई से विचार करने का लेवल सेट करना

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

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

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

Swift

GenerativeModel इंस्टेंस बनाते समय, GenerationConfig में सूझ-बूझ वाले मॉडल का लेवल सेट करें.


// ...

// Set the thinking configuration.
// Use a thinking level value appropriate for your model (example value shown here).
let generationConfig = GenerationConfig(
  thinkingConfig: ThinkingConfig(thinkingLevel: .low)
)

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

// ...

Kotlin

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


// ...

// Set the thinking configuration.
// Use a thinking level value appropriate for your model (example value shown here).
val generationConfig = generationConfig {
  thinkingConfig = thinkingConfig {
      thinkingLevel = ThinkingLevel.LOW
  }
}

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

// ...

Java

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


// ...

// Set the thinking configuration.
// Use a thinking level value appropriate for your model (example value shown here).
ThinkingConfig thinkingConfig = new ThinkingConfig.Builder()
    .setThinkingLevel(ThinkingLevel.LOW)
    .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 */ "GEMINI_3.x_MODEL_NAME",
                  /* generationConfig */ generationConfig
                );
);

// ...

Web

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


// ...

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

// Set the thinking configuration.
// Use a thinking level value appropriate for your model (example value shown here).
const generationConfig = {
  thinkingConfig: {
    thinkingLevel: ThinkingLevel.LOW
  }
};

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

// ...

Dart

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


// ...

// Set the thinking configuration.
// Use a thinking level value appropriate for your model (example value shown here).
final thinkingConfig = ThinkingConfig.withThinkingLevel(ThinkingLevel.low);

final generationConfig = GenerationConfig(
  thinkingConfig: thinkingConfig
);

// Specify the config as part of creating the `GenerativeModel` instance.
final model = FirebaseAI.googleAI().generativeModel(
  model: 'GEMINI_3.x_MODEL_NAME',
  config: generationConfig,
);

// ...

Unity

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


// ...

// Set the thinking configuration.
// Use a thinking level value appropriate for your model (example value shown here).
var thinkingConfig = new ThinkingConfig(thinkingLevel: ThinkingLevel.Low);

var generationConfig = new GenerationConfig(
  thinkingConfig: thinkingConfig
);

// Specify the config as part of creating the `GenerativeModel` instance.
var model = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI()).GetGenerativeModel(
  modelName: "GEMINI_3.x_MODEL_NAME",
  generationConfig: generationConfig
);

// ...

सूझ-बूझ वाले मॉडल के लेवल के लिए इस्तेमाल की जा सकने वाली वैल्यू

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

MINIMAL LOW MEDIUM HIGH

मॉडल कम से कम टोकन का इस्तेमाल करता है; इसमें ज़्यादा सोच-विचार नहीं किया जाता

कम जटिलता वाले टास्क

मॉडल कम टोकन का इस्तेमाल करता है; इससे इंतज़ार का समय और लागत कम होती है

आसान टास्क और ज़्यादा थ्रूपुट वाले टास्क

मॉडल, जवाब देने के लिए संतुलित तरीके का इस्तेमाल करता है

कुछ हद तक मुश्किल टास्क

मॉडल, टोकन का इस्तेमाल ज़्यादा से ज़्यादा लेवल तक करता है

ऐसे मुश्किल प्रॉम्प्ट जिनके लिए गहरी रीज़निंग की ज़रूरत होती है

Gemini 3.x Pro
gemini-3.1-pro-preview
(डिफ़ॉल्ट)
Gemini 3.x Flash
gemini-3.7-flash
gemini-3.6-flash
gemini-3.5-flash

gemini-3.7-flash के साथ काम नहीं करता 1
(डिफ़ॉल्ट)
Gemini 3.x Flash‑Lite
gemini-3.5-flash-lite
gemini-3.1-flash-lite
(डिफ़ॉल्ट)
Gemini 3.x Pro Image
gemini-3-pro-image
("Nano Banana Pro")
(डिफ़ॉल्ट)
Gemini 3.x Flash Image
gemini-3.1-flash-image
("Nano Banana 2")
(डिफ़ॉल्ट)
Gemini 3.x Flash‑Lite Image
gemini-3.1-flash-lite-image
("Nano Banana 2 Lite")
(डिफ़ॉल्ट)

1 gemini-3.7-flash, MINIMAL थिंकिंग लेवल के साथ काम नहीं करता. अगर आपने थिंकिंग लेवल को MINIMAL पर सेट किया है, तो अनुरोध 400 गड़बड़ी के साथ फ़ेल हो जाएगा.



Aware मॉडल (Gemini 2.5 मॉडल)

plets

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

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

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

Gemini 2.5 मॉडल के लिए GenerativeModel इंस्टेंस बनाते समय, GenerationConfig में थिंकिंग बजट सेट करें. कॉन्फ़िगरेशन को इंस्टेंस के लाइफ़टाइम के लिए बनाए रखा जाता है. अगर आपको अलग-अलग अनुरोधों के लिए, अलग-अलग थिंकिंग बजट का इस्तेमाल करना है, तो हर बजट के साथ कॉन्फ़िगर किए गए 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_2.5_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_2.5_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 */ "GEMINI_2.5_MODEL_NAME",
                  /* 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_2.5_MODEL_NAME", generationConfig });

// ...

Dart

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


// ...

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

final generationConfig = GenerationConfig(
  thinkingConfig: thinkingConfig
);

// Specify the config as part of creating the `GenerativeModel` instance.
final model = FirebaseAI.googleAI().generativeModel(
  model: 'GEMINI_2.5_MODEL_NAME',
  config: generationConfig,
);

// ...

Unity

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


// ...

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

var generationConfig = new GenerationConfig(
  thinkingConfig: thinkingConfig
);

// Specify the config as part of creating the `GenerativeModel` instance.
var model = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI()).GetGenerativeModel(
  modelName: "GEMINI_2.5_MODEL_NAME",
  generationConfig: generationConfig
);

// ...

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

नीचे दी गई टेबल में, थिंकिंग बजट की उन वैल्यू के बारे में बताया गया है जिन्हें हर मॉडल के लिए सेट किया जा सकता है. इसके लिए, मॉडल को 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



सोचने वाले सभी मॉडल के लिए टास्क की मुश्किल का लेवल

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

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

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

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



सोच-समझकर तैयार की गई खास जानकारी

सोच के बारे में खास जानकारी, मॉडल की सोच के बारे में खास जानकारी देने वाले वर्शन होते हैं. इनसे मॉडल की इंटरनल प्रोसेस के बारे में अहम जानकारी मिलती है.

जवाबों में सोच के बारे में खास जानकारी शामिल करने की कुछ वजहें यहां दी गई हैं:

  • आपके पास अपने ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) में, सोच के साथ जवाब देने की सुविधा से मिली जानकारी दिखाने का विकल्प होता है. इसके अलावा, इस जानकारी को उपयोगकर्ताओं के लिए उपलब्ध कराया जा सकता है. सोच के बारे में जानकारी को जवाब के अलग हिस्से के तौर पर दिखाया जाता है, ताकि आपके पास यह कंट्रोल रहे कि आपके ऐप्लिकेशन में इसका इस्तेमाल कैसे किया जाए.

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

सोच के बारे में खास जानकारी देने वाली सुविधा के बारे में कुछ ज़रूरी बातें यहां दी गई हैं:

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

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

जवाब के बारे में जानकारी देने वाली सुविधा चालू करना

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

मॉडल कॉन्फ़िगरेशन में includeThoughts को true पर सेट करके, सोच के बारे में खास जानकारी देने वाली सुविधा चालू की जा सकती है. इसके बाद, जवाब में मौजूद thoughtSummary फ़ील्ड को देखकर, सारांश को ऐक्सेस किया जा सकता है.

यहां एक उदाहरण दिया गया है, जिसमें बताया गया है कि जवाब के साथ सोच की खास जानकारी को कैसे चालू किया जाता है और उसे कैसे वापस पाया जाता है:

Swift

GenerativeModel इंस्टेंस बनाते समय, GenerationConfig में जाकर, सोच-विचार के बारे में खास जानकारी देने की सुविधा चालू करें.


// ...

// Set the thinking configuration.
// Optionally enable thought summaries in the generated response (default is false).
let generationConfig = GenerationConfig(
  thinkingConfig: ThinkingConfig(includeThoughts: true)
)

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

let response = try await model.generateContent("solve x^2 + 4x + 4 = 0")

// Handle the response that includes thought summaries.
if let thoughtSummary = response.thoughtSummary {
  print("Thought Summary: \(thoughtSummary)")
}
guard let text = response.text else {
  fatalError("No text in response.")
}
print("Answer: \(text)")

Kotlin

GenerativeModel इंस्टेंस बनाते समय, GenerationConfig में जाकर, सोच-विचार के बारे में खास जानकारी देने की सुविधा चालू करें.


// ...

// Set the thinking configuration.
// Optionally enable thought summaries in the generated response (default is false).
val generationConfig = generationConfig {
  thinkingConfig = thinkingConfig {
      includeThoughts = true
  }
}

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

val response = model.generateContent("solve x^2 + 4x + 4 = 0")

// Handle the response that includes thought summaries.
response.thoughtSummary?.let {
    println("Thought Summary: $it")
}
response.text?.let {
    println("Answer: $it")
}

Java

GenerativeModel इंस्टेंस बनाते समय, GenerationConfig में जाकर, सोच-विचार के बारे में खास जानकारी देने की सुविधा चालू करें.


// ...

// Set the thinking configuration.
// Optionally enable thought summaries in the generated response (default is false).
ThinkingConfig thinkingConfig = new ThinkingConfig.Builder()
    .setIncludeThoughts(true)
    .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 */ "GEMINI_MODEL_NAME",
                  /* generationConfig */ generationConfig
                );
);

// Handle the response that includes thought summaries.
ListenableFuture responseFuture = model.generateContent("solve x^2 + 4x + 4 = 0");
Futures.addCallback(responseFuture, new FutureCallback() {
    @Override
    public void onSuccess(GenerateContentResponse response) {
        if (response.getThoughtSummary() != null) {
            System.out.println("Thought Summary: " + response.getThoughtSummary());
        }
        if (response.getText() != null) {
            System.out.println("Answer: " + response.getText());
        }
    }

    @Override
    public void onFailure(Throwable t) {
        // Handle error
    }
}, MoreExecutors.directExecutor());

Web

GenerativeModel इंस्टेंस बनाते समय, GenerationConfig में जाकर, सोच-विचार के बारे में खास जानकारी देने की सुविधा चालू करें.


// ...

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

// Set the thinking configuration.
// Optionally enable thought summaries in the generated response (default is false).
const generationConfig = {
  thinkingConfig: {
    includeThoughts: true
  }
};

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

const result = await model.generateContent("solve x^2 + 4x + 4 = 0");
const response = result.response;

// Handle the response that includes thought summaries.
if (response.thoughtSummary()) {
    console.log(`Thought Summary: ${response.thoughtSummary()}`);
}
const text = response.text();
console.log(`Answer: ${text}`);

Dart

GenerativeModel इंस्टेंस बनाते समय, GenerationConfig में जाकर, सोच-विचार के बारे में खास जानकारी देने की सुविधा चालू करें.


// ...

// Set the thinking configuration.
// Optionally enable thought summaries in the generated response (default is false).
final thinkingConfig = ThinkingConfig(includeThoughts: true);

final generationConfig = GenerationConfig(
  thinkingConfig: thinkingConfig
);

// Specify the config as part of creating the `GenerativeModel` instance.
final model = FirebaseAI.googleAI().generativeModel(
  model: 'GEMINI_MODEL_NAME',
  generationConfig: generationConfig,
);

final response = await model.generateContent('solve x^2 + 4x + 4 = 0');

// Handle the response that includes thought summaries.
if (response.thoughtSummary != null) {
  print('Thought Summary: ${response.thoughtSummary}');
}
if (response.text != null) {
  print('Answer: ${response.text}');
}

Unity

GenerativeModel इंस्टेंस बनाते समय, GenerationConfig में जाकर, सोच-विचार के बारे में खास जानकारी देने की सुविधा चालू करें.


// ...

// Set the thinking configuration.
// Optionally enable thought summaries in the generated response (default is false).
var thinkingConfig = new ThinkingConfig(includeThoughts: true);

var generationConfig = new GenerationConfig(
  thinkingConfig: thinkingConfig
);

// Specify the config as part of creating the `GenerativeModel` instance.
var model = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI()).GetGenerativeModel(
  modelName: "GEMINI_MODEL_NAME",
  generationConfig: generationConfig
);

var response = await model.GenerateContentAsync("solve x^2 + 4x + 4 = 0");

// Handle the response that includes thought summaries.
if (response.ThoughtSummary != null) {
    Debug.Log($"Thought Summary: {response.ThoughtSummary}");
}
if (response.Text != null) {
    Debug.Log($"Answer: {response.Text}");
}

सोच-समझकर तैयार की गई खास जानकारी को स्ट्रीम करना

generateContentStream का इस्तेमाल करके जवाब को स्ट्रीम करने का विकल्प चुनने पर, आपको सोच के बारे में खास जानकारी भी दिख सकती है. इससे जवाब जनरेट करने की प्रोसेस के दौरान, आपको लगातार और बढ़ती हुई खास जानकारी मिलती रहेगी.

Swift

GenerativeModel इंस्टेंस बनाते समय, GenerationConfig में जाकर, सोच-विचार के बारे में खास जानकारी देने की सुविधा चालू करें.


// ...

// Set the thinking configuration.
// Optionally enable thought summaries in the generated response (default is false).
let generationConfig = GenerationConfig(
  thinkingConfig: ThinkingConfig(includeThoughts: true)
)

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

let stream = try model.generateContentStream("solve x^2 + 4x + 4 = 0")

// Handle the streamed response that includes thought summaries.
var thoughts = ""
var answer = ""
for try await response in stream {
  if let thought = response.thoughtSummary {
    if thoughts.isEmpty {
      print("--- Thoughts Summary ---")
    }
    print(thought)
    thoughts += thought
  }

  if let text = response.text {
    if answer.isEmpty {
      print("--- Answer ---")
    }
    print(text)
    answer += text
  }
}

Kotlin

GenerativeModel इंस्टेंस बनाते समय, GenerationConfig में जाकर, सोच-विचार के बारे में खास जानकारी देने की सुविधा चालू करें.


// ...

// Set the thinking configuration.
// Optionally enable thought summaries in the generated response (default is false).
val generationConfig = generationConfig {
  thinkingConfig = thinkingConfig {
      includeThoughts = true
  }
}

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

// Handle the streamed response that includes thought summaries.
var thoughts = ""
var answer = ""
model.generateContentStream("solve x^2 + 4x + 4 = 0").collect { response ->
    response.thoughtSummary?.let {
        if (thoughts.isEmpty()) {
            println("--- Thoughts Summary ---")
        }
        print(it)
        thoughts += it
    }
    response.text?.let {
        if (answer.isEmpty()) {
            println("--- Answer ---")
        }
        print(it)
        answer += it
    }
}

Java

GenerativeModel इंस्टेंस बनाते समय, GenerationConfig में जाकर, सोच-विचार के बारे में खास जानकारी देने की सुविधा चालू करें.


// ...

// Set the thinking configuration.
// Optionally enable thought summaries in the generated response (default is false).
ThinkingConfig thinkingConfig = new ThinkingConfig.Builder()
    .setIncludeThoughts(true)
    .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 */ "GEMINI_MODEL_NAME",
                  /* generationConfig */ generationConfig
                );
);

// Streaming with Java is complex and depends on the async library used.
// This is a conceptual example using a reactive stream.
Flowable responseStream = model.generateContentStream("solve x^2 + 4x + 4 = 0");

// Handle the streamed response that includes thought summaries
StringBuilder thoughts = new StringBuilder();
StringBuilder answer = new StringBuilder();

responseStream.subscribe(response -> {
    if (response.getThoughtSummary() != null) {
        if (thoughts.length() == 0) {
            System.out.println("--- Thoughts Summary ---");
        }
        System.out.print(response.getThoughtSummary());
        thoughts.append(response.getThoughtSummary());
    }
    if (response.getText() != null) {
        if (answer.length() == 0) {
            System.out.println("--- Answer ---");
        }
        System.out.print(response.getText());
        answer.append(response.getText());
    }
}, throwable -> {
    // Handle error
});

Web

GenerativeModel इंस्टेंस बनाते समय, GenerationConfig में जाकर, सोच-विचार के बारे में खास जानकारी देने की सुविधा चालू करें.


// ...

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

// Set the thinking configuration.
// Optionally enable thought summaries in the generated response (default is false).
const generationConfig = {
  thinkingConfig: {
    includeThoughts: true
  }
};

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

const result = await model.generateContentStream("solve x^2 + 4x + 4 = 0");

// Handle the streamed response that includes thought summaries.
let thoughts = "";
let answer = "";
for await (const chunk of result.stream) {
  if (chunk.thoughtSummary()) {
    if (thoughts === "") {
      console.log("--- Thoughts Summary ---");
    }
    // In Node.js, process.stdout.write(chunk.thoughtSummary()) could be used
    // to avoid extra newlines.
    console.log(chunk.thoughtSummary());
    thoughts += chunk.thoughtSummary();
  }

  const text = chunk.text();
  if (text) {
    if (answer === "") {
      console.log("--- Answer ---");
    }
    // In Node.js, process.stdout.write(text) could be used.
    console.log(text);
    answer += text;
  }
}

Dart

GenerativeModel इंस्टेंस बनाते समय, GenerationConfig में जाकर, सोच-विचार के बारे में खास जानकारी देने की सुविधा चालू करें.


// ...

// Set the thinking configuration.
// Optionally enable thought summaries in the generated response (default is false).
final thinkingConfig = ThinkingConfig(includeThoughts: true);

final generationConfig = GenerationConfig(
  thinkingConfig: thinkingConfig
);

// Specify the config as part of creating the `GenerativeModel` instance.
final model = FirebaseAI.googleAI().generativeModel(
  model: 'GEMINI_MODEL_NAME',
  generationConfig: generationConfig,
);

final responses = model.generateContentStream('solve x^2 + 4x + 4 = 0');

// Handle the streamed response that includes thought summaries.
var thoughts = '';
var answer = '';
await for (final response in responses) {
  if (response.thoughtSummary != null) {
    if (thoughts.isEmpty) {
      print('--- Thoughts Summary ---');
    }
    thoughts += response.thoughtSummary!;
  }
  if (response.text != null) {
    if (answer.isEmpty) {
      print('--- Answer ---');
    }
    answer += response.text!;
  }
}

Unity

GenerativeModel इंस्टेंस बनाते समय, GenerationConfig में जाकर, सोच-विचार के बारे में खास जानकारी देने की सुविधा चालू करें.


// ...

// Set the thinking configuration.
// Optionally enable thought summaries in the generated response (default is false).
var thinkingConfig = new ThinkingConfig(includeThoughts: true);

var generationConfig = new GenerationConfig(
  thinkingConfig: thinkingConfig
);

// Specify the config as part of creating the `GenerativeModel` instance.
var model = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI()).GetGenerativeModel(
  modelName: "GEMINI_MODEL_NAME",
  generationConfig: generationConfig
);

var stream = model.GenerateContentStreamAsync("solve x^2 + 4x + 4 = 0");

// Handle the streamed response that includes thought summaries.
var thoughts = "";
var answer = "";
await foreach (var response in stream)
{
    if (response.ThoughtSummary != null)
    {
        if (string.IsNullOrEmpty(thoughts))
        {
            Debug.Log("--- Thoughts Summary ---");
        }
        Debug.Log(response.ThoughtSummary);
        thoughts += response.ThoughtSummary;
    }
    if (response.Text != null)
    {
        if (string.IsNullOrEmpty(answer))
        {
            Debug.Log("--- Answer ---");
        }
        Debug.Log(response.Text);
        answer += response.Text;
    }
}



सोच-समझकर किए गए हस्ताक्षर

सिलसिलेवार बातचीत में गहराई से विचार का इस्तेमाल करते समय, मॉडल के पास पिछले टर्न के विचार कॉन्टेक्स्ट का ऐक्सेस नहीं होता. हालांकि, अगर फ़ंक्शन कॉलिंग का इस्तेमाल किया जा रहा है, तो थॉट सिग्नेचर का इस्तेमाल किया जा सकता है. इससे, बातचीत के हर मोड़ पर थॉट कॉन्टेक्स्ट को बनाए रखने में मदद मिलती है. थॉट सिग्नेचर, मॉडल की इंटरनल थॉट प्रोसेस के एन्क्रिप्ट (सुरक्षित) किए गए वर्शन होते हैं. ये थिंकिंग और फ़ंक्शन कॉलिंग का इस्तेमाल करते समय उपलब्ध होते हैं. खास तौर पर, थॉट सिग्नेचर तब जनरेट होते हैं, जब:

  • सोचने की सुविधा चालू है और आइडिया जनरेट किए गए हैं.
  • अनुरोध में फ़ंक्शन के एलान शामिल हैं.

सोच के आधार पर जवाब देने की सुविधा का फ़ायदा पाने के लिए, फ़ंक्शन कॉलिंग का इस्तेमाल सामान्य तरीके से करें. Firebase AI Logic एसडीके, स्थिति को मैनेज करके और आपके लिए थॉट सिग्नेचर को अपने-आप हैंडल करके, प्रोसेस को आसान बनाते हैं. एसडीके, जनरेट किए गए किसी भी थॉट सिग्नेचर को Chat सेशन में, बाद के sendMessage या sendMessageStream कॉल के बीच अपने-आप पास कर देते हैं.



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

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

Firebase कंसोल में एआई मॉनिटरिंग चालू करके, उन अनुरोधों के लिए थिंकिंग टोकन की संख्या को मॉनिटर किया जा सकता है जिनके लिए थिंकिंग की सुविधा चालू है.

जवाब के 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

// ...

final response = await model.generateContent(
  Content.text("Why is the sky blue?"),
]);

if (response?.usageMetadata case final usageMetadata?) {
  print("Thoughts Token Count: ${usageMetadata.thoughtsTokenCount}");
}

Unity

// ...

var response = await model.GenerateContentAsync("Why is the sky blue?");

if (response.UsageMetadata != null)
{
    UnityEngine.Debug.Log($"Thoughts Token Count: {response.UsageMetadata?.ThoughtsTokenCount}");
}

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