Firebase AI Logic ব্যবহার করে হাইব্রিড ইনফারেন্স ব্যবহার করে AI-চালিত ওয়েব অ্যাপ এবং বৈশিষ্ট্য তৈরি করুন। হাইব্রিড ইনফারেন্স উপলব্ধ থাকলে ডিভাইসে থাকা মডেলগুলি ব্যবহার করে ইনফারেন্স চালানো এবং অন্যথায় (এবং বিপরীতভাবে) ক্লাউড-হোস্টেড মডেলগুলিতে ফিরে আসা সক্ষম করে।
এই পৃষ্ঠাটি ক্লায়েন্ট SDK ব্যবহার শুরু করার পদ্ধতি বর্ণনা করে, পাশাপাশি স্ট্রাকচার্ড আউটপুটের মতো অতিরিক্ত কনফিগারেশন বিকল্প এবং ক্ষমতাও দেখায়।
মনে রাখবেন যে Chrome on Desktop এ চলমান ওয়েব অ্যাপগুলির জন্য অন-ডিভাইস ইনফারেন্স সমর্থিত।
প্রস্তাবিত ব্যবহারের ক্ষেত্রে এবং সমর্থিত ক্ষমতা
প্রস্তাবিত ব্যবহারের ক্ষেত্রে:
ইনফারেন্স অফারগুলির জন্য একটি অন-ডিভাইস মডেল ব্যবহার করা:
- উন্নত গোপনীয়তা
- স্থানীয় প্রেক্ষাপট
- বিনামূল্যে অনুমান
- অফলাইন কার্যকারিতা
হাইব্রিড কার্যকারিতা ব্যবহারের ফলে নিম্নলিখিত সুবিধাগুলি পাওয়া যায়:
- ডিভাইসে মডেলের প্রাপ্যতা বা ইন্টারনেট সংযোগ নির্বিশেষে, আপনার ১০০% দর্শকের কাছে পৌঁছান
ডিভাইসে থাকা অনুমানের জন্য সমর্থিত ক্ষমতা এবং বৈশিষ্ট্য:
- একক-পালা কন্টেন্ট তৈরি, স্ট্রিমিং এবং নন-স্ট্রিমিং
- শুধুমাত্র-টেক্সট ইনপুট থেকে টেক্সট তৈরি করা হচ্ছে
- টেক্সট-এন্ড-ইমেজ ইনপুট থেকে টেক্সট তৈরি করা, বিশেষ করে JPEG এবং PNG এর ইমেজ টাইপ ইনপুট করা।
- JSON এবং enums সহ স্ট্রাকচার্ড আউটপুট তৈরি করা হচ্ছে
শুরু করার আগে
নিম্নলিখিত বিষয়গুলি লক্ষ্য করুন:
একটি অন-ডিভাইস মডেল ব্যবহার করে ইনফারেন্স Chrome থেকে প্রম্পট API ব্যবহার করে; যেখানে ক্লাউড-হোস্টেড মডেল ব্যবহার করে ইনফারেন্স আপনার পছন্দের Gemini API প্রদানকারী (হয় Gemini Developer API অথবা Vertex AI Gemini API ) ব্যবহার করে।
এই পৃষ্ঠায় লোকালহোস্ট ব্যবহার করে কীভাবে ডেভেলপমেন্ট শুরু করবেন তা বর্ণনা করা হয়েছে (ক্রোম ডকুমেন্টেশনে লোকালহোস্টে API ব্যবহার সম্পর্কে আরও জানুন)। এছাড়াও, এই পৃষ্ঠায় পরে অতিরিক্ত কনফিগারেশন বিকল্প এবং ক্ষমতা (যেমন স্ট্রাকচার্ড আউটপুট) পরীক্ষা করে দেখুন।
আপনার বৈশিষ্ট্যটি বাস্তবায়ন করার পরে, আপনি আপনার প্রকৃত অ্যাপে ব্যবহারকারীদের আপনার বৈশিষ্ট্যটি ব্যবহার করার সুযোগ দিতে পারবেন ।
লোকালহোস্টে শুরু করুন
এই শুরু করার ধাপগুলি আপনার পাঠানো যেকোনো সমর্থিত প্রম্পট অনুরোধের জন্য প্রয়োজনীয় সাধারণ সেটআপ বর্ণনা করে।
ধাপ ১ : ডিভাইসে অনুমানের জন্য Chrome এবং প্রম্পট API সেট আপ করুন
নিশ্চিত করুন যে আপনি Chrome এর সাম্প্রতিক সংস্করণ ব্যবহার করছেন। chrome://settings/help এ আপডেট করুন।
Chrome v139 এবং তার পরবর্তী সংস্করণ থেকে ডিভাইসে থাকা অনুমান পাওয়া যাবে।নিম্নলিখিত ফ্ল্যাগটি Enabled এ সেট করে অন-ডিভাইস মাল্টিমোডাল মডেলটি সক্ষম করুন:
-
chrome://flags/#prompt-api-for-gemini-nano-multimodal-input
-
Chrome পুনরায় চালু করুন।
(ঐচ্ছিক) প্রথম অনুরোধের আগে অন-ডিভাইস মডেলটি ডাউনলোড করুন।
প্রম্পট API Chrome-এ তৈরি করা আছে; তবে, ডিফল্টরূপে অন-ডিভাইস মডেলটি উপলব্ধ থাকে না। যদি আপনি অন-ডিভাইস ইনফারেন্সের জন্য আপনার প্রথম অনুরোধের আগে মডেলটি ডাউনলোড না করে থাকেন, তাহলে অনুরোধটি স্বয়ংক্রিয়ভাবে ব্যাকগ্রাউন্ডে মডেল ডাউনলোড শুরু করবে।
ডেভেলপার টুলস > কনসোল খুলুন।
নিম্নলিখিতটি চালান:
await LanguageModel.availability();নিশ্চিত করুন যে আউটপুটটি
available,downloading, অথবাdownloadable।যদি আউটপুট
downloadableহয়, তাহলে নিম্নলিখিতটি চালিয়ে মডেল ডাউনলোড শুরু করুন:await LanguageModel.create();ডাউনলোডের অগ্রগতি শুনতে এবং অনুরোধ করার আগে মডেলটি
availableকিনা তা নিশ্চিত করতে আপনি নিম্নলিখিতmonitorকলব্যাক ব্যবহার করতে পারেন:const session = await LanguageModel.create({ monitor(m) { m.addEventListener("downloadprogress", (e) => { console.log(`Downloaded ${e.loaded * 100}%`); }); }, });
ধাপ ২ : একটি Firebase প্রকল্প সেট আপ করুন এবং আপনার অ্যাপটিকে Firebase এর সাথে সংযুক্ত করুন।
Firebase কনসোলে সাইন ইন করুন, এবং তারপর আপনার Firebase প্রকল্পটি নির্বাচন করুন।
যদি আপনার ইতিমধ্যেই কোন Firebase প্রকল্প না থাকে, তাহলে একটি নতুন Firebase প্রকল্প তৈরি করতে বোতামটি ক্লিক করুন, এবং তারপর নিম্নলিখিত বিকল্পগুলির যেকোনো একটি ব্যবহার করুন:
বিকল্প ১ : কর্মপ্রবাহের প্রথম ধাপে একটি নতুন প্রকল্পের নাম প্রবেশ করিয়ে একটি সম্পূর্ণ নতুন ফায়ারবেস প্রকল্প (এবং এর অন্তর্নিহিত Google Cloud প্রকল্প স্বয়ংক্রিয়ভাবে) তৈরি করুন।
বিকল্প ২ : "Add Firebase to Google Cloud Cloud প্রকল্পে "Add Firebase " যোগ করুন। কর্মপ্রবাহের প্রথম ধাপে, বিদ্যমান প্রকল্পের প্রকল্পের নাম প্রবেশ করা শুরু করুন, এবং তারপর প্রদর্শিত তালিকা থেকে প্রকল্পটি নির্বাচন করুন।
একটি Firebase প্রকল্প তৈরি করতে অন-স্ক্রিন ওয়ার্কফ্লোর অবশিষ্ট ধাপগুলি সম্পূর্ণ করুন। মনে রাখবেন যে অনুরোধ করা হলে, Firebase AI Logic SDK ব্যবহার করার জন্য আপনাকে Google Analytics সেট আপ করার প্রয়োজন নেই ।
Firebase কনসোলে, ফায়ারবেস এআই লজিক পৃষ্ঠায় যান।
আপনার প্রকল্পের জন্য প্রয়োজনীয় API এবং সংস্থান সেট আপ করতে সাহায্য করার জন্য একটি নির্দেশিত কর্মপ্রবাহ চালু করতে "শুরু করুন" এ ক্লিক করুন।
" Gemini API " প্রদানকারী ব্যবহার করার জন্য আপনার প্রকল্পটি সেট আপ করুন।
আমরা জেমিনি ডেভেলপার API ব্যবহার শুরু করার পরামর্শ দিচ্ছি। যেকোনো সময়, আপনি Vertex AI জেমিনি API (এবং বিলিংয়ের জন্য এর প্রয়োজনীয়তা) সেট আপ করতে পারেন।
জেমিনি ডেভেলপার এপিআই- এর জন্য, কনসোলটি প্রয়োজনীয় এপিআই সক্ষম করবে এবং আপনার প্রকল্পে একটি জেমিনি এপিআই কী তৈরি করবে।
এই জেমিনি এপিআই কীটি আপনার অ্যাপের কোডবেসে যোগ করবেন না । আরও জানুন।কনসোলের ওয়ার্কফ্লোতে যদি অনুরোধ করা হয়, তাহলে আপনার অ্যাপটি নিবন্ধন করতে এবং এটিকে Firebase-এর সাথে সংযুক্ত করতে অন-স্ক্রীন নির্দেশাবলী অনুসরণ করুন।
আপনার অ্যাপে SDK যোগ করতে এই নির্দেশিকার পরবর্তী ধাপে যান।
ধাপ ৩ : SDK যোগ করুন
ফায়ারবেস লাইব্রেরি জেনারেটিভ মডেলগুলির সাথে ইন্টারঅ্যাক্ট করার জন্য API গুলিতে অ্যাক্সেস প্রদান করে। লাইব্রেরিটি ওয়েবের জন্য ফায়ারবেস জাভাস্ক্রিপ্ট SDK এর অংশ হিসাবে অন্তর্ভুক্ত।
npm ব্যবহার করে ওয়েবের জন্য Firebase JS SDK ইনস্টল করুন:
npm install firebaseআপনার অ্যাপে Firebase আরম্ভ করুন:
import { initializeApp } from "firebase/app"; // 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);
ধাপ ৪ : পরিষেবাটি শুরু করুন এবং একটি মডেল ইনস্ট্যান্স তৈরি করুন
এই পৃষ্ঠায় প্রোভাইডার-নির্দিষ্ট কন্টেন্ট এবং কোড দেখতে আপনার জেমিনি API প্রোভাইডারে ক্লিক করুন। |
মডেলটিতে একটি প্রম্পট অনুরোধ পাঠানোর আগে নিম্নলিখিতগুলি সেট আপ করুন।
আপনার নির্বাচিত API প্রদানকারীর জন্য পরিষেবাটি শুরু করুন।
একটি
GenerativeModelইনস্ট্যান্স তৈরি করুন। নিম্নলিখিতগুলি করতে ভুলবেন না:ব্যবহারকারীর সাথে ইন্টারঅ্যাকশনের পরে বা পরে (যেমন একটি বোতাম ক্লিক)
getGenerativeModelকল করুন। এটিinferenceModeএর জন্য একটি পূর্বশর্ত।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
// Call `getGenerativeModel` after or on an end-user interaction
// Set the mode (for example, use the on-device model if it's available)
const model = getGenerativeModel(ai, { mode: InferenceMode.PREFER_ON_DEVICE });
ধাপ ৫ : একটি মডেলকে একটি প্রম্পট অনুরোধ পাঠান
এই বিভাগটি আপনাকে দেখাবে কিভাবে বিভিন্ন ধরণের ইনপুট পাঠাতে হয় যাতে বিভিন্ন ধরণের আউটপুট তৈরি হয়, যার মধ্যে রয়েছে:
- শুধুমাত্র টেক্সট ইনপুট থেকে টেক্সট তৈরি করুন
- টেক্সট-এন্ড-ইমেজ (মাল্টিমোডাল) ইনপুট থেকে টেক্সট তৈরি করুন
যদি আপনি স্ট্রাকচার্ড আউটপুট (যেমন JSON বা enums) তৈরি করতে চান, তাহলে নিম্নলিখিত "জেনারেট টেক্সট" উদাহরণগুলির মধ্যে একটি ব্যবহার করুন এবং অতিরিক্তভাবে একটি প্রদত্ত স্কিমা অনুসারে প্রতিক্রিয়া জানাতে মডেলটি কনফিগার করুন ।
শুধুমাত্র টেক্সট ইনপুট থেকে টেক্সট তৈরি করুন
| এই নমুনাটি চেষ্টা করার আগে, নিশ্চিত করুন যে আপনি এই নির্দেশিকার " শুরু করুন " বিভাগটি সম্পূর্ণ করেছেন। |
আপনি 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 এর পরিবর্তে) টেক্সট প্রতিক্রিয়া স্ট্রিমিং সমর্থন করে।
আপনার বৈশিষ্ট্যটি ব্যবহার করে দেখার জন্য ব্যবহারকারীদের সক্ষম করুন
আপনার অ্যাপে আপনার বৈশিষ্ট্যটি ব্যবহার করে দেখার জন্য, আপনাকে Chrome Origin Trials-এ নথিভুক্ত করতে হবে। মনে রাখবেন যে এই ট্রায়ালগুলির জন্য সীমিত সময়কাল এবং ব্যবহার রয়েছে।
প্রম্পট API Chrome Origin ট্রায়ালের জন্য নিবন্ধন করুন। আপনাকে একটি টোকেন দেওয়া হবে।
আপনি যে ওয়েব পৃষ্ঠার জন্য ট্রায়াল বৈশিষ্ট্যটি সক্ষম করতে চান, প্রতিটি ওয়েব পৃষ্ঠায় টোকেনটি প্রদান করুন। নিম্নলিখিত বিকল্পগুলির মধ্যে একটি ব্যবহার করুন:
<head>ট্যাগে মেটা ট্যাগ হিসেবে টোকেনটি প্রদান করুন:<meta http-equiv="origin-trial" content=" TOKEN ">HTTP হেডার হিসেবে টোকেনটি প্রদান করুন:
Origin-Trial: TOKENপ্রোগ্রাম্যাটিকভাবে টোকেনটি প্রদান করুন।
তুমি আর কি করতে পারো?
এই বিভাগে, কীভাবে একটি ইনফারেন্স মোড সেট করতে হয়, ডিফল্ট ক্লাউড-হোস্টেড ফলব্যাক মডেলকে ওভাররাইড করতে হয় এবং প্রতিক্রিয়া নিয়ন্ত্রণ করতে মডেল কনফিগারেশন ব্যবহার করতে হয় (যেমন স্ট্রাকচার্ড আউটপুট তৈরি করা) তা শিখুন।
একটি অনুমান মোড সেট করুন
সাধারণ সেটআপের উদাহরণগুলিতে PREFER_ON_DEVICE মোড ব্যবহার করা হয়, কিন্তু এটি চারটি উপলব্ধ অনুমান মোডের মধ্যে একটি মাত্র।
PREFER_ON_DEVICE: যদি অন-ডিভাইস মডেলটি উপলব্ধ থাকে তবে তা ব্যবহার করুন; অন্যথায়, ক্লাউড-হোস্টেড মডেলে ফিরে যান ।const model = getGenerativeModel(ai, { mode: InferenceMode.PREFER_ON_DEVICE });ONLY_ON_DEVICE: যদি অন-ডিভাইস মডেলটি উপলব্ধ থাকে তবে তা ব্যবহার করুন; অন্যথায়, একটি ব্যতিক্রম দিন ।const model = getGenerativeModel(ai, { mode: InferenceMode.ONLY_ON_DEVICE });PREFER_IN_CLOUD: ক্লাউড-হোস্টেড মডেলটি উপলব্ধ থাকলে ব্যবহার করুন; অন্যথায়, অন-ডিভাইস মডেলে ফিরে যান ।const model = getGenerativeModel(ai, { mode: InferenceMode.PREFER_IN_CLOUD });ONLY_IN_CLOUD: ক্লাউড-হোস্টেড মডেলটি উপলব্ধ থাকলে ব্যবহার করুন; অন্যথায়, একটি ব্যতিক্রম দিন ।const model = getGenerativeModel(ai, { mode: InferenceMode.ONLY_IN_CLOUD });
অন-ডিভাইস নাকি ইন-ক্লাউড ইনফারেন্স ব্যবহার করা হয়েছে তা নির্ধারণ করুন
যদি আপনি PREFER_ON_DEVICE অথবা PREFER_IN_CLOUD ইনফারেন্স মোড ব্যবহার করেন, তাহলে প্রদত্ত অনুরোধের জন্য কোন মোড ব্যবহার করা হয়েছে তা জানা সহায়ক হতে পারে। এই তথ্য প্রতিটি প্রতিক্রিয়ার inferenceSource সম্পত্তি দ্বারা সরবরাহ করা হয় (JS SDK v12.5.0 দিয়ে শুরু করে উপলব্ধ)।
যখন আপনি এই বৈশিষ্ট্যটি অ্যাক্সেস করবেন, তখন ফেরত আসা মানটি হয় ON_DEVICE অথবা IN_CLOUD ।
// ...
console.log('You used: ' + result.response.inferenceSource);
console.log(result.response.text());
ডিফল্ট ফলব্যাক মডেল ওভাররাইড করুন
ডিফল্ট ক্লাউড-হোস্টেড মডেল হলgemini-2.5-flash-lite
PREFER_ON_DEVICE মোড ব্যবহার করার সময় এই মডেলটি ফলব্যাক ক্লাউড-হোস্টেড মডেল। ONLY_IN_CLOUD মোড বা PREFER_IN_CLOUD মোড ব্যবহার করার সময় এটি ডিফল্ট মডেল।
আপনি একটি বিকল্প ডিফল্ট ক্লাউড-হোস্টেড মডেল নির্দিষ্ট করতে inCloudParams কনফিগারেশন বিকল্পটি ব্যবহার করতে পারেন।
const model = getGenerativeModel(ai, {
mode: InferenceMode.INFERENCE_MODE,
inCloudParams: {
model: "GEMINI_MODEL_NAME"
}
});
সমস্ত সমর্থিত জেমিনি মডেলের মডেল নাম খুঁজুন।
প্রতিক্রিয়া নিয়ন্ত্রণ করতে মডেল কনফিগারেশন ব্যবহার করুন
প্রতিটি মডেলের অনুরোধে, আপনি একটি মডেল কনফিগারেশন পাঠাতে পারেন যাতে মডেলটি কীভাবে প্রতিক্রিয়া তৈরি করে তা নিয়ন্ত্রণ করা যায়। ক্লাউড-হোস্টেড মডেল এবং অন-ডিভাইস মডেলগুলি বিভিন্ন কনফিগারেশন বিকল্প অফার করে।
কনফিগারেশনটি ইনস্ট্যান্সের জীবনকাল ধরে রক্ষণাবেক্ষণ করা হয়। যদি আপনি একটি ভিন্ন কনফিগারেশন ব্যবহার করতে চান, তাহলে সেই কনফিগারেশন দিয়ে একটি নতুন GenerativeModel ইনস্ট্যান্স তৈরি করুন।
ক্লাউড-হোস্টেড মডেলের জন্য কনফিগারেশন সেট করুন
ক্লাউড-হোস্টেড জেমিনি মডেল কনফিগার করতে inCloudParams বিকল্পটি ব্যবহার করুন। উপলব্ধ প্যারামিটারগুলি সম্পর্কে জানুন।
const model = getGenerativeModel(ai, {
mode: InferenceMode.INFERENCE_MODE,
inCloudParams: {
model: "GEMINI_MODEL_NAME"
temperature: 0.8,
topK: 10
}
});
একটি অন-ডিভাইস মডেলের জন্য কনফিগারেশন সেট করুন
মনে রাখবেন যে অন-ডিভাইস মডেল ব্যবহার করে অনুমান Chrome এর Prompt API ব্যবহার করে।
একটি অন-ডিভাইস মডেল কনফিগার করতে onDeviceParams বিকল্পটি ব্যবহার করুন। উপলব্ধ প্যারামিটার সম্পর্কে জানুন।
const model = getGenerativeModel(ai, {
mode: InferenceMode.INFERENCE_MODE,
onDeviceParams: {
createOptions: {
temperature: 0.8,
topK: 8
}
}
});
স্ট্রাকচার্ড আউটপুটের জন্য কনফিগারেশন সেট করুন (যেমন JSON)
ক্লাউড-হোস্টেড এবং অন-ডিভাইস উভয় মডেল ব্যবহার করে অনুমানের জন্য স্ট্রাকচার্ড আউটপুট (যেমন JSON এবং enums) তৈরি করা সমর্থিত।
হাইব্রিড ইনফারেন্সের জন্য, স্ট্রাকচার্ড আউটপুট সহ প্রতিক্রিয়া জানাতে মডেলটি কনফিগার করতে inCloudParams এবং onDeviceParams উভয়ই ব্যবহার করুন। অন্যান্য মোডের জন্য, শুধুমাত্র প্রযোজ্য কনফিগারেশন ব্যবহার করুন।
inCloudParamsএর জন্য : উপযুক্তresponseMimeType(এই উদাহরণে,application/json) এবং সেইresponseSchemaউল্লেখ করুন যা আপনি মডেলটি ব্যবহার করতে চান।onDeviceParamsএর জন্য : মডেলটি যেresponseConstraintব্যবহার করতে চান তা নির্দিষ্ট করুন।
JSON আউটপুট
নিম্নলিখিত উদাহরণটি হাইব্রিড ইনফারেন্সের জন্য সাধারণ JSON আউটপুট উদাহরণকে অভিযোজিত করে:
import {
getAI,
getGenerativeModel,
Schema
} from "firebase/ai";
const jsonSchema = Schema.object({
properties: {
characters: Schema.array({
items: Schema.object({
properties: {
name: Schema.string(),
accessory: Schema.string(),
age: Schema.number(),
species: Schema.string(),
},
optionalProperties: ["accessory"],
}),
}),
}
});
const model = getGenerativeModel(ai, {
mode: InferenceMode.INFERENCE_MODE,
inCloudParams: {
model: "gemini-2.5-flash"
generationConfig: {
responseMimeType: "application/json",
responseSchema: jsonSchema
},
}
onDeviceParams: {
promptOptions: {
responseConstraint: jsonSchema
}
}
});
এনাম আউটপুট
উপরে যেমনটি বলা হয়েছে, কিন্তু হাইব্রিড ইনফারেন্সের জন্য এনাম আউটপুটের ডকুমেন্টেশনকে অভিযোজিত করা হচ্ছে:
// ...
const enumSchema = Schema.enumString({
enum: ["drama", "comedy", "documentary"],
});
const model = getGenerativeModel(ai, {
// ...
generationConfig: {
responseMimeType: "text/x.enum",
responseSchema: enumSchema
},
// ...
});
// ...
ডিভাইসে থাকা অনুমানের জন্য বৈশিষ্ট্যগুলি এখনও উপলব্ধ নয়
একটি পরীক্ষামূলক রিলিজ হিসেবে, ওয়েব SDK-এর সমস্ত ক্ষমতা ডিভাইসে অনুমানের জন্য উপলব্ধ নয়। নিম্নলিখিত বৈশিষ্ট্যগুলি এখনও ডিভাইসে অনুমানের জন্য সমর্থিত নয় (তবে এগুলি সাধারণত ক্লাউড-ভিত্তিক অনুমানের জন্য উপলব্ধ)।
JPEG এবং PNG ব্যতীত অন্যান্য ইমেজ ফাইল ইনপুট প্রকার থেকে টেক্সট তৈরি করা হচ্ছে
- ক্লাউড-হোস্টেড মডেলে ফিরে যেতে পারে; তবে,
ONLY_ON_DEVICEমোড একটি ত্রুটি দেখাবে।
- ক্লাউড-হোস্টেড মডেলে ফিরে যেতে পারে; তবে,
অডিও, ভিডিও এবং ডকুমেন্ট (যেমন পিডিএফ) ইনপুট থেকে টেক্সট তৈরি করা
- ক্লাউড-হোস্টেড মডেলে ফিরে যেতে পারে; তবে,
ONLY_ON_DEVICEমোড একটি ত্রুটি দেখাবে।
- ক্লাউড-হোস্টেড মডেলে ফিরে যেতে পারে; তবে,
জেমিনি বা ইমেজেন মডেল ব্যবহার করে ছবি তৈরি করা
- ক্লাউড-হোস্টেড মডেলে ফিরে যেতে পারে; তবে,
ONLY_ON_DEVICEমোড একটি ত্রুটি দেখাবে।
- ক্লাউড-হোস্টেড মডেলে ফিরে যেতে পারে; তবে,
মাল্টিমোডাল অনুরোধে URL ব্যবহার করে ফাইল সরবরাহ করা। আপনাকে অবশ্যই অন-ডিভাইস মডেলগুলিতে ইনলাইন ডেটা হিসাবে ফাইল সরবরাহ করতে হবে।
মাল্টি-টার্ন চ্যাট
- ক্লাউড-হোস্টেড মডেলে ফিরে যেতে পারে; তবে,
ONLY_ON_DEVICEমোড একটি ত্রুটি দেখাবে।
- ক্লাউড-হোস্টেড মডেলে ফিরে যেতে পারে; তবে,
Gemini Live API এর মাধ্যমে দ্বি-মুখী স্ট্রিমিং
মডেলটিকে তার প্রতিক্রিয়া তৈরি করতে সাহায্য করার জন্য সরঞ্জাম সরবরাহ করা (যেমন ফাংশন কলিং, কোড এক্সিকিউশন, URL প্রসঙ্গ এবং Google অনুসন্ধানের মাধ্যমে গ্রাউন্ডিং)
টোকেন গণনা করুন
- সর্বদা একটি ত্রুটি ফেলে। ক্লাউড-হোস্টেড এবং অন-ডিভাইস মডেলের মধ্যে গণনা ভিন্ন হবে, তাই কোনও স্বজ্ঞাত ফলব্যাক নেই।
ডিভাইসে অনুমানের জন্য Firebase কনসোলে AI পর্যবেক্ষণ।
- মনে রাখবেন যে ক্লাউড-হোস্টেড মডেল ব্যবহার করে যেকোনো অনুমান Firebase AI Logic ক্লায়েন্ট SDK for Web ব্যবহার করে অন্যান্য অনুমানের মতোই পর্যবেক্ষণ করা যেতে পারে।
Firebase AI Logic এর সাথে আপনার অভিজ্ঞতা সম্পর্কে মতামত দিন।