Firebase AI লজিকের সাথে হাইব্রিড AI প্রম্পটিং

প্রকাশিত: ২০ মে, ২০২৫

আপনার ব্যবহারকারীরা যে প্ল্যাটফর্ম বা হার্ডওয়্যারই ব্যবহার করুক না কেন, তাদের চাহিদা মেটাতে আপনি Firebase AI Logic-এর বিল্ট-ইন Prompt API-এর মাধ্যমে ক্লাউডে একটি ফলব্যাক সেট আপ করতে পারেন।

একটি হাইব্রিড এআই অভিজ্ঞতা তৈরি করুন

অন্তর্নির্মিত এআই-এর বেশ কিছু সুবিধা রয়েছে, যার মধ্যে সবচেয়ে উল্লেখযোগ্য হলো:

  • সংবেদনশীল ডেটার স্থানীয় প্রক্রিয়াকরণ: আপনি যদি সংবেদনশীল ডেটা নিয়ে কাজ করেন, তবে ব্যবহারকারীদের এন্ড-টু-এন্ড এনক্রিপশন সহ এআই ফিচার প্রদান করতে পারেন।
  • অফলাইন এআই ব্যবহার: আপনার ব্যবহারকারীরা অফলাইনে থাকলেও বা সংযোগ বিচ্ছিন্ন হয়ে গেলেও এআই ফিচারগুলো ব্যবহার করতে পারবেন।

যদিও এই সুবিধাগুলো ক্লাউড অ্যাপ্লিকেশনের ক্ষেত্রে প্রযোজ্য নয়, তবুও আপনি অন্তর্নির্মিত এআই ব্যবহার করতে পারেন না এমন ব্যবহারকারীদের জন্য একটি নির্বিঘ্ন অভিজ্ঞতা নিশ্চিত করতে পারেন।

ফায়ারবেস দিয়ে শুরু করুন

  1. একটি ফায়ারবেস প্রজেক্ট তৈরি করুন এবং আপনার ওয়েব অ্যাপ্লিকেশনটি নিবন্ধন করুন।
  2. আপনার ওয়েব অ্যাপ্লিকেশন সেটআপ চালিয়ে যাওয়ার জন্য ফায়ারবেস জাভাস্ক্রিপ্ট এসডিকে ডকুমেন্টেশন পড়ুন।

ফায়ারবেস প্রজেক্টগুলো ফায়ারবেস-নির্দিষ্ট কনফিগারেশন এবং পরিষেবা সহ একটি গুগল ক্লাউড প্রজেক্ট তৈরি করে। গুগল ক্লাউড এবং ফায়ারবেস সম্পর্কে আরও জানুন।

SDK ইনস্টল করুন

এই ওয়ার্কফ্লোটি npm ব্যবহার করে এবং এর জন্য মডিউল বান্ডলার অথবা জাভাস্ক্রিপ্ট ফ্রেমওয়ার্ক টুলিং প্রয়োজন হয়। অব্যবহৃত কোড বাদ দিতে এবং SDK-এর আকার কমাতে, Firebase AI Logic মডিউল বান্ডলারের সাথে কাজ করার জন্য অপ্টিমাইজ করা হয়েছে।

npm install firebase

ইনস্টল হয়ে গেলে, আপনার অ্যাপ্লিকেশনে Firebase চালু করুন

ফায়ারবেস এআই লজিক ব্যবহার করুন

একবার Firebase ইনস্টল এবং ইনিশিয়ালাইজ করা হয়ে গেলে, Gemini Developer API অথবা Gemini API-এর মধ্যে যেকোনো একটি বেছে নিন, তারপর একটি ইনস্ট্যান্স ইনিশিয়ালাইজ ও তৈরি করুন

একবার চালু হয়ে গেলে, আপনি টেক্সট বা মাল্টিমোডাল ইনপুট দিয়ে মডেলটিকে নির্দেশ দিতে পারেন।

টেক্সট প্রম্পট

মডেলকে নির্দেশ দেওয়ার জন্য আপনি সাধারণ টেক্সট ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনি মডেলকে একটি কৌতুক বলতে বলতে পারেন।

অনুরোধটি কীভাবে পাঠানো হবে, তার জন্য আপনার কাছে কয়েকটি বিকল্প রয়েছে:

  • getGenerativeModel() ফাংশনে mode 'prefer_on_device' এ সেট করে, উপলব্ধ থাকলে ডিফল্টরূপে বিল্ট-ইন এআই ব্যবহার করুন। যদি বিল্ট-ইন মডেলটি উপলব্ধ না থাকে, তাহলে অনুরোধটি নির্বিঘ্নে ক্লাউড মডেল ব্যবহার করার জন্য ফিরে যাবে (যদি আপনি অনলাইনে থাকেন)।

  • অনলাইনে থাকাকালীন ডিফল্টরূপে ক্লাউড মডেল ব্যবহার করতে getGenerativeModel() ফাংশনে mode 'prefer_in_cloud' এ সেট করুন। আপনি অফলাইনে থাকলে, অনুরোধটি উপলব্ধ হলে নির্বিঘ্নে বিল্ট-ইন এআই ব্যবহার করার জন্য ফিরে যাবে।

