মিডিয়া ফাইলের সাথে প্রম্পটিং

ai.google.dev এ দেখুন Google Colab-এ চালান GitHub-এ উৎস দেখুন

Gemini API পাঠ্য, চিত্র এবং অডিও ডেটা সহ প্রম্পটিং সমর্থন করে, যা মাল্টিমোডাল প্রম্পটিং নামেও পরিচিত। আপনি আপনার প্রম্পটে পাঠ্য, চিত্র এবং অডিও অন্তর্ভুক্ত করতে পারেন। ছোট ছবিগুলির জন্য, আপনি প্রম্পট প্রদান করার সময় সরাসরি একটি স্থানীয় ফাইলে জেমিনি মডেল নির্দেশ করতে পারেন। বৃহত্তর ছবি, ভিডিও (ছবির ফ্রেমের ক্রম) এবং অডিওর জন্য, ফাইলগুলিকে প্রম্পটে অন্তর্ভুক্ত করার আগে ফাইল এপিআই দিয়ে আপলোড করুন৷

ফাইল API আপনাকে প্রতি প্রকল্পে 20GB পর্যন্ত ফাইল সংরক্ষণ করতে দেয়, প্রতিটি ফাইলের আকার 2GB-এর বেশি নয়। ফাইলগুলি 48 ঘন্টার জন্য সংরক্ষণ করা হয় এবং সেই সময়ের মধ্যে প্রজন্মের জন্য আপনার API কী দিয়ে অ্যাক্সেস করা যেতে পারে। Gemini API পাওয়া যায় এমন সমস্ত অঞ্চলে এটি বিনা মূল্যে পাওয়া যায়।

বৈধ ফাইল ফরম্যাট (MIME প্রকার) এবং সমর্থিত মডেলের তথ্যের জন্য, সমর্থিত ফাইল ফরম্যাট দেখুন।

এই নির্দেশিকাটি দেখায় কিভাবে একটি মিডিয়া ফাইল আপলোড করতে ফাইল API ব্যবহার করতে হয় এবং Gemini API-তে GenerateContent কলে এটি অন্তর্ভুক্ত করতে হয়। আরও তথ্যের জন্য, কোড নমুনা দেখুন।

সেটআপ

আপনি ফাইল API ব্যবহার করার আগে, আপনাকে Gemini API SDK প্যাকেজ ইনস্টল করতে হবে এবং একটি API কী কনফিগার করতে হবে। এই বিভাগে এই সেটআপ পদক্ষেপগুলি কীভাবে সম্পূর্ণ করতে হয় তা বর্ণনা করে।

পাইথন SDK ইনস্টল করুন এবং প্যাকেজ আমদানি করুন

Gemini API-এর জন্য Python SDK google-generativeai প্যাকেজে রয়েছে। পিপ ব্যবহার করে নির্ভরতা ইনস্টল করুন।

pip install -q -U google-generativeai

প্রয়োজনীয় প্যাকেজ আমদানি করুন।

import google.generativeai as genai
from IPython.display import Markdown

আপনার API কী সেটআপ করুন

ফাইল API প্রমাণীকরণ এবং অ্যাক্সেসের জন্য API কী ব্যবহার করে। আপলোড করা ফাইলগুলি API কী-এর সাথে সংযুক্ত প্রকল্পের সাথে যুক্ত। API কী ব্যবহার করে এমন অন্যান্য জেমিনি APIগুলির থেকে ভিন্ন, আপনার API কী আপনার ফাইল API-এ আপলোড করা ডেটাতে অ্যাক্সেসও দেয়, তাই আপনার API কী সুরক্ষিত রাখার ক্ষেত্রে অতিরিক্ত যত্ন নিন। আপনার কীগুলি সুরক্ষিত রাখার বিষয়ে আরও জানতে, API কীগুলি ব্যবহারের জন্য সেরা অনুশীলনগুলি দেখুন৷

GOOGLE_API_KEY নামের একটি Colab সিক্রেটে আপনার API কী সংরক্ষণ করুন। যদি আপনার কাছে ইতিমধ্যেই একটি API কী না থাকে বা আপনি Colab সিক্রেটের সাথে অপরিচিত হন, তাহলে প্রমাণীকরণ quickstart দেখুন।

from google.colab import userdata
GOOGLE_API_KEY=userdata.get('GOOGLE_API_KEY')

genai.configure(api_key=GOOGLE_API_KEY)

ফাইল API এ একটি ফাইল আপলোড করুন

ফাইল API আপনাকে ছবি এবং অডিও বিন্যাস সহ বিভিন্ন ধরনের মাল্টিমডাল MIME প্রকার আপলোড করতে দেয়৷ ফাইল API ইনপুটগুলি পরিচালনা করে যা model.generateContent বা model.streamGenerateContent দিয়ে সামগ্রী তৈরি করতে ব্যবহার করা যেতে পারে।

