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

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

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

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

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

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

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

JSON আউটপুটে আউটপুটে যান।

কাঠামোগত আউটপুটের জন্য কনফিগারেশন

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

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

    • অন-ডিভাইস মডেলের জন্য : Schema হেল্পার মেথড দিয়ে তৈরি করা স্কিমা অথবা একটি সাধারণ JSON স্কিমা ব্যবহার করে onDeviceParamsresponseConstraint নির্দিষ্ট করুন।

    • ক্লাউড-হোস্টেড মডেলের জন্য : inCloudParamsresponseMimeType (JSON-এর জন্য application/json অথবা enum-এর জন্য text/x.enum ) এবং responseSchema উল্লেখ করুন।

  • নন-হাইব্রিড ইনফারেন্স মোড : শুধুমাত্র উপরে বর্ণিত প্রযোজ্য কনফিগারেশনটি ব্যবহার করুন।

শুরু করার আগে

এই পৃষ্ঠায় প্রদানকারী-নির্দিষ্ট বিষয়বস্তু এবং কোড দেখতে আপনার জেমিনি এপিআই প্রদানকারীর উপর ক্লিক করুন।

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


JSON আউটপুটে আউটপুটে যান।

JSON আউটপুট

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

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

আপনি নিম্নলিখিত পদ্ধতিগুলোর যেকোনো একটি ব্যবহার করে আপনার রেসপন্স স্কিমা নির্ধারণ করতে পারেন:

  • ফায়ারবেস Schema হেল্পার মেথড (প্রস্তাবিত) : অতিরিক্ত বয়লারপ্লেট কোড ছাড়াই সরাসরি আপনার কোডে সংক্ষিপ্ত ও সুসংহত স্কিমা লেখার জন্য হেল্পার মেথড (যেমন Schema.object() এবং Schema.enumString() ) ব্যবহার করুন।

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

উদাহরণ ১: ফায়ারবেস Schema হেল্পার মেথড ব্যবহার

এই উদাহরণটি অবজেক্ট স্কিমা সংজ্ঞায়িত করতে Firebase AI Logic SDK দ্বারা প্রদত্ত Schema হেল্পার মেথড (যেমন Schema.object , Schema.array , Schema.string , এবং Schema.number ) ব্যবহার করে।

এই নমুনাটি চেষ্টা করার আগে, আপনার প্রজেক্ট ও অ্যাপ সেট আপ করার জন্য এই গাইডের ' শুরু করার আগে ' অংশটি সম্পূর্ণ করুন।
সেই বিভাগে, আপনি আপনার নির্বাচিত জেমিনি এপিআই প্রোভাইডারের জন্য একটি বোতামেও ক্লিক করবেন, যাতে আপনি এই পৃষ্ঠায় প্রোভাইডার-নির্দিষ্ট বিষয়বস্তু দেখতে পান

import { initializeApp } from "firebase/app";
import {
  getAI,
  getGenerativeModel,
  GoogleAIBackend,
  InferenceMode,
  Schema
} 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() });

// Define a schema using the `Schema` helper methods.
// Optional properties are specified in optionalProperties.
const jsonSchema = Schema.object({
  properties: {
    characters: Schema.array({
      items: Schema.object({
        properties: {
          name: Schema.string(),
          age: Schema.number(),
          species: Schema.string(),
          accessory: Schema.string()
        },
        optionalProperties: ["accessory"]
      })
    })
  }
});

// Create a GenerativeModel instance configured to use a hybrid inference mode (like PREFER_ON_DEVICE).
const model = getGenerativeModel(ai, {
  mode: InferenceMode.INFERENCE_MODE,
  // For cloud-hosted models, specify MIME type and response schema.
  inCloudParams: {
    model: "CLOUD_MODEL_NAME",
    generationConfig: {
      responseMimeType: "application/json",
      responseSchema: jsonSchema
    }
  },
  // For on-device models, pass the schema as the response constraint.
  onDeviceParams: {
    promptOptions: {
      responseConstraint: jsonSchema
    }
  }
});