// Initialize the Google AI service.
const googleAI = getAI(firebaseApp);

// Create a `GenerativeModel` instance with a model that supports your use case.
const model = getGenerativeModel(googleAI, { mode: 'prefer_on_device' });

const prompt = 'Tell me a joke';

const result = await model.generateContentStream(prompt);

for await (const chunk of result.stream) {
  const chunkText = chunk.text();
  console.log(chunkText);
}
console.log('Complete response', await result.response);

মাল্টিমোডাল প্রম্পট

টেক্সটের পাশাপাশি আপনি ছবি বা অডিও দিয়েও নির্দেশ দিতে পারেন। আপনি মডেলটিকে একটি ছবির বিষয়বস্তু বর্ণনা করতে বা একটি অডিও ফাইল প্রতিলিপি করতে বলতে পারেন।

ছবিগুলোকে একটি Firebase FileDataPart অবজেক্ট হিসেবে base64-এনকোডেড স্ট্রিং আকারে পাস করতে হবে, যা আপনি fileToGenerativePart() হেল্পার ফাংশনটির সাহায্যে করতে পারেন।

// Converts a File object to a `FileDataPart` object.
// https://firebase.google.com/docs/reference/js/vertexai.filedatapart
async function fileToGenerativePart(file) {
    const base64EncodedDataPromise = new Promise((resolve) => {
      const reader = new FileReader();
      reader.onload = () => resolve(reader.result.split(',')[1]);
      reader.readAsDataURL(file);
    });

    return {
      inlineData: { data: await base64EncodedDataPromise, mimeType: file.type },
    };
  }

  const fileInputEl = document.querySelector('input[type=file]');

  fileInputEl.addEventListener('change', async () => {
    const prompt = 'Describe the contents of this image.';

    const imagePart = await fileToGenerativePart(fileInputEl.files[0]);

    // To generate text output, call generateContent with the text and image
    const result = await model.generateContentStream([prompt, imagePart]);

    for await (const chunk of result.stream) {
      const chunkText = chunk.text();
      console.log(chunkText);
    }
    console.log(Complete response: ', await result.response);
  });

ডেমো

বিভিন্ন ডিভাইস ও ব্রাউজারে Firebase AI Logic ডেমোটি দেখুন। আপনি দেখতে পাবেন, কীভাবে মডেলের প্রতিক্রিয়াটি বিল্ট-ইন এআই মডেল অথবা ক্লাউড থেকে আসে।

সমর্থিত হার্ডওয়্যারে ক্রোমে ডেমোটি প্রম্পট এপিআই এবং জেমিনি ন্যানো ব্যবহার করে। মূল ডকুমেন্ট, জাভাস্ক্রিপ্ট ফাইল এবং সিএসএস ফাইলের জন্য মাত্র ৩টি রিকোয়েস্ট করা হয়।

ফায়ারবেস এআই লজিক ক্রোমে চলছে, যা বিল্ট-ইন এআই এপিআই ব্যবহার করছে।

অন্য কোনো ব্রাউজার বা বিল্ট-ইন এআই সাপোর্টবিহীন কোনো অপারেটিং সিস্টেম ব্যবহার করার সময়, Firebase এন্ডপয়েন্ট, https://firebasevertexai.googleapis.com এ একটি অতিরিক্ত অনুরোধ পাঠানো হয়।

সাফারিতে চলমান ফায়ারবেস এআই লজিক ফায়ারবেস সার্ভারগুলোতে একটি অনুরোধ পাঠাচ্ছে।

অংশগ্রহণ করুন এবং মতামত জানান।

আপনার ওয়েব অ্যাপে এআই সক্ষমতা যুক্ত করার জন্য ফায়ারবেস এআই লজিক একটি দারুণ বিকল্প হতে পারে। প্রম্পট এপিআই (Prompt API) অনুপলব্ধ থাকলে ক্লাউডে একটি ফলব্যাক (fallback) ব্যবস্থা রাখার মাধ্যমে, এই এসডিকে (SDK) এআই ফিচারগুলোর ব্যাপকতর সহজলভ্যতা এবং নির্ভরযোগ্যতা নিশ্চিত করে।

মনে রাখবেন যে ক্লাউড অ্যাপ্লিকেশনগুলো গোপনীয়তা এবং কার্যকারিতার ক্ষেত্রে নতুন প্রত্যাশা তৈরি করে, তাই আপনার ব্যবহারকারীদের জানানো জরুরি যে তাদের ডেটা কোথায় প্রসেস করা হচ্ছে।