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)
জাভাস্ক্রিপ্ট
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()
জাভাস্ক্রিপ্ট
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
জাভাস্ক্রিপ্ট
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)
জাভাস্ক্রিপ্ট
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())
}
বিশ্রাম
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
max_output_tokens
জেনারেট করার প্যারামিটার, কোনও উত্তর কতগুলি টোকেন জেনারেট করতে পারবে তার সর্বাধিক সংখ্যা সেট করে,
এর মধ্যে চিন্তামূলক টোকেনও অন্তর্ভুক্ত।
সেট করা হলে, এই প্যারামিটারটি ইনফ্রাস্ট্রাকচার দ্বারা প্রয়োগ করা একটি হার্ড কাটঅফ হিসাবে কাজ করে
মডেল কীভাবে তার থিঙ্কিং বাজেট বরাদ্দ করে তা পরিবর্তন না করেই
(thinking_level)।
রিজনিং করার সময় মডেল এই সীমায় পৌঁছে গেলে, এটি
finish_reason: MAX_TOKENS-এর সাথে জেনারেট করা বন্ধ করে দেয় এবং ট্রাঙ্কেট করা বা খালি আউটপুট দেখায় (যদিও
জেনারেট করা যেকোনও থিঙ্কিং টোকেনের জন্য বিলিং করা হয়)। উত্তর ছোট না করে খরচ বা লেটেন্সি কমাতে, ছোট max_output_tokens সেট করার পরিবর্তে thinking_level (low বা medium) কমান।
Gemini 4 মডেলের (gemini-4-argon) ক্ষেত্রে, নিম্নলিখিত কনটেক্সট ও আউটপুট সংক্রান্ত সীমা মনে রাখবেন:
- শেয়ার করা 1M কন্টেক্সট উইন্ডো: ইনপুট, থিঙ্কিং ও আউটপুট টোকেন একটি 1M-টোকেন কন্টেক্সট উইন্ডো (
1,048,576টোকেন) শেয়ার করে। আপনার ইনপুট টোকেন এবংmax_output_tokens-এর যোগফল 1,048,576 টোকেনের বেশি হলে, API অটোমেটিক আউটপুট সীমা কন্টেক্সট উইন্ডোর বাকি স্পেসে (1,048,576থেকে আপনার ইনপুট টোকেন বিয়োগ করে) সীমাবদ্ধ করে দেয়। - প্রতি-অনুরোধ আউটপুট ক্যাপ (৬৪ হাজার স্ট্রিমিং / ৩২ হাজার নন-স্ট্রিমিং) এবং দীর্ঘ ডিকোড (১ মিলিয়ন টোকেন পর্যন্ত): একটি স্ট্রিমিং অনুরোধ (
streamGenerateContent) সর্বাধিক65,536টোকেন এবং একটি নন-স্ট্রিমিং অনুরোধ (generateContent) সর্বাধিক32,768টোকেন রিটার্ন করে। প্রতি-অনুরোধ ক্যাপের (1,048,576টোকেন থেকে আপনার ইনপুট বাদ দিয়ে যা থাকে) বেশি জেনারেট করতে, ক্যাপের উপরেmax_output_tokensসেট করুন। লেটেস্ট Google GenAI SDK ডিফল্ট হিসেবে (automatic_continuation=True) হপ জুড়ে অটোমেটিক চলতে থাকে অথবাfinish_reason: "CONTINUATION"-এর মাধ্যমে হপ বন্ধ হয়ে গেলেcontinuation_tokenব্যবহার করে আপনি ক্লায়েন্ট লুপ চালাতে পারেন। কোডের উদাহরণের জন্য লং ডিকোড দেখুন।
Thinking budgets
Gemini 2.5 সিরিজের সাথে চালু করা thinkingBudget প্যারামিটার,
রিজনিংয়ের জন্য ব্যবহার করার জন্য নির্দিষ্ট সংখ্যক থিঙ্কিং টোকেন সম্পর্কে মডেলকে নির্দেশ দেয়।
প্রতিটি মডেলের ধরনের জন্য thinkingBudget কনফিগারেশন সংক্রান্ত বিবরণ নিচে দেওয়া হল।
thinkingBudget-এর মান ০ সেট করে আপনি থিঙ্কিং বন্ধ করতে পারবেন।
thinkingBudget-কে -১-এ সেট করলে ডায়নামিক থিঙ্কিং চালু হয়ে যায়, যার অর্থ হল, অনুরোধের জটিলতার উপর ভিত্তি করে মডেল বাজেট অ্যাডজাস্ট করবে।
| মডেল | ডিফল্ট সেটিং (চিন্তাভাবনা করার বাজেট সেট করা নেই) |
ব্যাপ্তি | থিঙ্কিং বন্ধ করুন | ডায়নামিক থিঙ্কিং চালু করুন |
|---|---|---|---|---|
| 2.5 Pro | ডায়নামিক চিন্তাভাবনা | 128 থেকে 32768 |
প্রযোজ্য নয়: থিঙ্কিং বন্ধ করা যাচ্ছে না | thinkingBudget = -1 (ডিফল্ট) |
| 2.5 Flash | ডায়নামিক চিন্তাভাবনা | 0 থেকে 24576 |
thinkingBudget = 0 |
thinkingBudget = -1 (ডিফল্ট) |
| 2.5 Flash প্রিভিউ | ডায়নামিক থিঙ্কিং | 0 থেকে 24576 |
thinkingBudget = 0 |
thinkingBudget = -1 (ডিফল্ট) |
| 2.5 Flash Lite | মডেল চিন্তা করে না | 512 থেকে 24576 |
thinkingBudget = 0 |
thinkingBudget = -1 |
| 2.5 Flash Lite প্রিভিউ | মডেলের কোনও নিজস্ব চিন্তা নেই | 512 থেকে 24576 |
thinkingBudget = 0 |
thinkingBudget = -1 |
| Robotics-ER 1.6 প্রিভিউ | ডায়নামিক চিন্তাভাবনা | 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)
জাভাস্ক্রিপ্ট
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())
}
বিশ্রাম
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 স্টেটলেস, তাই মডেল প্রতিটি 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)
জাভাস্ক্রিপ্ট
// ...
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)
থিঙ্কিং মডেল চূড়ান্ত উত্তরের কোয়ালিটি উন্নত করতে সম্পূর্ণ চিন্তাভাবনা জেনারেট করে এবং তারপর চিন্তাভাবনার প্রসেস সম্পর্কে ইনসাইট প্রদান করতে সারসংক্ষেপ আউটপুট করে। তাই, API থেকে শুধু সারসংক্ষেপ আউটপুট হিসেবে পাওয়া গেলেও, সারসংক্ষেপ তৈরি করার জন্য মডেলকে যতগুলি সম্পূর্ণ থট টোকেন জেনারেট করতে হয়, তার ভিত্তিতে মূল্য নির্ধারণ করা হয়।
টোকেন গণনা গাইড থেকে টোকেন সম্পর্কে আরও জানতে পারবেন।
পেশাদার পদ্ধতি
এই বিভাগে, থিঙ্কিং মডেল দক্ষতার সাথে ব্যবহার করার জন্য কিছু নির্দেশিকা অন্তর্ভুক্ত রয়েছে। সবসময়ের মতো, আমাদের প্রম্পট সংক্রান্ত নির্দেশিকা ও পেশাদার পদ্ধতি অনুসরণ করলে আপনি সেরা ফলাফল পাবেন।
ডিবাগিং ও স্টিয়ারিং
যুক্তি পর্যালোচনা করা: থিঙ্কিং মডেল থেকে আপনি প্রত্যাশিত উত্তর না পেলে, Gemini-র চিন্তাভাবনার সারসংক্ষেপ মনোযোগ সহকারে বিশ্লেষণ করলে তা সাহায্য করতে পারে। এটি কীভাবে টাস্কটি ভেঙেছে এবং তার সিদ্ধান্তে পৌঁছেছে তা আপনি দেখতে পারেন এবং সঠিক ফলাফলের দিকে সংশোধন করতে সেই তথ্য ব্যবহার করতে পারেন।
যুক্তি দেওয়ার ক্ষেত্রে নির্দেশিকা প্রদান করা: আপনি যদি বিশেষ করে দীর্ঘ আউটপুট আশা করেন, তাহলে মডেলের ব্যবহার করা চিন্তাভাবনার পরিমাণ সীমিত করতে আপনার প্রম্পটে নির্দেশিকা প্রদান করতে চাইতে পারেন। এর ফলে, আপনার উত্তরের জন্য আরও বেশি টোকেন আউটপুট রিজার্ভ করা যায়।
টাস্কের জটিলতা
- সহজ টাস্ক (চিন্তাভাবনা বন্ধ করা যেতে পারে): যেসব সরাসরি অনুরোধের ক্ষেত্রে
জটিল যুক্তি দেওয়ার প্রয়োজন নেই, যেমন, তথ্য সংগ্রহ করা বা
শ্রেণীবদ্ধ করা, সেগুলির ক্ষেত্রে চিন্তাভাবনার প্রয়োজন নেই। যেমন:
- "DeepMind কোথায় প্রতিষ্ঠিত হয়েছিল?"
- "এই ইমেলে কি মিটিংয়ের জন্য অনুরোধ করা হয়েছে নাকি শুধু তথ্য দেওয়া হয়েছে?"
- মাঝারি টাস্ক (ডিফল্ট/কিছু চিন্তাভাবনা): অনেক সাধারণ অনুরোধের ক্ষেত্রে
ধাপে ধাপে প্রসেসিং বা আরও গভীর বোঝার প্রয়োজন হয়। Gemini এই ধরনের টাস্কের জন্য
ফ্লেক্সিবলভাবে চিন্তাভাবনা করার ক্ষমতা ব্যবহার করতে পারে:
- সালোকসংশ্লেষ ও বড় হয়ে ওঠার মধ্যে তুলনা করো।
- ইলেকট্রিক গাড়ি ও হাইব্রিড গাড়ির মধ্যে তুলনা ও পার্থক্য দেখাও।
- কঠিন টাস্ক (সর্বাধিক চিন্তাশক্তি): জটিল গাণিতিক সমস্যা সমাধান করা বা কোডিং টাস্কের মতো
সত্যিই জটিল চ্যালেঞ্জের জন্য,
আমরা বেশি চিন্তাশক্তি বাজেট সেট করার সাজেশন দিই। এই ধরনের টাস্কের জন্য মডেলকে তার সম্পূর্ণ রিজনিং ও প্ল্যানিংয়ের ক্ষমতা ব্যবহার করতে হয়, প্রায়শই উত্তর দেওয়ার আগে অনেক ইন্টার্নাল স্টেপ নিতে হয়। এখানে কিছু উদাহরণ দেওয়া হল:
- AIME 2025-এর ১ নম্বর সমস্যার সমাধান করো: এমন সব পূর্ণসংখ্যা ভিত্তি b > 9-এর যোগফল নির্ণয় করো যেখানে 17b হল 97b-এর একটি বিভাজক।
- ব্যবহারকারী যাচাইকরণ সহ রিয়েল-টাইম স্টক মার্কেট ডেটা ভিজ্যুয়ালাইজ করে এমন একটি ওয়েব অ্যাপ্লিকেশনের জন্য Python কোড লেখো। যতটা সম্ভব দক্ষ করে তুলুন।
যেসব মডেল, টুল ও ক্ষমতা কাজ করে
4, 3 ও 2.5 সিরিজের সব মডেলে থিঙ্কিং ফিচার কাজ করে। আপনি মডেল ওভারভিউ পৃষ্ঠায় সব মডেলের ক্ষমতা দেখতে পাবেন।
থিঙ্কিং মডেল Gemini-র সব টুল ও ক্ষমতার সাথে কাজ করে। এর ফলে মডেলগুলি এক্সটার্নাল সিস্টেমের সাথে ইন্টার্যাক্ট করতে, কোড এক্সিকিউট করতে বা রিয়েল-টাইম তথ্য অ্যাক্সেস করতে পারে এবং ফলাফলকে তাদের যুক্তি ও চূড়ান্ত উত্তরে অন্তর্ভুক্ত করতে পারে।
আপনি [Thinking cookbook][Colab]-এ থিঙ্কিং মডেলের সাথে টুল ব্যবহার করার উদাহরণ দেখতে পারেন।
এরপরে কী?
- Thinking কভারেজ আমাদের OpenAI Compatibility গাইডে উপলভ্য।
[Colab]: https://colab.sandbox.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Get_started_thinking.ipynb