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

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

To meet your users' needs, whatever platform or hardware they use, you can set up a fallback to the cloud with Firebase AI Logic for the built-in Prompt API .

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

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

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

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

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

কীভাবে একটি ফায়ারবেস প্রজেক্ট তৈরি করতে হয় এবং আপনার ওয়েব অ্যাপে ফায়ারবেস যুক্ত করতে হয় তা শিখুন।

Firebase projects are Google Cloud projects, with Firebase-specific configurations and services. Learn more about Google Cloud and Firebase .

SDK ইনস্টল করুন

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

  1. Firebase JS SDK ইনস্টল করুন:

    npm install firebase
    
  2. আপনার অ্যাপ্লিকেশনে Firebase চালু করুন।

Firebase AI Logic সেট আপ এবং সুরক্ষিত করুন

  1. Firebase কনসোলে, AI Services > AI Logic- এ যান।

  2. সেটআপ ওয়ার্কফ্লো চালু করতে 'Get started'- এ ক্লিক করুন।

  3. 'জেমিনি এপিআই প্রোভাইডার' বেছে নিতে বলা হলে, আমরা জেমিনি ডেভেলপার এপিআই নির্বাচন করার পরামর্শ দিই, যা আপনাকে কোনো খরচ ছাড়াই দ্রুত কাজ শুরু করতে দেয়।

    পরবর্তীতে যেকোনো সময়ে, আপনি Vertex AI Gemini API (এবং এর বিলিংয়ের জন্য প্রয়োজনীয় শর্তাবলী) সেট আপ করতে পারেন।

  4. Continue in the console's workflow to set up the required APIs and associated services for Firebase AI Logic.

    ২০২৬ সালের জুলাই মাসের শুরু থেকে, ওয়ার্কফ্লো-এর এই পর্যায়টি স্বয়ংক্রিয়ভাবে AI Logic-এর জন্য Firebase App Check প্রয়োগ করবে , যা আপনার অ্যাপ থেকে সরাসরি অ্যাক্সেস করার সময় Gemini API-কে সুরক্ষিত রাখতে সাহায্যকারী একটি গুরুত্বপূর্ণ পরিষেবা। শুরু করার অংশ হিসেবে (এই গাইডের পরবর্তী ধাপগুলো দেখুন), App Check প্রয়োগ করা হলে আপনাকে লোকাল ডেভেলপমেন্টের জন্য App Check ডিবাগ প্রোভাইডারটি কনফিগার করতে হবে।

  5. স্থানীয় ডেভেলপমেন্টের জন্য অ্যাপ চেক ডিবাগ প্রোভাইডার কনফিগার করতে এই গাইডের পরবর্তী বিভাগগুলিতে যান এবং তারপরে জেমিনি এপিআই-তে আপনার প্রথম অনুরোধটি পাঠান।

স্থানীয় ডেভেলপমেন্টের জন্য অ্যাপ চেক ডিবাগ প্রোভাইডার কনফিগার করুন

localhost থেকে আপনার অ্যাপটি ইন্টারেক্টিভভাবে চালানোর সময় (উদাহরণস্বরূপ, লোকাল ডেভেলপমেন্টের সময়) ডিবাগ প্রোভাইডারটি কীভাবে ব্যবহার করবেন, তা এখানে দেওয়া হলো:

  1. আপনার ডিবাগ বিল্ডে, অ্যাপ চেক ইনিশিয়ালাইজ করার আগে self.FIREBASE_APPCHECK_DEBUG_TOKEN true সেট করে ডিবাগ মোড চালু করুন। উদাহরণস্বরূপ:

    self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
    initializeAppCheck(app, { /* App Check options */ });
    
  2. আপনার ওয়েব অ্যাপটি স্থানীয়ভাবে খুলুন এবং ব্রাউজারের ডেভেলপার টুলস খুলুন। ডিবাগ কনসোলে, আপনি একটি ডিবাগ টোকেন দেখতে পাবেন:

    AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678".
    You will need to safelist it in the Firebase console for it to work.
    
  3. অ্যাপ চেক-এর সাথে আপনার ডিবাগ টোকেন নিবন্ধন করুন:

    1. Firebase কনসোলে, Security > App Check > Apps ট্যাবে যান।

    2. আপনার অ্যাপটি খুঁজুন, ওভারফ্লো মেনুতে ( ) ক্লিক করুন এবং তারপরে 'Manage debug tokens' নির্বাচন করুন।

    3. আপনার ডিবাগ টোকেন নিবন্ধন করতে স্ক্রিনে দেওয়া নির্দেশাবলী অনুসরণ করুন।

ডিবাগ প্রোভাইডার সম্পর্কে বিস্তারিত জানতে (নতুন ডিবাগ টোকেন কীভাবে পাবেন তা সহ), অ্যাপ চেকের অফিসিয়াল ডকুমেন্টেশন দেখুন।

জেমিনি এপিআই-তে একটি অনুরোধ পাঠান

  1. একটি ইনস্ট্যান্স শুরু ও তৈরি করুন।

  2. মডেলটিকে টেক্সট বা মাল্টিমোডাল ইনপুট দিয়ে নির্দেশ দিন। এই নির্দেশিকার পরবর্তী উপবিভাগগুলিতে উদাহরণ দেখুন।

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

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

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

  • Use the built-in AI by default when it's available by setting the mode to 'prefer_on_device' in the getGenerativeModel() function. If the built-in model isn't available, the request will fall back seamlessly to use the cloud model (if you're online).

  • অনলাইনে থাকাকালীন ডিফল্টরূপে ক্লাউড মডেল ব্যবহার করতে 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);

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

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

Images need to be passed as a base64-encoded string as a Firebase FileDataPart object, which you can do with the helper function 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) এআই ফিচারগুলোর ব্যাপকতর সহজলভ্যতা এবং নির্ভরযোগ্যতা নিশ্চিত করে।

Remember that cloud applications create new expectations for privacy and functionality, so it's important to inform your users of where their data is being processed.