জেমিনি এপিআই একটি কোড এক্সিকিউশন টুল প্রদান করে যা মডেলটিকে পাইথন কোড তৈরি এবং চালাতে সক্ষম করে। এরপর মডেলটি কোড এক্সিকিউশন ফলাফল থেকে পুনরাবৃত্তিমূলকভাবে শিখতে পারে যতক্ষণ না এটি চূড়ান্ত আউটপুটে পৌঁছায়। আপনি কোড এক্সিকিউশন ব্যবহার করে এমন অ্যাপ্লিকেশন তৈরি করতে পারেন যা কোড-ভিত্তিক যুক্তি থেকে উপকৃত হয়। উদাহরণস্বরূপ, আপনি সমীকরণ সমাধান করতে বা পাঠ্য প্রক্রিয়া করতে কোড এক্সিকিউশন ব্যবহার করতে পারেন। আপনি আরও বিশেষায়িত কাজ সম্পাদনের জন্য কোড এক্সিকিউশন পরিবেশে অন্তর্ভুক্ত লাইব্রেরিগুলিও ব্যবহার করতে পারেন।
জেমিনি কেবল পাইথনে কোড এক্সিকিউট করতে সক্ষম। আপনি এখনও জেমিনিকে অন্য ভাষায় কোড জেনারেট করতে বলতে পারেন, কিন্তু মডেলটি কোড এক্সিকিউটেশন টুল ব্যবহার করে এটি চালাতে পারবে না।
কোড এক্সিকিউশন সক্ষম করুন
কোড এক্সিকিউশন সক্ষম করতে, মডেলটিতে কোড এক্সিকিউশন টুলটি কনফিগার করুন। এটি মডেলটিকে কোড তৈরি এবং চালানোর অনুমতি দেয়।
পাইথন
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="gemini-2.5-flash",
contents="What is the sum of the first 50 prime numbers? "
"Generate and run code for the calculation, and make sure you get all 50.",
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)
জাভাস্ক্রিপ্ট
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
let response = await ai.models.generateContent({
model: "gemini-2.5-flash",
contents: [
"What is the sum of the first 50 prime numbers? " +
"Generate and run code for the calculation, and make sure you get all 50.",
],
config: {
tools: [{ codeExecution: {} }],
},
});
const parts = response?.candidates?.[0]?.content?.parts || [];
parts.forEach((part) => {
if (part.text) {
console.log(part.text);
}
if (part.executableCode && part.executableCode.code) {
console.log(part.executableCode.code);
}
if (part.codeExecutionResult && part.codeExecutionResult.output) {
console.log(part.codeExecutionResult.output);
}
});
যাও
package main
import (
"context"
"fmt"
"os"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
config := &genai.GenerateContentConfig{
Tools: []*genai.Tool{
{CodeExecution: &genai.ToolCodeExecution{}},
},
}
result, _ := client.Models.GenerateContent(
ctx,
"gemini-2.5-flash",
genai.Text("What is the sum of the first 50 prime numbers? " +
"Generate and run code for the calculation, and make sure you get all 50."),
config,
)
fmt.Println(result.Text())
fmt.Println(result.ExecutableCode())
fmt.Println(result.CodeExecutionResult())
}
বিশ্রাম
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' \
-d ' {"tools": [{"code_execution": {}}],
"contents": {
"parts":
{
"text": "What is the sum of the first 50 prime numbers? Generate and run code for the calculation, and make sure you get all 50."
}
},
}'
আউটপুটটি দেখতে নিচের মতো হতে পারে, যা পঠনযোগ্যতার জন্য ফর্ম্যাট করা হয়েছে:
Okay, I need to calculate the sum of the first 50 prime numbers. Here's how I'll
approach this:
1. **Generate Prime Numbers:** I'll use an iterative method to find prime
numbers. I'll start with 2 and check if each subsequent number is divisible
by any number between 2 and its square root. If not, it's a prime.
2. **Store Primes:** I'll store the prime numbers in a list until I have 50 of
them.
3. **Calculate the Sum:** Finally, I'll sum the prime numbers in the list.
Here's the Python code to do this:
def is_prime(n):
"""Efficiently checks if a number is prime."""
if n <= 1:
return False
if n <= 3:
return True
if n % 2 == 0 or n % 3 == 0:
return False
i = 5
while i * i <= n:
if n % i == 0 or n % (i + 2) == 0:
return False
i += 6
return True
primes = []
num = 2
while len(primes) < 50:
if is_prime(num):
primes.append(num)
num += 1
sum_of_primes = sum(primes)
print(f'{primes=}')
print(f'{sum_of_primes=}')
primes=[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67,
71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151,
157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229]
sum_of_primes=5117
The sum of the first 50 prime numbers is 5117.
এই আউটপুটটি বেশ কয়েকটি কন্টেন্ট অংশকে একত্রিত করে যা কোড এক্সিকিউশন ব্যবহার করার সময় মডেলটি ফেরত দেয়:
-
text: মডেল দ্বারা তৈরি ইনলাইন টেক্সট -
executableCode: যে মডেলটি কার্যকর করার জন্য তৈরি করা হয়েছে তার দ্বারা তৈরি কোড -
codeExecutionResult: এক্সিকিউটেবল কোডের ফলাফল
এই অংশগুলির নামকরণের নিয়মগুলি প্রোগ্রামিং ভাষা অনুসারে পরিবর্তিত হয়।
চ্যাটে কোড এক্সিকিউশন ব্যবহার করুন
আপনি চ্যাটের অংশ হিসেবে কোড এক্সিকিউশনও ব্যবহার করতে পারেন।
পাইথন
from google import genai
from google.genai import types
client = genai.Client()
chat = client.chats.create(
model="gemini-2.5-flash",
config=types.GenerateContentConfig(
tools=[types.Tool(code_execution=types.ToolCodeExecution)]
),
)
response = chat.send_message("I have a math question for you.")
print(response.text)
response = chat.send_message(
"What is the sum of the first 50 prime numbers? "
"Generate and run code for the calculation, and make sure you get all 50."
)
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)
জাভাস্ক্রিপ্ট
import {GoogleGenAI} from "@google/genai";
const ai = new GoogleGenAI({});
const chat = ai.chats.create({
model: "gemini-2.5-flash",
history: [
{
role: "user",
parts: [{ text: "I have a math question for you:" }],
},
{
role: "model",
parts: [{ text: "Great! I'm ready for your math question. Please ask away." }],
},
],
config: {
tools: [{codeExecution:{}}],
}
});
const response = await chat.sendMessage({
message: "What is the sum of the first 50 prime numbers? " +
"Generate and run code for the calculation, and make sure you get all 50."
});
console.log("Chat response:", response.text);
যাও
package main
import (
"context"
"fmt"
"os"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
config := &genai.GenerateContentConfig{
Tools: []*genai.Tool{
{CodeExecution: &genai.ToolCodeExecution{}},
},
}
chat, _ := client.Chats.Create(
ctx,
"gemini-2.5-flash",
config,
nil,
)
result, _ := chat.SendMessage(
ctx,
genai.Part{Text: "What is the sum of the first 50 prime numbers? " +
"Generate and run code for the calculation, and " +
"make sure you get all 50.",
},
)
fmt.Println(result.Text())
fmt.Println(result.ExecutableCode())
fmt.Println(result.CodeExecutionResult())
}
বিশ্রাম
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' \
-d '{"tools": [{"code_execution": {}}],
"contents": [
{
"role": "user",
"parts": [{
"text": "Can you print \"Hello world!\"?"
}]
},{
"role": "model",
"parts": [
{
"text": ""
},
{
"executable_code": {
"language": "PYTHON",
"code": "\nprint(\"hello world!\")\n"
}
},
{
"code_execution_result": {
"outcome": "OUTCOME_OK",
"output": "hello world!\n"
}
},
{
"text": "I have printed \"hello world!\" using the provided python code block. \n"
}
],
},{
"role": "user",
"parts": [{
"text": "What is the sum of the first 50 prime numbers? Generate and run code for the calculation, and make sure you get all 50."
}]
}
]
}'
ইনপুট/আউটপুট (আই/ও)
জেমিনি ২.০ ফ্ল্যাশ দিয়ে শুরু করে, কোড এক্সিকিউশন ফাইল ইনপুট এবং গ্রাফ আউটপুট সমর্থন করে। এই ইনপুট এবং আউটপুট ক্ষমতা ব্যবহার করে, আপনি CSV এবং টেক্সট ফাইল আপলোড করতে পারেন, ফাইল সম্পর্কে প্রশ্ন জিজ্ঞাসা করতে পারেন এবং প্রতিক্রিয়ার অংশ হিসাবে Matplotlib গ্রাফ তৈরি করতে পারেন। প্রতিক্রিয়াতে আউটপুট ফাইলগুলি ইনলাইন চিত্র হিসাবে ফেরত পাঠানো হয়।
I/O মূল্য নির্ধারণ
কোড এক্সিকিউশন I/O ব্যবহার করার সময়, আপনাকে ইনপুট টোকেন এবং আউটপুট টোকেনের জন্য চার্জ করা হবে:
ইনপুট টোকেন:
- ব্যবহারকারীর প্রম্পট
আউটপুট টোকেন:
- মডেল দ্বারা তৈরি কোড
- কোড পরিবেশে কোড এক্সিকিউশন আউটপুট
- চিন্তাভাবনার চিহ্ন
- মডেল দ্বারা তৈরি সারাংশ
ইনপুট/আউটপুট বিবরণ
কোড এক্সিকিউশন I/O নিয়ে কাজ করার সময়, নিম্নলিখিত প্রযুক্তিগত বিবরণ সম্পর্কে সচেতন থাকুন:
- কোড পরিবেশের সর্বোচ্চ রানটাইম 30 সেকেন্ড।
- যদি কোড পরিবেশ কোনও ত্রুটি তৈরি করে, তাহলে মডেলটি কোড আউটপুট পুনরায় তৈরি করার সিদ্ধান্ত নিতে পারে। এটি ৫ বার পর্যন্ত ঘটতে পারে।
- মডেল টোকেন উইন্ডো দ্বারা সর্বাধিক ফাইল ইনপুট আকার সীমিত। AI স্টুডিওতে, Gemini Flash 2.0 ব্যবহার করে, সর্বাধিক ইনপুট ফাইলের আকার হল 1 মিলিয়ন টোকেন (সমর্থিত ইনপুট ধরণের টেক্সট ফাইলের জন্য প্রায় 2MB)। আপনি যদি খুব বড় কোনও ফাইল আপলোড করেন, তাহলে AI স্টুডিও আপনাকে এটি পাঠাতে দেবে না।
- কোড এক্সিকিউশন টেক্সট এবং CSV ফাইলের সাথে সবচেয়ে ভালো কাজ করে।
- ইনপুট ফাইলটি
part.inlineDataঅথবাpart.fileData( Files API এর মাধ্যমে আপলোড করা) তে পাস করা যেতে পারে, এবং আউটপুট ফাইলটি সর্বদাpart.inlineDataহিসাবে ফেরত পাঠানো হয়।
| একক পালা | দ্বিমুখী (মাল্টিমোডাল লাইভ এপিআই) | |
|---|---|---|
| সমর্থিত মডেলগুলি | সকল জেমিনি ২.০ এবং ২.৫ মডেল | শুধুমাত্র ফ্ল্যাশ পরীক্ষামূলক মডেল |
| ফাইল ইনপুট প্রকারগুলি সমর্থিত | .png, .jpeg, .csv, .xml, .cpp, .java, .py, .js, .ts | .png, .jpeg, .csv, .xml, .cpp, .java, .py, .js, .ts |
| প্লটিং লাইব্রেরি সমর্থিত | ম্যাটপ্লটলিব, সিবর্ন | ম্যাটপ্লটলিব, সিবর্ন |
| মাল্টি-টুল ব্যবহার | হ্যাঁ (কোড এক্সিকিউশন + শুধুমাত্র গ্রাউন্ডিং) | হাঁ |
বিলিং
জেমিনি এপিআই থেকে কোড এক্সিকিউশন সক্ষম করার জন্য কোনও অতিরিক্ত চার্জ নেই। আপনার ব্যবহৃত জেমিনি মডেলের উপর ভিত্তি করে ইনপুট এবং আউটপুট টোকেনের বর্তমান হারে আপনাকে বিল করা হবে।
কোড এক্সিকিউশনের জন্য বিলিং সম্পর্কে আরও কিছু বিষয় জানা দরকার:
- মডেলটিতে আপনি যে ইনপুট টোকেনগুলি পাস করবেন তার জন্য আপনাকে কেবল একবার বিল করা হবে এবং মডেলটি আপনাকে যে চূড়ান্ত আউটপুট টোকেনগুলি ফেরত দেবে তার জন্য আপনাকে বিল করা হবে।
- জেনারেটেড কোড প্রতিনিধিত্বকারী টোকেনগুলিকে আউটপুট টোকেন হিসাবে গণনা করা হয়। জেনারেটেড কোডে টেক্সট এবং মাল্টিমোডাল আউটপুট যেমন ইমেজ অন্তর্ভুক্ত থাকতে পারে।
- কোড এক্সিকিউশনের ফলাফলগুলিও আউটপুট টোকেন হিসাবে গণনা করা হয়।
বিলিং মডেলটি নিম্নলিখিত চিত্রে দেখানো হয়েছে:

