Google Generative AI প্লাগইন Gemini API-এর মাধ্যমে Google-এর জেমিনি মডেলগুলিতে ইন্টারফেস সরবরাহ করে।
ইনস্টলেশন
npm i --save @genkit-ai/googleai
কনফিগারেশন
এই প্লাগইনটি ব্যবহার করতে, আপনি যখন Genkit শুরু করবেন তখন এটি নির্দিষ্ট করুন:
import { genkit } from 'genkit';
import { googleAI } from '@genkit-ai/googleai';
const ai = genkit({
plugins: [googleAI()],
});
প্লাগইনটির জন্য Gemini API-এর জন্য একটি API কী প্রয়োজন, যা আপনি Google AI Studio থেকে পেতে পারেন।
নিম্নলিখিতগুলির মধ্যে একটি করে আপনার API কী ব্যবহার করার জন্য প্লাগইনটি কনফিগার করুন:
- আপনার API কীতে
GOOGLE_GENAI_API_KEY
এনভায়রনমেন্ট ভেরিয়েবল সেট করুন। আপনি যখন প্লাগইন শুরু করবেন তখন API কী নির্দিষ্ট করুন:
googleAI({ apiKey: yourKey });
যাইহোক, কোডে সরাসরি আপনার API কী এম্বেড করবেন না! শুধুমাত্র ক্লাউড সিক্রেট ম্যানেজার বা অনুরূপ একটি পরিষেবার সাথে এই বৈশিষ্ট্যটি ব্যবহার করুন৷
ব্যবহার
এই প্লাগইনটি স্থিরভাবে এর সমর্থিত মডেলগুলিতে রেফারেন্স রপ্তানি করে:
import {
gemini15Flash,
gemini15Pro,
textEmbedding004,
} from '@genkit-ai/googleai';
কোন মডেল generate()
ব্যবহার করে তা নির্দিষ্ট করতে আপনি এই রেফারেন্সগুলি ব্যবহার করতে পারেন:
const ai = genkit({
plugins: [googleAI()],
model: gemini15Flash,
});
const llmResponse = await ai.generate('Tell me a joke.');
অথবা embed
বা পুনরুদ্ধারের সাথে এমবেডার (যেমন textEmbedding004
) ব্যবহার করুন:
const ai = genkit({
plugins: [googleAI()],
});
const embedding = await ai.embed({
embedder: textEmbedding004,
content: input,
});
Gemini Files API
আপনি Gemini Files API এ আপলোড করা ফাইলগুলি Genkit এর সাথে ব্যবহার করতে পারেন:
import { GoogleAIFileManager } from '@google/generative-ai/server';
import { genkit } from 'genkit';
import { googleAI } from '@genkit-ai/googleai';
const ai = genkit({
plugins: [googleAI()],
});
const fileManager = new GoogleAIFileManager(process.env.GOOGLE_GENAI_API_KEY);
const uploadResult = await fileManager.uploadFile(
'path/to/file.jpg',
{
mimeType: 'image/jpeg',
displayName: 'Your Image',
}
);
const response = await ai.generate({
model: gemini15Flash,
prompt: [
{text: 'Describe this image:'},
{media: {contentType: uploadResult.file.mimeType, url: uploadResult.file.uri}}
]
});
সূক্ষ্ম সুর করা মডেল
আপনি Google Gemini API-এর সাথে সূক্ষ্ম সুর করা মডেলগুলি ব্যবহার করতে পারেন৷ জেমিনি API থেকে নির্দেশাবলী অনুসরণ করুন বা AI স্টুডিও ব্যবহার করে একটি মডেল ঠিক করুন।
টিউনিং প্রক্রিয়া একটি বেস মডেল ব্যবহার করে—উদাহরণস্বরূপ, জেমিনি 1.5 ফ্ল্যাশ—এবং একটি নতুন টিউন করা মডেল তৈরি করতে আপনার দেওয়া উদাহরণগুলি। আপনি যে বেস মডেলটি ব্যবহার করেছেন তা মনে রাখবেন এবং নতুন মডেলের আইডি কপি করুন।
জেনকিটে টিউন করা মডেলটিকে কল করার সময়, model
প্যারামিটার হিসাবে বেস মডেলটি ব্যবহার করুন এবং config
ব্লকের অংশ হিসাবে টিউন করা মডেলের আইডি পাস করুন৷ উদাহরণস্বরূপ, আপনি যদি বেস মডেল হিসাবে জেমিনি 1.5 ফ্ল্যাশ ব্যবহার করেন এবং মডেল আইডি tunedModels/my-example-model-apbm8oqbvuv2
পেয়ে থাকেন তাহলে আপনি এটিকে কল করতে পারেন:
const ai = genkit({
plugins: [googleAI()],
});
const llmResponse = await ai.generate({
prompt: `Suggest an item for the menu of fish themed restruant`,
model: gemini15Flash.withConfig({
version: "tunedModels/my-example-model-apbm8oqbvuv2",
}),
});
প্রসঙ্গ ক্যাশিং
গুগল জেনারেটিভ এআই প্লাগইন কনটেক্সট ক্যাশিং সমর্থন করে, যা মডেলগুলিকে পূর্বে ক্যাশে করা বিষয়বস্তুকে কার্যক্ষমতা অপ্টিমাইজ করতে এবং পুনরাবৃত্তিমূলক কাজের জন্য বিলম্ব কমাতে পুনরায় ব্যবহার করতে দেয়। এই বৈশিষ্ট্যটি কথোপকথন প্রবাহ বা পরিস্থিতিগুলির জন্য বিশেষভাবে উপযোগী যেখানে মডেলটি একাধিক অনুরোধে ধারাবাহিকভাবে পাঠ্যের একটি বড় অংশ উল্লেখ করে।
প্রসঙ্গ ক্যাশিং কিভাবে ব্যবহার করবেন
প্রসঙ্গ ক্যাশে সক্ষম করতে, আপনার মডেল এটি সমর্থন করে তা নিশ্চিত করুন। উদাহরণস্বরূপ, gemini15Flash
এবং gemini15Pro
হল মডেল যা কনটেক্সট ক্যাশিং সমর্থন করে।
আপনি এইভাবে আপনার অ্যাপ্লিকেশনে একটি ক্যাশিং প্রক্রিয়া সংজ্ঞায়িত করতে পারেন:
const ai = genkit({
plugins: [googleAI()],
});
const llmResponse = await ai.generate({
messages: [
{
role: 'user',
content: [{ text: 'Here is the relevant text from War and Peace.' }],
},
{
role: 'model',
content: [
{
text: 'Based on War and Peace, here is some analysis of Pierre Bezukhov’s character.',
},
],
metadata: {
cache: {
ttlSeconds: 300, // Cache this message for 5 minutes
},
},
},
],
model: gemini15Flash,
config: {
version: 'gemini-1.5-flash-001', // Only 001 currently supports context caching
},
prompt: 'Describe Pierre’s transformation throughout the novel.',
});
এই সেটআপে: - messages
: আপনাকে কথোপকথনের ইতিহাস পাস করতে দেয়। - metadata.cache.ttlSeconds
: একটি নির্দিষ্ট প্রতিক্রিয়া ক্যাশে করার জন্য সময়-টু-লাইভ (TTL) নির্দিষ্ট করে।
উদাহরণ: প্রসঙ্গ সহ বড় টেক্সট ব্যবহার করা
ওয়ার অ্যান্ড পিস বা লর্ড অফ দ্য রিংসের মতো দীর্ঘ নথির উল্লেখ করা অ্যাপ্লিকেশনগুলির জন্য, আপনি ক্যাশে করা প্রসঙ্গগুলি পুনরায় ব্যবহার করার জন্য আপনার প্রশ্নগুলি গঠন করতে পারেন:
const fs = require('fs/promises');
const textContent = await fs.readFile('path/to/war_and_peace.txt', 'utf-8');
const llmResponse = await ai.generate({
messages: [
{
role: 'user',
content: [{ text: textContent }], // Include the large text as context
},
{
role: 'model',
content: [
{
text: 'This analysis is based on the provided text from War and Peace.',
},
],
metadata: {
cache: {
ttlSeconds: 300, // Cache the response to avoid reloading the full text
},
},
},
],
model: gemini15Flash,
config: {
version: 'gemini-1.5-flash-001', // Only 001 currently supports context caching
},
prompt: 'Analyze the relationship between Pierre and Natasha.',
});
বিষয়বস্তুর অন্যান্য মোড ক্যাশিং
মিথুন মডেলগুলি মাল্টি-মডেল, এবং সামগ্রীর অন্যান্য মোডগুলিও ক্যাশে করার অনুমতি রয়েছে৷
উদাহরণস্বরূপ, ভিডিও সামগ্রীর একটি দীর্ঘ অংশ ক্যাশে করতে, আপনাকে প্রথমে Google AI SDK থেকে ফাইল ম্যানেজার ব্যবহার করে আপলোড করতে হবে:
import { GoogleAIFileManager } from '@google/generative-ai/server';
const fileManager = new GoogleAIFileManager(
process.env.GOOGLE_GENAI_API_KEY
);
// Upload video to Google AI using the Gemini Files API
const uploadResult = await fileManager.uploadFile(videoFilePath, {
mimeType: 'video/mp4', // Adjust according to the video format
displayName: 'Uploaded Video for Analysis',
});
const fileUri = uploadResult.file.uri;
এখন আপনি ai.generate
এ আপনার কলের ক্যাশে কনফিগার করতে পারেন:
const analyzeVideoResponse = await ai.generate({
messages: [
{
role: 'user',
content: [
{
media: {
url: fileUri, // Use the uploaded file URL
contentType: 'video/mp4',
},
},
],
},
{
role: 'model',
content: [
{
text: 'This video seems to contain several key moments. I will analyze it now and prepare to answer your questions.',
},
],
// Everything up to (including) this message will be cached.
metadata: {
cache: true,
},
},
],
config: {
version: 'gemini-1.5-flash-001', // Only 001 versions support context caches
},
model: gemini15Flash,
prompt: query,
});
প্রসঙ্গ ক্যাশিংয়ের জন্য সমর্থিত মডেল
শুধুমাত্র নির্দিষ্ট মডেল, যেমন gemini15Flash
এবং gemini15Pro
, প্রসঙ্গ ক্যাশিং সমর্থন করে। যদি একটি অসমর্থিত মডেল ব্যবহার করা হয়, একটি ত্রুটি উত্থাপিত হবে, যা নির্দেশ করে যে ক্যাশিং প্রয়োগ করা যাবে না।
আরও পড়া
তাদের ডকুমেন্টেশনে Google AI-তে প্রসঙ্গ ক্যাশিং সংক্রান্ত আরও তথ্য দেখুন।