Gemini के मॉडल, "थिंकिंग प्रोसेस" का इस्तेमाल करते हैं. इससे उनकी रीज़निंग और मल्टी-स्टेप प्लानिंग की क्षमताएं बेहतर होती हैं. इस वजह से, ये मॉडल कोडिंग, ऐडवांस लेवल की गणित, और डेटा विश्लेषण जैसे मुश्किल टास्क के लिए बहुत कारगर साबित होते हैं.
इस गाइड में, Gemini API का इस्तेमाल करके, Gemini की थिंकिंग क्षमताओं के साथ काम करने का तरीका बताया गया है.
थिंकिंग मॉडल की मदद से कॉन्टेंट जनरेट करना
थिंकिंग मॉडल के साथ अनुरोध शुरू करना, कॉन्टेंट जनरेट करने के किसी अन्य अनुरोध की तरह ही होता है. इसमें मुख्य अंतर यह है कि model फ़ील्ड में, थिंकिंग की सुविधा वाले किसी
मॉडल की जानकारी देनी होती है. यहां, टेक्स्ट जनरेट करने के उदाहरण में यह दिखाया गया है:
Python
from google import genai
client = genai.Client()
prompt = "Explain the concept of Occam's Razor and provide a simple, everyday example."
response = client.models.generate_content(
model="gemini-3.8-flash",
contents=prompt
)
print(response.text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
async function main() {
const prompt = "Explain the concept of Occam's Razor and provide a simple, everyday example.";
const response = await ai.models.generateContent({
model: "gemini-3.8-flash",
contents: prompt,
});
console.log(response.text);
}
main();
ऐप पर जाएं
package main
import (
"context"
"fmt"
"log"
"os"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
prompt := "Explain the concept of Occam's Razor and provide a simple, everyday example."
model := "gemini-3.8-flash"
resp, _ := client.Models.GenerateContent(ctx, model, genai.Text(prompt), nil)
fmt.Println(resp.Text())
}
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.8-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
{
"parts": [
{
"text": "Explain the concept of Occam'\''s Razor and provide a simple, everyday example."
}
]
}
]
}'
```
थिंकिंग मॉडल से मिले जवाब की खास जानकारी
थिंकिंग मॉडल से मिले जवाब की खास जानकारी, मॉडल के रॉ थॉट का संक्षिप्त वर्शन होती है. इससे मॉडल की इंटरनल रीज़निंग प्रोसेस के बारे में जानकारी मिलती है. ध्यान दें कि थिंकिंग लेवल और बजट, मॉडल के रॉ थॉट पर लागू होते हैं. ये थिंकिंग मॉडल से मिले जवाब की खास जानकारी पर लागू नहीं होते.
अनुरोध के कॉन्फ़िगरेशन में includeThoughts को true पर सेट करके, थिंकिंग मॉडल से मिले जवाब की खास जानकारी पाने की सुविधा चालू की जा सकती है. इसके बाद, response पैरामीटर के parts में जाकर, खास जानकारी को ऐक्सेस किया जा सकता है. साथ ही, thought बूलियन की जांच की जा सकती है.
यहां एक उदाहरण दिया गया है, जिसमें स्ट्रीम किए बिना थिंकिंग मॉडल से मिले जवाब की खास जानकारी पाने और उसे वापस पाने का तरीका बताया गया है. इससे जवाब के साथ, थिंकिंग मॉडल से मिले जवाब की एक और आखिरी खास जानकारी मिलती है:
Python
from google import genai
from google.genai import types
client = genai.Client()
prompt = "What is the sum of the first 50 prime numbers?"
response = client.models.generate_content(
model="gemini-3.8-flash",
contents=prompt,
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(
include_thoughts=True
)
)
)
for part in response.candidates[0].content.parts:
if not part.text:
continue
if part.thought:
print("Thought summary:")
print(part.text)
print()
else:
print("Answer:")
print(part.text)
print()
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
async function main() {
const response = await ai.models.generateContent({
model: "gemini-3.8-flash",
contents: "What is the sum of the first 50 prime numbers?",
config: {
thinkingConfig: {
includeThoughts: true,
},
},
});
for (const part of response.candidates[0].content.parts) {
if (!part.text) {
continue;
}
else if (part.thought) {
console.log("Thoughts summary:");
console.log(part.text);
}
else {
console.log("Answer:");
console.log(part.text);
}
}
}
main();
ऐप पर जाएं
package main
import (
"context"
"fmt"
"google.golang.org/genai"
"os"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
contents := genai.Text("What is the sum of the first 50 prime numbers?")
model := "gemini-3.8-flash"
resp, _ := client.Models.GenerateContent(ctx, model, contents, &genai.GenerateContentConfig{
ThinkingConfig: &genai.ThinkingConfig{
IncludeThoughts: true,
},
})
for _, part := range resp.Candidates[0].Content.Parts {
if part.Text != "" {
if part.Thought {
fmt.Println("Thoughts Summary:")
fmt.Println(part.Text)
} else {
fmt.Println("Answer:")
fmt.Println(part.Text)
}
}
}
}
यहां स्ट्रीम करने की सुविधा के साथ थिंकिंग का इस्तेमाल करने का एक उदाहरण दिया गया है. इससे जनरेट होने के दौरान, खास जानकारी के बढ़ते क्रम में रोलिंग मिलती है:
Python
from google import genai
from google.genai import types
client = genai.Client()
prompt = """
Alice, Bob, and Carol each live in a different house on the same street: red, green, and blue.
The person who lives in the red house owns a cat.
Bob does not live in the green house.
Carol owns a dog.
The green house is to the left of the red house.
Alice does not own a cat.
Who lives in each house, and what pet do they own?
"""
thoughts = ""
answer = ""
for chunk in client.models.generate_content_stream(
model="gemini-3.8-flash",
contents=prompt,
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(
include_thoughts=True
)
)
):
for part in chunk.candidates[0].content.parts:
if not part.text:
continue
elif part.thought:
if not thoughts:
print("Thoughts summary:")
print(part.text)
thoughts += part.text
else:
if not answer:
print("Answer:")
print(part.text)
answer += part.text
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const prompt = `Alice, Bob, and Carol each live in a different house on the same
street: red, green, and blue. The person who lives in the red house owns a cat.
Bob does not live in the green house. Carol owns a dog. The green house is to
the left of the red house. Alice does not own a cat. Who lives in each house,
and what pet do they own?`;
let thoughts = "";
let answer = "";
async function main() {
const response = await ai.models.generateContentStream({
model: "gemini-3.8-flash",
contents: prompt,
config: {
thinkingConfig: {
includeThoughts: true,
},
},
});
for await (const chunk of response) {
for (const part of chunk.candidates[0].content.parts) {
if (!part.text) {
continue;
} else if (part.thought) {
if (!thoughts) {
console.log("Thoughts summary:");
}
console.log(part.text);
thoughts = thoughts + part.text;
} else {
if (!answer) {
console.log("Answer:");
}
console.log(part.text);
answer = answer + part.text;
}
}
}
}
await main();
ऐप पर जाएं
package main
import (
"context"
"fmt"
"log"
"os"
"google.golang.org/genai"
)
const prompt = `
Alice, Bob, and Carol each live in a different house on the same street: red, green, and blue.
The person who lives in the red house owns a cat.
Bob does not live in the green house.
Carol owns a dog.
The green house is to the left of the red house.
Alice does not own a cat.
Who lives in each house, and what pet do they own?
`
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
contents := genai.Text(prompt)
model := "gemini-3.8-flash"
resp := client.Models.GenerateContentStream(ctx, model, contents, &genai.GenerateContentConfig{
ThinkingConfig: &genai.ThinkingConfig{
IncludeThoughts: true,
},
})
for chunk := range resp {
for _, part := range chunk.Candidates[0].Content.Parts {
if len(part.Text) == 0 {
continue
}
if part.Thought {
fmt.Printf("Thought: %s\n", part.Text)
} else {
fmt.Printf("Answer: %s\n", part.Text)
}
}
}
}
थिंकिंग को कंट्रोल करना
Gemini के मॉडल, डिफ़ॉल्ट रूप से डाइनैमिक थिंकिंग का इस्तेमाल करते हैं. ये उपयोगकर्ता के अनुरोध की जटिलता के आधार पर, रीज़निंग के लिए ज़रूरी कोशिश को अपने-आप अडजस्ट करते हैं. हालांकि, अगर आपको इंतज़ार के समय से जुड़ी कोई खास पाबंदी लागू करनी है या आपको मॉडल से सामान्य से ज़्यादा गहराई से रीज़निंग करानी है, तो थिंकिंग के व्यवहार को कंट्रोल करने के लिए, पैरामीटर का इस्तेमाल किया जा सकता है.
थिंकिंग लेवल (Gemini 4 और Gemini 3)
thinkingLevel पैरामीटर, Gemini 4 के लिए ज़रूरी है. साथ ही, Gemini 3 मॉडल के लिए इसका इस्तेमाल करने का सुझाव दिया जाता है. इसकी मदद से, रीज़निंग के व्यवहार को कंट्रोल किया जा सकता है. Gemini 4 (gemini-4-argon), low, medium (डिफ़ॉल्ट), और high के साथ काम करता है.
यहां दी गई टेबल में, हर मॉडल टाइप के लिए thinkingLevel सेटिंग के बारे में बताया गया है:
| थिंकिंग लेवल | Gemini 3.8 Flash | Gemini 3.6 Flash | Gemini 4 Argon | Gemini 3.5 और 3.1 Flash-Lite | Gemini 3.1 Flash-Lite Image | Gemini 3 Flash | Gemini Robotics ER 2 | ब्यौरा |
|---|---|---|---|---|---|---|---|---|
minimal |
काम नहीं करता (गड़बड़ी) | काम करता है | काम नहीं करता (गड़बड़ी) | काम करता है (डिफ़ॉल्ट) | काम करता है (डिफ़ॉल्ट) | काम करता है | काम करता है | ज़्यादातर क्वेरी के लिए, यह "नो थिंकिंग" सेटिंग के मुताबिक काम करता है. ध्यान दें, minimal से यह पक्का नहीं होता कि थिंकिंग बंद है. मुश्किल टास्क के लिए, मॉडल बहुत कम रीज़निंग कर सकता है. |
low |
काम करता है | काम करता है | काम करता है | काम करता है | काम नहीं करता | काम करता है | काम करता है | इससे इंतज़ार का समय और लागत कम होती है. |
medium |
काम करता है (डिफ़ॉल्ट) | काम करता है (डिफ़ॉल्ट) | काम करता है (डिफ़ॉल्ट) | काम करता है | काम नहीं करता | काम करता है | काम करता है | ज़्यादातर टास्क के लिए, यह बैलेंस थिंकिंग मोड है. |
high |
काम करता है (डाइनैमिक) | काम करता है (डाइनैमिक) | काम करता है (डाइनैमिक) | काम करता है (डाइनैमिक) | काम करता है (डाइनैमिक) | काम करता है (डिफ़ॉल्ट, डाइनैमिक) | काम करता है (डिफ़ॉल्ट, डाइनैमिक) | इससे रीज़निंग की गहराई ज़्यादा होती है. मॉडल को पहले (बिना थिंकिंग वाले) आउटपुट टोकन तक पहुंचने में काफ़ी समय लग सकता है. हालांकि, आउटपुट ज़्यादा सावधानी से रीज़न किया जाएगा. |
यहां दिए गए उदाहरण में, थिंकिंग लेवल सेट करने का तरीका बताया गया है.
Python
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="gemini-3.8-flash",
contents="Provide a list of 3 famous physicists and their key contributions",
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(thinking_level="low")
),
)
print(response.text)
JavaScript
import { GoogleGenAI, ThinkingLevel } from "@google/genai";
const ai = new GoogleGenAI({});
async function main() {
const response = await ai.models.generateContent({
model: "gemini-3.8-flash",
contents: "Provide a list of 3 famous physicists and their key contributions",
config: {
thinkingConfig: {
thinkingLevel: ThinkingLevel.LOW,
},
},
});
console.log(response.text);
}
main();
ऐप पर जाएं
package main
import (
"context"
"fmt"
"google.golang.org/genai"
"os"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
thinkingLevelVal := "low"
contents := genai.Text("Provide a list of 3 famous physicists and their key contributions")
model := "gemini-3.8-flash"
resp, _ := client.Models.GenerateContent(ctx, model, contents, &genai.GenerateContentConfig{
ThinkingConfig: &genai.ThinkingConfig{
ThinkingLevel: &thinkingLevelVal,
},
})
fmt.Println(resp.Text())
}
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.8-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
{
"parts": [
{
"text": "Provide a list of 3 famous physicists and their key contributions"
}
]
}
],
"generationConfig": {
"thinkingConfig": {
"thinkingLevel": "low"
}
}
}'
Gemini 4 Argon के लिए, थिंकिंग की सुविधा बंद नहीं की जा सकती. Gemini 3 Flash और Flash-Lite
के लिए भी, थिंकिंग की सुविधा पूरी तरह से बंद नहीं की जा सकती.
अगर आपने थिंकिंग लेवल तय नहीं किया है, तो Gemini, मॉडल के
डिफ़ॉल्ट थिंकिंग लेवल का इस्तेमाल करेगा. जैसे, Gemini 4 Argon, Gemini 3.8 Flash, और Gemini 3.6 Flash के लिए "medium".
Gemini 2.5 सीरीज़ के मॉडल, thinkingLevel के साथ काम नहीं करते. इसके बजाय, thinkingBudget का इस्तेमाल करें.
टोकन की सीमाएं और max_output_tokens
The max_output_tokens
जनरेशन पैरामीटर, टोकन की ज़्यादा से ज़्यादा संख्या सेट करता है. इतने टोकन तक, कोई जवाब जनरेट किया जा सकता है.
इसमें थॉट टोकन भी शामिल हैं.
सेट होने पर, यह पैरामीटर एक हार्ड कटऑफ़ के तौर पर काम करता है. इसे इन्फ़्रास्ट्रक्चर लागू करता है. इससे मॉडल के थिंकिंग बजट (thinking_level) के आवंटन के तरीके में कोई बदलाव नहीं होता.
अगर रीज़निंग के दौरान मॉडल इस सीमा तक पहुंच जाता है, तो वह finish_reason: MAX_TOKENS के साथ जनरेट करना बंद कर देता है. साथ ही, छोटा या खाली आउटपुट दिखाता है. हालांकि, जनरेट किए गए किसी भी थिंकिंग टोकन के लिए बिलिंग जारी रहती है. जवाबों को छोटा किए बिना लागत या इंतज़ार का समय कम करने के लिए, max_output_tokens को कम सेट करने के बजाय, thinking_level (low या medium) को कम करें.
Gemini 4 मॉडल (gemini-4-argon) के लिए, कॉन्टेक्स्ट और आउटपुट की इन सीमाओं को ध्यान में रखें:
- शेयर की गई 10 लाख टोकन वाली कॉन्टेक्स्ट विंडो: इनपुट, थिंकिंग, और आउटपुट टोकन, 10 लाख टोकन वाली एक ही कॉन्टेक्स्ट विंडो (
1,048,576टोकन) शेयर करते हैं. अगर आपके इनपुट टोकन औरmax_output_tokensकी संख्या 10,48,576 टोकन से ज़्यादा हो जाती है, तो एपीआई, आउटपुट की सीमा को कॉन्टेक्स्ट विंडो में बची हुई जगह (1,048,576माइनस आपके इनपुट टोकन) तक अपने-आप सीमित कर देता है. - हर अनुरोध के लिए आउटपुट की सीमाएं (स्ट्रीमिंग के लिए 64 हज़ार टोकन / बिना स्ट्रीमिंग के लिए 32 हज़ार टोकन) और लंबे समय तक डीकोड करना (10 लाख टोकन तक): स्ट्रीमिंग का एक अनुरोध (
streamGenerateContent), ज़्यादा से ज़्यादा65,536टोकन दिखाता है. वहीं, बिना स्ट्रीमिंग का एक अनुरोध (generateContent), ज़्यादा से ज़्यादा32,768टोकन दिखाता है. हर अनुरोध के लिए तय की गई सीमा से ज़्यादा टोकन जनरेट करने के लिए (आपके इनपुट को छोड़कर, ज़्यादा से ज़्यादा1,048,576टोकन),max_output_tokensको सीमा से ज़्यादा पर सेट करें. Google GenAI SDK के नए वर्शन, डिफ़ॉल्ट रूप से एक से ज़्यादा बार में जवाब जनरेट करते हैं (automatic_continuation=True). इसके अलावा, क्लाइंट लूप कोcontinuation_tokenका इस्तेमाल करके चलाया जा सकता है. यह टोकन तब मिलता है, जबfinish_reason: "CONTINUATION"के साथ कोई जवाब जनरेट होना बंद हो जाता है. कोड के उदाहरणों के लिए, लंबे समय तक डीकोड करना देखें.
थिंकिंग बजट
Gemini 2.5 सीरीज़ के साथ लॉन्च किया गया thinkingBudget पैरामीटर, मॉडल को रीज़निंग के लिए इस्तेमाल किए जाने वाले थिंकिंग टोकन की संख्या के बारे में बताता है.
यहां हर मॉडल टाइप के लिए, thinkingBudget के कॉन्फ़िगरेशन की जानकारी दी गई है.
thinkingBudget को 0 पर सेट करके, थिंकिंग की सुविधा बंद की जा सकती है.
thinkingBudget को -1 पर सेट करने से, डाइनैमिक थिंकिंग चालू हो जाती है. इसका मतलब है कि मॉडल, अनुरोध की जटिलता के आधार पर बजट को अडजस्ट करेगा.
| मॉडल | डिफ़ॉल्ट सेटिंग (थिंकिंग बजट सेट नहीं है) |
रेंज | थिंकिंग की सुविधा बंद करें | डाइनैमिक थिंकिंग की सुविधा चालू करें |
|---|---|---|---|---|
| 2.5 Pro | डाइनैमिक थिंकिंग | 128 से 32768 |
लागू नहीं: थिंकिंग की सुविधा बंद नहीं की जा सकती | thinkingBudget = -1 (डिफ़ॉल्ट) |
| 2.5 Flash | डाइनैमिक थिंकिंग | 0 से 24576 |
thinkingBudget = 0 |
thinkingBudget = -1 (डिफ़ॉल्ट) |
| 2.5 Flash Preview | डाइनैमिक थिंकिंग | 0 से 24576 |
thinkingBudget = 0 |
thinkingBudget = -1 (डिफ़ॉल्ट) |
| 2.5 Flash Lite | मॉडल रीज़निंग नहीं करता | 512 से 24576 |
thinkingBudget = 0 |
thinkingBudget = -1 |
| 2.5 Flash Lite Preview | मॉडल रीज़निंग नहीं करता | 512 से 24576 |
thinkingBudget = 0 |
thinkingBudget = -1 |
| Robotics-ER 1.6 Preview | डाइनैमिक थिंकिंग | 0 से 24576 |
thinkingBudget = 0 |
thinkingBudget = -1 (डिफ़ॉल्ट) |
| 2.5 Flash Live Native Audio Preview (09-2025) | डाइनैमिक थिंकिंग | 0 से 24576 |
thinkingBudget = 0 |
thinkingBudget = -1 (डिफ़ॉल्ट) |
Python
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="gemini-2.5-flash",
contents="Provide a list of 3 famous physicists and their key contributions",
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(thinking_budget=1024)
# Turn off thinking:
# thinking_config=types.ThinkingConfig(thinking_budget=0)
# Turn on dynamic thinking:
# thinking_config=types.ThinkingConfig(thinking_budget=-1)
),
)
print(response.text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
async function main() {
const response = await ai.models.generateContent({
model: "gemini-2.5-flash",
contents: "Provide a list of 3 famous physicists and their key contributions",
config: {
thinkingConfig: {
thinkingBudget: 1024,
// Turn off thinking:
// thinkingBudget: 0
// Turn on dynamic thinking:
// thinkingBudget: -1
},
},
});
console.log(response.text);
}
main();
ऐप पर जाएं
package main
import (
"context"
"fmt"
"google.golang.org/genai"
"os"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
thinkingBudgetVal := int32(1024)
contents := genai.Text("Provide a list of 3 famous physicists and their key contributions")
model := "gemini-2.5-flash"
resp, _ := client.Models.GenerateContent(ctx, model, contents, &genai.GenerateContentConfig{
ThinkingConfig: &genai.ThinkingConfig{
ThinkingBudget: &thinkingBudgetVal,
// Turn off thinking:
// ThinkingBudget: int32(0),
// Turn on dynamic thinking:
// ThinkingBudget: int32(-1),
},
})
fmt.Println(resp.Text())
}
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
{
"parts": [
{
"text": "Provide a list of 3 famous physicists and their key contributions"
}
]
}
],
"generationConfig": {
"thinkingConfig": {
"thinkingBudget": 1024
}
}
}'
प्रॉम्प्ट के आधार पर, मॉडल टोकन बजट से ज़्यादा या कम टोकन इस्तेमाल कर सकता है.
थॉट सिग्नेचर
Gemini API, स्टेटलेस है. इसलिए, मॉडल हर एपीआई अनुरोध को अलग-अलग प्रोसेस करता है. साथ ही, मल्टी-टर्न इंटरैक्शन में, मॉडल के पास पिछले टर्न के थॉट कॉन्टेक्स्ट का ऐक्सेस नहीं होता.
मल्टी-टर्न इंटरैक्शन में, थॉट कॉन्टेक्स्ट को बनाए रखने की सुविधा चालू करने के लिए, Gemini, थॉट सिग्नेचर दिखाता है. ये मॉडल की इंटरनल थॉट प्रोसेस के एन्क्रिप्ट किए गए वर्शन होते हैं.
- Gemini 2.5 मॉडल , थिंकिंग की सुविधा चालू होने पर और अनुरोध में फ़ंक्शन कॉलिंग शामिल होने पर, थॉट सिग्नेचर दिखाते हैं. खास तौर पर, फ़ंक्शन के एलान के लिए.
- Gemini 4 और Gemini 3 मॉडल सभी तरह के पार्ट के लिए थॉट सिग्नेचर दिखा सकते हैं. हमारा सुझाव है कि आपको मिले सभी सिग्नेचर को हमेशा वापस पास करें. हालांकि, फ़ंक्शन कॉलिंग सिग्नेचर के लिए यह ज़रूरी है. ज़्यादा जानने के लिए, थॉट सिग्नेचर पेज पढ़ें.
फ़ंक्शन कॉलिंग के साथ इस्तेमाल की अन्य सीमाओं में ये शामिल हैं:
- सिग्नेचर, जवाब में अन्य पार्ट के साथ मॉडल से मिलते हैं. जैसे, फ़ंक्शन कॉलिंग या टेक्स्ट पार्ट. इसके बाद के टर्न में, सभी पार्ट के साथ पूरा जवाब मॉडल को वापस भेजें.
- सिग्नेचर वाले पार्ट को एक साथ न जोड़ें.
- सिग्नेचर वाले किसी पार्ट को, बिना सिग्नेचर वाले किसी अन्य पार्ट के साथ मर्ज न करें.
कीमत
की वजह से, आपसे इनपुट टोकन के लिए ज़्यादा शुल्क लिया जाएगा.थिंकिंग की सुविधा चालू होने पर, जवाब की कीमत, आउटपुट टोकन और थिंकिंग टोकन के योग के बराबर होती है. thoughtsTokenCount फ़ील्ड से, जनरेट किए गए थिंकिंग टोकन की कुल संख्या पाई जा सकती है.
Python
# ...
print("Thoughts tokens:", response.usage_metadata.thoughts_token_count)
print("Output tokens:", response.usage_metadata.candidates_token_count)
JavaScript
// ...
console.log(`Thoughts tokens: ${response.usageMetadata.thoughtsTokenCount}`);
console.log(`Output tokens: ${response.usageMetadata.candidatesTokenCount}`);
ऐप पर जाएं
// ...
fmt.Println("Thoughts tokens:", response.UsageMetadata.ThoughtsTokenCount)
fmt.Println("Output tokens:", response.UsageMetadata.CandidatesTokenCount)
थिंकिंग मॉडल, फ़ाइनल जवाब की क्वालिटी बेहतर बनाने के लिए, पूरे थॉट जनरेट करते हैं. इसके बाद, थॉट प्रोसेस के बारे में जानकारी देने के लिए, खास जानकारी आउटपुट करते हैं. इसलिए, कीमत, मॉडल को खास जानकारी जनरेट करने के लिए ज़रूरी पूरे थॉट टोकन के आधार पर तय की जाती है. भले ही, एपीआई से सिर्फ़ खास जानकारी आउटपुट की गई हो.
टोकन के बारे में ज़्यादा जानने के लिए, टोकन की गिनती करने की गाइड देखें.
सबसे सही तरीके
इस सेक्शन में, थिंकिंग मॉडल का बेहतर तरीके से इस्तेमाल करने के बारे में कुछ सलाह दी गई है. हमेशा की तरह, प्रॉम्प्टिंग के लिए दिए गए हमारे दिशा-निर्देशों और सबसे सही तरीकों को फ़ॉलो करने से, आपको बेहतर नतीजे मिलेंगे.
डीबग करना और स्टीयरिंग
रीज़निंग की समीक्षा करना: जब आपको थिंकिंग मॉडल से उम्मीद के मुताबिक जवाब नहीं मिल रहा है, तो Gemini के थॉट की खास जानकारी का ध्यान से विश्लेषण करना मददगार साबित हो सकता है. इससे यह देखा जा सकता है कि मॉडल ने टास्क को कैसे बांटा और वह किस नतीजे पर पहुंचा. साथ ही, इस जानकारी का इस्तेमाल करके, सही नतीजे पाने के लिए सुधार किया जा सकता है.
रीज़निंग में दिशा-निर्देश देना: अगर आपको खास तौर पर लंबा आउटपुट चाहिए, तो अपने प्रॉम्प्ट में दिशा-निर्देश दिए जा सकते हैं. इससे मॉडल के इस्तेमाल किए जाने वाले थिंकिंग की मात्रा को सीमित किया जा सकता है. इससे आपके जवाब के लिए, टोकन आउटपुट का ज़्यादा हिस्सा रिज़र्व किया जा सकता है.
टास्क की जटिलता
- आसान टास्क (थिंकिंग की सुविधा बंद की जा सकती है): सीधे-सीधे अनुरोधों के लिए, जिनमें जटिल रीज़निंग की ज़रूरत नहीं होती, थिंकिंग की सुविधा की ज़रूरत नहीं होती. जैसे, किसी तथ्य को वापस पाना या क्लासिफ़िकेशन करना. उदाहरण के लिए:
- "DeepMind की स्थापना कहां हुई थी?"
- "क्या इस ईमेल में मीटिंग के लिए कहा गया है या सिर्फ़ जानकारी दी गई है?"
- सामान्य टास्क (डिफ़ॉल्ट/कुछ थिंकिंग): कई सामान्य अनुरोधों में, सिलसिलेवार तरीके से प्रोसेसिंग या ज़्यादा गहराई से समझने की ज़रूरत होती है. Gemini, इन टास्क के लिए थिंकिंग की सुविधा का इस्तेमाल कर सकता है:
- प्रकाश संश्लेषण और बड़े होने की तुलना करना.
- इलेक्ट्रिक कारों और हाइब्रिड कारों की तुलना करना.
- मुश्किल टास्क (रीज़निंग की ज़्यादा से ज़्यादा क्षमता): मुश्किल चुनौतियों के लिए, जैसे कि गणित की मुश्किल समस्याओं को हल करना या कोडिंग के टास्क, हमारा सुझाव है कि थिंकिंग बजट को ज़्यादा पर सेट करें. इस तरह के टास्क के लिए, मॉडल को अपनी पूरी रीज़निंग और प्लानिंग की क्षमताओं का इस्तेमाल करना पड़ता है. अक्सर, जवाब देने से पहले, इसमें कई इंटरनल चरण शामिल होते हैं. उदाहरण के लिए:
- AIME 2025 में समस्या 1 को हल करें: सभी पूर्णांक आधार b > 9 का योग निकालें, जिसके लिए 17b, 97b का भाजक है.
- वेब ऐप्लिकेशन के लिए Python कोड लिखें. यह ऐप्लिकेशन, शेयर बाज़ार के रीयल-टाइम डेटा को दिखाता है. इसमें उपयोगकर्ता की पुष्टि करने की सुविधा भी शामिल है. इसे ज़्यादा से ज़्यादा असरदार बनाएं.
काम करने वाले मॉडल, टूल, और सुविधाएं
थिंकिंग की सुविधाएं, 4, 3, और 2.5 सीरीज़ के सभी मॉडल पर काम करती हैं. मॉडल की सभी क्षमताओं के बारे में, मॉडल की खास जानकारी वाले पेज पर जाकर जाना जा सकता है.
थिंकिंग मॉडल, Gemini के सभी टूल और सुविधाओं के साथ काम करते हैं. इससे मॉडल, बाहरी सिस्टम के साथ इंटरैक्ट कर सकते हैं, कोड को एक्ज़ीक्यूट कर सकते हैं या रीयल-टाइम जानकारी ऐक्सेस कर सकते हैं. साथ ही, नतीजों को अपनी रीज़निंग और फ़ाइनल जवाब में शामिल कर सकते हैं.
[थिंकिंग कुकबुक][Colab] में, सूझ-बूझ वाले मॉडल के साथ टूल इस्तेमाल करने के उदाहरण देखे जा सकते हैं.
आगे क्या करना है?
- OpenAI के साथ काम करने की सुविधा के बारे में हमारी गाइड में, थिंकिंग की सुविधा के बारे में जानकारी दी गई है.
[Colab]: https://colab.sandbox.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Get_started_thinking.ipynb