ফাইল এপিআই 2 গিগাবাইটের কম আকারের ফাইল গ্রহণ করে এবং প্রতি প্রকল্পে 20 গিগাবাইট পর্যন্ত ফাইল সংরক্ষণ করতে পারে। ফাইল 2 দিনের জন্য স্থায়ী হয় এবং API থেকে ডাউনলোড করা যাবে না।

প্রথমে, আপনি API এ আপলোড করার জন্য একটি নমুনা ছবি প্রস্তুত করবেন।

আপনার নিজের ফাইল আপলোড করতে, পরিশিষ্ট বিভাগটি দেখুন।

curl -o image.jpg https://storage.googleapis.com/generativeai-downloads/images/jetpack.jpg

এর পরে, আপনি সেই ফাইলটি ফাইল API এ আপলোড করবেন।

sample_file = genai.upload_file(path="image.jpg",
                            display_name="Sample drawing")

print(f"Uploaded file '{sample_file.display_name}' as: {sample_file.uri}")
Uploaded file 'Sample drawing' as: https://generativelanguage.googleapis.com/v1beta/files/ui00j5zfuqe0

response দেখায় যে ফাইল এপিআই আপলোড করা ফাইলের জন্য নির্দিষ্ট display_name এবং Gemini API কলগুলিতে ফাইলটি উল্লেখ করার জন্য একটি uri সংরক্ষণ করে। কিভাবে আপলোড করা ফাইলগুলি URI-তে ম্যাপ করা হয় তা ট্র্যাক করতে response ব্যবহার করুন।

আপনার ব্যবহারের ক্ষেত্রের উপর নির্ভর করে, আপনি URI গুলিকে dict বা ডাটাবেসের মতো কাঠামোতে সংরক্ষণ করতে পারেন।

নথিভুক্ত কর

ফাইলটি আপলোড করার পরে, আপনি files.get এ কল করে API সফলভাবে ফাইলগুলি পেয়েছেন তা যাচাই করতে পারেন।

এটি আপনাকে ফাইল এপিআই-তে আপলোড করা ফাইল মেটাডেটা পেতে দেয় যা ক্লাউড প্রোজেক্টের সাথে সম্পর্কিত যেটি আপনার API কী এর অন্তর্গত। শুধুমাত্র name (এবং এক্সটেনশন দ্বারা, uri ) অনন্য। আপনি যদি নিজেই অনন্যতা পরিচালনা করেন তবেই ফাইলগুলি সনাক্ত করতে displayName ব্যবহার করুন৷

file = genai.get_file(name=sample_file.name)
print(f"Retrieved file '{file.display_name}' as: {sample_file.uri}")

সামগ্রী তৈরি করুন

ফাইল আপলোড করার পরে, আপনি GenerateContent অনুরোধ করতে পারেন যা ফাইল API URI উল্লেখ করে। এই উদাহরণে, আপনি প্রম্পট তৈরি করেন যা আপলোড করা চিত্রের পরে একটি পাঠ্য দিয়ে শুরু হয়।

# Set the model to Gemini 1.5 Pro.
model = genai.GenerativeModel(model_name="models/gemini-1.5-pro-latest")

response = model.generate_content(["Describe the image with a creative description.", sample_file])

Markdown(">" + response.text)

ফাইল মুছে দিন

ফাইলগুলি 2 দিন পরে স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়। এছাড়াও আপনি files.delete() ব্যবহার করে ম্যানুয়ালি মুছে ফেলতে পারেন।

genai.delete_file(sample_file.name)
print(f'Deleted {sample_file.display_name}.')

সমর্থিত ফাইল ফরম্যাট

জেমিনি মডেল একাধিক ফাইল ফরম্যাটের সাথে প্রম্পটিং সমর্থন করে। এই বিভাগটি প্রম্পট করার জন্য সাধারণ মিডিয়া ফর্ম্যাটগুলি ব্যবহার করার বিষয়ে বিবেচ্য বিষয়গুলি ব্যাখ্যা করে, বিশেষ করে ছবি, অডিও এবং ভিডিও ফাইল৷ আপনি মিডিয়া ফাইলগুলিকে শুধুমাত্র নির্দিষ্ট মডেল সংস্করণের সাথে প্রম্পট করার জন্য ব্যবহার করতে পারেন, যেমনটি নিম্নলিখিত টেবিলে দেখানো হয়েছে।

মডেল ছবি শ্রুতি ভিডিও
Gemini 1.5 Pro (রিলিজ 008 এবং পরবর্তী) ✔ (সর্বোচ্চ 3600 ইমেজ ফাইল)
মিথুন প্রো ভিশন ✔ (সর্বোচ্চ ১৬টি ছবি ফাইল)

ইমেজ ফরম্যাট

