অন-ডিভাইস এবং ক্লাউড-হোস্টেড মডেলগুলির সাহায্যে ওয়েব অ্যাপগুলিতে হাইব্রিড অভিজ্ঞতা তৈরি করুন


Firebase AI Logic ব্যবহার করে হাইব্রিড ইনফারেন্স ব্যবহার করে AI-চালিত ওয়েব অ্যাপ এবং বৈশিষ্ট্য তৈরি করুন। হাইব্রিড ইনফারেন্স উপলব্ধ থাকলে ডিভাইসে থাকা মডেলগুলি ব্যবহার করে ইনফারেন্স চালানো এবং অন্যথায় (এবং বিপরীতভাবে) ক্লাউড-হোস্টেড মডেলগুলিতে ফিরে আসা সক্ষম করে।

এই পৃষ্ঠায় ক্লায়েন্ট SDK ব্যবহার শুরু করার পদ্ধতি বর্ণনা করা হয়েছে। এই স্ট্যান্ডার্ড সেটআপটি সম্পন্ন করার পরে, অতিরিক্ত কনফিগারেশন বিকল্প এবং ক্ষমতা (যেমন স্ট্রাকচার্ড আউটপুট) পরীক্ষা করে দেখুন।

মনে রাখবেন যে Chrome on Desktop এ চলমান ওয়েব অ্যাপগুলির জন্য অন-ডিভাইস ইনফারেন্স সমর্থিত।

কোড উদাহরণগুলিতে যান

প্রস্তাবিত ব্যবহারের ক্ষেত্রে এবং সমর্থিত ক্ষমতা

প্রস্তাবিত ব্যবহারের ক্ষেত্রে:

  • ইনফারেন্স অফারগুলির জন্য একটি অন-ডিভাইস মডেল ব্যবহার করা:

    • উন্নত গোপনীয়তা
    • স্থানীয় প্রেক্ষাপট
    • বিনামূল্যে অনুমান
    • অফলাইন কার্যকারিতা
  • হাইব্রিড কার্যকারিতা ব্যবহারের ফলে নিম্নলিখিত সুবিধাগুলি পাওয়া যায়:

    • ডিভাইসে মডেলের প্রাপ্যতা বা ইন্টারনেট সংযোগ নির্বিশেষে, আপনার ১০০% দর্শকের কাছে পৌঁছান

ডিভাইসে থাকা অনুমানের জন্য সমর্থিত ক্ষমতা এবং বৈশিষ্ট্য:

অন-ডিভাইস ইনফারেন্স শুধুমাত্র সিঙ্গেল-টার্ন টেক্সট জেনারেশন সমর্থন করে (চ্যাট নয় ) , স্ট্রিমিং বা নন-স্ট্রিমিং আউটপুট সহ। এটি নিম্নলিখিত টেক্সট-জেনারেশন ক্ষমতা সমর্থন করে:

আপনি JSON এবং enums সহ স্ট্রাকচার্ড আউটপুটও তৈরি করতে পারেন।

শুরু করার আগে

নিম্নলিখিত বিষয়গুলি লক্ষ্য করুন:

লোকালহোস্টে শুরু করুন

এই শুরু করার ধাপগুলি আপনার পাঠানো যেকোনো সমর্থিত প্রম্পট অনুরোধের জন্য প্রয়োজনীয় সাধারণ সেটআপ বর্ণনা করে।

ধাপ ১ : ডিভাইসে অনুমানের জন্য Chrome এবং প্রম্পট API সেট আপ করুন

  1. নিশ্চিত করুন যে আপনি Chrome এর সাম্প্রতিক সংস্করণ ব্যবহার করছেন। chrome://settings/help এ আপডেট করুন।
    Chrome v139 এবং তার পরবর্তী সংস্করণ থেকে ডিভাইসে থাকা অনুমান পাওয়া যাবে।

  2. নিম্নলিখিত ফ্ল্যাগটি Enabled এ সেট করে অন-ডিভাইস মাল্টিমোডাল মডেলটি সক্ষম করুন:

    • chrome://flags/#prompt-api-for-gemini-nano-multimodal-input
  3. Chrome পুনরায় চালু করুন।

  4. (ঐচ্ছিক) প্রথম অনুরোধের আগে অন-ডিভাইস মডেলটি ডাউনলোড করুন।

    প্রম্পট API Chrome-এ তৈরি করা আছে; তবে, ডিফল্টরূপে অন-ডিভাইস মডেলটি উপলব্ধ থাকে না। যদি আপনি অন-ডিভাইস ইনফারেন্সের জন্য আপনার প্রথম অনুরোধের আগে মডেলটি ডাউনলোড না করে থাকেন, তাহলে অনুরোধটি স্বয়ংক্রিয়ভাবে ব্যাকগ্রাউন্ডে মডেল ডাউনলোড শুরু করবে।

