Gemini मॉडल, डिफ़ॉल्ट रूप से जवाबों को बिना किसी स्ट्रक्चर वाले टेक्स्ट के तौर पर दिखाते हैं. हालांकि, इस्तेमाल के कुछ मामलों में स्ट्रक्चर्ड टेक्स्ट, जैसे कि JSON की ज़रूरत होती है. उदाहरण के लिए, हो सकता है कि आपको जवाब का इस्तेमाल अन्य डाउनस्ट्रीम टास्क के लिए करना हो. इसके लिए, डेटा स्कीमा का होना ज़रूरी है.
यह पक्का करने के लिए कि मॉडल से जनरेट किया गया आउटपुट हमेशा किसी खास स्कीमा के मुताबिक हो, स्कीमा तय की जा सकती है. यह स्कीमा, मॉडल के जवाबों के लिए ब्लूप्रिंट की तरह काम करती है. इसके बाद, मॉडल के आउटपुट से सीधे तौर पर डेटा निकाला जा सकता है. इसके लिए, पोस्ट-प्रोसेसिंग की ज़रूरत कम पड़ती है.
यहां कुछ उदाहरण दिए गए हैं:
पक्का करें कि मॉडल का जवाब, मान्य JSON फ़ॉर्मैट में हो और आपके दिए गए स्कीमा के मुताबिक हो.
उदाहरण के लिए, मॉडल ऐसी रेसिपी के लिए स्ट्रक्चर्ड एंट्री जनरेट कर सकता है जिनमें हमेशा रेसिपी का नाम, सामग्री की सूची, और तरीका शामिल होता है. इसके बाद, इस जानकारी को आसानी से पार्स किया जा सकता है और अपने ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) में दिखाया जा सकता है.यह तय करना कि क्लासिफ़िकेशन टास्क के दौरान मॉडल कैसे जवाब दे सकता है.
उदाहरण के लिए, मॉडल को टेक्स्ट के लिए लेबल का कोई खास सेट (जैसे,positiveऔरnegativeजैसे एनम का कोई खास सेट) इस्तेमाल करने के लिए कहा जा सकता है. ऐसा करने से, मॉडल के जनरेट किए गए लेबल (जैसे,good,positive,negativeयाbad) के बजाय, आपके चुने गए लेबल इस्तेमाल किए जाएंगे.
इस पेज पर, वेब ऐप्लिकेशन के लिए हाइब्रिड अनुभवों में स्ट्रक्चर्ड आउटपुट (जैसे कि JSON और enum) जनरेट करने का तरीका बताया गया है.
शुरू करने से पहले
पक्का करें कि आपने हाइब्रिड अनुभव बनाने के लिए, शुरू करने से जुड़ी गाइड पढ़ ली हो.
स्ट्रक्चर्ड आउटपुट के लिए कॉन्फ़िगरेशन सेट करना
स्ट्रक्चर्ड आउटपुट (जैसे, JSON और enum) जनरेट करने की सुविधा, क्लाउड पर होस्ट किए गए और डिवाइस पर मौजूद, दोनों तरह के मॉडल के साथ काम करती है.
हाइब्रिड इन्फ़्रेंस के लिए, inCloudParams और onDeviceParams, दोनों का इस्तेमाल करें. इससे मॉडल को स्ट्रक्चर्ड आउटपुट के साथ जवाब देने के लिए कॉन्फ़िगर किया जा सकेगा. अन्य मोड के लिए, सिर्फ़ लागू होने वाले कॉन्फ़िगरेशन का इस्तेमाल करें.
inCloudParamsके लिए: सहीresponseMimeType(उदाहरण के लिए,application/json) के साथ-साथ वहresponseSchemaभी तय करें जिसका इस्तेमाल मॉडल को करना है.onDeviceParamsके लिए: वहresponseConstraintतय करें जिसका इस्तेमाल मॉडल को करना है.
JSON फ़ॉर्मैट में आउटपुट
यहां दिए गए उदाहरण में, JSON फ़ॉर्मैट में आउटपुट दिखाने वाले सामान्य उदाहरण को हाइब्रिड इन्फ़रेंस (इस उदाहरण में, PREFER_ON_DEVICE) के हिसाब से बदला गया है:
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
}
}
});
// ...
Enum आउटपुट
यहां दिए गए उदाहरण में, सामान्य enum आउटपुट के उदाहरण को हाइब्रिड इन्फ़्रेंस (इस उदाहरण में, PREFER_ON_DEVICE) के हिसाब से बदला गया है:
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
}
}
});
// ...