তিন লাইন কোড আপডেট করে এবং আপনার Gemini API কী ব্যবহার করে, REST API-এর সাথে OpenAI লাইব্রেরি (Python এবং TypeScript / Javascript) ব্যবহার করে Gemini মডেল অ্যাক্সেস করা যায়। আপনি যদি আগে থেকে OpenAI লাইব্রেরি ব্যবহার না করে থাকেন, তাহলে আমরা আপনাকে Gemini API-তে সরাসরি কল করার সাজেশন দিই।
Python
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
response = client.chat.completions.create(
model="gemini-3.8-flash",
messages=[
{ "role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Explain to me how AI works"
}
]
)
print(response.choices[0].message)
জাভাস্ক্রিপ্ট
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: "GEMINI_API_KEY",
baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/"
});
const response = await openai.chat.completions.create({
model: "gemini-3.8-flash",
messages: [
{ role: "system",
content: "You are a helpful assistant."
},
{
role: "user",
content: "Explain to me how AI works",
},
],
});
console.log(response.choices[0].message);
REST
curl "https://generativelanguage.googleapis.com/v1beta/openai/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GEMINI_API_KEY" \
-d '{
"model": "gemini-3.8-flash",
"messages": [
{
"role": "user",
"content": "Explain to me how AI works"
}
]
}'
কী পরিবর্তন হয়েছে? মাত্র তিনটি লাইন!
api_key="GEMINI_API_KEY": আপনার আসল Gemini API কী দিয়ে "GEMINI_API_KEY" পাল্টে দিন, যা আপনি Google AI Studio-তে পাবেন।base_url="https://generativelanguage.googleapis.com/v1beta/openai/": এটি OpenAI লাইব্রেরিকে ডিফল্ট URL-এর পরিবর্তে Gemini API এন্ডপয়েন্টে অনুরোধ পাঠাতে বলে।model="gemini-3.8-flash": মানানসই Gemini মডেল বেছে নিন
Thinking
জটিল সমস্যার সমাধান করার জন্য Gemini মডেলগুলিকে প্রশিক্ষণ দেওয়া হয়, এর ফলে রিজনিংয়ের ক্ষমতা উল্লেখযোগ্যভাবে উন্নত হয়। Gemini API-তে থিঙ্কিং প্যারামিটার থাকে যা মডেল কতটা ভাববে তার উপর ফাইন গ্রেন কন্ট্রোল দেয়।
বিভিন্ন Gemini মডেলের বিভিন্ন রিজনিং কনফিগারেশন আছে, আপনি দেখতে পারেন কীভাবে সেগুলি OpenAI-এর রিজনিং প্রচেষ্টার সাথে ম্যাপ করে:
reasoning_effort (OpenAI) |
thinking_level (Gemini 4 Argon) |
thinking_level (Gemini 3.1 Flash-Lite) |
thinking_level (Gemini 3 Flash) |
thinking_budget (Gemini 2.5) |
|---|---|---|---|---|
minimal |
low |
minimal |
minimal |
1,024 |
low |
low |
low |
low |
1,024 |
medium |
medium |
medium |
medium |
8,192 |
high |
high |
high |
high |
24,576 |
কোনও reasoning_effort নির্দিষ্ট করা না থাকলে, Gemini মডেলের
ডিফল্ট লেভেল বা বাজেট ব্যবহার করে।
আপনি থিঙ্কিং বন্ধ করতে চাইলে, reasoning_effort-এর জন্য "none" সেট করতে পারেন
২.৫ মডেল। Gemini 2.5 Pro বা 3 মডেলের জন্য রিজনিং বন্ধ করা যাবে না।
Python
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
response = client.chat.completions.create(
model="gemini-3.8-flash",
reasoning_effort="low",
messages=[
{ "role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Explain to me how AI works"
}
]
)
print(response.choices[0].message)
জাভাস্ক্রিপ্ট
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: "GEMINI_API_KEY",
baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/"
});
const response = await openai.chat.completions.create({
model: "gemini-3.8-flash",
reasoning_effort: "low",
messages: [
{ role: "system",
content: "You are a helpful assistant."
},
{
role: "user",
content: "Explain to me how AI works",
},
],
});
console.log(response.choices[0].message);
বিশ্রাম
curl "https://generativelanguage.googleapis.com/v1beta/openai/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GEMINI_API_KEY" \
-d '{
"model": "gemini-3.8-flash",
"reasoning_effort": "low",
"messages": [
{
"role": "user",
"content": "Explain to me how AI works"
}
]
}'
Gemini থিঙ্কিং মডেল চিন্তাভাবনার সারসংক্ষেপও তৈরি করে।
আপনার অনুরোধে Gemini ফিল্ড অন্তর্ভুক্ত করতে আপনি extra_body ফিল্ড ব্যবহার করতে পারেন।
মনে রাখবেন যে reasoning_effort এবং thinking_level/thinking_budget ওভারল্যাপ
ফাংশনালিটি, তাই এগুলি একই সময়ে ব্যবহার করা যাবে না।
Python
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
response = client.chat.completions.create(
model="gemini-3.8-flash",
messages=[{"role": "user", "content": "Explain to me how AI works"}],
extra_body={
'extra_body': {
"google": {
"thinking_config": {
"thinking_level": "low",
"include_thoughts": True
}
}
}
}
)
print(response.choices[0].message)
জাভাস্ক্রিপ্ট
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: "GEMINI_API_KEY",
baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/"
});
const response = await openai.chat.completions.create({
model: "gemini-3.8-flash",
messages: [{role: "user", content: "Explain to me how AI works",}],
extra_body: {
"google": {
"thinking_config": {
"thinking_level": "low",
"include_thoughts": true
}
}
}
});
console.log(response.choices[0].message);
REST
curl "https://generativelanguage.googleapis.com/v1beta/openai/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer GEMINI_API_KEY" \
-d '{
"model": "gemini-3.8-flash",
"messages": [{"role": "user", "content": "Explain to me how AI works"}],
"extra_body": {
"google": {
"thinking_config": {
"thinking_level": "low",
"include_thoughts": true
}
}
}
}'
Gemini 3 চ্যাট সম্পূর্ণ করার API-তে থট সিগনেচারের জন্য OpenAI কম্প্যাটিবিলিটি সাপোর্ট করে। thought signatures পৃষ্ঠায় আপনি সম্পূর্ণ উদাহরণ দেখতে পাবেন।
স্ট্রিমিং
Gemini API স্ট্রিমিং উত্তর সাপোর্ট করে।
Python
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
response = client.chat.completions.create(
model="gemini-3.8-flash",
messages=[
{
"role": "system",
"content": "You are a helpful assistant."
},
{ "role": "user",
"content": "Hello!"
}
],
stream=True
)
for chunk in response:
print(chunk.choices[0].delta)
জাভাস্ক্রিপ্ট
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: "GEMINI_API_KEY",
baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/"
});
async function main() {
const completion = await openai.chat.completions.create({
model: "gemini-3.8-flash",
messages: [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
stream: true,
});
for await (const chunk of completion) {
console.log(chunk.choices[0].delta.content);
}
}
main();
বিশ্রাম
curl "https://generativelanguage.googleapis.com/v1beta/openai/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer GEMINI_API_KEY" \
-d '{
"model": "gemini-3.8-flash",
"messages": [
{"role": "user", "content": "Explain to me how AI works"}
],
"stream": true
}'
ফাংশন কলিং
ফাংশন কলিংয়ের মাধ্যমে আপনি জেনারেটিভ মডেল থেকে স্ট্রাকচার্ড ডেটা আউটপুট আরও সহজে পেতে পারেন এবং এটি Gemini API-তে কাজ করে।
Python
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. Chicago, IL",
},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
}
}
]
messages = [{"role": "user", "content": "What's the weather like in Chicago today?"}]
response = client.chat.completions.create(
model="gemini-3.8-flash",
messages=messages,
tools=tools,
tool_choice="auto"
)
print(response)
জাভাস্ক্রিপ্ট
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: "GEMINI_API_KEY",
baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/"
});
async function main() {
const messages = [{"role": "user", "content": "What's the weather like in Chicago today?"}];
const tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. Chicago, IL",
},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
}
}
];
const response = await openai.chat.completions.create({
model: "gemini-3.8-flash",
messages: messages,
tools: tools,
tool_choice: "auto",
});
console.log(response);
}
main();
বিশ্রাম
curl "https://generativelanguage.googleapis.com/v1beta/openai/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer GEMINI_API_KEY" \
-d '{
"model": "gemini-3.8-flash",
"messages": [
{
"role": "user",
"content": "What'\''s the weather like in Chicago today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. Chicago, IL"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
ছবি বুঝতে পারা
Gemini মডেলগুলি নেটিভভাবে মাল্টিমোডাল এবং অনেক সাধারণ ভিশন টাস্কে সেরা পারফর্ম্যান্স প্রদান করে।
Python
import base64
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
# Function to encode the image
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode('utf-8')
# Getting the base64 string
base64_image = encode_image("Path/to/agi/image.jpeg")
response = client.chat.completions.create(
model="gemini-3.8-flash",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?",
},
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{base64_image}"
},
},
],
}
],
)
print(response.choices[0])
জাভাস্ক্রিপ্ট
import OpenAI from "openai";
import fs from 'fs/promises';
const openai = new OpenAI({
apiKey: "GEMINI_API_KEY",
baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/"
});
async function encodeImage(imagePath) {
try {
const imageBuffer = await fs.readFile(imagePath);
return imageBuffer.toString('base64');
} catch (error) {
console.error("Error encoding image:", error);
return null;
}
}
async function main() {
const imagePath = "Path/to/agi/image.jpeg";
const base64Image = await encodeImage(imagePath);
const messages = [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?",
},
{
"type": "image_url",
"image_url": {
"url": `data:image/jpeg;base64,${base64Image}`
},
},
],
}
];
try {
const response = await openai.chat.completions.create({
model: "gemini-3.8-flash",
messages: messages,
});
console.log(response.choices[0]);
} catch (error) {
console.error("Error calling Gemini API:", error);
}
}
main();
বিশ্রাম
bash -c '
base64_image=$(base64 -i "Path/to/agi/image.jpeg");
curl "https://generativelanguage.googleapis.com/v1beta/openai/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer GEMINI_API_KEY" \
-d "{
\"model\": \"gemini-3.8-flash\",
\"messages\": [
{
\"role\": \"user\",
\"content\": [
{ \"type\": \"text\", \"text\": \"What is in this image?\" },
{
\"type\": \"image_url\",
\"image_url\": { \"url\": \"data:image/jpeg;base64,${base64_image}\" }
}
]
}
]
}"
'
ছবি জেনারেট করুন
gemini-2.5-flash-image বা gemini-3-pro-image-preview ব্যবহার করে ছবি জেনারেট করুন। কাজ করে এমন প্যারামিটারের মধ্যে prompt, model, n, size ও response_format অন্তর্ভুক্ত। এখানে বা extra_body বিভাগে তালিকাভুক্ত নয় এমন অন্য কোনও প্যারামিটার কম্প্যাটিবিলিটি লেয়ারের মাধ্যমে উপেক্ষা করা হবে।
Python
import base64
from openai import OpenAI
from PIL import Image
from io import BytesIO
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/",
)
response = client.images.generate(
model="gemini-2.5-flash-image",
prompt="a portrait of a sheepadoodle wearing a cape",
response_format='b64_json',
n=1,
)
for image_data in response.data:
image = Image.open(BytesIO(base64.b64decode(image_data.b64_json)))
image.show()
জাভাস্ক্রিপ্ট
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: "GEMINI_API_KEY",
baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/",
});
async function main() {
const image = await openai.images.generate(
{
model: "gemini-2.5-flash-image",
prompt: "a portrait of a sheepadoodle wearing a cape",
response_format: "b64_json",
n: 1,
}
);
console.log(image.data);
}
main();
বিশ্রাম
curl "https://generativelanguage.googleapis.com/v1beta/openai/images/generations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer GEMINI_API_KEY" \
-d '{
"model": "gemini-2.5-flash-image",
"prompt": "a portrait of a sheepadoodle wearing a cape",
"response_format": "b64_json",
"n": 1,
}'
ভিডিও জেনারেট করুন
Sora-র সাথে মানানসই /v1/videos এন্ডপয়েন্টের মাধ্যমে veo-3.1-generate-preview ব্যবহার করে ভিডিও জেনারেট করুন। ব্যবহারযোগ্য টপ-লেভেল প্যারামিটার হল prompt এবং model। extra_body-এর সাথে duration_seconds, image ও aspect_ratio-এর মতো অতিরিক্ত প্যারামিটার অবশ্যই পাস করতে হবে। উপলভ্য সব প্যারামিটার দেখতে
extra_body বিভাগ দেখুন।
ভিডিও জেনারেশন হল একটি দীর্ঘ-চলমান অপারেশন যা একটি অপারেশন আইডি প্রদান করে যা আপনি সম্পূর্ণ করার জন্য পোল করতে পারেন।
Python
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
# Returns a Long Running Operation (status: processing)
response = client.videos.create(
model="veo-3.1-generate-preview",
prompt="A cinematic drone shot of a waterfall",
)
print(f"Operation ID: {response.id}")
print(f"Status: {response.status}")
জাভাস্ক্রিপ্ট
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: "GEMINI_API_KEY",
baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/"
});
async function main() {
// Returns a Long Running Operation (status: processing)
const response = await openai.videos.create({
model: "veo-3.1-generate-preview",
prompt: "A cinematic drone shot of a waterfall",
});
console.log(`Operation ID: ${response.id}`);
console.log(`Status: ${response.status}`);
}
main();
বিশ্রাম
curl "https://generativelanguage.googleapis.com/v1beta/openai/videos" \
-H "Authorization: Bearer $GEMINI_API_KEY" \
-F "model=veo-3.1-generate-preview" \
-F "prompt=A cinematic drone shot of a waterfall"
ভিডিওর স্ট্যাটাস চেক করা
ভিডিও জেনারেশন অ্যাসিঙ্ক্রোনাস। স্ট্যাটাস পোল করতে GET /v1/videos/{id} ব্যবহার করুন
এবং সম্পূর্ণ হলে ফাইনাল ভিডিও URL ফিরিয়ে আনুন:
Python
import time
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
# Poll until video is ready
video_id = response.id # From the create call
while True:
video = client.videos.retrieve(video_id)
if video.status == "completed":
print(f"Video URL: {video.url}")
break
elif video.status == "failed":
print(f"Generation failed: {video.error}")
break
print(f"Status: {video.status}. Waiting...")
time.sleep(10)
জাভাস্ক্রিপ্ট
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: "GEMINI_API_KEY",
baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/"
});
async function main() {
// Poll until video is ready
const videoId = response.id; // From the create call
while (true) {
const video = await openai.videos.retrieve(videoId);
if (video.status === "completed") {
console.log(`Video URL: ${video.url}`);
break;
} else if (video.status === "failed") {
console.log(`Generation failed: ${video.error}`);
break;
}
console.log(`Status: ${video.status}. Waiting...`);
await new Promise(resolve => setTimeout(resolve, 10000));
}
}
main();
REST
curl "https://generativelanguage.googleapis.com/v1beta/openai/videos/VIDEO_ID" \
-H "Authorization: Bearer $GEMINI_API_KEY"
অডিও বোঝা
অডিও ইনপুট বিশ্লেষণ করুন:
Python
import base64
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
with open("/path/to/your/audio/file.wav", "rb") as audio_file:
base64_audio = base64.b64encode(audio_file.read()).decode('utf-8')
response = client.chat.completions.create(
model="gemini-3.8-flash",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "Transcribe this audio",
},
{
"type": "input_audio",
"input_audio": {
"data": base64_audio,
"format": "wav"
}
}
],
}
],
)
print(response.choices[0].message.content)
জাভাস্ক্রিপ্ট
import fs from "fs";
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "GEMINI_API_KEY",
baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/",
});
const audioFile = fs.readFileSync("/path/to/your/audio/file.wav");
const base64Audio = Buffer.from(audioFile).toString("base64");
async function main() {
const response = await client.chat.completions.create({
model: "gemini-3.8-flash",
messages: [
{
role: "user",
content: [
{
type: "text",
text: "Transcribe this audio",
},
{
type: "input_audio",
input_audio: {
data: base64Audio,
format: "wav",
},
},
],
},
],
});
console.log(response.choices[0].message.content);
}
main();
বিশ্রাম
bash -c '
base64_audio=$(base64 -i "/path/to/your/audio/file.wav");
curl "https://generativelanguage.googleapis.com/v1beta/openai/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer GEMINI_API_KEY" \
-d "{
\"model\": \"gemini-3.8-flash\",
\"messages\": [
{
\"role\": \"user\",
\"content\": [
{ \"type\": \"text\", \"text\": \"Transcribe this audio file.\" },
{
\"type\": \"input_audio\",
\"input_audio\": {
\"data\": \"${base64_audio}\",
\"format\": \"wav\"
}
}
]
}
]
}"
'
স্ট্রাকচার্ড আউটপুট
Gemini মডেল যেকোনও আপনার নির্দিষ্ট করা স্ট্রাকচারে JSON অবজেক্টের আউটপুট দেখাতে পারে।
Python
from pydantic import BaseModel
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
class CalendarEvent(BaseModel):
name: str
date: str
participants: list[str]
completion = client.beta.chat.completions.parse(
model="gemini-3.8-flash",
messages=[
{"role": "system", "content": "Extract the event information."},
{"role": "user", "content": "John and Susan are going to an AI conference on Friday."},
],
response_format=CalendarEvent,
)
print(completion.choices[0].message.parsed)
জাভাস্ক্রিপ্ট
import OpenAI from "openai";
import { zodResponseFormat } from "openai/helpers/zod";
import { z } from "zod";
const openai = new OpenAI({
apiKey: "GEMINI_API_KEY",
baseURL: "https://generativelanguage.googleapis.com/v1beta/openai"
});
const CalendarEvent = z.object({
name: z.string(),
date: z.string(),
participants: z.array(z.string()),
});
const completion = await openai.chat.completions.parse({
model: "gemini-3.8-flash",
messages: [
{ role: "system", content: "Extract the event information." },
{ role: "user", content: "John and Susan are going to an AI conference on Friday" },
],
response_format: zodResponseFormat(CalendarEvent, "event"),
});
const event = completion.choices[0].message.parsed;
console.log(event);
এম্বেডিং
টেক্সট এম্বেডিং টেক্সট স্ট্রিংয়ের পারস্পরিক সম্পর্ক পরিমাপ করে এবং Gemini API ব্যবহার করে জেনারেট করা
যায়। আপনি মাল্টিমোডাল এম্বেডিংয়ের জন্য
gemini-embedding-2-preview অথবা
শুধুমাত্র টেক্সট এম্বেডিংয়ের জন্য gemini-embedding-001 ব্যবহার করতে পারেন।
Python
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
response = client.embeddings.create(
input="Your text string goes here",
model="gemini-embedding-2-preview"
)
print(response.data[0].embedding)
জাভাস্ক্রিপ্ট
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: "GEMINI_API_KEY",
baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/"
});
async function main() {
const embedding = await openai.embeddings.create({
model: "gemini-embedding-2-preview",
input: "Your text string goes here",
});
console.log(embedding);
}
main();
REST
curl "https://generativelanguage.googleapis.com/v1beta/openai/embeddings" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer GEMINI_API_KEY" \
-d '{
"input": "Your text string goes here",
"model": "gemini-embedding-2-preview"
}'
Batch API
আপনি OpenAI লাইব্রেরি ব্যবহার করে ব্যাচ জব তৈরি করতে, জমা দিতে এবং সেগুলির স্ট্যাটাস চেক করতে পারেন।
আপনাকে OpenAI ইনপুট ফর্ম্যাটে JSONL ফাইল তৈরি করতে হবে। যেমন:
{"custom_id": "request-1", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "gemini-3.8-flash", "messages": [{"role": "user", "content": "Tell me a one-sentence joke."}]}}
{"custom_id": "request-2", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "gemini-3.8-flash", "messages": [{"role": "user", "content": "Why is the sky blue?"}]}}
ব্যাচের জন্য OpenAI কম্প্যাটিবিলিটি ব্যাচ তৈরি করা, জবের স্ট্যাটাস মনিটর করা এবং ব্যাচের ফলাফল দেখার সুবিধা দেয়।
আপলোড ও ডাউনলোডের জন্য কম্প্যাটিবিলিটি বর্তমানে কাজ করে না। পরিবর্তে, Gemini Batch API ব্যবহার করার সময় যেভাবে genai ক্লায়েন্ট ব্যবহার করে আপলোড ও ডাউনলোড করা হয়
ফাইল, ঠিক সেইভাবেই নিম্নলিখিত
উদাহরণে ব্যবহার করা হয়েছে।
Python
from openai import OpenAI
# Regular genai client for uploads & downloads
from google import genai
client = genai.Client()
openai_client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
# Upload the JSONL file in OpenAI input format, using regular genai SDK
uploaded_file = client.files.upload(
file='my-batch-requests.jsonl',
config=types.UploadFileConfig(display_name='my-batch-requests', mime_type='jsonl')
)
# Create batch
batch = openai_client.batches.create(
input_file_id=batch_input_file_id,
endpoint="/v1/chat/completions",
completion_window="24h"
)
# Wait for batch to finish (up to 24h)
while True:
batch = client.batches.retrieve(batch.id)
if batch.status in ('completed', 'failed', 'cancelled', 'expired'):
break
print(f"Batch not finished. Current state: {batch.status}. Waiting 30 seconds...")
time.sleep(30)
print(f"Batch finished: {batch}")
# Download results in OpenAI output format, using regular genai SDK
file_content = genai_client.files.download(file=batch.output_file_id).decode('utf-8')
# See batch_output JSONL in OpenAI output format
for line in file_content.splitlines():
print(line)
এছাড়াও, OpenAI SDK Batch API-এর মাধ্যমে এম্বেডিং জেনারেট করার সুবিধা দেয়। এটি করতে, এম্বেডিং এন্ডপয়েন্টের জন্য
create পদ্ধতির endpoint ফিল্ড পরিবর্তন করুন, এর পাশাপাশি JSONL ফাইলে
url এবং model কী পরিবর্তন করুন:
# JSONL file using embeddings model and endpoint
# {"custom_id": "request-1", "method": "POST", "url": "/v1/embeddings", "body": {"model": "ggemini-embedding-001", "messages": [{"role": "user", "content": "Tell me a one-sentence joke."}]}}
# {"custom_id": "request-2", "method": "POST", "url": "/v1/embeddings", "body": {"model": "gemini-embedding-001", "messages": [{"role": "user", "content": "Why is the sky blue?"}]}}
# ...
# Create batch step with embeddings endpoint
batch = openai_client.batches.create(
input_file_id=batch_input_file_id,
endpoint="/v1/embeddings",
completion_window="24h"
)
সম্পূর্ণ উদাহরণের জন্য OpenAI কম্প্যাটিবিলিটি কুকবুকের ব্যাচ এম্বেডিং জেনারেশন বিভাগ দেখুন।
Flex ও প্রায়োরিটি ইনফারেন্স
Gemini API, OpenAI-এর service_tier প্যারামিটারের নাম ও লজিকের সাথে ম্যাচ করে,
ফ্লেক্স ও প্রায়োরিটি ইনফারেন্স টিয়ারের জন্য সীমা এনফোর্স করে ও ট্রাফিককে সুন্দরভাবে ডাইরেক্ট করে।
Python
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
completion = client.chat.completions.create(
model="gemini-3.8-flash",
messages=[
{"role": "user", "content": "Write a short poem about clouds."}
],
service_tier="priority" # Or service_tier="flex"
)
print(completion)
স্পষ্টভাবে অ্যাসাইন করা না থাকলে, service_tier ডিফল্ট হিসেবে standard-এ সেট করা হয়, যা
OpenAI-এর জন্য default-এর সমতুল্য।
অপ্টিমাইজেশন ডকুমেন্টেশন থেকে ইনফারেন্স টিয়ার সম্পর্কে আরও জানুন।
extra_body-এর সাথে Gemini ফিচার চালু করুন
Gemini-তে এমন অনেক ফিচার কাজ করে যা OpenAI
মডেলে কাজ করে না, তবে extra_body ফিল্ড ব্যবহার করে সেগুলি চালু করা যেতে পারে।
| প্যারামিটার | ধরন | এন্ডপয়েন্ট | বিবরণ |
|---|---|---|---|
cached_content |
টেক্সট | চ্যাট | Gemini-র সাধারণ কন্টেন্ট ক্যাশের সাথে সম্পর্কিত। |
thinking_config |
অবজেক্ট | চ্যাট | Gemini-র ThinkingConfig-এর সাথে সম্পর্কিত। |
aspect_ratio |
টেক্সট | ছবি | আউটপুট অ্যাস্পেক্ট রেশিও (যেমন, "16:9", "1:1", "9:16")। |
generation_config |
অবজেক্ট | ছবি | Gemini জেনারেশন কনফিগারেশন অবজেক্ট (যেমন, {"responseModalities": ["IMAGE"], "candidateCount": 2})। |
safety_settings |
তালিকা | ছবি | কাস্টম নিরাপত্তা থ্রেশহোল্ড ফিল্টার (যেমন, [{"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_NONE"}])। |
tools |
তালিকা | ছবি | গ্রাউন্ডিং চালু করে (যেমন, [{"google_search": {}}])। শুধুমাত্র gemini-3-pro-image-preview-এর জন্য। |
aspect_ratio |
টেক্সট | ভিডিও | আউটপুট ভিডিওর ডাইমেনশন (16:9 ল্যান্ডস্কেপের জন্য, 9:16 পোর্ট্রেটের জন্য)। উল্লেখ করা না থাকলে size থেকে ম্যাপ করে। |
resolution |
টেক্সট | ভিডিও | আউটপুট রেজোলিউশন (720p, 1080p, 4K)। মনে রাখবেন: 1080p ও 4K আপস্যাম্পলার পাইপলাইন ট্রিগার করে। |
duration_seconds |
পূর্ণসংখ্যা | ভিডিও | জেনারেট করার দৈর্ঘ্য (মান: 4, 6, 8)। reference_images, ইন্টারপোলেশন বা এক্সটেনশন ব্যবহার করার সময় অবশ্যই 8 হতে হবে। |
frame_rate |
টেক্সট | ভিডিও | ভিডিও আউটপুটের জন্য ফ্রেম রেট (যেমন, "24")। |
input_reference |
টেক্সট | ভিডিও | ভিডিও জেনারেশনের জন্য রেফারেন্স ইনপুট। |
extend_video_id |
টেক্সট | ভিডিও | এক্সটেন্ড করার জন্য আগে থেকে থাকা ভিডিওর আইডি। |
negative_prompt |
টেক্সট | ভিডিও | যেসব আইটেম বাদ দিতে হবে (যেমন, "shaky camera")। |
seed |
পূর্ণসংখ্যা | ভিডিও | ডিটারমিনিস্টিক জেনারেশনের জন্য ইন্টিজার। |
style |
টেক্সট | ভিডিও | ভিজ্যুয়াল স্টাইলিং (cinematic ডিফল্ট, সোশ্যাল মিডিয়ার জন্য অপ্টিমাইজ করা creative)। |
person_generation |
টেক্সট | ভিডিও | মানুষের ছবি জেনারেশন নিয়ন্ত্রণ করে (allow_adult, allow_all, dont_allow)। |
reference_images |
তালিকা | ভিডিও | স্টাইল/ক্যারেক্টার রেফারেন্সের জন্য সর্বাধিক ৩টি ছবি (base64 অ্যাসেট)। |
image |
টেক্সট | ভিডিও | ভিডিও জেনারেশন কন্ডিশন করার জন্য Base64-এনকোডেড প্রাথমিক ইনপুট ইমেজ। |
last_frame |
অবজেক্ট | ভিডিও | ইন্টারপোলেশনের জন্য চূড়ান্ত ছবি (প্রথম ফ্রেম হিসেবে image প্রয়োজন)। |
extra_body ব্যবহার করে উদাহরণ
cached_content সেট করতে extra_body ব্যবহারের একটি উদাহরণ এখানে দেওয়া হল:
Python
from openai import OpenAI
client = OpenAI(
api_key=MY_API_KEY,
base_url="https://generativelanguage.googleapis.com/v1beta/"
)
stream = client.chat.completions.create(
model="gemini-3.8-flash",
n=1,
messages=[
{
"role": "user",
"content": "Summarize the video"
}
],
stream=True,
stream_options={'include_usage': True},
extra_body={
'extra_body':
{
'google': {
'cached_content': "cachedContents/0000aaaa1111bbbb2222cccc3333dddd4444eeee"
}
}
}
)
for chunk in stream:
print(chunk)
print(chunk.usage.to_dict())
মডেলের তালিকা
উপলভ্য Gemini মডেলের তালিকা পান:
Python
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
models = client.models.list()
for model in models:
print(model.id)
জাভাস্ক্রিপ্ট
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: "GEMINI_API_KEY",
baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/",
});
async function main() {
const list = await openai.models.list();
for await (const model of list) {
console.log(model);
}
}
main();
বিশ্রাম
curl https://generativelanguage.googleapis.com/v1beta/openai/models \
-H "Authorization: Bearer GEMINI_API_KEY"
মডেল রিট্রিভ করুন
Gemini মডেল রিট্রিভ করা:
Python
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
model = client.models.retrieve("gemini-3.8-flash")
print(model.id)
জাভাস্ক্রিপ্ট
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: "GEMINI_API_KEY",
baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/",
});
async function main() {
const model = await openai.models.retrieve("gemini-3.8-flash");
console.log(model.id);
}
main();
বিশ্রাম
curl https://generativelanguage.googleapis.com/v1beta/openai/models/gemini-3.8-flash \
-H "Authorization: Bearer GEMINI_API_KEY"
বর্তমান সীমাবদ্ধতা
আমরা ফিচার সাপোর্ট বাড়ানোর সাথে সাথে OpenAI লাইব্রেরির জন্য সাপোর্ট এখনও বিটাতে রয়েছে।
সাপোর্ট করে এমন প্যারামিটার, আসন্ন ফিচার সম্পর্কে আপনার কোনও প্রশ্ন থাকলে অথবা Gemini ব্যবহার শুরু করার সময় কোনও সমস্যা হলে, আমাদের ডেভেলপার ফোরামে যোগ দিন।
এর পরে কী করতে হবে
আরও বিস্তারিত উদাহরণ নিয়ে কাজ করতে আমাদের OpenAI কম্প্যাটিবিলিটি Colab ব্যবহার করে দেখুন।