ইনপুট হিসাবে টেক্সট, ছবি, ভিডিও এবং অডিও প্রদান করা হলে Gemini API টেক্সট আউটপুট তৈরি করতে পারে।
এই নির্দেশিকা আপনাকে দেখায় কিভাবে generateContent
এবং streamGenerateContent
পদ্ধতি ব্যবহার করে পাঠ্য তৈরি করতে হয়। মিথুনের দৃষ্টি এবং অডিও ক্ষমতা নিয়ে কাজ করার বিষয়ে জানতে, দৃষ্টি এবং অডিও নির্দেশিকা পড়ুন।
আপনি শুরু করার আগে: আপনার প্রকল্প এবং API কী সেট আপ করুন
Gemini API কল করার আগে, আপনাকে আপনার প্রকল্প সেট আপ করতে হবে এবং আপনার API কী কনফিগার করতে হবে।
আপনার API কী পান এবং সুরক্ষিত করুন
Gemini API কল করার জন্য আপনার একটি API কী প্রয়োজন। আপনার যদি ইতিমধ্যে একটি না থাকে তবে Google AI স্টুডিওতে একটি কী তৈরি করুন৷
এটি দৃঢ়ভাবে সুপারিশ করা হয় যে আপনি আপনার সংস্করণ নিয়ন্ত্রণ সিস্টেমে একটি API কী চেক করবেন না ৷
Google ক্লাউড সিক্রেট ম্যানেজার- এর মতো গোপন স্টোরে আপনার API কী সংরক্ষণ করা উচিত।
এই টিউটোরিয়ালটি অনুমান করে যে আপনি একটি পরিবেশ পরিবর্তনশীল হিসাবে আপনার API কী অ্যাক্সেস করছেন।
SDK প্যাকেজ ইনস্টল করুন এবং আপনার API কী কনফিগার করুন
আপনার আবেদনে, নিম্নলিখিতগুলি করুন:
Node.js-এর জন্য
GoogleGenerativeAI
প্যাকেজ ইনস্টল করুন:npm install @google/generative-ai
প্যাকেজটি আমদানি করুন এবং আপনার API কী দিয়ে পরিষেবাটি কনফিগার করুন:
const { GoogleGenerativeAI } = require("@google/generative-ai"); // Access your API key as an environment variable const genAI = new GoogleGenerativeAI(process.env.API_KEY);
শুধুমাত্র পাঠ্য ইনপুট থেকে পাঠ্য তৈরি করুন
Gemini API ব্যবহার করে টেক্সট জেনারেট করার সবচেয়ে সহজ উপায় হল মডেলটিকে একটি মাত্র টেক্সট ইনপুট প্রদান করা, যেমন এই উদাহরণে দেখানো হয়েছে:
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Write a story about a magic backpack.";
const result = await model.generateContent(prompt);
console.log(result.response.text());
এই ক্ষেত্রে, প্রম্পট ("একটি জাদু ব্যাকপ্যাক সম্পর্কে একটি গল্প লিখুন") কোনো আউটপুট উদাহরণ, সিস্টেম নির্দেশাবলী, বা ফর্ম্যাটিং তথ্য অন্তর্ভুক্ত করে না। এটি একটি শূন্য-শট পদ্ধতির। কিছু ব্যবহারের ক্ষেত্রে, একটি এক-শট বা কয়েক-শট প্রম্পট আউটপুট তৈরি করতে পারে যা ব্যবহারকারীর প্রত্যাশার সাথে আরও সারিবদ্ধ। কিছু ক্ষেত্রে, আপনি মডেলটিকে কাজ বুঝতে বা নির্দিষ্ট নির্দেশিকা অনুসরণ করতে সাহায্য করার জন্য সিস্টেম নির্দেশাবলী প্রদান করতে চাইতে পারেন।
টেক্সট এবং ইমেজ ইনপুট থেকে টেক্সট তৈরি করুন
Gemini API মাল্টিমোডাল ইনপুট সমর্থন করে যা মিডিয়া ফাইলের সাথে পাঠ্য একত্রিত করে। নিম্নলিখিত উদাহরণ দেখায় কিভাবে পাঠ্য-এবং-চিত্র ইনপুট থেকে পাঠ্য তৈরি করা যায়:
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
function fileToGenerativePart(path, mimeType) {
return {
inlineData: {
data: Buffer.from(fs.readFileSync(path)).toString("base64"),
mimeType,
},
};
}
const prompt = "Describe how this product might be manufactured.";
// Note: The only accepted mime types are some image types, image/*.
const imagePart = fileToGenerativePart(
`${mediaPath}/jetpack.jpg`,
"image/jpeg",
);
const result = await model.generateContent([prompt, imagePart]);
console.log(result.response.text());
টেক্সট-অনলি প্রম্পটিংয়ের মতো, মাল্টিমোডাল প্রম্পটিং বিভিন্ন পদ্ধতি এবং পরিমার্জনকে জড়িত করতে পারে। এই উদাহরণ থেকে আউটপুট উপর নির্ভর করে, আপনি প্রম্পটে পদক্ষেপ যোগ করতে বা আপনার নির্দেশাবলী আরো নির্দিষ্ট হতে চাইতে পারেন. আরও জানতে, ফাইল প্রম্পটিং কৌশলগুলি দেখুন।
একটি পাঠ্য স্ট্রীম তৈরি করুন
ডিফল্টরূপে, সম্পূর্ণ পাঠ্য প্রজন্মের প্রক্রিয়াটি সম্পূর্ণ করার পরে মডেলটি একটি প্রতিক্রিয়া প্রদান করে। আপনি সম্পূর্ণ ফলাফলের জন্য অপেক্ষা না করে দ্রুত মিথস্ক্রিয়া অর্জন করতে পারেন এবং পরিবর্তে আংশিক ফলাফলগুলি পরিচালনা করতে স্ট্রিমিং ব্যবহার করতে পারেন।
নিচের উদাহরণে দেখানো হয়েছে কিভাবে streamGenerateContent
পদ্ধতি ব্যবহার করে স্ট্রিমিং বাস্তবায়ন করা যায় যাতে শুধুমাত্র টেক্সট-ইনপুট প্রম্পট থেকে টেক্সট তৈরি করা যায়।
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Write a story about a magic backpack.";
const result = await model.generateContentStream(prompt);
// Print text as it comes in.
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
একটি ইন্টারেক্টিভ চ্যাট তৈরি করুন
আপনি আপনার ব্যবহারকারীদের জন্য ইন্টারেক্টিভ চ্যাট অভিজ্ঞতা তৈরি করতে Gemini API ব্যবহার করতে পারেন। API-এর চ্যাট বৈশিষ্ট্য ব্যবহার করে আপনাকে একাধিক রাউন্ড প্রশ্ন এবং প্রতিক্রিয়া সংগ্রহ করতে দেয়, ব্যবহারকারীদের উত্তরের দিকে ক্রমবর্ধমানভাবে পদক্ষেপ নিতে বা বহুমুখী সমস্যায় সহায়তা পেতে দেয়। এই বৈশিষ্ট্যটি এমন অ্যাপ্লিকেশনগুলির জন্য আদর্শ যা চলমান যোগাযোগের প্রয়োজন, যেমন চ্যাটবট, ইন্টারেক্টিভ টিউটর বা গ্রাহক সহায়তা সহকারী।
নিম্নলিখিত কোড উদাহরণ একটি মৌলিক চ্যাট বাস্তবায়ন দেখায়:
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const chat = model.startChat({
history: [
{
role: "user",
parts: [{ text: "Hello" }],
},
{
role: "model",
parts: [{ text: "Great to meet you. What would you like to know?" }],
},
],
});
let result = await chat.sendMessage("I have 2 dogs in my house.");
console.log(result.response.text());
result = await chat.sendMessage("How many paws are in my house?");
console.log(result.response.text());
চ্যাট স্ট্রিমিং সক্ষম করুন
আপনি চ্যাটের সাথে স্ট্রিমিংও ব্যবহার করতে পারেন, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const chat = model.startChat({
history: [
{
role: "user",
parts: [{ text: "Hello" }],
},
{
role: "model",
parts: [{ text: "Great to meet you. What would you like to know?" }],
},
],
});
let result = await chat.sendMessageStream("I have 2 dogs in my house.");
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
result = await chat.sendMessageStream("How many paws are in my house?");
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
পাঠ্য প্রজন্ম কনফিগার করুন
আপনি মডেলে পাঠানো প্রতিটি প্রম্পটে প্যারামিটার অন্তর্ভুক্ত থাকে যা মডেলটি কীভাবে প্রতিক্রিয়া তৈরি করে তা নিয়ন্ত্রণ করে। আপনি এই পরামিতিগুলি কনফিগার করতে GenerationConfig
ব্যবহার করতে পারেন। আপনি যদি প্যারামিটারগুলি কনফিগার না করেন তবে মডেলটি ডিফল্ট বিকল্পগুলি ব্যবহার করে, যা মডেল অনুসারে পরিবর্তিত হতে পারে।
নিম্নলিখিত উদাহরণটি দেখায় কিভাবে উপলব্ধ বিকল্পগুলির কয়েকটি কনফিগার করতে হয়।
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({
model: "gemini-1.5-flash",
generationConfig: {
candidateCount: 1,
stopSequences: ["x"],
maxOutputTokens: 20,
temperature: 1.0,
},
});
const result = await model.generateContent(
"Tell me a story about a magic backpack.",
);
console.log(result.response.text());
candidateCount
প্রত্যাবর্তনের জন্য উত্পন্ন প্রতিক্রিয়ার সংখ্যা নির্দিষ্ট করে। বর্তমানে, এই মানটি শুধুমাত্র 1 তে সেট করা যেতে পারে৷ যদি সেট না করা হয় তবে এটি 1 এ ডিফল্ট হবে৷
stopSequences
ক্যারেক্টার সিকোয়েন্সের সেট নির্দিষ্ট করে (5 পর্যন্ত) যা আউটপুট জেনারেশন বন্ধ করবে। নির্দিষ্ট করা হলে, API একটি stop_sequence-এর প্রথম উপস্থিতিতে থেমে যাবে। প্রতিক্রিয়ার অংশ হিসেবে স্টপ সিকোয়েন্স অন্তর্ভুক্ত করা হবে না।
maxOutputTokens
একজন প্রার্থীকে অন্তর্ভুক্ত করার জন্য সর্বাধিক সংখ্যক টোকেন সেট করে।
temperature
আউটপুটের এলোমেলোতা নিয়ন্ত্রণ করে। আরো সৃজনশীল প্রতিক্রিয়ার জন্য উচ্চ মান ব্যবহার করুন, এবং আরো নির্ধারক প্রতিক্রিয়ার জন্য নিম্ন মান ব্যবহার করুন। মান [0.0, 2.0] থেকে পরিসীমা হতে পারে।
আপনি generateContent
করতে পৃথক কল কনফিগার করতে পারেন:
const result = await model.generateContent({
contents: [
{
role: 'user',
parts: [
{
text: prompt,
}
],
}
],
generationConfig: {
maxOutputTokens: 1000,
temperature: 0.1,
},
});
console.log(result.response.text());
মডেল কনস্ট্রাক্টরের পৃথক কল ওভাররাইড মানগুলিতে সেট করা যেকোনো মান।
এরপর কি
এখন আপনি Gemini API-এর মূল বিষয়গুলি অন্বেষণ করেছেন, আপনি চেষ্টা করতে চাইতে পারেন:
- দৃষ্টি বোঝা : চিত্র এবং ভিডিওগুলি প্রক্রিয়া করতে মিথুনের নেটিভ ভিশন বোঝার কীভাবে ব্যবহার করবেন তা শিখুন।
- সিস্টেম নির্দেশাবলী : সিস্টেম নির্দেশাবলী আপনাকে আপনার নির্দিষ্ট প্রয়োজন এবং ব্যবহারের ক্ষেত্রের উপর ভিত্তি করে মডেলের আচরণ পরিচালনা করতে দেয়।
- অডিও বোঝাপড়া : অডিও ফাইলগুলি প্রক্রিয়া করার জন্য জেমিনির নেটিভ অডিও বোঝার ব্যবহার শিখুন।