Firebase AI Logic ব্যবহার করে হাইব্রিড ইনফারেন্সের মাধ্যমে AI-পরিচালিত ওয়েব অ্যাপ ও ফিচার তৈরি করুন। হাইব্রিড ইনফারেন্স উপলভ্য হলে ডিভাইস-মধ্যস্থ মডেল ব্যবহার করে ইনফারেন্স রান করতে দেয় এবং অন্যথায় ক্লাউড-হোস্ট করা মডেল ব্যবহার করে নির্বিঘ্নে আগের অবস্থায় ফিরে আসে (এবং এর বিপরীত)।
এই পৃষ্ঠা থেকে কীভাবে ক্লায়েন্ট SDK ব্যবহার করা শুরু করতে হয় তা জানতে পারবেন। এই সাধারণ সেট-আপ সম্পূর্ণ করার পরে, অতিরিক্ত কনফিগারেশন বিকল্প ও ক্ষমতা (যেমন স্ট্রাকচার্ড আউটপুট) চেক করে দেখুন।
মনে রাখবেন, ডেস্কটপে Chrome-এ চলা ওয়েব অ্যাপের জন্য অন-ডিভাইস ইনফারেন্স কাজ করে।
সাজেস্ট করা ব্যবহার এবং কাজ করার উপযুক্ত ফিচার
সাজেস্ট করা ব্যবহারিক ক্ষেত্র:
ইনফারেন্স অফারের জন্য অন-ডিভাইস মডেল ব্যবহার করা:
- উন্নত গোপনীয়তা
- স্থানীয় প্রসঙ্গ
- কোনও খরচ ছাড়াই ইনফারেন্স
- অফলাইন ফাংশনালিটি
হাইব্রিড ফাংশনালিটি অফার ব্যবহার করা:
- ডিভাইস মডেলের উপলভ্যতা বা ইন্টারনেট কানেক্টিভিটি যাই হোক না কেন, আপনার ১০০% দর্শকের কাছে পৌঁছান
অন-ডিভাইস ইনফারেন্সের জন্য কাজ করে এমন ফিচার ও ক্ষমতা:
অন-ডিভাইস ইনফারেন্স শুধুমাত্র সিঙ্গেল-টার্ন টেক্সট জেনারেশন (চ্যাট নয়), স্ট্রিমিং বা নন-স্ট্রিমিং আউটপুটের সাথে কাজ করে। এটি নিম্নলিখিত টেক্সট-জেনারেট করার ক্ষমতাকে সমর্থন করে:
শুধুমাত্র টেক্সট ইনপুট থেকে টেক্সট জেনারেট করা
টেক্সট-ও-ছবি ইনপুট থেকে টেক্সট জেনারেট করা, বিশেষ করে JPEG ও PNG ফর্ম্যাটের ইনপুট ছবি
এছাড়াও, আপনি JSON ও enum সহ স্ট্রাকচার্ড আউটপুট জেনারেট করতে পারেন।
শুরু করার আগে
নিম্নলিখিত বিষয়গুলি মনে রাখবেন:
ডিভাইসে থাকা মডেল ব্যবহার করে ইনফারেন্স করার জন্য Chrome থেকে প্রম্পট API ব্যবহার করা হয়; অন্যদিকে, ক্লাউড-হোস্ট করা মডেল ব্যবহার করে ইনফারেন্স করার জন্য আপনার বেছে নেওয়া Gemini API প্রোভাইডার (Gemini Developer API অথবা Agent Platform Gemini API (formerly Vertex AI)) ব্যবহার করা হয়।
লোকালহোস্ট ব্যবহার করে ডেভেলপ করা শুরু করা (Chrome ডকুমেন্টেশনে লোকালহোস্টে API ব্যবহার করা সম্পর্কে আরও জানুন) কীভাবে যায় তা এই পৃষ্ঠায় বর্ণনা করা হয়েছে।
এই স্ট্যান্ডার্ড সেট-আপ সম্পূর্ণ করার পরে, অতিরিক্ত কনফিগারেশন বিকল্প ও ক্ষমতা (যেমন স্ট্রাকচার্ড আউটপুট) চেক করে দেখুন।
লোকালহোস্টে শুরু করা
আপনি পাঠাতে চান এমন যেকোনও কাজ করে এমন প্রম্পট অনুরোধের জন্য প্রয়োজনীয় সাধারণ সেট-আপ এই 'শুরু করা যাক' ধাপগুলিতে বর্ণনা করা হয়েছে।
ধাপ ১: অন-ডিভাইস ইনফারেন্সের জন্য Chrome ও Prompt API সেট-আপ করা
আপনি Chrome-এর সাম্প্রতিক ভার্সন ব্যবহার করছেন কিনা তা নিশ্চিত করুন। chrome://settings/help লিঙ্কে গিয়ে আপডেট দেখুন।
Chrome v139 ও তার পরবর্তী যেকোনও ভার্সনে অন-ডিভাইস ইনফারেন্স উপলভ্য।নিচের ফ্ল্যাগকে চালু করা হয়েছে হিসেবে সেট করে অন-ডিভাইস মাল্টিমোডাল মডেল চালু করুন:
chrome://flags/#prompt-api-for-gemini-nano-multimodal-input
Chrome রিস্টার্ট করুন।
(ঐচ্ছিক) প্রথম অনুরোধ করার আগে অন-ডিভাইস মডেল ডাউনলোড করুন।
Chrome-এ Prompt API বিল্ট-ইন হিসেবে থাকে; তবে, অন-ডিভাইস মডেল ডিফল্ট হিসেবে উপলভ্য থাকে না। আপনি যদি অন-ডিভাইস ইনফারেন্সের জন্য প্রথম অনুরোধ করার আগে মডেলটি ডাউনলোড না করে থাকেন, তাহলে অনুরোধটি অটোমেটিক ব্যাকগ্রাউন্ডে মডেল ডাউনলোড করা শুরু করবে।
ধাপ ২: Firebase প্রোজেক্ট সেট-আপ করুন এবং Firebase-এর সাথে আপনার অ্যাপ কানেক্ট করুন
Firebase কনসোলে সাইন-ইন করুন, এবং তারপর আপনার Firebase প্রোজেক্ট বেছে নিন।
Firebase কনসোলে, AI পরিষেবা > AI লজিক বিকল্পে যান।
আপনার প্রোজেক্টের জন্য প্রয়োজনীয় API ও রিসোর্স সেট-আপ করতে সাহায্য করে এমন নির্দেশিত ওয়ার্কফ্লো লঞ্চ করতে, শুরু করুন বিকল্পে ক্লিক করুন।
প্রম্পট করা হলে, আপনার অ্যাপ রেজিস্টার করতে এবং অ্যাপে Firebase কনফিগারেশন যোগ করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করুন।
"Gemini API প্রদানকারী" বেছে নিতে বলা হলে, আমরা Gemini Developer API বেছে নেওয়ার সাজেশন দিই, এটি আপনাকে কোনও খরচ ছাড়াই দ্রুত শুরু করতে দেয়।
পরে যেকোনও সময়, আপনি সবসময় Agent Platform Gemini API (formerly Vertex AI) সেট-আপ করতে পারবেন (এবং বিলিংয়ের জন্য এর প্রয়োজনীয়তা)।
Firebase AI Logic-এর জন্য প্রয়োজনীয় API ও সংশ্লিষ্ট পরিষেবা সেট-আপ করতে ওয়ার্কফ্লোতে চালিয়ে যান।
২০২৬ সালের জুলাই মাসের শুরু থেকে, ওয়ার্কফ্লোয়ের এই পর্যায়ে AI Logic-এর জন্য অটোমেটিক এনফোর্সমেন্ট Firebase App Check প্রয়োগ করা হবে, যা Gemini API সুরক্ষিত রাখার জন্য একটি গুরুত্বপূর্ণ পরিষেবা, যখন এটি আপনার অ্যাপ থেকে সরাসরি অ্যাক্সেস করা হয়। শুরু করার অংশ হিসেবে (এই গাইডে পরে ধাপগুলি দেখুন), App Check এনফোর্স করা হলে, লোকাল ডেভেলপমেন্টের জন্য আপনাকে App Check ডিবাগ প্রোভাইডার কনফিগার করতে হবে।
আপনার অ্যাপে প্রয়োজনীয় SDK যোগ করতে, এই গাইডের পরবর্তী ধাপ অনুসরণ করুন।
ধাপ ৩: SDK যোগ করুন
Firebase লাইব্রেরি, জেনারেটিভ মডেলের সাথে ইন্টার্যাক্ট করার জন্য API-তে অ্যাক্সেস প্রদান করে। ওয়েবের জন্য Firebase JavaScript SDK-এর অংশ হিসেবে লাইব্রেরি অন্তর্ভুক্ত করা হয়েছে।
npm ব্যবহার করে ওয়েবের জন্য Firebase JS SDK ইনস্টল করুন:
npm install firebaseআপনার অ্যাপে Firebase ইনিশিয়ালাইজ করুন:
import { initializeApp } from "firebase/app"; import { initializeAppCheck } from "firebase/app-check"; // TODO(developer) Replace the following with your app's Firebase configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize FirebaseApp const firebaseApp = initializeApp(firebaseConfig);
ধাপ ৪: লোকাল ডেভেলপমেন্টের জন্য App Check ডিবাগ প্রোভাইডার কনফিগার করা
২০২৬ সালের জুলাই মাসের শুরু থেকে, কনসোলে AI Logic এর জন্য নির্দেশিত সেট-আপ ওয়ার্কফ্লোর অংশ হিসেবে, Firebase App Check অটোমেটিক প্রয়োগ করা হবে যাতে Gemini API সুরক্ষিত থাকে। লোকাল ডেভেলপমেন্টের জন্য, আপনাকে App Check ডিবাগ প্রোভাইডার কনফিগার করতে হবে যাতে App Check-এর এনফোর্সমেন্ট বজায় রেখেই অ্যাটেস্টেশন বাইপাস করা যায়।
localhost
ইন্টার্যাক্টিভ (যেমন, লোকাল ডেভেলপমেন্টের সময়) মোডে আপনার অ্যাপ চালানোর সময় কীভাবে ডিবাগ প্রোভাইডার ব্যবহার করবেন তা এখানে দেওয়া হল:
আপনার ডিবাগ বিল্ডে, App Check ইনিশিয়ালাইজ করার আগে
self.FIREBASE_APPCHECK_DEBUG_TOKEN-কেtrue-এ সেট করে ডিবাগ মোড চালু করুন। যেমন:self.FIREBASE_APPCHECK_DEBUG_TOKEN = true; initializeAppCheck(firebaseApp, { /* App Check options */ });আপনার ওয়েব অ্যাপ লোকালি ভিজিট করুন এবং ব্রাউজারের ডেভেলপার টুল খুলুন। ডিবাগ কনসোলে, আপনি একটি ডিবাগ টোকেন দেখতে পাবেন:
AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678". You will need to safelist it in the Firebase console for it to work.App Check-এর সাথে আপনার ডিবাগ টোকেন রেজিস্টার করুন:
Firebase কনসোলে, নিরাপত্তা > অ্যাপ চেক > অ্যাপ ট্যাব বিকল্পে যান।
আপনার অ্যাপ খুঁজে নিন, ওভারফ্লো মেনুতে ক্লিক করুন () এবং তারপরে ডিবাগ টোকেন ম্যানেজ করুন বিকল্প বেছে নিন।
আপনার ডিবাগ টোকেন রেজিস্টার করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করুন।
ডিবাগ প্রদানকারী সম্পর্কে আরও তথ্য (নতুন ডিবাগ টোকেন কীভাবে পাবেন তা সহ) পেতে, অফিসিয়াল App Check ডকুমেন্ট দেখুন।
ধাপ ৫: পরিষেবা ইনিশিয়ালাইজ করুন এবং মডেল ইনস্ট্যান্স তৈরি করুন
|
এই পৃষ্ঠায় প্রদানকারী-নির্দিষ্ট কন্টেন্ট ও কোড দেখতে আপনার Gemini API প্রদানকারীর আইকনে ক্লিক করুন। |
মডেলকে প্রম্পট অনুরোধ পাঠানোর আগে নিম্নলিখিত বিষয়গুলি সেট-আপ করুন:
আপনার বেছে নেওয়া API প্রদানকারীর জন্য পরিষেবাটি ইনিশিয়ালাইজ করুন।
GenerativeModelইনস্ট্যান্স তৈরি করুন।mode-এর মান এগুলির মধ্যে একটি সেট করতে ভুলবেন না:PREFER_ON_DEVICE: উপলভ্য থাকলে, অন-ডিভাইস মডেল ব্যবহার করুন; অন্যথায়, ক্লাউড-হোস্টেড মডেলে ফিরে যান।ONLY_ON_DEVICE: ডিভাইসে উপলভ্য থাকলে, ডিভাইসে থাকা মডেল ব্যবহার করুন; অন্যথায়, ব্যতিক্রম দেখান।PREFER_IN_CLOUD: ক্লাউড-হোস্ট করা মডেল উপলভ্য থাকলে সেটি ব্যবহার করুন; অন্যথায়, ডিভাইসে সেভ করা মডেল ব্যবহার করুন।ONLY_IN_CLOUD: ক্লাউড-হোস্ট করা মডেল উপলভ্য থাকলে সেটি ব্যবহার করুন; অন্যথায়, ব্যতিক্রম দেখান।
import { initializeApp } from "firebase/app";
import { getAI, getGenerativeModel, GoogleAIBackend, InferenceMode } from "firebase/ai";
// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
// ...
};
// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);
// Initialize the Gemini Developer API backend service
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Create a `GenerativeModel` instance
// Set the mode (for example, use the on-device model if it's available)
const model = getGenerativeModel(ai, { mode: InferenceMode.PREFER_ON_DEVICE });
ধাপ ৬: অন-ডিভাইস মডেল ইনিশিয়ালাইজ করা
আপনাকে অবশ্যই কোনও এন্ড-ইউজার পৃষ্ঠায়
ইন্টার্যাকশন (যেমন, বোতামে ক্লিক করা) পরে বা সেই সময় initializeDeviceModel()-কে কল করতে হবে এবং মডেলকে
প্রম্পট অনুরোধ পাঠানোর আগে কল করতে হবে। Chrome ডকুমেন্টেশন থেকে
ব্যবহারকারী অ্যাক্টিভেশন সংক্রান্ত প্রয়োজনীয়তা
সম্পর্কে আরও জানুন।
import { initializeApp } from "firebase/app";
import { getAI, getGenerativeModel, GoogleAIBackend, InferenceMode } from "firebase/ai";
// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
// ...
};
// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);
// Initialize the Gemini Developer API backend service
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Create a `GenerativeModel` instance
// Set the mode (for example, use the on-device model if it's available)
const model = getGenerativeModel(ai, { mode: InferenceMode.PREFER_ON_DEVICE });
// `initializeDeviceModel` must be called:
// (1) after or on an end-user page interaction such as a button click
// and
// (2) before any queries to the model (such as `generateContent()`)
// You may want to `await` this promise if using `ONLY_ON_DEVICE` (see note below).
model.initializeDeviceModel((val) =>
// Example: "Download progress: 72.62%""
console.log(`Download progress: ${Math.round(val*10000) / 100}%`)
);
ধাপ ৭: কোনও মডেলে প্রম্পট অনুরোধ পাঠান
এই বিভাগে, বিভিন্ন ধরনের আউটপুট জেনারেট করার জন্য বিভিন্ন ধরনের ইনপুট কীভাবে পাঠাতে হয় তা দেখানো হয়েছে। এর মধ্যে রয়েছে:
- শুধুমাত্র টেক্সট ইনপুট থেকে টেক্সট জেনারেট করা
- টেক্সট ও ছবি (মাল্টিমোডাল) ইনপুট থেকে টেক্সট জেনারেট করা
আপনি যদি স্ট্রাকচার্ড আউটপুট (যেমন JSON বা enum) তৈরি করতে চান, তাহলে নিম্নলিখিত "টেক্সট তৈরি করো" উদাহরণগুলির মধ্যে একটি ব্যবহার করুন এবং অতিরিক্তভাবে প্রদান করা স্কিমা অনুযায়ী উত্তর দেওয়ার জন্য মডেল কনফিগার করুন।
শুধুমাত্র টেক্সট ইনপুট থেকে টেক্সট জেনারেট করা
| এই নমুনা চেষ্টা করার আগে, নিশ্চিত করুন যে আপনি এই নির্দেশিকার শুরু করা যাক বিভাগটি সম্পূর্ণ করেছেন। |
টেক্সট আছে এমন প্রম্পট থেকে টেক্সট জেনারেট করতে আপনি
generateContent()
ব্যবহার করতে পারেন:
// Imports + initialization of FirebaseApp and backend service + creation of model instance
// Wrap in an async function so you can use await
async function run() {
// Provide a prompt that contains text
const prompt = "Write a story about a magic backpack."
// To generate text output, call `generateContent` with the text input
const result = await model.generateContent(prompt);
const response = result.response;
const text = response.text();
console.log(text);
}
run();
মনে রাখবেন, Firebase AI Logic-এ generateContentStream
ব্যবহার করে টেক্সট উত্তর স্ট্রিম করার সুবিধাও আছে
(generateContent-এর পরিবর্তে)।
টেক্সট-ও-ছবি (মাল্টিমোডাল) ইনপুট থেকে টেক্সট জেনারেট করা
| এই নমুনা চেষ্টা করার আগে, নিশ্চিত করুন যে আপনি এই নির্দেশিকার শুরু করা যাক বিভাগটি সম্পূর্ণ করেছেন। |
আপনি
generateContent()
ব্যবহার করে টেক্সট ও ছবি ফাইল সহ প্রম্পট থেকে টেক্সট জেনারেট করতে পারেন—প্রতিটি
ইনপুট ফাইলের mimeType ও ফাইলটি প্রদান করে।
ডিভাইসে ইনফারেন্সের জন্য ইনপুট ছবির যেসব ধরন কাজ করে সেগুলি হল PNG ও JPEG.
// Imports + initialization of FirebaseApp and backend service + creation of model instance
// Converts a File object to a Part object.
async function fileToGenerativePart(file) {
const base64EncodedDataPromise = new Promise((resolve) => {
const reader = new FileReader();
reader.onloadend = () => resolve(reader.result.split(',')[1]);
reader.readAsDataURL(file);
});
return {
inlineData: { data: await base64EncodedDataPromise, mimeType: file.type },
};
}
async function run() {
// Provide a text prompt to include with the image
const prompt = "Write a poem about this picture:";
const fileInputEl = document.querySelector("input[type=file]");
const imagePart = await fileToGenerativePart(fileInputEl.files[0]);
// To generate text output, call `generateContent` with the text and image
const result = await model.generateContent([prompt, imagePart]);
const response = result.response;
const text = response.text();
console.log(text);
}
run();
মনে রাখবেন, Firebase AI Logic-এ generateContentStream
ব্যবহার করে টেক্সট উত্তর স্ট্রিম করার সুবিধাও আছে
(generateContent-এর পরিবর্তে)।
আপনি আর কী করতে পারেন?
আপনার হাইব্রিড অভিজ্ঞতার জন্য আপনি বিভিন্ন অতিরিক্ত কনফিগারেশন বিকল্প ও ক্ষমতা ব্যবহার করতে পারবেন:
অন-ডিভাইস ইনফারেন্সের জন্য এখনও উপলভ্য নয় এমন ফিচার
Web SDK-এর সব ক্ষমতা অন-ডিভাইস ইনফারেন্সের জন্য উপলভ্য নয়। নিচে উল্লেখ করা ফিচারগুলি এখনও অন-ডিভাইস ইনফারেন্সের জন্য কাজ করে না (তবে সেগুলি সাধারণত ক্লাউড-ভিত্তিক ইনফারেন্সের জন্য উপলভ্য)।
JPEG ও PNG ছাড়া অন্য ধরনের ইনপুট ইমেজ ফাইল থেকে টেক্সট জেনারেট করা
- ক্লাউড-হোস্ট করা মডেলে ফলব্যাক করতে পারে;
তবে,
ONLY_ON_DEVICEমোড একটি সমস্যা দেখাবে।
- ক্লাউড-হোস্ট করা মডেলে ফলব্যাক করতে পারে;
তবে,
অডিও, ভিডিও ও ডকুমেন্ট (যেমন, পিডিএফ) ইনপুট থেকে টেক্সট তৈরি করা
- ক্লাউড-হোস্ট করা মডেলে ফলব্যাক করতে পারে;
তবে,
ONLY_ON_DEVICEমোড একটি সমস্যা দেখাবে।
- ক্লাউড-হোস্ট করা মডেলে ফলব্যাক করতে পারে;
তবে,
Gemini মডেল ব্যবহার করে ছবি জেনারেট করা
- ক্লাউড-হোস্ট করা মডেলে ফলব্যাক করতে পারে;
তবে,
ONLY_ON_DEVICEমোড একটি সমস্যা দেখাবে।
- ক্লাউড-হোস্ট করা মডেলে ফলব্যাক করতে পারে;
তবে,
মাল্টিমোডাল অনুরোধে URL ব্যবহার করে ফাইল প্রদান করা। ডিভাইসে থাকা মডেলকে ইনলাইন ডেটা হিসেবে ফাইল দিতে হবে।
মাল্টি-টার্ন চ্যাট
- ক্লাউড-হোস্ট করা মডেলে ফলব্যাক করতে পারে;
তবে,
ONLY_ON_DEVICEমোড একটি সমস্যা দেখাবে।
- ক্লাউড-হোস্ট করা মডেলে ফলব্যাক করতে পারে;
তবে,
Gemini Live API-এর মাধ্যমে দ্বিমুখী স্ট্রিমিং
মডেলকে উত্তর জেনারেট করতে সাহায্য করার জন্য টুল প্রদান করা (যেমন, ফাংশন কলিং, কোড এক্সিকিউশন, URL কনটেক্সট,
Google Search -এর মাধ্যমে গ্রাউন্ডিং এবংGoogle Maps -এর মাধ্যমে গ্রাউন্ডিং)টোকেন গণনা করা
- সবসময় একটি সমস্যা দেখায়। ক্লাউড-হোস্টেড ও অন-ডিভাইস মডেলের মধ্যে গণনা আলাদা হবে, তাই কোনও স্বজ্ঞাত ফলব্যাক নেই।
অন-ডিভাইস ইনফারেন্সের জন্য Firebase কনসোলে AI মনিটরিং।
- মনে রাখবেন, ক্লাউড-হোস্ট করা মডেল ব্যবহার করে করা যেকোনও ইনফারেন্সকে Firebase AI Logic ওয়েব SDK-এর জন্য ক্লায়েন্ট ব্যবহার করে করা অন্যান্য ইনফারেন্সের মতো মনিটর করা যেতে পারে।
Firebase AI Logic-এর সাথে আপনার অভিজ্ঞতা সম্পর্কে মতামত জানান