const prompt = "Create profiles for some characters for a fantasy story.";

// Generate the structured output.
const result = await model.generateContent(prompt);

// Access the generated JSON string conforming to the schema from response.text().
console.log(result.response.text());

// Parse the JSON string into a JavaScript object.
console.log(JSON.parse(result.response.text()));

উদাহরণ ২: একটি সাধারণ JSON স্কিমা ব্যবহার করা

এই উদাহরণটি শুধুমাত্র JSON ব্যবহার করে স্কিমা নির্ধারণ করে।

এই নমুনাটি চেষ্টা করার আগে, আপনার প্রজেক্ট ও অ্যাপ সেট আপ করার জন্য এই গাইডের ' শুরু করার আগে ' অংশটি সম্পূর্ণ করুন।
সেই বিভাগে, আপনি আপনার নির্বাচিত জেমিনি এপিআই প্রোভাইডারের জন্য একটি বোতামেও ক্লিক করবেন, যাতে আপনি এই পৃষ্ঠায় প্রোভাইডার-নির্দিষ্ট বিষয়বস্তু দেখতে পান

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() });

// Define the schema as a plain JSON object.
// Properties are required by default unless omitted from the required array.
const jsonSchema = {
  type: "object",
  properties: {
    characters: {
      type: "array",
      items: {
        type: "object",
        properties: {
          name: {
            type: "string",
            nullable: false
          },
          age: {
            type: "number",
            nullable: false
          },
          species: {
            type: "string",
            nullable: false
          },
          accessory: {
            type: "string",
            nullable: true
          }
        },
        nullable: false,
        required: [
          "name",
          "age",
          "species"
        ]
      },
      nullable: false
    }
  },
  nullable: false,
  required: [
    "characters"
  ]
};

// Create a GenerativeModel instance configured to use a hybrid inference mode (like PREFER_ON_DEVICE).
const model = getGenerativeModel(ai, {
  mode: InferenceMode.INFERENCE_MODE,
  // For cloud-hosted models, specify MIME type and response schema.
  inCloudParams: {
    model: "CLOUD_MODEL_NAME",
    generationConfig: {
      responseMimeType: "application/json",
      responseSchema: jsonSchema
    }
  },
  // For on-device models, pass the schema as the response constraint.
  onDeviceParams: {
    promptOptions: {
      responseConstraint: jsonSchema
    }
  }
});

const prompt = "Create profiles for some characters for a fantasy story.";

// Generate the structured output.
const result = await model.generateContent(prompt);

// Access the generated JSON string conforming to the schema from response.text().
console.log(result.response.text());

// Parse the JSON string into a JavaScript object.
console.log(JSON.parse(result.response.text()));

Enum আউটপুট

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

এই উদাহরণগুলোর ক্ষেত্রে, মডেলটি পূর্বনির্ধারিত অনুমোদিত বিকল্পগুলোর তালিকা ( drama , comedy বা documentary ) থেকে একটিমাত্র জনরা নির্বাচন করে চলচ্চিত্রের বিবরণকে শ্রেণিবদ্ধ করে।

আপনি নিম্নলিখিত পদ্ধতিগুলোর যেকোনো একটি ব্যবহার করে আপনার রেসপন্স স্কিমা নির্ধারণ করতে পারেন:

  • ফায়ারবেস Schema হেল্পার মেথড (প্রস্তাবিত) : অতিরিক্ত বয়লারপ্লেট কোড ছাড়াই সরাসরি আপনার কোডে সংক্ষিপ্ত ও সুসংহত স্কিমা লেখার জন্য হেল্পার মেথড (যেমন Schema.object() এবং Schema.enumString() ) ব্যবহার করুন।

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

উদাহরণ ১: ফায়ারবেস Schema হেল্পার মেথড ব্যবহার

এই উদাহরণটিতে অনুমোদিত এনাম মানগুলি সংজ্ঞায়িত করার জন্য ফায়ারবেস এআই লজিক এসডিকে দ্বারা প্রদত্ত Schema.enumString হেল্পার মেথডটি ব্যবহার করা হয়েছে।

