Gemini ভাবছে

Gemini 3 ও 2.5 সিরিজের মডেল ইন্টার্নাল "থিঙ্কিং প্রসেস" ব্যবহার করে যা তাদের রিজনিং ও মাল্টি-স্টেপ প্ল্যানিংয়ের ক্ষমতাকে উল্লেখযোগ্যভাবে উন্নত করে। এর ফলে, কোডিং, উন্নত গণিত ও ডেটা বিশ্লেষণের মতো জটিল টাস্কের ক্ষেত্রে এগুলি অত্যন্ত কার্যকর হয়ে ওঠে।

এই গাইড আপনাকে দেখায় যে কীভাবে 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 3)

Gemini 3 মডেল ও তার পরবর্তী যেকোনও ভার্সনের জন্য সাজেস্ট করা thinkingLevel প্যারামিটার, আপনাকে রিজনিং আচরণ কন্ট্রোল করতে দেয়।

নিচের সারণীতে প্রতিটি মডেলের ধরনের জন্য thinkingLevel সেটিংসের বিবরণ দেওয়া হল:

থিঙ্কিং লেভেল Gemini 3.8 Flash Gemini 3.6 Flash Gemini 3.1 Pro 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())
}

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 3.1 Pro-এর জন্য থিঙ্কিং বন্ধ করতে পারবেন না। এছাড়াও, Gemini 3 Flash ও Flash-Lite সম্পূর্ণ থিঙ্কিং-অফ মোডে কাজ করে না। আপনি থিঙ্কিং লেভেল উল্লেখ না করলে, Gemini, Gemini 3 মডেলের ডিফল্ট থিঙ্কিং লেভেল ব্যবহার করবে (যেমন, Gemini 3.1 Pro-এর জন্য "high" এবং 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 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 3 মডেল সব ধরনের পার্টের জন্য থট সিগনেচার রিটার্ন করতে পারে। আমরা সাজেস্ট করি যে আপনি সবসময় সব স্বাক্ষর যেভাবে পেয়েছেন সেভাবেই ফেরত দিন, তবে ফাংশন কলিং স্বাক্ষরের ক্ষেত্রে এটি প্রয়োজনীয়। আরও জানতে Thought Signatures পৃষ্ঠাটি পড়ুন।

ফাংশন কলিংয়ের ক্ষেত্রে বিবেচনা করার মতো অন্যান্য ব্যবহারের সীমাবদ্ধতা:

  • উত্তরের অন্যান্য অংশের মধ্যে থেকে মডেলের সিগনেচার রিটার্ন করা হয়, যেমন, ফাংশন কলিং বা টেক্সট পার্ট। সম্পূর্ণ উত্তরটি ফেরত দাও এবং পরবর্তী ধাপে মডেলকে সব অংশ ফেরত দাও।
  • স্বাক্ষর সহ অংশগুলি একসাথে কনক্যাটেনেট করবেন না।
  • স্বাক্ষর সহ একটি পার্টকে স্বাক্ষর ছাড়া অন্য পার্টের সাথে মার্জ করবেন না।

দাম

'থিঙ্কিং' চালু করা থাকলে, উত্তরের দাম হল আউটপুট টোকেন ও থিঙ্কিং টোকেনের যোগফল। আপনি 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 কোড লেখো। যতটা সম্ভব দক্ষ করে তুলুন।

কাজ করে এমন মডেল, টুল ও ক্ষমতা

থিংকিং ফিচারটি ৩ ও ২.৫ সিরিজের সব মডেলে কাজ করে। আপনি মডেল ওভারভিউ পৃষ্ঠায় সব মডেলের ক্ষমতা দেখতে পাবেন।

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

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

এরপরে কী?

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