এই API রেফারেন্সটি মানক, স্ট্রিমিং এবং রিয়েলটাইম APIগুলি বর্ণনা করে যা আপনি জেমিনি মডেলগুলির সাথে ইন্টারঅ্যাক্ট করতে ব্যবহার করতে পারেন৷ HTTP অনুরোধ সমর্থন করে এমন যেকোনো পরিবেশে আপনি REST API ব্যবহার করতে পারেন। কিভাবে আপনার প্রথম API কল শুরু করবেন তার জন্য Quickstart নির্দেশিকা পড়ুন। আপনি যদি আমাদের ভাষা-নির্দিষ্ট লাইব্রেরি এবং SDK-এর জন্য রেফারেন্স খুঁজছেন, তাহলে SDK রেফারেন্সের অধীনে বাম নেভিগেশনে সেই ভাষার জন্য লিঙ্কে যান।
প্রাথমিক শেষ পয়েন্ট
Gemini API নিম্নলিখিত প্রধান শেষ পয়েন্টগুলির চারপাশে সংগঠিত:
- স্ট্যান্ডার্ড কন্টেন্ট জেনারেশন (
generateContent
): একটি স্ট্যান্ডার্ড REST এন্ডপয়েন্ট যা আপনার অনুরোধ প্রক্রিয়া করে এবং একটি একক প্যাকেজে মডেলের সম্পূর্ণ প্রতিক্রিয়া প্রদান করে। এটি অ-ইন্টারেক্টিভ কাজের জন্য সর্বোত্তম যেখানে আপনি সম্পূর্ণ ফলাফলের জন্য অপেক্ষা করতে পারেন। - স্ট্রিমিং কন্টেন্ট জেনারেশন (
streamGenerateContent
): সার্ভার-প্রেরিত ইভেন্টগুলি (SSE) ব্যবহার করে আপনার প্রতিক্রিয়ার অংশগুলি তৈরি করার সাথে সাথে সেগুলি তৈরি করা হয়। এটি চ্যাটবটগুলির মতো অ্যাপ্লিকেশনগুলির জন্য একটি দ্রুত, আরও ইন্টারেক্টিভ অভিজ্ঞতা প্রদান করে৷ - লাইভ API (
BidiGenerateContent
): দ্বি-নির্দেশিক স্ট্রিমিংয়ের জন্য একটি রাষ্ট্রীয় ওয়েবসকেট-ভিত্তিক API, রিয়েল-টাইম কথোপকথন ব্যবহারের ক্ষেত্রে ডিজাইন করা হয়েছে। - ব্যাচ মোড (
batchGenerateContent
):generateContent
অনুরোধের ব্যাচ জমা দেওয়ার জন্য একটি আদর্শ REST শেষ পয়েন্ট। - এমবেডিংস (
embedContent
): একটি স্ট্যান্ডার্ড REST এন্ডপয়েন্ট যা ইনপুটContent
থেকে একটি টেক্সট এম্বেডিং ভেক্টর তৈরি করে। - Gen Media APIs: আমাদের বিশেষ মডেলের মাধ্যমে মিডিয়া তৈরি করার জন্য এন্ডপয়েন্ট যেমন ইমেজ জেনারেশনের জন্য Imagen এবং ভিডিও জেনারেশনের জন্য Veo । জেমিনিতেও এই ক্ষমতাগুলি তৈরি করা হয়েছে যাতে আপনি
generateContent
API ব্যবহার করে অ্যাক্সেস করতে পারেন। - প্ল্যাটফর্ম এপিআই: ইউটিলিটি এন্ডপয়েন্ট যা মূল ক্ষমতা সমর্থন করে যেমন ফাইল আপলোড করা এবং টোকেন গণনা করা ।
প্রমাণীকরণ
Gemini API-এর সমস্ত অনুরোধে আপনার API কী সহ একটি x-goog-api-key
শিরোনাম অন্তর্ভুক্ত করতে হবে। Google AI স্টুডিওতে কয়েক ক্লিকে একটি তৈরি করুন।
নিম্নলিখিতটি হেডারে অন্তর্ভুক্ত API কী সহ একটি উদাহরণ অনুরোধ:
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": "Explain how AI works in a few words"
}
]
}
]
}'
জেমিনি SDK ব্যবহার করে কীভাবে আপনার কী এপিআই-এ পাস করবেন তার নির্দেশাবলীর জন্য, জেমিনি API কী ব্যবহার করার নির্দেশিকা দেখুন।
বিষয়বস্তু প্রজন্ম
মডেলে প্রম্পট পাঠানোর জন্য এটি কেন্দ্রীয় শেষ পয়েন্ট। বিষয়বস্তু তৈরি করার জন্য দুটি শেষ পয়েন্ট রয়েছে, মূল পার্থক্য হল আপনি কীভাবে প্রতিক্রিয়া পাবেন:
-
generateContent
(REST) : মডেলটি সম্পূর্ণ জেনারেশন শেষ করার পরে একটি অনুরোধ গ্রহণ করে এবং একটি একক প্রতিক্রিয়া প্রদান করে। -
streamGenerateContent
(SSE) : ঠিক একই অনুরোধ গ্রহণ করে, কিন্তু মডেলটি তৈরি হওয়ার সাথে সাথে প্রতিক্রিয়ার অংশগুলিকে ফিরিয়ে দেয়। এটি ইন্টারেক্টিভ অ্যাপ্লিকেশনগুলির জন্য একটি ভাল ব্যবহারকারীর অভিজ্ঞতা প্রদান করে কারণ এটি আপনাকে অবিলম্বে আংশিক ফলাফল প্রদর্শন করতে দেয়।
শরীরের গঠন অনুরোধ
অনুরোধের বডি হল একটি JSON অবজেক্ট যা স্ট্যান্ডার্ড এবং স্ট্রিমিং মোড উভয়ের জন্যই অভিন্ন এবং কয়েকটি মূল অবজেক্ট থেকে তৈরি করা হয়েছে:
-
Content
অবজেক্ট: কথোপকথনে একটি একক পালা প্রতিনিধিত্ব করে। -
Part
অবজেক্ট: একটিContent
মধ্যে ডেটার একটি অংশ (যেমন পাঠ্য বা একটি চিত্র)। -
inline_data
(Blob
): কাঁচা মিডিয়া বাইট এবং তাদের MIME প্রকারের জন্য একটি ধারক।
সর্বোচ্চ স্তরে, অনুরোধের বডিতে একটি contents
অবজেক্ট থাকে, যা Content
অবজেক্টের একটি তালিকা, প্রতিটি কথোপকথনে পরিণত হয়। বেশিরভাগ ক্ষেত্রে, মৌলিক পাঠ্য তৈরির জন্য, আপনার কাছে একটি একক Content
অবজেক্ট থাকবে, কিন্তু আপনি যদি কথোপকথনের ইতিহাস বজায় রাখতে চান তবে আপনি একাধিক Content
বস্তু ব্যবহার করতে পারেন।
নিম্নলিখিতগুলি একটি সাধারণ generateContent
অনুরোধের বডি দেখায়:
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": [
{
"role": "user",
"parts": [
// A list of Part objects goes here
]
},
{
"role": "model",
"parts": [
// A list of Part objects goes here
]
}
]
}'
প্রতিক্রিয়া শরীরের গঠন
নিম্নলিখিতগুলি ছাড়া স্ট্রিমিং এবং স্ট্যান্ডার্ড মোড উভয়ের জন্য প্রতিক্রিয়া বডি একই রকম:
- স্ট্যান্ডার্ড মোড: প্রতিক্রিয়া বডিতে
GenerateContentResponse
এর একটি উদাহরণ রয়েছে। - স্ট্রিমিং মোড: রেসপন্স বডিতে
GenerateContentResponse
দৃষ্টান্তের একটি স্ট্রীম রয়েছে।
একটি উচ্চ স্তরে, প্রতিক্রিয়া বডিতে একটি candidates
বস্তু থাকে, যা Candidate
বস্তুর একটি তালিকা। Candidate
অবজেক্টে একটি Content
অবজেক্ট থাকে যার জেনারেটেড রেসপন্স মডেল থেকে ফিরে আসে।
উদাহরণ অনুরোধ করুন
নিম্নলিখিত উদাহরণগুলি দেখায় কিভাবে এই উপাদানগুলি বিভিন্ন ধরনের অনুরোধের জন্য একত্রিত হয়।
শুধুমাত্র পাঠ্য প্রম্পট
একটি সাধারণ পাঠ্য প্রম্পটে একটি একক contents
অবজেক্ট সহ একটি Content
অ্যারে থাকে। যে বস্তুর parts
অ্যারে, ঘুরে, একটি text
ক্ষেত্র সহ একটি একক Part
বস্তু রয়েছে.
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": "Explain how AI works in a single paragraph."
}
]
}
]
}'
মাল্টিমোডাল প্রম্পট (টেক্সট এবং ইমেজ)
প্রম্পটে টেক্সট এবং ইমেজ উভয়ই প্রদান করতে, parts
অ্যারেতে দুটি Part
অবজেক্ট থাকতে হবে: একটি টেক্সটের জন্য এবং একটি ইমেজ inline_data
এর জন্য।
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":[
{
"inline_data": {
"mime_type":"image/jpeg",
"data": "/9j/4AAQSkZJRgABAQ... (base64-encoded image)"
}
},
{"text": "What is in this picture?"},
]
}]
}'
বহুমুখী কথোপকথন (চ্যাট)
একাধিক বাঁক নিয়ে কথোপকথন তৈরি করতে, আপনি একাধিক Content
অবজেক্টের সাথে contents
অ্যারেকে সংজ্ঞায়িত করুন। API পরবর্তী প্রতিক্রিয়ার জন্য প্রসঙ্গ হিসাবে এই সমগ্র ইতিহাস ব্যবহার করবে। প্রতিটি Content
অবজেক্টের role
user
এবং model
মধ্যে বিকল্প হওয়া উচিত।
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": [
{
"role": "user",
"parts": [
{ "text": "Hello." }
]
},
{
"role": "model",
"parts": [
{ "text": "Hello! How can I help you today?" }
]
},
{
"role": "user",
"parts": [
{ "text": "Please write a four-line poem about the ocean." }
]
}
]
}'
মূল গ্রহণ
-
Content
হল খাম: এটি একটি বার্তার জন্য শীর্ষ-স্তরের ধারক, তা ব্যবহারকারী বা মডেল থেকে হোক না কেন। -
Part
মাল্টিমোডালিটি সক্ষম করে: বিভিন্ন ধরণের ডেটা (টেক্সট, ইমেজ, ভিডিও ইউআরআই, ইত্যাদি) একত্রিত করতে একটি এককContent
বস্তুর মধ্যে একাধিকPart
অবজেক্ট ব্যবহার করুন। - আপনার ডেটা পদ্ধতি চয়ন করুন:
- ছোট, সরাসরি এম্বেড করা মিডিয়ার জন্য (অধিকাংশ ছবির মতো),
inline_data
সহ একটিPart
ব্যবহার করুন। - বৃহত্তর ফাইল বা ফাইলগুলির জন্য আপনি অনুরোধ জুড়ে পুনরায় ব্যবহার করতে চান, ফাইল আপলোড করতে ফাইল API ব্যবহার করুন এবং
file_data
অংশের সাথে উল্লেখ করুন।
- ছোট, সরাসরি এম্বেড করা মিডিয়ার জন্য (অধিকাংশ ছবির মতো),
- কথোপকথনের ইতিহাস পরিচালনা করুন: REST API ব্যবহার করে চ্যাট অ্যাপ্লিকেশনগুলির জন্য,
"user"
এবং"model"
ভূমিকাগুলির মধ্যে পর্যায়ক্রমে প্রতিটি পালার জন্যContent
অবজেক্ট যুক্ত করেcontents
অ্যারে তৈরি করুন৷ আপনি যদি একটি SDK ব্যবহার করেন তবে কথোপকথনের ইতিহাস পরিচালনা করার প্রস্তাবিত উপায়ের জন্য SDK ডকুমেন্টেশন দেখুন৷
প্রতিক্রিয়া উদাহরণ
নিম্নলিখিত উদাহরণগুলি দেখায় কিভাবে এই উপাদানগুলি বিভিন্ন ধরনের অনুরোধের জন্য একত্রিত হয়।
শুধুমাত্র পাঠ্য প্রতিক্রিয়া
একটি সাধারণ টেক্সট প্রতিক্রিয়া মডেলের প্রতিক্রিয়া ধারণ করে এক বা একাধিক content
বস্তু সহ একটি candidates
অ্যারে নিয়ে গঠিত।
নিম্নলিখিত একটি আদর্শ প্রতিক্রিয়ার উদাহরণ:
{
"candidates": [
{
"content": {
"parts": [
{
"text": "At its core, Artificial Intelligence works by learning from vast amounts of data ..."
}
],
"role": "model"
},
"finishReason": "STOP",
"index": 1
}
],
}
নিম্নলিখিত স্ট্রিমিং প্রতিক্রিয়া সিরিজ. প্রতিটি প্রতিক্রিয়াতে একটি responseId
থাকে যা সম্পূর্ণ প্রতিক্রিয়াকে একত্রে সংযুক্ত করে:
{
"candidates": [
{
"content": {
"parts": [
{
"text": "The image displays"
}
],
"role": "model"
},
"index": 0
}
],
"usageMetadata": {
"promptTokenCount": ...
},
"modelVersion": "gemini-2.5-flash-lite",
"responseId": "mAitaLmkHPPlz7IPvtfUqQ4"
}
...
{
"candidates": [
{
"content": {
"parts": [
{
"text": " the following materials:\n\n* **Wood:** The accordion and the violin are primarily"
}
],
"role": "model"
},
"index": 0
}
],
"usageMetadata": {
"promptTokenCount": ...
}
"modelVersion": "gemini-2.5-flash-lite",
"responseId": "mAitaLmkHPPlz7IPvtfUqQ4"
}
লাইভ API (BidiGenerateContent) WebSockets API
লাইভ এপিআই রিয়েল-টাইম স্ট্রিমিং ব্যবহারের ক্ষেত্রে সক্ষম করার জন্য দ্বি-নির্দেশিক স্ট্রিমিংয়ের জন্য একটি রাষ্ট্রীয় ওয়েবসকেট ভিত্তিক API অফার করে। আপনি আরও বিশদ বিবরণের জন্য লাইভ API গাইড এবং লাইভ API রেফারেন্স পর্যালোচনা করতে পারেন।
বিশেষায়িত মডেল
মডেলের জেমিনি পরিবার ছাড়াও, জেমিনি এপিআই বিশেষায়িত মডেল যেমন ইমেজেন , লিরিয়া এবং এমবেডিং মডেলের জন্য শেষ পয়েন্ট অফার করে। আপনি মডেল বিভাগের অধীনে এই নির্দেশিকাগুলি পরীক্ষা করতে পারেন।
প্ল্যাটফর্ম API
বাকি শেষ পয়েন্টগুলি এখন পর্যন্ত বর্ণিত প্রধান শেষ পয়েন্টগুলির সাথে ব্যবহার করার জন্য অতিরিক্ত ক্ষমতা সক্ষম করে। আরও জানতে গাইড বিভাগে বিষয় ব্যাচ মোড এবং ফাইল API দেখুন।
এরপর কি
আপনি যদি এইমাত্র শুরু করছেন, নিচের নির্দেশিকাগুলি দেখুন, যা আপনাকে Gemini API প্রোগ্রামিং মডেল বুঝতে সাহায্য করবে:
আপনি ক্ষমতা নির্দেশিকাগুলিও দেখতে চাইতে পারেন, যা বিভিন্ন জেমিনি API বৈশিষ্ট্যগুলি প্রবর্তন করে এবং কোড উদাহরণ প্রদান করে: