জেমিনি ৩ হলো আমাদের এখন পর্যন্ত সবচেয়ে বুদ্ধিমান মডেল পরিবার, যা অত্যাধুনিক যুক্তির ভিত্তির ওপর নির্মিত। এটি এজেন্টিক ওয়ার্কফ্লো, স্বায়ত্তশাসিত কোডিং এবং জটিল মাল্টিমোডাল কাজ আয়ত্ত করার মাধ্যমে যেকোনো ধারণাকে বাস্তবে রূপ দেওয়ার জন্য ডিজাইন করা হয়েছে। এই নির্দেশিকায় জেমিনি ৩ মডেল পরিবারের মূল বৈশিষ্ট্য এবং এর থেকে কীভাবে সর্বাধিক সুবিধা পাওয়া যায় তা আলোচনা করা হয়েছে।
মডেলটি কীভাবে উন্নত যুক্তি, স্বয়ংক্রিয় কোডিং এবং জটিল মাল্টিমোডাল কাজগুলো সামলায়, তা দেখতে আমাদের জেমিনি ৩ অ্যাপের সংগ্রহটি ঘুরে দেখুন।
কয়েকটি কোড লাইন দিয়েই শুরু করুন:
পাইথন
from google import genai
client = genai.Client()
response = client.models.generate_content(
model="gemini-3.1-pro-preview",
contents="Find the race condition in this multi-threaded C++ snippet: [code here]",
)
print(response.text)
জাভাস্ক্রিপ্ট
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
async function run() {
const response = await ai.models.generateContent({
model: "gemini-3.1-pro-preview",
contents: "Find the race condition in this multi-threaded C++ snippet: [code here]",
});
console.log(response.text);
}
run();
বিশ্রাম
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-pro-preview:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts": [{"text": "Find the race condition in this multi-threaded C++ snippet: [code here]"}]
}]
}'
জেমিনি ৩ সিরিজের সাথে পরিচিত হন
জেমিনি ৩.১ প্রো এমন জটিল কাজের জন্য সর্বোত্তম, যেগুলোর জন্য ব্যাপক বিশ্ব জ্ঞান এবং বিভিন্ন মাধ্যমে উন্নত যুক্তিবোধের প্রয়োজন হয়।
জেমিনি ৩ ফ্ল্যাশ হলো আমাদের ৩-সিরিজের সর্বশেষ মডেল, যা ফ্ল্যাশের গতি ও মূল্যে প্রো-লেভেলের ইন্টেলিজেন্স প্রদান করে।
ন্যানো ব্যানানা প্রো (জেমিনি ৩ প্রো ইমেজ নামেও পরিচিত) হলো আমাদের সর্বোচ্চ মানের ইমেজ তৈরির মডেল, এবং ন্যানো ব্যানানা ২ (জেমিনি ৩.১ ফ্ল্যাশ ইমেজ নামেও পরিচিত) হলো এর অধিক ধারণক্ষমতা, উচ্চ দক্ষতা ও কম দামের সমতুল্য মডেল।
জেমিনি ৩.১ ফ্ল্যাশ-লাইট হলো আমাদের সবচেয়ে নির্ভরযোগ্য মডেল, যা খরচ-সাশ্রয়ী এবং অধিক পরিমাণে কাজ করার জন্য নির্মিত।
সকল জেমিনি ৩ মডেল বর্তমানে প্রিভিউ পর্যায়ে রয়েছে।
| মডেল আইডি | প্রসঙ্গ উইন্ডো (প্রবেশ / প্রস্থান) | জ্ঞানের সীমাবদ্ধতা | মূল্য নির্ধারণ (ইনপুট / আউটপুট)* |
|---|---|---|---|
| gemini-3.1-flash-lite-preview | ১এম / ৬৪কে | জানুয়ারী ২০২৫ | $০.২৫ (লেখা, ছবি, ভিডিও), $০.৫০ (অডিও) / $১.৫০ |
| জেমিনি-৩.১-ফ্ল্যাশ-ইমেজ-প্রিভিউ | ১২৮ হাজার / ৩২ হাজার | জানুয়ারী ২০২৫ | $০.২৫ (টেক্সট ইনপুট) / $০.০৬৭ (ইমেজ আউটপুট) |
| জেমিনি-৩.১-প্রো-প্রিভিউ | ১এম / ৬৪কে | জানুয়ারী ২০২৫ | $২ / $১২ (<২০০ হাজার টোকেন) $৪ / $১৮ (>২ লক্ষ টোকেন) |
| জেমিনি-৩-ফ্ল্যাশ-প্রিভিউ | ১এম / ৬৪কে | জানুয়ারী ২০২৫ | $০.৫০ / $৩ |
| জেমিনি-৩-প্রো-ইমেজ-প্রিভিউ | ৬৫ হাজার / ৩২ হাজার | জানুয়ারী ২০২৫ | $২ (টেক্সট ইনপুট) / $০.১৩৪ (ইমেজ আউটপুট)** |
* অন্যথায় উল্লেখ না থাকলে, মূল্য প্রতি ১০ লক্ষ টোকেনের জন্য প্রযোজ্য। ** ছবির মূল্য রেজোলিউশন অনুযায়ী পরিবর্তিত হয়। বিস্তারিত জানতে মূল্য তালিকা দেখুন।
বিস্তারিত সীমা, মূল্য এবং অতিরিক্ত তথ্যের জন্য মডেল পৃষ্ঠাটি দেখুন।
জেমিনি ৩-এর নতুন এপিআই বৈশিষ্ট্য
জেমিনি ৩-এ নতুন কিছু প্যারামিটার যুক্ত করা হয়েছে, যা ডেভেলপারদের ল্যাটেন্সি, কস্ট এবং মাল্টিমোডাল ফিডেলিটির ওপর আরও বেশি নিয়ন্ত্রণ দেবে।
চিন্তার স্তর
জেমিনি ৩ সিরিজের মডেলগুলো প্রম্পটের মাধ্যমে যুক্তি দিয়ে চিন্তা করার জন্য ডিফল্টরূপে ডাইনামিক থিংকিং ব্যবহার করে। আপনি thinking_level প্যারামিটারটি ব্যবহার করতে পারেন, যা একটি প্রতিক্রিয়া তৈরি করার আগে মডেলটির অভ্যন্তরীণ যুক্তি প্রক্রিয়ার সর্বোচ্চ গভীরতা নিয়ন্ত্রণ করে। জেমিনি ৩ এই স্তরগুলোকে কঠোর টোকেন গ্যারান্টি হিসেবে না দেখে, চিন্তার জন্য আপেক্ষিক সুযোগ হিসেবে বিবেচনা করে।
যদি thinking_level নির্দিষ্ট করা না থাকে, তাহলে Gemini 3 ডিফল্টরূপে high থাকবে। যখন জটিল যুক্তির প্রয়োজন হয় না, তখন দ্রুততর এবং কম-বিলম্বের প্রতিক্রিয়ার জন্য, আপনি মডেলটির thinking level-কে low তে সীমাবদ্ধ করতে পারেন।
| চিন্তার স্তর | জেমিনি ৩.১ প্রো | জেমিনি ৩.১ ফ্ল্যাশ-লাইট | জেমিনি ৩ ফ্ল্যাশ | বর্ণনা |
|---|---|---|---|---|
minimal | সমর্থিত নয় | সমর্থিত (ডিফল্ট) | সমর্থিত | বেশিরভাগ কোয়েরির জন্য এটি 'চিন্তাহীন' সেটিংয়ের সাথে মেলে। জটিল কোডিং কাজের জন্য মডেলটি খুব কম চিন্তা করতে পারে। চ্যাট বা উচ্চ থ্রুপুট অ্যাপ্লিকেশনগুলির জন্য এটি ল্যাটেন্সি কমিয়ে আনে। উল্লেখ্য, minimal মানেই যে চিন্তা পুরোপুরি বন্ধ থাকবে, তা নয়। |
low | সমর্থিত | সমর্থিত | সমর্থিত | লেটেন্সি ও খরচ কমায়। সাধারণ নির্দেশনা অনুসরণ, চ্যাট বা উচ্চ-ক্ষমতাসম্পন্ন অ্যাপ্লিকেশনের জন্য সর্বোত্তম। |
medium | সমর্থিত | সমর্থিত | সমর্থিত | অধিকাংশ কাজের জন্য ভারসাম্যপূর্ণ চিন্তাভাবনা। |
high | সমর্থিত (ডিফল্ট, ডাইনামিক) | সমর্থিত (গতিশীল) | সমর্থিত (ডিফল্ট, ডাইনামিক) | যুক্তির গভীরতা সর্বাধিক করে। মডেলটির প্রথম (চিন্তাবিহীন) আউটপুট টোকেনে পৌঁছাতে উল্লেখযোগ্যভাবে বেশি সময় লাগতে পারে, কিন্তু আউটপুটটি আরও সতর্কভাবে যুক্তিযুক্ত হবে। |
পাইথন
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="gemini-3.1-pro-preview",
contents="How does AI work?",
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(thinking_level="low")
),
)
print(response.text)
জাভাস্ক্রিপ্ট
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const response = await ai.models.generateContent({
model: "gemini-3.1-pro-preview",
contents: "How does AI work?",
config: {
thinkingConfig: {
thinkingLevel: "low",
}
},
});
console.log(response.text);
বিশ্রাম
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-pro-preview:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts": [{"text": "How does AI work?"}]
}],
"generationConfig": {
"thinkingConfig": {
"thinkingLevel": "low"
}
}
}'
মিডিয়া রেজোলিউশন
জেমিনি ৩, media_resolution প্যারামিটারের মাধ্যমে মাল্টিমোডাল ভিশন প্রসেসিংয়ের উপর সূক্ষ্ম নিয়ন্ত্রণ নিয়ে এসেছে। উচ্চতর রেজোলিউশন সূক্ষ্ম লেখা পড়া বা ছোট ছোট বিবরণ শনাক্ত করার ক্ষেত্রে মডেলের সক্ষমতা বাড়ায়, কিন্তু এর ফলে টোকেনের ব্যবহার এবং ল্যাটেন্সি বৃদ্ধি পায়। media_resolution প্যারামিটারটি প্রতিটি ইনপুট ইমেজ বা ভিডিও ফ্রেমের জন্য বরাদ্দকৃত সর্বোচ্চ সংখ্যক টোকেন নির্ধারণ করে।
এখন আপনি প্রতিটি মিডিয়া অংশের জন্য আলাদাভাবে অথবা বিশ্বব্যাপী ( generation_config মাধ্যমে) রেজোলিউশন media_resolution_low , media_resolution_medium , media_resolution_high বা media_resolution_ultra_high এ সেট করতে পারেন (আল্ট্রা হাই-এর জন্য বিশ্বব্যাপী বিকল্পটি উপলব্ধ নয়)। যদি নির্দিষ্ট করা না থাকে, তাহলে মডেলটি মিডিয়ার ধরনের উপর ভিত্তি করে সর্বোত্তম ডিফল্ট মান ব্যবহার করবে।
প্রস্তাবিত সেটিংস
| মিডিয়া টাইপ | প্রস্তাবিত সেটিং | সর্বোচ্চ টোকেন | ব্যবহারের নির্দেশিকা |
|---|---|---|---|
| ছবি | media_resolution_high | ১১২০ | সর্বোচ্চ গুণমান নিশ্চিত করতে অধিকাংশ চিত্র বিশ্লেষণ কাজের জন্য এটি সুপারিশ করা হয়। |
| পিডিএফ | media_resolution_medium | ৫৬০ | ডকুমেন্ট বোঝার জন্য সর্বোত্তম; এর গুণমান সাধারণত medium স্থির হয়ে যায়। সাধারণ ডকুমেন্টের ক্ষেত্রে, স্তর বাড়িয়ে high করলে OCR ফলাফলের উন্নতি খুব কমই হয়। |
| ভিডিও (সাধারণ) | media_resolution_low (অথবা media_resolution_medium ) | ৭০ (প্রতি ফ্রেমে) | দ্রষ্টব্য: ভিডিওর ক্ষেত্রে, কনটেক্সট ব্যবহার অপ্টিমাইজ করার জন্য low এবং medium সেটিংসকে একইভাবে (৭০ টোকেন) বিবেচনা করা হয়। বেশিরভাগ অ্যাকশন শনাক্তকরণ এবং বর্ণনার কাজের জন্য এটি যথেষ্ট। |
| ভিডিও (লেখা-বহুল) | media_resolution_high | ২৮০ (প্রতি ফ্রেমে) | শুধুমাত্র তখনই প্রয়োজন হয়, যখন ব্যবহারের ক্ষেত্রে ঘন পাঠ্য (OCR) অথবা ভিডিও ফ্রেমের মধ্যে থাকা সূক্ষ্ম বিবরণ পড়ার প্রয়োজন হয়। |
পাইথন
from google import genai
from google.genai import types
import base64
# The media_resolution parameter is currently only available in the v1alpha API version.
client = genai.Client(http_options={'api_version': 'v1alpha'})
response = client.models.generate_content(
model="gemini-3.1-pro-preview",
contents=[
types.Content(
parts=[
types.Part(text="What is in this image?"),
types.Part(
inline_data=types.Blob(
mime_type="image/jpeg",
data=base64.b64decode("..."),
),
media_resolution={"level": "media_resolution_high"}
)
]
)
]
)
print(response.text)
জাভাস্ক্রিপ্ট
import { GoogleGenAI } from "@google/genai";
// The media_resolution parameter is currently only available in the v1alpha API version.
const ai = new GoogleGenAI({ apiVersion: "v1alpha" });
async function run() {
const response = await ai.models.generateContent({
model: "gemini-3.1-pro-preview",
contents: [
{
parts: [
{ text: "What is in this image?" },
{
inlineData: {
mimeType: "image/jpeg",
data: "...",
},
mediaResolution: {
level: "media_resolution_high"
}
}
]
}
]
});
console.log(response.text);
}
run();
বিশ্রাম
curl "https://generativelanguage.googleapis.com/v1alpha/models/gemini-3.1-pro-preview:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts": [
{ "text": "What is in this image?" },
{
"inlineData": {
"mimeType": "image/jpeg",
"data": "..."
},
"mediaResolution": {
"level": "media_resolution_high"
}
}
]
}]
}'
তাপমাত্রা
সকল জেমিনি ৩ মডেলের জন্য, আমরা তাপমাত্রা প্যারামিটারটি এর ডিফল্ট মান 1.0 এ রাখার জন্য দৃঢ়ভাবে সুপারিশ করছি।
পূর্ববর্তী মডেলগুলিতে সৃজনশীলতা বনাম নিয়তিবাদের মধ্যে ভারসাম্য রক্ষার জন্য টেম্পারেচার টিউনিংয়ের মাধ্যমে প্রায়শই সুবিধা পাওয়া গেলেও, জেমিনি ৩-এর যুক্তিনির্ভর ক্ষমতা ডিফল্ট সেটিংয়ের জন্যই অপ্টিমাইজ করা হয়েছে। টেম্পারেচার পরিবর্তন করলে (১.০-এর নিচে সেট করলে) অপ্রত্যাশিত আচরণ দেখা দিতে পারে, যেমন লুপ তৈরি হওয়া বা পারফরম্যান্সের অবনতি, বিশেষ করে জটিল গাণিতিক বা যুক্তিনির্ভর কাজগুলিতে।
চিন্তার স্বাক্ষর
এপিআই কল জুড়ে যুক্তির প্রেক্ষাপট বজায় রাখতে জেমিনি ৩ ‘থট সিগনেচার’ ব্যবহার করে। এই সিগনেচারগুলো হলো মডেলের অভ্যন্তরীণ চিন্তন প্রক্রিয়ার এনক্রিপ্টেড উপস্থাপনা। মডেলটি যাতে তার যুক্তির ক্ষমতা বজায় রাখে, তা নিশ্চিত করতে আপনাকে অবশ্যই আপনার অনুরোধে এই সিগনেচারগুলো ঠিক যেভাবে পেয়েছেন সেভাবেই মডেলের কাছে ফেরত পাঠাতে হবে।
ফাংশন কলিং (কঠোর): এপিআই "কারেন্ট টার্ন"-এর উপর কঠোর যাচাইকরণ প্রয়োগ করে। সিগনেচার অনুপস্থিত থাকলে একটি 400 এরর দেখা দেবে।
টেক্সট/চ্যাট: যাচাইকরণ কঠোরভাবে প্রয়োগ করা হয় না, তবে স্বাক্ষর বাদ দিলে মডেলের যুক্তি এবং উত্তরের গুণমান হ্রাস পাবে।
ইমেজ তৈরি/সম্পাদনা (কঠোর) : এপিআইটি একটি
thoughtSignatureসহ মডেলের সমস্ত অংশের উপর কঠোর যাচাইকরণ প্রয়োগ করে। সিগনেচার না থাকলে একটি 400 এরর দেখা দেবে।
ফাংশন কলিং (কঠোর বৈধতা)
যখন জেমিনি একটি functionCall তৈরি করে, তখন পরবর্তী টার্নে টুলটির আউটপুট সঠিকভাবে প্রসেস করার জন্য এটি thoughtSignature এর উপর নির্ভর করে। "Current Turn"-এর মধ্যে শেষ স্ট্যান্ডার্ড ইউজার text মেসেজটির পর থেকে ঘটে যাওয়া সমস্ত মডেল ( functionCall ) এবং ইউজার ( functionResponse ) ধাপ অন্তর্ভুক্ত থাকে।
- একক ফাংশন কল:
functionCallঅংশে একটি সিগনেচার থাকে। আপনাকে অবশ্যই এটি রিটার্ন করতে হবে। - সমান্তরাল ফাংশন কল: তালিকার শুধুমাত্র প্রথম
functionCallঅংশটিতে সিগনেচার থাকবে। আপনাকে অবশ্যই প্রাপ্ত অংশগুলি সঠিক ক্রমে ফেরত দিতে হবে। - বহু-ধাপ (ক্রমিক): যদি মডেলটি একটি টুলকে কল করে, একটি ফলাফল গ্রহণ করে এবং (একই টার্নের মধ্যে) অন্য একটি টুলকে কল করে, তবে উভয় ফাংশন কলেরই সিগনেচার থাকে। আপনাকে হিস্ট্রিতে থাকা সমস্ত সঞ্চিত সিগনেচার অবশ্যই ফেরত দিতে হবে।
টেক্সট এবং স্ট্রিমিং
সাধারণ চ্যাট বা টেক্সট তৈরির ক্ষেত্রে, স্বাক্ষরের উপস্থিতি নিশ্চিত নয়।
- নন-স্ট্রিমিং : প্রতিক্রিয়ার চূড়ান্ত অংশে একটি
thoughtSignatureথাকতে পারে, যদিও এটি সবসময় উপস্থিত থাকে না। যদি এটি ফেরত আসে, তবে সর্বোত্তম পারফরম্যান্স বজায় রাখতে আপনার সেটি ফেরত পাঠানো উচিত। - স্ট্রিমিং : যদি কোনো সিগনেচার তৈরি হয়, তবে তা একটি চূড়ান্ত চাঙ্কে আসতে পারে যেখানে টেক্সট অংশটি খালি থাকে। নিশ্চিত করুন যে আপনার স্ট্রিম পার্সার টেক্সট ফিল্ডটি খালি থাকলেও সিগনেচার পরীক্ষা করে।
ছবি তৈরি এবং সম্পাদনা
gemini-3-pro-image-preview এবং gemini-3.1-flash-image-preview এর ক্ষেত্রে, কথোপকথনমূলক সম্পাদনার জন্য থট সিগনেচার অত্যন্ত গুরুত্বপূর্ণ। যখন আপনি মডেলকে একটি ছবি পরিবর্তন করতে বলেন, তখন এটি মূল ছবিটির গঠন এবং যুক্তি বোঝার জন্য পূর্ববর্তী টার্নের thoughtSignature উপর নির্ভর করে।
- সম্পাদনা: উত্তরের মূল বক্তব্যের পরের প্রথম অংশে (
textবাinlineData) এবং এর পরবর্তী প্রতিটিinlineDataঅংশে স্বাক্ষর থাকা নিশ্চিত। ত্রুটি এড়াতে আপনাকে অবশ্যই এই সমস্ত স্বাক্ষর ফেরত দিতে হবে।
কোডের উদাহরণ
বহু-ধাপ ফাংশন কলিং (ক্রমিক)
ব্যবহারকারী এমন একটি প্রশ্ন করেন যার জন্য একবারে দুটি পৃথক ধাপ (ফ্লাইট চেক করা -> ট্যাক্সি বুক করা) সম্পন্ন করতে হয়।
ধাপ ১: মডেলটি ফ্লাইট টুলকে কল করে।
মডেলটি একটি স্বাক্ষর <Sig_A> ফেরত দেয়।
// Model Response (Turn 1, Step 1) { "role": "model", "parts": [ { "functionCall": { "name": "check_flight", "args": {...} }, "thoughtSignature": "<Sig_A>" // SAVE THIS } ] }
ধাপ ২: ব্যবহারকারী ফ্লাইটের ফলাফল পাঠান
মডেলটির চিন্তাধারা বজায় রাখতে আমাদের অবশ্যই <Sig_A> ফেরত পাঠাতে হবে।
// User Request (Turn 1, Step 2) [ { "role": "user", "parts": [{ "text": "Check flight AA100..." }] }, { "role": "model", "parts": [ { "functionCall": { "name": "check_flight", "args": {...} }, "thoughtSignature": "<Sig_A>" // REQUIRED } ] }, { "role": "user", "parts": [{ "functionResponse": { "name": "check_flight", "response": {...} } }] } ]
ধাপ ৩: মডেল ট্যাক্সি টুলকে কল করে
মডেলটি <Sig_A> এর মাধ্যমে ফ্লাইট বিলম্বের বিষয়টি মনে রাখে এবং এখন একটি ট্যাক্সি বুক করার সিদ্ধান্ত নেয়। এটি একটি নতুন সিগনেচার <Sig_B> তৈরি করে।
// Model Response (Turn 1, Step 3) { "role": "model", "parts": [ { "functionCall": { "name": "book_taxi", "args": {...} }, "thoughtSignature": "<Sig_B>" // SAVE THIS } ] }
ধাপ ৪: ব্যবহারকারী ট্যাক্সির ফলাফল পাঠান
পালাটি সম্পূর্ণ করতে, আপনাকে অবশ্যই সম্পূর্ণ চেইনটি ফেরত পাঠাতে হবে: <Sig_A> এবং <Sig_B> ।
// User Request (Turn 1, Step 4) [ // ... previous history ... { "role": "model", "parts": [ { "functionCall": { "name": "check_flight", ... }, "thoughtSignature": "<Sig_A>" } ] }, { "role": "user", "parts": [{ "functionResponse": {...} }] }, { "role": "model", "parts": [ { "functionCall": { "name": "book_taxi", ... }, "thoughtSignature": "<Sig_B>" } ] }, { "role": "user", "parts": [{ "functionResponse": {...} }] } ]
সমান্তরাল ফাংশন কলিং
ব্যবহারকারী জিজ্ঞাসা করেন: "প্যারিস ও লন্ডনের আবহাওয়া দেখুন।" মডেলটি একটি উত্তরে দুটি ফাংশন কল ফেরত দেয়।
// User Request (Sending Parallel Results) [ { "role": "user", "parts": [ { "text": "Check the weather in Paris and London." } ] }, { "role": "model", "parts": [ // 1. First Function Call has the signature { "functionCall": { "name": "check_weather", "args": { "city": "Paris" } }, "thoughtSignature": "<Signature_A>" }, // 2. Subsequent parallel calls DO NOT have signatures { "functionCall": { "name": "check_weather", "args": { "city": "London" } } } ] }, { "role": "user", "parts": [ // 3. Function Responses are grouped together in the next block { "functionResponse": { "name": "check_weather", "response": { "temp": "15C" } } }, { "functionResponse": { "name": "check_weather", "response": { "temp": "12C" } } } ] } ]
পাঠ্য/প্রাসঙ্গিক যুক্তি (কোনো যাচাইকরণ নেই)
ব্যবহারকারী এমন একটি প্রশ্ন করেন যার জন্য বাহ্যিক সরঞ্জাম ছাড়া প্রাসঙ্গিক যুক্তির প্রয়োজন হয়। যদিও এটি কঠোরভাবে যাচাই করা হয় না, সিগনেচার অন্তর্ভুক্ত করা মডেলটিকে পরবর্তী প্রশ্নগুলোর জন্য যুক্তির ধারা বজায় রাখতে সাহায্য করে।
// User Request (Follow-up question) [ { "role": "user", "parts": [{ "text": "What are the risks of this investment?" }] }, { "role": "model", "parts": [ { "text": "I need to calculate the risk step-by-step. First, I'll look at volatility...", "thoughtSignature": "<Signature_C>" // Recommended to include } ] }, { "role": "user", "parts": [{ "text": "Summarize that in one sentence." }] } ]
ছবি তৈরি ও সম্পাদনা
ইমেজ তৈরির জন্য সিগনেচারগুলো কঠোরভাবে যাচাই করা হয়। এগুলো প্রথম অংশে (টেক্সট বা ইমেজ) এবং পরবর্তী সমস্ত ইমেজ অংশে উপস্থিত থাকে। পরবর্তী ধাপে সবগুলোই ফেরত দিতে হবে।
// Model Response (Turn 1) { "role": "model", "parts": [ // 1. First part ALWAYS has a signature (even if text) { "text": "I will generate a cyberpunk city...", "thoughtSignature": "<Signature_D>" }, // 2. ALL InlineData (Image) parts ALWAYS have signatures { "inlineData": { ... }, "thoughtSignature": "<Signature_E>" }, ] } // User Request (Turn 2 - Requesting an Edit) { "contents": [ // History must include ALL signatures received { "role": "user", "parts": [{ "text": "Generate a cyberpunk city" }] }, { "role": "model", "parts": [ { "text": "...", "thoughtSignature": "<Signature_D>" }, { "inlineData": "...", "thoughtSignature": "<Signature_E>" }, ] }, // New User Prompt { "role": "user", "parts": [{ "text": "Make it daytime." }] } ] }
অন্যান্য মডেল থেকে স্থানান্তরিত হচ্ছে
যদি আপনি অন্য কোনো মডেল (যেমন, জেমিনি ২.৫) থেকে কোনো কনভারসেশন ট্রেস স্থানান্তর করেন অথবা এমন কোনো কাস্টম ফাংশন কল যুক্ত করেন যা জেমিনি ৩ দ্বারা তৈরি হয়নি, তাহলে আপনার একটি বৈধ সিগনেচার থাকবে না।
এই নির্দিষ্ট পরিস্থিতিগুলিতে কঠোর যাচাইকরণ এড়াতে, ফিল্ডটিতে এই নির্দিষ্ট ডামি স্ট্রিংটি পূরণ করুন: "thoughtSignature": "context_engineering_is_the_way to_go"
সরঞ্জাম সহ কাঠামোগত আউটপুট
জেমিনি ৩ মডেলগুলো আপনাকে স্ট্রাকচার্ড আউটপুট-এর সাথে বিল্ট-ইন টুলসমূহ, যেমন— গ্রাউন্ডিং উইথ গুগল সার্চ , ইউআরএল কনটেক্সট , কোড এক্সিকিউশন এবং ফাংশন কলিং, একত্রিত করার সুযোগ দেয়।
পাইথন
from google import genai
from google.genai import types
from pydantic import BaseModel, Field
from typing import List
class MatchResult(BaseModel):
winner: str = Field(description="The name of the winner.")
final_match_score: str = Field(description="The final match score.")
scorers: List[str] = Field(description="The name of the scorer.")
client = genai.Client()
response = client.models.generate_content(
model="gemini-3.1-pro-preview",
contents="Search for all details for the latest Euro.",
config={
"tools": [
{"google_search": {}},
{"url_context": {}}
],
"response_mime_type": "application/json",
"response_json_schema": MatchResult.model_json_schema(),
},
)
result = MatchResult.model_validate_json(response.text)
print(result)
জাভাস্ক্রিপ্ট
import { GoogleGenAI } from "@google/genai";
import { z } from "zod";
import { zodToJsonSchema } from "zod-to-json-schema";
const ai = new GoogleGenAI({});
const matchSchema = z.object({
winner: z.string().describe("The name of the winner."),
final_match_score: z.string().describe("The final score."),
scorers: z.array(z.string()).describe("The name of the scorer.")
});
async function run() {
const response = await ai.models.generateContent({
model: "gemini-3.1-pro-preview",
contents: "Search for all details for the latest Euro.",
config: {
tools: [
{ googleSearch: {} },
{ urlContext: {} }
],
responseMimeType: "application/json",
responseJsonSchema: zodToJsonSchema(matchSchema),
},
});
const match = matchSchema.parse(JSON.parse(response.text));
console.log(match);
}
run();
বিশ্রাম
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-pro-preview:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts": [{"text": "Search for all details for the latest Euro."}]
}],
"tools": [
{"googleSearch": {}},
{"urlContext": {}}
],
"generationConfig": {
"responseMimeType": "application/json",
"responseJsonSchema": {
"type": "object",
"properties": {
"winner": {"type": "string", "description": "The name of the winner."},
"final_match_score": {"type": "string", "description": "The final score."},
"scorers": {
"type": "array",
"items": {"type": "string"},
"description": "The name of the scorer."
}
},
"required": ["winner", "final_match_score", "scorers"]
}
}
}'
চিত্র তৈরি
জেমিনি ৩.১ ফ্ল্যাশ ইমেজ এবং জেমিনি ৩ প্রো ইমেজ আপনাকে টেক্সট প্রম্পট থেকে ছবি তৈরি ও সম্পাদনা করতে দেয়। এটি যুক্তির মাধ্যমে একটি প্রম্পট নিয়ে 'চিন্তা' করে এবং উচ্চ-মানের ছবি তৈরি করার আগে গুগল সার্চের উপর ভিত্তি করে রিয়েল-টাইম ডেটা—যেমন আবহাওয়ার পূর্বাভাস বা স্টক চার্ট—সংগ্রহ করতে পারে।
নতুন ও উন্নত সক্ষমতা:
- 4K ও টেক্সট রেন্ডারিং: 2K এবং 4K পর্যন্ত রেজোলিউশনে স্পষ্ট ও পাঠযোগ্য টেক্সট এবং ডায়াগ্রাম তৈরি করুন।
- বাস্তবভিত্তিক নির্মাণ: তথ্য যাচাই করতে এবং বাস্তব জগতের তথ্যের উপর ভিত্তি করে চিত্র তৈরি করতে
google_searchটুল ব্যবহার করুন। জেমিনি ৩.১ ফ্ল্যাশ ইমেজের জন্য গুগল ইমেজ সার্চের মাধ্যমে বাস্তবভিত্তিক নির্মাণ উপলব্ধ। - কথোপকথনমূলক সম্পাদনা: শুধুমাত্র পরিবর্তনের অনুরোধ করার মাধ্যমে একাধিকবার ছবি সম্পাদনা করা (যেমন, "পটভূমিটিকে সূর্যাস্তের মতো করে দিন")। এই কর্মপ্রক্রিয়াটি বিভিন্ন টার্নের মধ্যে দৃশ্যগত প্রেক্ষাপট বজায় রাখতে 'থট সিগনেচার'-এর উপর নির্ভর করে।
অ্যাস্পেক্ট রেশিও, এডিটিং ওয়ার্কফ্লো এবং কনফিগারেশন অপশন সম্পর্কে সম্পূর্ণ বিবরণের জন্য, ইমেজ জেনারেশন গাইডটি দেখুন।
পাইথন
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="gemini-3-pro-image-preview",
contents="Generate an infographic of the current weather in Tokyo.",
config=types.GenerateContentConfig(
tools=[{"google_search": {}}],
image_config=types.ImageConfig(
aspect_ratio="16:9",
image_size="4K"
)
)
)
image_parts = [part for part in response.parts if part.inline_data]
if image_parts:
image = image_parts[0].as_image()
image.save('weather_tokyo.png')
image.show()
জাভাস্ক্রিপ্ট
import { GoogleGenAI } from "@google/genai";
import * as fs from "node:fs";
const ai = new GoogleGenAI({});
async function run() {
const response = await ai.models.generateContent({
model: "gemini-3-pro-image-preview",
contents: "Generate a visualization of the current weather in Tokyo.",
config: {
tools: [{ googleSearch: {} }],
imageConfig: {
aspectRatio: "16:9",
imageSize: "4K"
}
}
});
for (const part of response.candidates[0].content.parts) {
if (part.inlineData) {
const imageData = part.inlineData.data;
const buffer = Buffer.from(imageData, "base64");
fs.writeFileSync("weather_tokyo.png", buffer);
}
}
}
run();
বিশ্রাম
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-image-preview:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts": [{"text": "Generate a visualization of the current weather in Tokyo."}]
}],
"tools": [{"googleSearch": {}}],
"generationConfig": {
"imageConfig": {
"aspectRatio": "16:9",
"imageSize": "4K"
}
}
}'
উদাহরণ প্রতিক্রিয়া

