জেমিনি এপিআই কোড এক্সিকিউশন বৈশিষ্ট্য মডেলটিকে পাইথন কোড তৈরি করতে এবং চালাতে সক্ষম করে এবং এটি একটি চূড়ান্ত আউটপুটে না আসা পর্যন্ত ফলাফল থেকে পুনরাবৃত্তিমূলকভাবে শিখতে পারে। আপনি কোড-ভিত্তিক যুক্তি থেকে উপকৃত এবং পাঠ্য আউটপুট তৈরি করে এমন অ্যাপ্লিকেশন তৈরি করতে এই কোড এক্সিকিউশন ক্ষমতা ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনি একটি অ্যাপ্লিকেশনে কোড এক্সিকিউশন ব্যবহার করতে পারেন যা সমীকরণ সমাধান করে বা পাঠ্য প্রক্রিয়া করে।
এআই স্টুডিও এবং জেমিনি এপিআই উভয় ক্ষেত্রেই কোড এক্সিকিউশন পাওয়া যায়। এআই স্টুডিওতে, আপনি টুলস এর অধীনে ডান প্যানেলে কোড এক্সিকিউশন সক্ষম করতে পারেন। Gemini API ফাংশন কলিং এর মতন একটি টুল হিসাবে কোড এক্সিকিউশন প্রদান করে। আপনি একটি টুল হিসাবে কোড এক্সিকিউশন যোগ করার পরে, মডেলটি কখন এটি ব্যবহার করবে তা নির্ধারণ করে।
কোড এক্সিকিউশন এনভায়রনমেন্টে নিম্নলিখিত লাইব্রেরিগুলি অন্তর্ভুক্ত রয়েছে: altair
, chess
, cv2
, matplotlib
, mpmath
, numpy
, pandas
, pdfminer
, reportlab
, seaborn
, sklearn
, statsmodels
, striprtf
, sympy
, এবং tabulate
. আপনি আপনার নিজের লাইব্রেরি ইনস্টল করতে পারবেন না.
কোড এক্সিকিউশন দিয়ে শুরু করুন
একটি কোড এক্সিকিউশন নোটবুকও পাওয়া যায়:
এই বিভাগটি অনুমান করে যে আপনি quickstart- এ দেখানো সেটআপ এবং কনফিগারেশন ধাপগুলি সম্পূর্ণ করেছেন।
মডেলে কোড এক্সিকিউশন সক্ষম করুন
আপনি মডেলটিতে কোড এক্সিকিউশন সক্ষম করতে পারেন, যেমনটি এখানে দেখানো হয়েছে:
from google import genai
from google.genai import types
client = genai.Client(api_key="GEMINI_API_KEY ")
response = client.models.generate_content(
model='gemini-2.0-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
)]
)
)
একটি নোটবুকে আপনি এই হেল্পার ফাংশনের মাধ্যমে মার্কডাউন ফর্ম্যাটে সবকিছু প্রদর্শন করতে পারেন:
def display_code_execution_result(response):
for part in response.candidates[0].content.parts:
if part.text is not None:
display(Markdown(part.text))
if part.executable_code is not None:
code_html = f'<pre style="background-color: #BBBBEE;">{part.executable_code.code}</pre>' # Change code color
display(HTML(code_html))
if part.code_execution_result is not None:
display(Markdown(part.code_execution_result.output))
if part.inline_data is not None:
display(Image(data=part.inline_data.data, format="png"))
display(Markdown("---"))
display_code_execution_result(response)
আউটপুট এই মত কিছু দেখতে পারে:
ঠিক আছে, আমাকে প্রথম 50টি মৌলিক সংখ্যার যোগফল গণনা করতে হবে। আমি প্রথম 50টি প্রাইম তৈরি করতে একটি পাইথন স্ক্রিপ্ট ব্যবহার করব এবং তারপরে তাদের যোগ করব।
```python def is_prime(n): """Checks if a number is prime.""" if n <= 1: return False for i in range(2, int(n**0.5) + 1): if n % i == 0: return False return True def sum_of_primes(n): """Calculates the sum of the first n prime numbers.""" primes = [] i = 2 while len(primes) < n: if is_prime(i): primes.append(i) i += 1 return sum(primes) # Calculate the sum of the first 50 prime numbers sum_of_first_50_primes = sum_of_primes(50) print(f"The sum of the first 50 prime numbers is: {sum_of_first_50_primes}") ``` **Output:** ``` The sum of the first 50 prime numbers is: 5117 ```
চ্যাটে কোড এক্সিকিউশন ব্যবহার করুন
আপনি চ্যাটের অংশ হিসেবে কোড এক্সিকিউশনও ব্যবহার করতে পারেন।
from google import genai
from google.genai import types
client = genai.Client(api_key="GEMINI_API_KEY ")
chat = client.chats.create(
model='gemini-2.0-flash',
config=types.GenerateContentConfig(
tools=[types.Tool(
code_execution=types.ToolCodeExecution
)]
)
)
response = chat.send_message("Can you run some code to bogo-sort this list of numbers?: [2,34,1,65,4]")
display_code_execution_result(response)
কথোপকথন এভাবে চলতে পারে:
আমি বুঝি যে আপনি চান যে আমি তালিকাটি বোগো-বাছাই করি [2, 34, 1, 65, 4]। বোগো-সর্ট একটি কুখ্যাতভাবে অদক্ষ বাছাই অ্যালগরিদম। এটি সাজানো না হওয়া পর্যন্ত তালিকাটি বারবার এলোমেলো করে কাজ করে। এর অত্যন্ত দুর্বল কর্মক্ষমতার কারণে, এটি কোনো উল্লেখযোগ্য আকারের তালিকার জন্য অব্যবহারিক।
যাইহোক, প্রদর্শনের উদ্দেশ্যে, আমি প্রক্রিয়াটি দেখানোর জন্য খুব সীমিত সংখ্যক পুনরাবৃত্তির জন্য একটি সরলীকৃত সংস্করণ চালাতে পারি। আমি কি এগিয়ে যেতে হবে?
response = chat.send_message("Yes, please create the code.")
display_code_execution_result(response)
ঠিক আছে, আমি একটি ফাংশন নিয়ে এগিয়ে যাবো যা তালিকাকে এলোমেলো করে এবং এটি সাজানো হয়েছে কিনা তা পরীক্ষা করে। আমি সর্বোচ্চ 10টি পুনরাবৃত্তির জন্য এটি চালাব। ...
ইনপুট/আউটপুট (I/O)
Gemini 2.0 Flash দিয়ে শুরু করে, কোড এক্সিকিউশন ফাইল ইনপুট এবং গ্রাফ আউটপুট সমর্থন করে। এই নতুন ইনপুট এবং আউটপুট ক্ষমতাগুলি ব্যবহার করে, আপনি CSV এবং পাঠ্য ফাইলগুলি আপলোড করতে পারেন, ফাইলগুলি সম্পর্কে প্রশ্ন জিজ্ঞাসা করতে পারেন এবং প্রতিক্রিয়ার অংশ হিসাবে Matplotlib গ্রাফ তৈরি করতে পারেন৷
I/O মূল্য নির্ধারণ
কোড এক্সিকিউশন I/O ব্যবহার করার সময়, আপনাকে ইনপুট টোকেন এবং আউটপুট টোকেনের জন্য চার্জ করা হয়:
ইনপুট টোকেন:
- ব্যবহারকারী প্রম্পট
আউটপুট টোকেন:
- মডেল দ্বারা উত্পন্ন কোড
- কোড পরিবেশে কোড এক্সিকিউশন আউটপুট
- মডেল দ্বারা উত্পন্ন সারাংশ
I/O বিবরণ
আপনি যখন কোড এক্সিকিউশন I/O নিয়ে কাজ করছেন, তখন নিম্নলিখিত প্রযুক্তিগত বিবরণ সম্পর্কে সচেতন থাকুন:
- কোড পরিবেশের সর্বোচ্চ রানটাইম 30 সেকেন্ড।
- যদি কোড এনভায়রনমেন্ট একটি ত্রুটি উত্পন্ন করে, মডেলটি কোড আউটপুট পুনরায় তৈরি করার সিদ্ধান্ত নিতে পারে। এটি 5 বার পর্যন্ত ঘটতে পারে।
- মডেল টোকেন উইন্ডো দ্বারা সর্বাধিক ফাইল ইনপুট আকার সীমিত। AI স্টুডিওতে, Gemini Flash 2.0 ব্যবহার করে, সর্বাধিক ইনপুট ফাইলের আকার হল 1 মিলিয়ন টোকেন (সমর্থিত ইনপুট ধরনের টেক্সট ফাইলগুলির জন্য প্রায় 2MB)। আপনি যদি খুব বড় একটি ফাইল আপলোড করেন, তাহলে AI স্টুডিও আপনাকে এটি পাঠাতে দেবে না।
একক পালা | দ্বিমুখী (মাল্টিমোডাল লাইভ API) | |
---|---|---|
মডেল সমর্থিত | সমস্ত জেমিনি 2.0 মডেল | শুধুমাত্র ফ্ল্যাশ পরীক্ষামূলক মডেল |
ফাইল ইনপুট প্রকার সমর্থিত | .png, .jpeg, .csv, .xml, .cpp, .java, .py, .js, .ts | .png, .jpeg, .csv, .xml, .cpp, .java, .py, .js, .ts |
প্লটিং লাইব্রেরি সমর্থিত | ম্যাটপ্লটলিব | ম্যাটপ্লটলিব |
মাল্টি-টুল ব্যবহার | না | হ্যাঁ |
বিলিং
Gemini API থেকে কোড এক্সিকিউশন সক্ষম করার জন্য কোন অতিরিক্ত চার্জ নেই। আপনি যে মিথুন মডেল ব্যবহার করছেন তার উপর ভিত্তি করে ইনপুট এবং আউটপুট টোকেনের বর্তমান হারে আপনাকে বিল করা হবে।
কোড এক্সিকিউশনের জন্য বিলিং সম্পর্কে জানার জন্য এখানে কিছু অন্যান্য বিষয় রয়েছে:
- আপনি মডেলে যে ইনপুট টোকেনগুলি পাস করেন তার জন্য আপনাকে শুধুমাত্র একবার বিল করা হবে এবং মডেল দ্বারা আপনাকে ফেরত দেওয়া চূড়ান্ত আউটপুট টোকেনগুলির জন্য আপনাকে বিল করা হবে।
- উত্পন্ন কোডের প্রতিনিধিত্বকারী টোকেনগুলিকে আউটপুট টোকেন হিসাবে গণনা করা হয়। জেনারেটেড কোড টেক্সট এবং ছবির মত মাল্টিমোডাল আউটপুট অন্তর্ভুক্ত করতে পারে।
- কোড নির্বাহের ফলাফলও আউটপুট টোকেন হিসাবে গণনা করা হয়।
বিলিং মডেল নিম্নলিখিত চিত্রে দেখানো হয়েছে:
- আপনি যে মিথুন মডেল ব্যবহার করছেন তার উপর ভিত্তি করে ইনপুট এবং আউটপুট টোকেনগুলির বর্তমান হারে আপনাকে বিল করা হচ্ছে৷
- আপনার প্রতিক্রিয়া তৈরি করার সময় Gemini যদি কোড এক্সিকিউশন ব্যবহার করে, তাহলে আসল প্রম্পট, জেনারেট করা কোড এবং এক্সিকিউট করা কোডের ফলাফলকে ইন্টারমিডিয়েট টোকেন লেবেল করা হয় এবং ইনপুট টোকেন হিসেবে বিল করা হয়।
- জেমিনি তারপর একটি সারাংশ তৈরি করে এবং জেনারেট করা কোড, কার্যকর করা কোডের ফলাফল এবং চূড়ান্ত সারাংশ ফেরত দেয়। এগুলিকে আউটপুট টোকেন হিসাবে বিল করা হয়।
- Gemini API এ API প্রতিক্রিয়াতে একটি মধ্যবর্তী টোকেন গণনা অন্তর্ভুক্ত করে, তাই আপনি জানেন কেন আপনি আপনার প্রাথমিক প্রম্পটের বাইরে অতিরিক্ত ইনপুট টোকেন পাচ্ছেন।
সীমাবদ্ধতা
- মডেলটি শুধুমাত্র কোড তৈরি এবং চালাতে পারে। এটি মিডিয়া ফাইলের মত অন্যান্য শিল্পকর্ম ফেরত দিতে পারে না।
- কিছু ক্ষেত্রে, কোড এক্সিকিউশন সক্ষম করার ফলে মডেল আউটপুটের অন্যান্য ক্ষেত্রে রিগ্রেশন হতে পারে (উদাহরণস্বরূপ, একটি গল্প লেখা)।
- কোড এক্সিকিউশন সফলভাবে ব্যবহার করার জন্য বিভিন্ন মডেলের ক্ষমতার মধ্যে কিছু ভিন্নতা রয়েছে।