Gemini ভাবছে

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())
}

বিশ্রাম

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 ছবি 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-এর যোগফল ১,০৪৮,৫৭৬ টোকেনের বেশি হলে, 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 ব্যবহার করে আপনি ক্লায়েন্ট লুপ চালাতে পারেন। কোডের উদাহরণের জন্য লং ডিকোড দেখুন।

বাজেট সম্পর্কে চিন্তা করা

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())
}

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 হল স্টেটলেস, তাই মডেল প্রতিটি 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-র চিন্তার সারসংক্ষেপ যত্ন সহকারে বিশ্লেষণ করা সহায়ক হতে পারে। এটি কীভাবে টাস্কটি ভেঙেছে এবং সিদ্ধান্তে পৌঁছেছে তা আপনি দেখতে পাবেন এবং সঠিক ফলাফল পাওয়ার জন্য সেই তথ্য ব্যবহার করতে পারবেন।

  • যুক্তি দেওয়ার ক্ষেত্রে নির্দেশিকা প্রদান করা: আপনি যদি বিশেষ করে দীর্ঘ আউটপুট আশা করেন, তাহলে মডেলের ব্যবহার করা চিন্তাভাবনার পরিমাণ সীমিত করতে আপনার প্রম্পটে নির্দেশিকা প্রদান করতে চাইতে পারেন। এটি আপনাকে উত্তরের জন্য আরও বেশি টোকেন আউটপুট রিজার্ভ করতে দেয়।

টাস্কের জটিলতা

  • সহজ টাস্ক (Thinking বন্ধ থাকতে পারে): সোজাসুজি অনুরোধের ক্ষেত্রে যেখানে জটিল রিজনিংয়ের প্রয়োজন নেই, যেমন তথ্য খুঁজে বের করা বা শ্রেণিবিভাগ করা, সেখানে Thinking-এর প্রয়োজন নেই। যেমন:
    • "DeepMind কোথায় প্রতিষ্ঠিত হয়েছিল?"
    • "এই ইমেলে কি মিটিংয়ের জন্য অনুরোধ করা হয়েছে নাকি শুধু তথ্য দেওয়া হয়েছে?"
  • মাঝারি টাস্ক (ডিফল্ট/কিছু চিন্তাভাবনা): অনেক সাধারণ অনুরোধের ক্ষেত্রে ধাপে ধাপে প্রসেসিং বা আরও গভীর বোঝার প্রয়োজন হয়। Gemini নমনীয়ভাবে এই ধরনের টাস্কের জন্য চিন্তাশক্তি ব্যবহার করতে পারে:
    • সালোকসংশ্লেষ ও বড় হয়ে ওঠার মধ্যে তুলনা করো।
    • ইলেকট্রিক গাড়ি ও হাইব্রিড গাড়ির মধ্যে তুলনা ও পার্থক্য দেখাও।
  • কঠিন টাস্ক (সর্বাধিক চিন্তাভাবনা করার ক্ষমতা): সত্যিই জটিল চ্যালেঞ্জের জন্য, যেমন জটিল গণিতের সমস্যা বা কোডিং টাস্ক সমাধান করা, আমরা চিন্তাভাবনার বাজেট বেশি সেট করার সাজেশন দিই। এই ধরনের টাস্কের জন্য মডেলকে তার সম্পূর্ণ যুক্তি ও পরিকল্পনা সংক্রান্ত ক্ষমতা ব্যবহার করতে হয়। উত্তর দেওয়ার আগে প্রায়ই এতে অনেক ইন্টার্নাল ধাপ থাকে। যেমন:
    • AIME 2025-এর ১ নম্বর সমস্যার সমাধান করো: b > 9-এর জন্য সব পূর্ণসংখ্যা বেসের যোগফল খুঁজে বের করো যার জন্য 17b হল 97b-এর একটি বিভাজক।
    • ব্যবহারকারীর যাচাইকরণ সহ রিয়েল-টাইম স্টক মার্কেট ডেটা ভিজ্যুয়ালাইজ করে এমন একটি ওয়েব অ্যাপ্লিকেশনের জন্য Python কোড লেখো। যতটা সম্ভব দক্ষ করে তুলুন।

যেসব মডেল, টুল ও ক্ষমতা কাজ করে

Thinking ফিচার সব 4, 3 এবং 2.5 সিরিজের মডেলে কাজ করে। আপনি মডেল ওভারভিউ পৃষ্ঠায় সব মডেলের ক্ষমতা দেখতে পাবেন।

থিঙ্কিং মডেল Gemini-র সব টুল ও ক্ষমতার সাথে কাজ করে। এটি মডেলকে এক্সটার্নাল সিস্টেমের সাথে ইন্টার‍্যাক্ট করতে, কোড এক্সিকিউট করতে বা রিয়েল-টাইম তথ্য অ্যাক্সেস করতে দেয়, ফলাফলকে তাদের যুক্তি ও চূড়ান্ত উত্তরে অন্তর্ভুক্ত করে।

আপনি [Thinking cookbook][Colab]-এ থিঙ্কিং মডেলের সাথে টুল ব্যবহার করার উদাহরণ দেখতে পারেন।

এরপরে কী?

[Colab]: https://colab.sandbox.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Get_started_thinking.ipynb