এই নমুনাটি চেষ্টা করার আগে, আপনার প্রজেক্ট ও অ্যাপ সেট আপ করার জন্য এই গাইডের ' শুরু করার আগে ' অংশটি সম্পূর্ণ করুন।
সেই বিভাগে, আপনি আপনার নির্বাচিত জেমিনি এপিআই প্রোভাইডারের জন্য একটি বোতামেও ক্লিক করবেন, যাতে আপনি এই পৃষ্ঠায় প্রোভাইডার-নির্দিষ্ট বিষয়বস্তু দেখতে পান

import { initializeApp } from "firebase/app";
import {
  getAI,
  getGenerativeModel,
  GoogleAIBackend,
  InferenceMode,
  Schema
} 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() });

// Define an enum schema using the `Schema` helper method with allowed string values.
const enumSchema = Schema.enumString({
  enum: ["drama", "comedy", "documentary"]
});

// Create a GenerativeModel instance configured to use a hybrid inference mode (like PREFER_ON_DEVICE).
const model = getGenerativeModel(ai, {
  mode: InferenceMode.INFERENCE_MODE,
  // For cloud-hosted models, specify MIME type and response schema.
  inCloudParams: {
    model: "CLOUD_MODEL_NAME",
    generationConfig: {
      responseMimeType: "text/x.enum",
      responseSchema: enumSchema
    }
  },
  // For on-device models, pass the enum schema as the response constraint.
  onDeviceParams: {
    promptOptions: {
      responseConstraint: enumSchema
    }
  }
});

const prompt = `The film aims to educate and inform viewers about real-life
subjects, events, or people. It offers a factual record of a particular topic
by combining interviews, historical footage, and narration. The primary purpose
of a film is to present information and provide insights into various aspects
of reality.`;

// Generate the structured enum output.
const result = await model.generateContent(prompt);

// Access the selected enum value string from response.text().
console.log(result.response.text());

উদাহরণ ২: একটি সাধারণ JSON স্কিমা ব্যবহার করা

এই উদাহরণটি শুধুমাত্র JSON ব্যবহার করে এনাম স্কিমা সংজ্ঞায়িত করে।

এই নমুনাটি চেষ্টা করার আগে, আপনার প্রজেক্ট ও অ্যাপ সেট আপ করার জন্য এই গাইডের ' শুরু করার আগে ' অংশটি সম্পূর্ণ করুন।
সেই বিভাগে, আপনি আপনার নির্বাচিত জেমিনি এপিআই প্রোভাইডারের জন্য একটি বোতামেও ক্লিক করবেন, যাতে আপনি এই পৃষ্ঠায় প্রোভাইডার-নির্দিষ্ট বিষয়বস্তু দেখতে পান

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() });

// Define the enum schema as a plain JSON object.
const enumSchema = {
  type: "string",
  enum: ["drama", "comedy", "documentary"]
};

// Create a GenerativeModel instance configured to use a hybrid inference mode (like PREFER_ON_DEVICE).
const model = getGenerativeModel(ai, {
  mode: InferenceMode.INFERENCE_MODE,
  // For cloud-hosted models, specify MIME type and response schema.
  inCloudParams: {
    model: "CLOUD_MODEL_NAME",
    generationConfig: {
      responseMimeType: "text/x.enum",
      responseSchema: enumSchema
    }
  },
  // For on-device models, pass the enum schema as the response constraint.
  onDeviceParams: {
    promptOptions: {
      responseConstraint: enumSchema
    }
  }
});

const prompt = `The film aims to educate and inform viewers about real-life
subjects, events, or people. It offers a factual record of a particular topic
by combining interviews, historical footage, and narration. The primary purpose
of a film is to present information and provide insights into various aspects
of reality.`;

// Generate the structured enum output.
const result = await model.generateContent(prompt);

// Access the selected enum value string from response.text().
console.log(result.response.text());


Firebase AI Logic ব্যবহারের অভিজ্ঞতা সম্পর্কে মতামত দিন।