ওয়েব অ্যাপে হাইব্রিড অভিজ্ঞতার জন্য কাঠামোগত আউটপুট তৈরি করুন


জেমিনি মডেলগুলি ডিফল্টরূপে আনস্ট্রাকচার্ড টেক্সট হিসেবে রেসপন্স ফেরত দেয়। তবে, কিছু ব্যবহারের ক্ষেত্রে স্ট্রাকচার্ড টেক্সটের প্রয়োজন হয়, যেমন JSON। উদাহরণস্বরূপ, আপনি হয়তো অন্যান্য ডাউনস্ট্রিম কাজের জন্য রেসপন্স ব্যবহার করছেন যার জন্য একটি প্রতিষ্ঠিত ডেটা স্কিমা প্রয়োজন।

মডেলের উৎপন্ন আউটপুট যাতে সর্বদা একটি নির্দিষ্ট স্কিমার সাথে মেনে চলে তা নিশ্চিত করার জন্য, আপনি একটি স্কিমা সংজ্ঞায়িত করতে পারেন, যা মডেল প্রতিক্রিয়ার জন্য একটি নীলনকশার মতো কাজ করে। এরপর আপনি কম পোস্ট-প্রসেসিং ব্যবহার করে মডেলের আউটপুট থেকে সরাসরি ডেটা বের করতে পারেন।

এখানে কিছু উদাহরণ দেওয়া হল:

  • নিশ্চিত করুন যে একটি মডেলের প্রতিক্রিয়া বৈধ JSON তৈরি করে এবং আপনার প্রদত্ত স্কিমার সাথে সঙ্গতিপূর্ণ।
    উদাহরণস্বরূপ, মডেলটি রেসিপির জন্য স্ট্রাকচার্ড এন্ট্রি তৈরি করতে পারে যাতে সর্বদা রেসিপির নাম, উপাদানের তালিকা এবং ধাপগুলি অন্তর্ভুক্ত থাকে। এরপর আপনি আরও সহজেই আপনার অ্যাপের UI-তে এই তথ্য বিশ্লেষণ এবং প্রদর্শন করতে পারবেন।

  • শ্রেণিবিন্যাসের কাজের সময় একজন মডেল কীভাবে প্রতিক্রিয়া জানাতে পারে তা সীমাবদ্ধ করুন।
    উদাহরণস্বরূপ, আপনি মডেলটি তৈরি করে এমন লেবেলের পরিবর্তে (যার মধ্যে good , positive , positive , অথবা bad এর মতো পরিবর্তনশীলতার মাত্রা থাকতে পারে) একটি নির্দিষ্ট সেট লেবেল (উদাহরণস্বরূপ, enums এর একটি নির্দিষ্ট সেট যেমন positive এবং negative ) দিয়ে মডেলটি negative টেক্সট ব্যবহার করতে bad

এই পৃষ্ঠাটি বর্ণনা করে কিভাবে ওয়েব অ্যাপের জন্য আপনার হাইব্রিড অভিজ্ঞতায় স্ট্রাকচার্ড আউটপুট (যেমন JSON এবং enums) তৈরি করবেন।

শুরু করার আগে

হাইব্রিড অভিজ্ঞতা তৈরির জন্য শুরু করার নির্দেশিকাটি আপনি সম্পূর্ণ করেছেন কিনা তা নিশ্চিত করুন।

স্ট্রাকচার্ড আউটপুটের জন্য কনফিগারেশন সেট করুন

ক্লাউড-হোস্টেড এবং অন-ডিভাইস উভয় মডেল ব্যবহার করে অনুমানের জন্য স্ট্রাকচার্ড আউটপুট (যেমন JSON এবং enums) তৈরি করা সমর্থিত।

হাইব্রিড ইনফারেন্সের জন্য, স্ট্রাকচার্ড আউটপুট সহ প্রতিক্রিয়া জানাতে মডেলটি কনফিগার করতে inCloudParams এবং onDeviceParams উভয়ই ব্যবহার করুন। অন্যান্য মোডের জন্য, শুধুমাত্র প্রযোজ্য কনফিগারেশন ব্যবহার করুন।

  • inCloudParams এর জন্য : উপযুক্ত responseMimeType (উদাহরণস্বরূপ, application/json ) এবং সেই responseSchema উল্লেখ করুন যা আপনি মডেলটি ব্যবহার করতে চান।

  • onDeviceParams এর জন্য : মডেলটি যে responseConstraint ব্যবহার করতে চান তা নির্দিষ্ট করুন।

JSON আউটপুট

নিম্নলিখিত উদাহরণটি হাইব্রিড ইনফারেন্স (এই উদাহরণে, PREFER_ON_DEVICE ) সামঞ্জস্য করার জন্য সাধারণ 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.PREFER_ON_DEVICE,
  inCloudParams: {
    generationConfig: {
      responseMimeType: "application/json",
      responseSchema: jsonSchema
    },
  }
  onDeviceParams: {
    promptOptions: {
      responseConstraint: jsonSchema
    }
  }
});

// ...

এনাম আউটপুট

নিম্নলিখিত উদাহরণটি হাইব্রিড ইনফারেন্স (এই উদাহরণে, PREFER_ON_DEVICE ) সামঞ্জস্য করার জন্য সাধারণ enum আউটপুট উদাহরণকে অভিযোজিত করে:

import {
  getAI,
  getGenerativeModel,
  Schema
} from "firebase/ai";

const enumSchema = Schema.enumString({
  enum: ["drama", "comedy", "documentary"],
});

const model = getGenerativeModel(ai, {
  mode: InferenceMode.PREFER_ON_DEVICE,
  inCloudParams: {
    generationConfig: {
      responseMimeType: "text/x.enum",
      responseSchema: enumSchema
    },
  }
  onDeviceParams: {
    promptOptions: {
      responseConstraint: enumSchema
    }
  }
});

// ...