ধাপ ২ : একটি Firebase প্রকল্প সেট আপ করুন এবং আপনার অ্যাপটিকে Firebase এর সাথে সংযুক্ত করুন।

  1. Firebase কনসোলে সাইন ইন করুন, এবং তারপর আপনার Firebase প্রকল্পটি নির্বাচন করুন।

  2. Firebase কনসোলে, ফায়ারবেস এআই লজিক পৃষ্ঠায় যান।

  3. আপনার প্রকল্পের জন্য প্রয়োজনীয় API এবং সংস্থান সেট আপ করতে সাহায্য করার জন্য একটি নির্দেশিত কর্মপ্রবাহ চালু করতে "শুরু করুন" এ ক্লিক করুন।

  4. " Gemini API " প্রদানকারী ব্যবহার করার জন্য আপনার প্রকল্পটি সেট আপ করুন।

    আমরা জেমিনি ডেভেলপার API ব্যবহার শুরু করার পরামর্শ দিচ্ছি। যেকোনো সময়, আপনি Vertex AI জেমিনি API (এবং বিলিংয়ের জন্য এর প্রয়োজনীয়তা) সেট আপ করতে পারেন।

    জেমিনি ডেভেলপার এপিআই- এর জন্য, কনসোলটি প্রয়োজনীয় এপিআই সক্ষম করবে এবং আপনার প্রকল্পে একটি জেমিনি এপিআই কী তৈরি করবে।
    এই জেমিনি এপিআই কীটি আপনার অ্যাপের কোডবেসে যোগ করবেন না আরও জানুন।

  5. কনসোলের ওয়ার্কফ্লোতে যদি অনুরোধ করা হয়, তাহলে আপনার অ্যাপটি নিবন্ধন করতে এবং এটিকে Firebase-এর সাথে সংযুক্ত করতে অন-স্ক্রীন নির্দেশাবলী অনুসরণ করুন।

  6. আপনার অ্যাপে SDK যোগ করতে এই নির্দেশিকার পরবর্তী ধাপে যান।

ধাপ ৩ : SDK যোগ করুন

ফায়ারবেস লাইব্রেরি জেনারেটিভ মডেলগুলির সাথে ইন্টারঅ্যাক্ট করার জন্য API গুলিতে অ্যাক্সেস প্রদান করে। লাইব্রেরিটি ওয়েবের জন্য ফায়ারবেস জাভাস্ক্রিপ্ট SDK এর অংশ হিসাবে অন্তর্ভুক্ত।

  1. npm ব্যবহার করে ওয়েবের জন্য Firebase JS SDK ইনস্টল করুন:

    npm install firebase
    
  2. আপনার অ্যাপে 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 প্রোভাইডারে ক্লিক করুন।

মডেলটিতে একটি প্রম্পট অনুরোধ পাঠানোর আগে নিম্নলিখিতগুলি সেট আপ করুন।

  1. আপনার নির্বাচিত API প্রদানকারীর জন্য পরিষেবাটি শুরু করুন।

  2. একটি GenerativeModel ইনস্ট্যান্স তৈরি করুন। নিম্নলিখিতগুলি করতে ভুলবেন না:

    1. ব্যবহারকারীর সাথে ইন্টারঅ্যাকশনের পরে বা পরে (যেমন একটি বোতাম ক্লিক) getGenerativeModel কল করুন। এটি inferenceMode এর জন্য একটি পূর্বশর্ত।

    2. 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-এ নথিভুক্ত করতে হবে। মনে রাখবেন যে এই ট্রায়ালগুলির জন্য সীমিত সময়কাল এবং ব্যবহার রয়েছে।

  1. প্রম্পট API Chrome Origin ট্রায়ালের জন্য নিবন্ধন করুন। আপনাকে একটি টোকেন দেওয়া হবে।

  2. আপনি যে ওয়েব পৃষ্ঠার জন্য ট্রায়াল বৈশিষ্ট্যটি সক্ষম করতে চান, প্রতিটি ওয়েব পৃষ্ঠায় টোকেনটি প্রদান করুন। নিম্নলিখিত বিকল্পগুলির মধ্যে একটি ব্যবহার করুন:

    • <head> ট্যাগে মেটা ট্যাগ হিসেবে টোকেনটি প্রদান করুন: <meta http-equiv="origin-trial" content=" TOKEN ">

    • HTTP হেডার হিসেবে টোকেনটি প্রদান করুন: Origin-Trial: TOKEN

    • প্রোগ্রাম্যাটিকভাবে টোকেনটি প্রদান করুন।

তুমি আর কি করতে পারো?

আপনার হাইব্রিড অভিজ্ঞতার জন্য আপনি বিভিন্ন অতিরিক্ত কনফিগারেশন বিকল্প এবং ক্ষমতা ব্যবহার করতে পারেন:

ডিভাইসে থাকা অনুমানের জন্য বৈশিষ্ট্যগুলি এখনও উপলব্ধ নয়

প্রিভিউ রিলিজ হিসেবে, ওয়েব 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 এর সাথে আপনার অভিজ্ঞতা সম্পর্কে মতামত দিন।