इस पेज पर, हाइब्रिड अनुभवों के लिए कॉन्फ़िगरेशन के इन विकल्पों के बारे में बताया गया है:
यह तय करना कि डिवाइस पर या क्लाउड में इन्फ़रेंस का इस्तेमाल किया गया था.
जवाबों को कंट्रोल करने के लिए, मॉडल कॉन्फ़िगरेशन का इस्तेमाल करें.
पक्का करें कि आपने हाइब्रिड अनुभव बनाने के लिए, शुरू करने से जुड़ी गाइड को पूरा कर लिया हो.
अनुमान वाला मोड सेट करना
शुरू करने से जुड़ी गाइड में दिए गए उदाहरणों में 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है, तो आपको इस्तेमाल करने के लिए, क्लाउड पर होस्ट किए गए मॉडल के बारे में साफ़ तौर पर जानकारी देनी होगी. SDK टूल में, क्लाउड पर होस्ट किया गया कोई डिफ़ॉल्ट मॉडल नहीं होता.क्लाउड पर होस्ट किए गए 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_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_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 पर क्लिक करें. |
मॉडल को किए गए हर अनुरोध में, मॉडल कॉन्फ़िगरेशन भेजा जा सकता है. इससे यह कंट्रोल किया जा सकता है कि मॉडल जवाब कैसे जनरेट करे. क्लाउड पर होस्ट किए गए मॉडल और उपयोगकर्ता के डिवाइस पर मौजूद मॉडल को अलग-अलग तरीके से कॉन्फ़िगर किया जाता है. साथ ही, ये अलग-अलग कॉन्फ़िगरेशन के विकल्प देते हैं:
क्लाउड पर होस्ट किए गए मॉडल:
generationConfig(Kotlin | Java) का इस्तेमाल करके कॉन्फ़िगरेशन सेट करें. उपलब्ध पैरामीटर के बारे में जानें.उपयोगकर्ता के डिवाइस पर मौजूद मॉडल:
onDeviceConfig( Kotlin | Java) का इस्तेमाल करके कॉन्फ़िगरेशन सेट करें. उपलब्ध पैरामीटर के बारे में जानें (Kotlin | Java).
कॉन्फ़िगरेशन को इंस्टेंस के लाइफ़टाइम के लिए बनाए रखा जाता है. अगर आपको किसी दूसरे कॉन्फ़िगरेशन का इस्तेमाल करना है, तो उस कॉन्फ़िगरेशन के साथ एक नया GenerativeModel इंस्टेंस बनाएं.
यहां एक उदाहरण दिया गया है, जिसमें क्लाउड पर होस्ट किए गए और उपयोगकर्ता के डिवाइस पर मौजूद मॉडल के लिए कॉन्फ़िगरेशन सेट किए गए हैं. इनका इस्तेमाल तब किया जा सकता है, जब PREFER_ON_DEVICE अनुमान वाला मोड सेट किया गया हो:
Kotlin
// Config for cloud-hosted model
val generationConfig = generationConfig {
maxOutputTokens = 200
stopSequences = listOf("red")
}
// Config for on-device model
val onDeviceConfig = OnDeviceConfig(
mode = InferenceMode.PREFER_ON_DEVICE,
maxOutputTokens = 200
)
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
.generativeModel(
modelName = "CLOUD_MODEL_NAME",
generationConfig = generationConfig,
onDeviceConfig = onDeviceConfig
)
Java
// Config for cloud-hosted model
GenerationConfig generationConfig = new GenerationConfig.Builder()
.setMaxOutputTokens(200)
.setStopSequences(List.of("red"))
.build();
// Config for on-device model
OnDeviceConfig onDeviceConfig = new OnDeviceConfig(
/* mode = */ InferenceMode.PREFER_ON_DEVICE,
/* maxOutputTokens = */ 200,
/* temperature = */ null,
/* topK = */ null,
/* seed = */ null,
/* candidateCount = */ 1,
/* modelOption = */ null
);
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
.generativeModel(
"CLOUD_MODEL_NAME",
generationConfig,
/* safetySettings = */ null,
/* tools = */ null,
/* toolConfig = */ null,
/* systemInstruction = */ null,
/* requestOptions = */ new RequestOptions(),
onDeviceConfig
);
GenerativeModelFutures model = GenerativeModelFutures.from(ai);
Firebase AI Logic के साथ अपने अनुभव के बारे में सुझाव/राय दें या शिकायत करें