আপনি gemini-pro-vision এবং gemini-1.5-pro মডেলগুলির সাথে প্রম্পট করার জন্য চিত্র ডেটা ব্যবহার করতে পারেন। আপনি যখন প্রম্পট করার জন্য ছবিগুলি ব্যবহার করেন, তখন সেগুলি নিম্নলিখিত সীমাবদ্ধতা এবং প্রয়োজনীয়তার সাপেক্ষে থাকে:

  • চিত্রগুলি অবশ্যই নিম্নলিখিত চিত্র ডেটা MIME প্রকারগুলির মধ্যে একটিতে থাকতে হবে:
    • PNG - ছবি/পিএনজি
    • JPEG - ছবি/jpeg
    • WEBP - ছবি/ওয়েবপি
    • HEIC - চিত্র/heic
    • HEIF - image/heif
  • gemini-pro-vision জন্য সর্বাধিক 16টি পৃথক ছবি এবং gemini-1.5-pro এর জন্য 3600টি ছবি
  • একটি ছবিতে পিক্সেল সংখ্যার কোন নির্দিষ্ট সীমা নেই; যাইহোক, বৃহত্তর চিত্রগুলিকে তাদের আসল আকৃতির অনুপাত সংরক্ষণ করার সময় সর্বাধিক 3072 x 3072 রেজোলিউশনে ফিট করার জন্য ছোট করা হয়।

অডিও ফরম্যাট

আপনি gemini-1.5-pro মডেলের সাথে প্রম্পট করার জন্য অডিও ডেটা ব্যবহার করতে পারেন। আপনি যখন প্রম্পট করার জন্য অডিও ব্যবহার করেন, তখন সেগুলি নিম্নলিখিত সীমাবদ্ধতা এবং প্রয়োজনীয়তার সাপেক্ষে থাকে:

  • অডিও ডেটা নিম্নলিখিত সাধারণ অডিও বিন্যাস MIME প্রকারে সমর্থিত:
    • WAV - অডিও/wav
    • MP3 - অডিও/mp3
    • AIFF - অডিও/এআইএফএফ
    • AAC - অডিও/aac
    • OGG Vorbis - অডিও/ogg
    • FLAC - অডিও/flac
  • একক প্রম্পটে অডিও ডেটার সর্বাধিক সমর্থিত দৈর্ঘ্য হল 9.5 ঘন্টা।
  • অডিও ফাইলগুলিকে 16 কেবিপিএস ডেটা রেজোলিউশনে পুনরায় স্যাম্পল করা হয় এবং অডিওর একাধিক চ্যানেল একটি একক চ্যানেলে একত্রিত হয়।
  • একটি একক প্রম্পটে অডিও ফাইলের সংখ্যার কোন নির্দিষ্ট সীমা নেই, তবে একটি একক প্রম্পটে সমস্ত অডিও ফাইলের মোট মিলিত দৈর্ঘ্য 9.5 ঘন্টার বেশি হতে পারে না।

ভিডিও ফরম্যাট

আপনি gemini-1.5-pro মডেলের সাথে প্রম্পট করার জন্য ভিডিও ডেটা ব্যবহার করতে পারেন। যাইহোক, ভিডিও ফাইল ফরম্যাট Gemini API দ্বারা সরাসরি ইনপুট হিসাবে সমর্থিত নয়। ভিডিওটিকে স্টিল ফ্রেম ইমেজ এবং একটি পৃথক অডিও ফাইলের সিরিজে ভেঙে আপনি প্রম্পট ইনপুট হিসাবে ভিডিও ডেটা ব্যবহার করতে পারেন। এই পদ্ধতিটি আপনাকে ভিডিও ফাইল থেকে আপনার প্রম্পটে প্রতি সেকেন্ডে কতগুলি ফ্রেম অন্তর্ভুক্ত করা হয়েছে তা চয়ন করে ভিডিও দ্বারা সরবরাহ করা ডেটার পরিমাণ এবং বিশদ স্তর পরিচালনা করতে দেয়৷

পরিশিষ্ট: Colab-এ ফাইল আপলোড করা হচ্ছে

এই নোটবুকটি ইন্টারনেট থেকে ডাউনলোড করা ফাইলগুলির সাথে ফাইল API ব্যবহার করে৷ আপনি যদি এটি Colab-এ চালান এবং আপনার নিজের ফাইল ব্যবহার করতে চান, তাহলে আপনাকে প্রথমে সেগুলি Colab ইনস্ট্যান্সে আপলোড করতে হবে।

প্রথমে, বাম সাইডবারে ফাইলে ক্লিক করুন, তারপর আপলোড বোতামে ক্লিক করুন:

এর পরে, আপনি সেই ফাইলটি ফাইল API এ আপলোড করবেন। নীচের কোড সেলের ফর্মে, আপনি যে ফাইলটি আপলোড করেছেন তার ফাইলের নাম লিখুন এবং ফাইলটির জন্য একটি উপযুক্ত প্রদর্শন নাম দিন, তারপর সেলটি চালান৷

my_filename = "gemini_logo.png" # @param {type:"string"}
my_file_display_name = "Gemini Logo" # @param {type:"string"}

my_file = genai.upload_file(path=my_filename,
                            display_name=my_file_display_name)
print(f"Uploaded file '{my_file.display_name}' as: {my_file.uri}")