इस पेज पर, हाइब्रिड अनुभवों के लिए कॉन्फ़िगरेशन के ये विकल्प दिए गए हैं:
यह तय करना कि डिवाइस पर मौजूद मॉडल या क्लाउड में मौजूद मॉडल का इस्तेमाल किया गया है.
जवाबों को कंट्रोल करने के लिए, मॉडल कॉन्फ़िगरेशन का इस्तेमाल करना (जैसे, तापमान).
इन्फ़रेंस मोड सेट करना
शुरुआती गाइड में दिए गए उदाहरणों में, PREFER_ON_DEVICE मोड का इस्तेमाल किया गया है.
हालांकि, यह उपलब्ध चार
इन्फ़रेंस मोड में से सिर्फ़ एक है.
इन्फ़रेंस के ये मोड उपलब्ध हैं:
PREFER_ON_DEVICE: अगर डिवाइस पर मौजूद मॉडल उपलब्ध है और वह अनुरोध के टाइप के साथ काम करता है, तो उसका इस्तेमाल करने की कोशिश की जाती है. ऐसा न होने पर, डिवाइस पर गड़बड़ी का लॉग किया जाता है. इसके बाद, क्लाउड पर होस्ट किए गए मॉडल पर अपने-आप स्विच हो जाता है.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)Java
InferenceMode mode = InferenceMode.PREFER_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);ONLY_ON_DEVICE: अगर डिवाइस पर मौजूद मॉडल उपलब्ध है और वह अनुरोध के टाइप के साथ काम करता है, तो उसका इस्तेमाल करने की कोशिश की जाती है. ऐसा न होने पर, अपवाद थ्रो किया जाता है.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_ON_DEVICE)Java
InferenceMode mode = InferenceMode.ONLY_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);PREFER_IN_CLOUD: अगर डिवाइस ऑनलाइन है और मॉडल उपलब्ध है, तो क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल करने की कोशिश की जाती है. अगर डिवाइस ऑफ़लाइन है, तो डिवाइस पर मौजूद मॉडल पर स्विच किया जाता है. अन्य सभी मामलों में, अपवाद थ्रो किया जाता है.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_IN_CLOUD)Java
InferenceMode mode = InferenceMode.PREFER_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);ONLY_IN_CLOUD: अगर डिवाइस ऑनलाइन है और मॉडल उपलब्ध है, तो क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल करने की कोशिश की जाती है. ऐसा न होने पर, अपवाद थ्रो किया जाता है.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_IN_CLOUD)Java
InferenceMode mode = InferenceMode.ONLY_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);
यह तय करना कि डिवाइस पर मौजूद मॉडल या क्लाउड में मौजूद मॉडल का इस्तेमाल किया गया है
अगर आपका इन्फ़रेंस मोड PREFER_ON_DEVICE या PREFER_IN_CLOUD है, तो यह जानना मददगार हो सकता है कि दिए गए अनुरोधों के लिए किस मोड का इस्तेमाल किया गया है. यह जानकारी, हर जवाब की inferenceSource प्रॉपर्टी से मिलती है.
इस प्रॉपर्टी को ऐक्सेस करने पर, दिखाई गई वैल्यू ON_DEVICE या IN_CLOUD होगी.
Kotlin
// ...
print("You used: ${result.response.inferenceSource}")
print(result.response.text)
Java
// ...
System.out.println("You used: " + result.getResponse().getInferenceSource());
System.out.println(result.getResponse().getText());
इस्तेमाल करने के लिए कोई मॉडल तय करना
|
इस पेज पर, अपने Gemini API के सेवा देने वाले व्यक्ति या कंपनी के हिसाब से कॉन्टेंट और कोड देखने के लिए, उस पर क्लिक करें. |
`generativeModel` इंस्टेंस
(Kotlin |
Java) बनाते समय, इस्तेमाल करने के लिए कोई मॉडल तय किया जा सकता है.
क्लाउड पर होस्ट किया गया मॉडल तय करना:
अगर आपका इन्फ़रेंस मोड
PREFER_ON_DEVICE,PREFER_IN_CLOUDयाONLY_IN_CLOUDहै, तो आपको इस्तेमाल करने के लिए, क्लाउड पर होस्ट किया गया मॉडल साफ़ तौर पर तय करना होगा. एसडीके में, क्लाउड पर होस्ट किया गया कोई डिफ़ॉल्ट मॉडल नहीं होता.क्लाउड पर होस्ट किए गए उन सभी मॉडल के नाम ढूंढें जो काम करते हैंGemini.
डिवाइस पर मौजूद मॉडल तय करना:
अगर आपका इन्फ़रेंस मोड
PREFER_ON_DEVICE,PREFER_IN_CLOUDयाONLY_ON_DEVICEहै, तोonDeviceConfigमें, डिवाइस पर मौजूद मॉडल की "कैटेगरी" तय की जा सकती है. हालांकि, यह ज़रूरी नहीं है. कैटेगरी, रिलीज़ स्टेज और परफ़ॉर्मेंस की विशेषताओं का कॉम्बिनेशन होती हैं.कैटेगरी की इन वैल्यू का इस्तेमाल किया जा सकता है.
AICore, डिवाइस पर मौजूद उस मॉडल को अपने-आप चुन लेता है जो तय की गई कैटेगरी की शर्तों को पूरा करता है और डिवाइस के साथ काम करता है. उदाहरण के लिए, अगर आपनेPREVIEWतय किया है और डिवाइस Pixel 9 है, तो Gemini Nano 4 Full [Preview] (nano-v4-full) के अपने-आप चुने जाने की संभावना है.STABLE: डिवाइस पर मौजूद स्टेबल मॉडल का सबसे नया वर्शन.इसकी पूरी तरह से जांच की जा चुकी है और यह ग्राहकों के डिवाइसों पर उपलब्ध है.
उदाहरण के लिए, Gemini Nano 3 (
nano-v3) या Gemini Nano 2 (nano-v2).अगर
OnDeviceModelOptionतय नहीं किया गया है, तो डिवाइस पर मौजूद मॉडल के लिए यह डिफ़ॉल्ट सेटिंग होती है.
PREVIEW: प्रीव्यू के तौर पर उपलब्ध डिवाइस पर मौजूद मॉडल का सबसे नया वर्शन. इसमें पूरी परफ़ॉर्मेंस की क्षमताएं होती हैं.इसे बेहतर तरीके से तर्क करने और मुश्किल कामों को पूरा करने के लिए डिज़ाइन किया गया है.
उदाहरण के लिए, Gemini Nano 4 Full [Preview] (
nano-v4-full, जो Gemma 4 E4B पर आधारित है).
PREVIEW_FAST: प्रीव्यू के तौर पर उपलब्ध डिवाइस पर मौजूद मॉडल का सबसे नया वर्शन. यह तेज़ी से काम करता है.इसे ज़्यादा से ज़्यादा स्पीड और कम समय में जवाब देने के लिए ऑप्टिमाइज़ किया गया है.
उदाहरण के लिए, Gemini Nano 4 Fast [Preview] (
nano-v4-fast, जो Gemma 4 E2B पर आधारित है).
Kotlin
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
.generativeModel(
// Specify a cloud-hosted model.
// Required for `PREFER_ON_DEVICE`, `PREFER_IN_CLOUD`, and `ONLY_IN_CLOUD` inference modes.
modelName = "CLOUD_HOSTED_MODEL_NAME",
onDeviceConfig = OnDeviceConfig(
mode = InferenceMode.INFERENCE_MODE,
// (Optional) Specify an on-device model category.
// AICore will auto-select an on-device model based on this category.
// If not specified, AICore will auto-select the default stable on-device model.
modelOption = OnDeviceModelOption.ON-DEVICE_MODEL_CATEGORY)
)
Java
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
.generativeModel(
// Specify a cloud-hosted model.
// Required for `PREFER_ON_DEVICE`, `PREFER_IN_CLOUD`, and `ONLY_IN_CLOUD` inference modes.
"CLOUD_HOSTED_MODEL_NAME",
/* config = */ null,
/* safetySettings = */ null,
/* tools = */ null,
/* toolConfig = */ null,
/* systemInstruction = */ null,
/* requestOptions = */ new RequestOptions(),
new OnDeviceConfig(
/* mode = */ InferenceMode.INFERENCE_MODE,
/* maxOutputTokens = */ null,
/* temperature = */ null,
/* topK = */ null,
/* seed = */ null,
/* candidateCount = */ 1,
// (Optional) Specify an on-device model category.
// AICore will auto-select an on-device model based on this category.
// If not specified, AICore will auto-select the default stable on-device model.
/* modelOption = */ OnDeviceModelOption.ON-DEVICE_MODEL_CATEGORY)
);
GenerativeModelFutures model = GenerativeModelFutures.from(ai);
जवाबों को कंट्रोल करने के लिए, मॉडल कॉन्फ़िगरेशन का इस्तेमाल करना
|
इस पेज पर, अपने Gemini API के सेवा देने वाले व्यक्ति या कंपनी के हिसाब से कॉन्टेंट और कोड देखने के लिए, उस पर क्लिक करें. |
किसी मॉडल को किए जाने वाले हर अनुरोध में, मॉडल कॉन्फ़िगरेशन भेजा जा सकता है. इससे यह कंट्रोल किया जा सकता है कि मॉडल, जवाब कैसे जनरेट करता है. क्लाउड पर होस्ट किए गए मॉडल और डिवाइस पर मौजूद मॉडल कॉन्फ़िगरेशन के अलग-अलग विकल्प देते हैं (क्लाउड बनाम डिवाइस पर मौजूद पैरामीटर).
क्लाउड पर होस्ट किए गए मॉडल के लिए, उनका कॉन्फ़िगरेशन सीधे मॉडल के कॉन्फ़िगरेशन में सेट करें. हालांकि, डिवाइस पर मौजूद मॉडल के लिए, उनका कॉन्फ़िगरेशन
an
onDeviceConfig में सेट करें.
कॉन्फ़िगरेशन, इंस्टेंस की लाइफ़टाइम के लिए सेव रहता है. अगर आपको कोई दूसरा कॉन्फ़िगरेशन इस्तेमाल करना है, तो उस कॉन्फ़िगरेशन के साथ GenerativeModel का नया इंस्टेंस बनाएं.
यहां एक उदाहरण दिया गया है. इसमें, क्लाउड पर होस्ट किए गए और डिवाइस पर मौजूद मॉडल के लिए कॉन्फ़िगरेशन सेट किए गए हैं. अगर PREFER_ON_DEVICE इन्फ़रेंस मोड सेट किया गया है, तो इनका इस्तेमाल किया जा सकता है:
Kotlin
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
.generativeModel("MODEL_NAME",
// Config for cloud-hosted model
generationConfig = generationConfig {
temperature = 0.8f,
topK = 10
},
// Config for on-device model
onDeviceConfig = onDeviceConfig {
mode = InferenceMode.PREFER_ON_DEVICE,
temperature = 0.8f,
topK = 5
})
Java
// Config for cloud-hosted model
GenerationConfig generationConfig = new GenerationConfig.Builder()
.setTemperature(0.8f)
.setTopK(10)
.build();
// Config for on-device model
OnDeviceConfig onDeviceConfig = new OnDeviceConfig.Builder()
.setMode(InferenceMode.PREFER_ON_DEVICE)
.setTemperature(0.8f)
.setTopK(5)
.build();
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
.generativeModel(
"MODEL_NAME",
generationConfig,
onDeviceConfig
);
GenerativeModelFutures model = GenerativeModelFutures.from(ai);