ছবি সহ কোড এক্সিকিউশন
জেমিনি ৩ ফ্ল্যাশ দৃষ্টিকে কেবল একটি স্থির দৃষ্টিপাত হিসেবে নয়, বরং একটি সক্রিয় অনুসন্ধান হিসেবে বিবেচনা করতে পারে। যুক্তি ও কোড সম্পাদনের সমন্বয়ে, মডেলটি একটি পরিকল্পনা তৈরি করে, এবং তারপর তার উত্তরগুলোকে দৃশ্যগতভাবে প্রতিষ্ঠিত করার জন্য ধাপে ধাপে ছবি জুম ইন, ক্রপ, টীকা যোগ বা অন্যভাবে পরিবর্তন করতে পাইথন কোড লেখে ও চালায়।
ব্যবহারের ক্ষেত্রসমূহ:
- জুম এবং পরিদর্শন: মডেলটি স্বয়ংক্রিয়ভাবে শনাক্ত করে যখন কোনো বিবরণ খুব ছোট হয় (যেমন, দূরবর্তী কোনো গেজ বা সিরিয়াল নম্বর পড়া), এবং সেই অংশটি ক্রপ করে উচ্চতর রেজোলিউশনে পুনরায় পরীক্ষা করার জন্য কোড লেখে।
- দৃশ্যমান গণিত ও প্লটিং: মডেলটি কোড ব্যবহার করে বহু-ধাপের গণনা চালাতে পারে (যেমন, একটি রসিদের প্রতিটি আইটেমের যোগফল বের করা, অথবা সংগৃহীত ডেটা থেকে একটি ম্যাটপ্লটলিব চার্ট তৈরি করা)।
- চিত্র টীকা: "এই জিনিসটি কোথায় রাখা উচিত?"-এর মতো স্থানিক প্রশ্নের উত্তর দেওয়ার জন্য মডেলটি সরাসরি ছবির উপর তীরচিহ্ন, বাউন্ডিং বক্স বা অন্যান্য টীকা আঁকতে পারে।
ভিজ্যুয়াল থিঙ্কিং সক্ষম করতে, কোড এক্সিকিউশনকে একটি টুল হিসেবে কনফিগার করুন। মডেলটি প্রয়োজনে স্বয়ংক্রিয়ভাবে কোড ব্যবহার করে ছবি পরিবর্তন করবে।
পাইথন
from google import genai
from google.genai import types
import requests
from PIL import Image
import io
image_path = "https://goo.gle/instrument-img"
image_bytes = requests.get(image_path).content
image = types.Part.from_bytes(data=image_bytes, mime_type="image/jpeg")
client = genai.Client()
response = client.models.generate_content(
model="gemini-3-flash-preview",
contents=[
image,
"Zoom into the expression pedals and tell me how many pedals are there?"
],
config=types.GenerateContentConfig(
tools=[types.Tool(code_execution=types.ToolCodeExecution)]
),
)
for part in response.candidates[0].content.parts:
if part.text is not None:
print(part.text)
if part.executable_code is not None:
print(part.executable_code.code)
if part.code_execution_result is not None:
print(part.code_execution_result.output)
if part.as_image() is not None:
display(Image.open(io.BytesIO(part.as_image().image_bytes)))
জাভাস্ক্রিপ্ট
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
async function main() {
const imageUrl = "https://goo.gle/instrument-img";
const response = await fetch(imageUrl);
const imageArrayBuffer = await response.arrayBuffer();
const base64ImageData = Buffer.from(imageArrayBuffer).toString("base64");
const result = await ai.models.generateContent({
model: "gemini-3-flash-preview",
contents: [
{
inlineData: {
mimeType: "image/jpeg",
data: base64ImageData,
},
},
{
text: "Zoom into the expression pedals and tell me how many pedals are there?",
},
],
config: {
tools: [{ codeExecution: {} }],
},
});
for (const part of result.candidates[0].content.parts) {
if (part.text) {
console.log("Text:", part.text);
}
if (part.executableCode) {
console.log("Code:", part.executableCode.code);
}
if (part.codeExecutionResult) {
console.log("Output:", part.codeExecutionResult.output);
}
}
}
main();
বিশ্রাম
IMG_URL="https://goo.gle/instrument-img"
MODEL="gemini-3-flash-preview"
MIME_TYPE=$(curl -sIL "$IMG_URL" | grep -i '^content-type:' | awk -F ': ' '{print $2}' | sed 's/\r$//' | head -n 1)
if [[ -z "$MIME_TYPE" || ! "$MIME_TYPE" == image/* ]]; then
MIME_TYPE="image/jpeg"
fi
if [[ "$(uname)" == "Darwin" ]]; then
IMAGE_B64=$(curl -sL "$IMG_URL" | base64 -b 0)
elif [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]; then
IMAGE_B64=$(curl -sL "$IMG_URL" | base64)
else
IMAGE_B64=$(curl -sL "$IMG_URL" | base64 -w0)
fi
curl "https://generativelanguage.googleapis.com/v1beta/models/$MODEL:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[
{
"inline_data": {
"mime_type":"'"$MIME_TYPE"'",
"data": "'"$IMAGE_B64"'"
}
},
{"text": "Zoom into the expression pedals and tell me how many pedals are there?"}
]
}],
"tools": [{"code_execution": {}}]
}'
ছবি সহ কোড এক্সিকিউশন সম্পর্কে আরও বিস্তারিত জানতে, কোড এক্সিকিউশন দেখুন।
মাল্টিমোডাল ফাংশন প্রতিক্রিয়া
মাল্টিমোডাল ফাংশন কলিং ব্যবহারকারীদের মাল্টিমোডাল অবজেক্ট সম্বলিত ফাংশন রেসপন্স দেওয়ার সুযোগ দেয়, যা মডেলের ফাংশন কলিং সক্ষমতার উন্নততর ব্যবহার নিশ্চিত করে। স্ট্যান্ডার্ড ফাংশন কলিং শুধুমাত্র টেক্সট-ভিত্তিক ফাংশন রেসপন্স সমর্থন করে:
পাইথন
from google import genai
from google.genai import types
import requests
client = genai.Client()
# This is a manual, two turn multimodal function calling workflow:
# 1. Define the function tool
get_image_declaration = types.FunctionDeclaration(
name="get_image",
description="Retrieves the image file reference for a specific order item.",
parameters={
"type": "object",
"properties": {
"item_name": {
"type": "string",
"description": "The name or description of the item ordered (e.g., 'instrument')."
}
},
"required": ["item_name"],
},
)
tool_config = types.Tool(function_declarations=[get_image_declaration])
# 2. Send a message that triggers the tool
prompt = "Show me the instrument I ordered last month."
response_1 = client.models.generate_content(
model="gemini-3-flash-preview",
contents=[prompt],
config=types.GenerateContentConfig(
tools=[tool_config],
)
)
# 3. Handle the function call
function_call = response_1.function_calls[0]
requested_item = function_call.args["item_name"]
print(f"Model wants to call: {function_call.name}")
# Execute your tool (e.g., call an API)
# (This is a mock response for the example)
print(f"Calling external tool for: {requested_item}")
function_response_data = {
"image_ref": {"$ref": "instrument.jpg"},
}
image_path = "https://goo.gle/instrument-img"
image_bytes = requests.get(image_path).content
function_response_multimodal_data = types.FunctionResponsePart(
inline_data=types.FunctionResponseBlob(
mime_type="image/jpeg",
display_name="instrument.jpg",
data=image_bytes,
)
)
# 4. Send the tool's result back
# Append this turn's messages to history for a final response.
history = [
types.Content(role="user", parts=[types.Part(text=prompt)]),
response_1.candidates[0].content,
types.Content(
role="user",
parts=[
types.Part.from_function_response(
name=function_call.name,
response=function_response_data,
parts=[function_response_multimodal_data]
)
],
)
]
response_2 = client.models.generate_content(
model="gemini-3-flash-preview",
contents=history,
config=types.GenerateContentConfig(
tools=[tool_config],
thinking_config=types.ThinkingConfig(include_thoughts=True)
),
)
print(f"\nFinal model response: {response_2.text}")
জাভাস্ক্রিপ্ট
import { GoogleGenAI, Type } from '@google/genai';
const client = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
// This is a manual, two turn multimodal function calling workflow:
// 1. Define the function tool
const getImageDeclaration = {
name: 'get_image',
description: 'Retrieves the image file reference for a specific order item.',
parameters: {
type: Type.OBJECT,
properties: {
item_name: {
type: Type.STRING,
description: "The name or description of the item ordered (e.g., 'instrument').",
},
},
required: ['item_name'],
},
};
const toolConfig = {
functionDeclarations: [getImageDeclaration],
};
// 2. Send a message that triggers the tool
const prompt = 'Show me the instrument I ordered last month.';
const response1 = await client.models.generateContent({
model: 'gemini-3-flash-preview',
contents: prompt,
config: {
tools: [toolConfig],
},
});
// 3. Handle the function call
const functionCall = response1.functionCalls[0];
const requestedItem = functionCall.args.item_name;
console.log(`Model wants to call: ${functionCall.name}`);
// Execute your tool (e.g., call an API)
// (This is a mock response for the example)
console.log(`Calling external tool for: ${requestedItem}`);
const functionResponseData = {
image_ref: { $ref: 'instrument.jpg' },
};
const imageUrl = "https://goo.gle/instrument-img";
const response = await fetch(imageUrl);
const imageArrayBuffer = await response.arrayBuffer();
const base64ImageData = Buffer.from(imageArrayBuffer).toString('base64');
const functionResponseMultimodalData = {
inlineData: {
mimeType: 'image/jpeg',
displayName: 'instrument.jpg',
data: base64ImageData,
},
};
// 4. Send the tool's result back
// Append this turn's messages to history for a final response.
const history = [
{ role: 'user', parts: [{ text: prompt }] },
response1.candidates[0].content,
{
role: 'tool',
parts: [
{
functionResponse: {
name: functionCall.name,
response: functionResponseData,
parts: [functionResponseMultimodalData],
},
},
],
},
];
const response2 = await client.models.generateContent({
model: 'gemini-3-flash-preview',
contents: history,
config: {
tools: [toolConfig],
thinkingConfig: { includeThoughts: true },
},
});
console.log(`\nFinal model response: ${response2.text}`);
বিশ্রাম
IMG_URL="https://goo.gle/instrument-img"
MIME_TYPE=$(curl -sIL "$IMG_URL" | grep -i '^content-type:' | awk -F ': ' '{print $2}' | sed 's/\r$//' | head -n 1)
if [[ -z "$MIME_TYPE" || ! "$MIME_TYPE" == image/* ]]; then
MIME_TYPE="image/jpeg"
fi
# Check for macOS
if [[ "$(uname)" == "Darwin" ]]; then
IMAGE_B64=$(curl -sL "$IMG_URL" | base64 -b 0)
elif [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]; then
IMAGE_B64=$(curl -sL "$IMG_URL" | base64)
else
IMAGE_B64=$(curl -sL "$IMG_URL" | base64 -w0)
fi
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-flash-preview:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
...,
{
"role": "user",
"parts": [
{
"functionResponse": {
"name": "get_image",
"response": {
"image_ref": {
"$ref": "instrument.jpg"
}
},
"parts": [
{
"inlineData": {
"displayName": "instrument.jpg",
"mimeType":"'"$MIME_TYPE"'",
"data": "'"$IMAGE_B64"'"
}
}
]
}
}
]
}
]
}'
অন্তর্নির্মিত সরঞ্জাম এবং ফাংশন কলিং একত্রিত করুন
জেমিনি ৩ একই এপিআই কলে বিল্ট-ইন টুল (যেমন গুগল সার্চ, ইউআরএল কনটেক্সট, এবং আরও অনেক কিছু ) এবং কাস্টম ফাংশন কলিং টুল ব্যবহারের সুযোগ দেয়, যা আরও জটিল ওয়ার্কফ্লো তৈরি করতে সাহায্য করে। টুল কম্বিনেশন পেজে এ বিষয়ে আরও জানুন।
পাইথন
from google import genai
from google.genai import types
client = genai.Client()
getWeather = {
"name": "getWeather",
"description": "Gets the weather for a requested city.",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "The city and state, e.g. Utqiaġvik, Alaska",
},
},
"required": ["city"],
},
}
response = client.models.generate_content(
model="gemini-3-flash-preview",
contents="What is the northernmost city in the United States? What's the weather like there today?",
config=types.GenerateContentConfig(
tools=[
types.Tool(
google_search=types.ToolGoogleSearch(), # Built-in tool
function_declarations=[getWeather] # Custom tool
),
],
include_server_side_tool_invocations=True
),
)
history = [
types.Content(
role="user",
parts=[types.Part(text="What is the northernmost city in the United States? What's the weather like there today?")]
),
response.candidates[0].content,
types.Content(
role="user",
parts=[types.Part(
function_response=types.FunctionResponse(
name="getWeather",
response={"response": "Very cold. 22 degrees Fahrenheit."},
id=response.candidates[0].content.parts[2].function_call.id
)
)]
)
]
response_2 = client.models.generate_content(
model="gemini-3-flash-preview",
contents=history,
config=types.GenerateContentConfig(
tools=[
types.Tool(
google_search=types.ToolGoogleSearch(),
function_declarations=[getWeather]
),
],
include_server_side_tool_invocations=True
),
)
জাভাস্ক্রিপ্ট
import { GoogleGenAI, Type } from '@google/genai';
const client = new GoogleGenAI({});
const getWeather = {
name: "getWeather",
description: "Get the weather in a given location",
parameters: {
type: "OBJECT",
properties: {
location: {
type: "STRING",
description: "The city and state, e.g. San Francisco, CA"
}
},
required: ["location"]
}
};
async function run() {
const model = client.models.generateContent({
model: "gemini-3-flash-preview",
});
const tools = [
{ googleSearch: {} },
{ functionDeclarations: [getWeather] }
];
const toolConfig = { includeServerSideToolInvocations: true };
const result1 = await model.generateContent({
contents: [{role: "user", parts: [{text: "What is the northernmost city in the United States? What's the weather like there today?"}]}],
tools: tools,
toolConfig: toolConfig,
});
const response1 = result1.response;
const functionCallId = response1.candidates[0].content.parts.find(p => p.functionCall)?.functionCall?.id;
const history = [
{
role: "user",
parts:[{text: "What is the northernmost city in the United States? What's the weather like there today?"}]
},
response1.candidates[0].content,
{
role: "user",
parts: [{
functionResponse: {
name: "getWeather",
response: {response: "Very cold. 22 degrees Fahrenheit."},
id: functionCallId
}
}]
}
];
const result2 = await model.generateContent({
contents: history,
tools: tools,
toolConfig: toolConfig,
});
}
run();
জেমিনি ২.৫ থেকে স্থানান্তর
জেমিনি ৩ এখন পর্যন্ত আমাদের সবচেয়ে সক্ষম মডেল পরিবার এবং এটি জেমিনি ২.৫-এর তুলনায় পর্যায়ক্রমিক উন্নতি প্রদান করে। স্থানান্তরের সময় নিম্নলিখিত বিষয়গুলো বিবেচনা করুন:
- চিন্তাভাবনা: আপনি যদি আগে জেমিনি ২.৫-কে যুক্তি দিয়ে ভাবতে বাধ্য করার জন্য জটিল প্রম্পট ইঞ্জিনিয়ারিং (যেমন চিন্তার শৃঙ্খল) ব্যবহার করে থাকেন,
thinking_level: "high"এবং সরলীকৃত প্রম্পট সহ জেমিনি ৩ ব্যবহার করে দেখুন। - তাপমাত্রা সেটিংস: যদি আপনার বিদ্যমান কোড স্পষ্টভাবে তাপমাত্রা নির্ধারণ করে (বিশেষ করে সুনির্দিষ্ট আউটপুটের জন্য কম মানে), তাহলে আমরা এই প্যারামিটারটি সরিয়ে ফেলার এবং জটিল কাজগুলিতে সম্ভাব্য লুপিং সমস্যা বা পারফরম্যান্সের অবনতি এড়াতে জেমিনি ৩-এর ডিফল্ট মান ১.০ ব্যবহার করার পরামর্শ দিই।
- পিডিএফ ও ডকুমেন্ট বোঝা: যদি আপনি জটিল ডকুমেন্ট পার্সিংয়ের জন্য কোনো নির্দিষ্ট পদ্ধতির ওপর নির্ভর করে থাকেন, তাহলে ধারাবাহিক নির্ভুলতা নিশ্চিত করতে নতুন
media_resolution_highসেটিংটি পরীক্ষা করুন। - টোকেন ব্যবহার: জেমিনি ৩-এর ডিফল্ট সেটিংসে ফিরে গেলে পিডিএফ-এর জন্য টোকেন ব্যবহার বাড়তে পারে, কিন্তু ভিডিওর জন্য তা কমতে পারে । ডিফল্ট রেজোলিউশন বেশি হওয়ার কারণে যদি রিকোয়েস্টগুলো এখন কনটেক্সট উইন্ডো অতিক্রম করে, তাহলে আমরা মিডিয়ার রেজোলিউশন স্পষ্টভাবে কমিয়ে আনার পরামর্শ দিই।
- ইমেজ সেগমেন্টেশন: Gemini 3 Pro বা Gemini 3 Flash-এ ইমেজ সেগমেন্টেশন ক্ষমতা (অবজেক্টের জন্য পিক্সেল-স্তরের মাস্ক প্রদান করা) সমর্থিত নয়। যেসব ওয়ার্কলোডের জন্য নেটিভ ইমেজ সেগমেন্টেশন প্রয়োজন, সেগুলোর জন্য আমরা থিঙ্কিং বন্ধ রেখে Gemini 2.5 Flash অথবা Gemini Robotics-ER 1.5 ব্যবহার চালিয়ে যাওয়ার পরামর্শ দিই।
- কম্পিউটার ইউজ: জেমিনি ৩ প্রো এবং জেমিনি ৩ ফ্ল্যাশ কম্পিউটার ইউজ সমর্থন করে। ২.৫ সিরিজের মতো, কম্পিউটার ইউজ টুলটি অ্যাক্সেস করার জন্য আপনাকে কোনো আলাদা মডেল ব্যবহার করতে হবে না।
- টুল সাপোর্ট : জেমিনি ৩ মডেলগুলিতে এখন বিল্ট-ইন টুলের সাথে ফাংশন কলিং একত্রিত করার সুবিধা রয়েছে। জেমিনি ৩ মডেলগুলিতে এখন ম্যাপস গ্রাউন্ডিং-এর সুবিধাও রয়েছে।
ওপেনএআই সামঞ্জস্যতা
যেসব ব্যবহারকারী OpenAI কম্প্যাটিবিলিটি লেয়ার ব্যবহার করেন, তাদের জন্য স্ট্যান্ডার্ড প্যারামিটার (OpenAI-এর reasoning_effort ) স্বয়ংক্রিয়ভাবে Gemini ( thinking_level )-এর সমতুল্য মানে ম্যাপ করা হয়।
সর্বোত্তম অনুশীলনকে উৎসাহিত করা
জেমিনি ৩ একটি যুক্তিমূলক মডেল, যা আপনার প্রশ্ন করার পদ্ধতি পরিবর্তন করে দেয়।
- সুনির্দিষ্ট নির্দেশাবলী: আপনার ইনপুট প্রম্পটে সংক্ষিপ্ত থাকুন। জেমিনি ৩ সরাসরি, স্পষ্ট নির্দেশাবলীতে সবচেয়ে ভালোভাবে সাড়া দেয়। এটি পুরোনো মডেলগুলোর জন্য ব্যবহৃত বিশদ বা অতিরিক্ত জটিল প্রম্পট ইঞ্জিনিয়ারিং কৌশলগুলোকে অতিরিক্ত বিশ্লেষণ করতে পারে।
- আউটপুটের বিশদ বিবরণ: ডিফল্টরূপে, জেমিনি ৩ কম বিশদ বিবরণ দেয় এবং সরাসরি, কার্যকর উত্তর দিতে পছন্দ করে। যদি আপনার ব্যবহারের ক্ষেত্রে আরও কথোপকথনমূলক বা "আড্ডাবাজ" ব্যক্তিত্বের প্রয়োজন হয়, তবে আপনাকে অবশ্যই প্রম্পটে মডেলটিকে স্পষ্টভাবে নির্দেশ দিতে হবে (যেমন, "এটি একজন বন্ধুত্বপূর্ণ, কথা বলা সহকারী হিসাবে ব্যাখ্যা করুন")।
- প্রসঙ্গ ব্যবস্থাপনা: বড় ডেটাসেট (যেমন, পুরো বই, ওডবেস বা দীর্ঘ ভিডিও) নিয়ে কাজ করার সময়, আপনার নির্দিষ্ট নির্দেশনা বা প্রশ্নগুলো প্রম্পটের শেষে, ডেটার প্রসঙ্গের পরে রাখুন। "উপরের তথ্যের উপর ভিত্তি করে..."-এর মতো একটি বাক্যাংশ দিয়ে আপনার প্রশ্ন শুরু করে মডেলের যুক্তিকে প্রদত্ত ডেটার সাথে যুক্ত করুন।
প্রম্পট ডিজাইন কৌশল সম্পর্কে আরও জানতে প্রম্পট ইঞ্জিনিয়ারিং গাইডটি পড়ুন।
প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী
জেমিনি ৩-এর জন্য জ্ঞানের কাটঅফ কত? জেমিনি ৩ মডেলগুলোর জন্য জ্ঞানের কাটঅফ হলো জানুয়ারি ২০২৫। আরও সাম্প্রতিক তথ্যের জন্য, সার্চ গ্রাউন্ডিং টুলটি ব্যবহার করুন।
কন্টেক্সট উইন্ডোর সীমা কত? জেমিনি ৩ মডেলগুলো ১০ লক্ষ টোকেনের ইনপুট কন্টেক্সট উইন্ডো এবং সর্বোচ্চ ৬৪ হাজার টোকেনের আউটপুট সমর্থন করে।
জেমিনি ৩-এর জন্য কি কোনো ফ্রি টিয়ার আছে? জেমিনি এপিআই-তে জেমিনি ৩ ফ্ল্যাশ
gemini-3-flash-previewএবং ৩.১ ফ্ল্যাশ-লাইটgemini-3.1-flash-lite-previewএর ফ্রি টিয়ার রয়েছে। আপনি গুগল এআই স্টুডিও-তে জেমিনি ৩.১ প্রো এবং ৩ ফ্ল্যাশ বিনামূল্যে ব্যবহার করে দেখতে পারেন, কিন্তু জেমিনি এপিআই-তেgemini-3.1-pro-previewএর জন্য কোনো ফ্রি টিয়ার উপলব্ধ নেই।আমার পুরোনো
thinking_budgetকোড কি এখনও কাজ করবে? হ্যাঁ, ব্যাকওয়ার্ড কম্প্যাটিবিলিটির জন্যthinking_budgetএখনও সমর্থিত, কিন্তু আরও অনুমানযোগ্য পারফরম্যান্সের জন্য আমরাthinking_levelএ স্থানান্তরিত হওয়ার পরামর্শ দিই। একই অনুরোধে উভয়ই ব্যবহার করবেন না।জেমিনি ৩ কি ব্যাচ এপিআই সমর্থন করে? হ্যাঁ, জেমিনি ৩ ব্যাচ এপিআই সমর্থন করে।
কনটেক্সট ক্যাশিং কি সমর্থিত? হ্যাঁ, জেমিনি ৩-এর জন্য কনটেক্সট ক্যাশিং সমর্থিত।
জেমিনি ৩-এ কোন কোন টুল সমর্থিত? জেমিনি ৩ গুগল সার্চ , গুগল ম্যাপস-এর সাহায্যে গ্রাউন্ডিং , ফাইল সার্চ , কোড এক্সিকিউশন এবং ইউআরএল কনটেক্সট সমর্থন করে। এটি আপনার নিজস্ব কাস্টম টুলের জন্য এবং বিল্ট-ইন টুলগুলোর সাথে একত্রে স্ট্যান্ডার্ড ফাংশন কলিংও সমর্থন করে।
gemini-3.1-pro-preview-customtoolsকী? আপনি যদিgemini-3.1-pro-previewব্যবহার করেন এবং মডেলটি ব্যাশ কমান্ডের পক্ষে আপনার কাস্টম টুলগুলিকে উপেক্ষা করে, তাহলে এর পরিবর্তেgemini-3.1-pro-preview-customtoolsমডেলটি ব্যবহার করে দেখুন। আরও তথ্য এখানে ।
পরবর্তী পদক্ষেপ
- জেমিনি ৩ কুকবুক দিয়ে শুরু করুন
- চিন্তার স্তর এবং কীভাবে থিংকিং বাজেট থেকে চিন্তার স্তরে স্থানান্তরিত হতে হয়, সে বিষয়ে কুকবুকের বিশেষ নির্দেশিকাটি দেখুন।