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