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

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

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

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

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

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

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



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

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

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

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

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

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

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

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



एआई के गहराई से विचार करने की प्रोसेस को कंट्रोल करना

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

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

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

सूझ-बूझ वाले लेवल

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

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

इस पेज पर, सेवा देने वाली कंपनी के हिसाब से कॉन्टेंट और कोड देखने के लिए, 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 4 Argon
gemini-4-argon
1 (डिफ़ॉल्ट)
Gemini 3.x Pro
gemini-3.1-pro-preview
(डिफ़ॉल्ट)
Gemini 3.x Flash
gemini-3.8-flash
gemini-3.7-flash
gemini-3.6-flash
gemini-3.5-flash

gemini-3.8-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-4-argon, gemini-3.8-flash, और gemini-3.7-flash में MINIMAL थिंकिंग लेवल का इस्तेमाल नहीं किया जा सकता. अगर आपने सोचने के लेवल को MINIMAL पर सेट किया है, तो अनुरोध पूरा नहीं होगा और 400 गड़बड़ी का कोड दिखेगा.



सोचने के लिए बजट (Gemini 2.5 मॉडल)

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



सोच-विचार करके जवाब देने वाले सभी मॉडल के लिए, टास्क की मुश्किल का लेवल

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

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

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

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



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

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

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

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

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

सोच-विचार की खास जानकारी के बारे में कुछ ज़रूरी बातें:

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

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

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

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

मॉडल कॉन्फ़िगरेशन में includeThoughts को सही पर सेट करके, जवाब की खास जानकारी जनरेट करने की सुविधा चालू की जा सकती है. इसके बाद, जवाब में मौजूद 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 SDK टूल, स्टेट को मैनेज करके और आपके लिए थॉट सिग्नेचर को अपने-आप हैंडल करके, इस प्रोसेस को आसान बनाते हैं. एसडीके, जनरेट किए गए किसी भी थॉट सिग्नेचर को 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}");
}

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