- আপনার ব্যবহৃত জেমিনি মডেলের উপর ভিত্তি করে ইনপুট এবং আউটপুট টোকেনের বর্তমান হারে আপনাকে বিল করা হবে।
- যদি জেমিনি আপনার প্রতিক্রিয়া তৈরি করার সময় কোড এক্সিকিউশন ব্যবহার করে, তাহলে মূল প্রম্পট, জেনারেট করা কোড এবং এক্সিকিউট করা কোডের ফলাফলকে ইন্টারমিডিয়েট টোকেন হিসেবে লেবেল করা হবে এবং ইনপুট টোকেন হিসেবে বিল করা হবে।
- এরপর জেমিনি একটি সারাংশ তৈরি করে এবং জেনারেট করা কোড, কার্যকর করা কোডের ফলাফল এবং চূড়ান্ত সারাংশ ফেরত দেয়। এগুলি আউটপুট টোকেন হিসাবে বিল করা হয়।
- জেমিনি এপিআইতে এপিআই রেসপন্সে একটি মধ্যবর্তী টোকেন কাউন্ট থাকে, যাতে আপনি জানতে পারেন কেন আপনি আপনার প্রাথমিক প্রম্পটের বাইরে অতিরিক্ত ইনপুট টোকেন পাচ্ছেন।
সীমাবদ্ধতা
- মডেলটি কেবল কোড তৈরি এবং কার্যকর করতে পারে। এটি মিডিয়া ফাইলের মতো অন্যান্য আর্টিফ্যাক্ট ফেরত দিতে পারে না।
- কিছু ক্ষেত্রে, কোড এক্সিকিউশন সক্ষম করলে মডেল আউটপুটের অন্যান্য ক্ষেত্রে (উদাহরণস্বরূপ, একটি গল্প লেখা) রিগ্রেশন হতে পারে।
- বিভিন্ন মডেলের কোড এক্সিকিউশন সফলভাবে ব্যবহারের ক্ষমতার মধ্যে কিছু তারতম্য রয়েছে।
সমর্থিত সরঞ্জাম সমন্বয়
আরও জটিল ব্যবহারের ক্ষেত্রে শক্তি যোগাতে কোড এক্সিকিউশন টুলকে গ্রাউন্ডিং এবং গুগল সার্চের সাথে একত্রিত করা যেতে পারে।
সমর্থিত লাইব্রেরি
কোড এক্সিকিউশন এনভায়রনমেন্টে নিম্নলিখিত লাইব্রেরিগুলি অন্তর্ভুক্ত থাকে:
- অ্যাটর্স
- দাবা
- রূপরেখা
- এফপিডিএফ
- জিওপ্যান্ডাস
- ইমেজিও
- জিনজা২
- জবলিব
- জসনস্কিমা
- jsonschema-স্পেসিফিকেশন
- এলএক্সএমএল
- ম্যাটপ্লটলিব
- এমপিম্যাথ
- নম্পি
- opencv-পাইথন
- ওপেনপিএক্সএল
- প্যাকেজিং
- পান্ডা
- বালিশ
- প্রোটোবাফ
- পাইলেটেক্স
- পাইপার্সিং
- PyPDF2 সম্পর্কে
- পাইথন-ডেটইউটিল
- পাইথন-ডকএক্স
- পাইথন-pptx
- রিপোর্টল্যাব
- বিজ্ঞান-শিখুন
- স্কিপী
- সমুদ্র-প্রেমী
- ছয়
- স্ট্রিপর্টফ
- সিম্পি
- সারণীবদ্ধ করা
- টেনসরফ্লো
- টুলজ
- এক্সএলআরডি
আপনি নিজের লাইব্রেরি ইনস্টল করতে পারবেন না।
এরপর কি?
- কোড এক্সিকিউশন Colab ব্যবহার করে দেখুন।
- অন্যান্য জেমিনি এপিআই টুল সম্পর্কে জানুন: