इस पेज पर, हाइब्रिड और उपयोगकर्ता के डिवाइस पर अनुभवों के लिए, कॉन्फ़िगरेशन के इन विकल्पों के बारे में बताया गया है:
"अनुमान लगाने का मोड" सेट करना
शुरुआती गाइड में दिए गए उदाहरणों में, यह दिखाया गया है कि सबसे पहले उपयोगकर्ता के डिवाइस पर अनुमान लगाने की कोशिश कैसे की जाती है. इसके बाद, क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल कैसे किया जाता है. यह, "अनुमान लगाने के मोड" के लिए उपलब्ध विकल्पों में से सिर्फ़ एक है.
हाइब्रिड मॉडल का इस्तेमाल करके अनुमान लगाना
उपयोगकर्ता के डिवाइस पर अनुमान लगाने को प्राथमिकता देना:
primaryको "सिस्टम" मॉडल पर औरsecondaryको क्लाउड मॉडल पर सेट करें.अगर उपयोगकर्ता के डिवाइस पर मॉडल उपलब्ध है और वह अनुरोध के टाइप के साथ काम करता है, तो उसका इस्तेमाल करने की कोशिश करें. ऐसा न होने पर, डिवाइस पर गड़बड़ी की जानकारी लॉग करें. इसके बाद, क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल करें.
// Imports + initialization of Gemini API backend service // ... // Initialize a cloud model that supports your use case let cloudModel = ai.geminiModel(name: "GEMINI_MODEL_NAME") // Initialize an on-device model that supports your use case let systemModel = FirebaseAI.SystemLanguageModel.default // Create a GenerativeModelSession with a hybrid model. // Provide your preferred model as `primary` and your fallback model as `secondary` // Attempt to use the on-device model; otherwise, fall back to the cloud-hosted model. let session = ai.generativeModelSession( model: .hybridModel(primary: systemModel, secondary: cloudModel) )क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल करके अनुमान लगाने को प्राथमिकता देना:
primaryको क्लाउड मॉडल पर औरsecondaryको "सिस्टम" मॉडल पर सेट करें.अगर डिवाइस ऑनलाइन है और मॉडल उपलब्ध है, तो क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल करने की कोशिश करें. अगर डिवाइस ऑफ़लाइन है, तो उपयोगकर्ता के डिवाइस पर मौजूद मॉडल का इस्तेमाल करें. अन्य सभी मामलों में, अपवाद दिखाएं.
// Imports + initialization of Gemini API backend service // ... // Initialize a cloud model that supports your use case let cloudModel = ai.geminiModel(name: "GEMINI_MODEL_NAME") // Initialize an on-device model that supports your use case let systemModel = FirebaseAI.SystemLanguageModel.default // Create a GenerativeModelSession with a hybrid model. // Provide your preferred model as `primary` and your fallback model as `secondary` // Attempt to use the cloud-hosted model; otherwise, fall back to the on-device model. let session = ai.generativeModelSession( model: .hybridModel(primary: cloudModel, secondary: systemModel) )
सिर्फ़ उपयोगकर्ता के डिवाइस पर या सिर्फ़ क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल करके अनुमान लगाना
एसडीके टूल, सिर्फ़ एक model सेट करने की सुविधा देता है. इसका मतलब है कि एसडीके टूल, सिर्फ़ उपयोगकर्ता के डिवाइस पर या क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल करके अनुमान लगाने की कोशिश करेगा. इसके अलावा, इस इस्तेमाल के लिए, आपको HybridModel नहीं बनाना होगा. हालांकि, हाइब्रिड अनुभव के लिए, आपको HybridModel बनाना होगा. साथ ही, primary और secondary मॉडल, दोनों को सेट करना होगा. इसके बारे में ऊपर बताया गया है.
सिर्फ़ उपयोगकर्ता के डिवाइस पर अनुमान लगाना:
modelको "सिस्टम" मॉडल पर सेट करें. इस इस्तेमाल के लिए, आपकोHybridModelनहीं बनाना होगा.अगर उपयोगकर्ता के डिवाइस पर मॉडल उपलब्ध है और वह अनुरोध के टाइप के साथ काम करता है, तो उसका इस्तेमाल करने की कोशिश करें. ऐसा न होने पर, अपवाद दिखाएं.
// Imports + initialization of Gemini API backend service // ... // Initialize an on-device model that supports your use case let systemModel = FirebaseAI.SystemLanguageModel.default // Create a GenerativeModelSession with the on-device model. let session = ai.generativeModelSession( model: systemModel )सिर्फ़ क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल करके अनुमान लगाना:
modelको क्लाउड मॉडल पर सेट करें. इस इस्तेमाल के लिए, आपकोHybridModelनहीं बनाना होगा.अगर डिवाइस ऑनलाइन है और मॉडल उपलब्ध है, तो क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल करने की कोशिश करें. ऐसा न होने पर, अपवाद दिखाएं.
// Imports + initialization of Gemini API backend service // ... // Initialize a cloud model that supports your use case let cloudModel = ai.geminiModel(name: "GEMINI_MODEL_NAME") // Create a GenerativeModelSession with a cloud model. let session = ai.generativeModelSession( model: cloudModel )
यह देखना कि उपयोगकर्ता के डिवाइस पर मॉडल उपलब्ध है या नहीं
ऑन-डिवाइस मॉडल की उपलब्धता की मैन्युअल तरीके से जांच करने की ज़रूरत सिर्फ़ तब होती है, जब आपको यह जानकारी उपयोगकर्ता को दिखानी हो या आपको यह अनुरोध करना हो कि एंड-यूज़र, ऑन-डिवाइस मॉडल डाउनलोड करने के लिए कोई कार्रवाई करें. अगर उपयोगकर्ता के डिवाइस पर मॉडल उपलब्ध नहीं है और आपने primary को उपयोगकर्ता के डिवाइस पर मॉडल पर और secondary को क्लाउड मॉडल पर सेट किया है, तो एसडीके टूल अपने-आप क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल करेगा.
मैन्युअल तरीके से यह देखने के लिए कि ऑन-डिवाइस मॉडल का इस्तेमाल किया जा सकता है या नहीं, isAvailable प्रॉपर्टी की जांच करें:
if FirebaseAI.SystemLanguageModel.default.isAvailable {
// The on-device model is ready to use.
} else {
// The on-device model is unavailable.
}
ऑन-डिवाइस मॉडल की उपलब्धता की खास वजहें देखने के लिए, availability प्रॉपर्टी की जांच करें:
switch FirebaseAI.SystemLanguageModel.default.availability {
case .available:
// The on-device model is ready to use.
break
case .unavailable(.deviceNotEligible):
// This device does not support Apple Intelligence.
break
case .unavailable(.appleIntelligenceNotEnabled):
// The user has not enabled Apple Intelligence in Settings.
break
case .unavailable(.modelNotReady):
// The model is still being downloaded.
break
case let .unavailable(reason):
// The model is unavailable due to the specified `reason`.
break
}
यह तय करना कि अनुमान लगाने के लिए, उपयोगकर्ता के डिवाइस पर मौजूद मॉडल का इस्तेमाल किया गया है या क्लाउड पर होस्ट किए गए मॉडल का
अगर HybridModel का इस्तेमाल किया जाता है और primary और secondary मॉडल, दोनों सेट किए जाते हैं, तो यह जानना मददगार हो सकता है कि किसी दिए गए अनुरोध के लिए किस मॉडल का इस्तेमाल किया गया.
यह जानकारी, हर जवाब में rawResponse की modelVersion प्रॉपर्टी से मिलती है.
इस प्रॉपर्टी को ऐक्सेस करने पर, दिखाई गई वैल्यू इनमें से कोई एक होगी:
- क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल किया गया: मॉडल का नाम. उदाहरण के लिए,
gemini-3.1-flash-lite - उपयोगकर्ता के डिवाइस पर इस्तेमाल किया गया मॉडल:
apple-foundation-models-system-language-model
// let response = try await session.respond(to: ...
print("You used: \(response.rawResponse.modelVersion)")
print(response.content)
जवाबों को कंट्रोल करने के लिए, मॉडल कॉन्फ़िगरेशन का इस्तेमाल करना
किसी मॉडल को किए जाने वाले हर अनुरोध में, मॉडल कॉन्फ़िगरेशन भेजा जा सकता है. इससे यह कंट्रोल किया जा सकता है कि मॉडल, जवाब कैसे जनरेट करे. क्लाउड पर होस्ट किए गए मॉडल और उपयोगकर्ता के डिवाइस पर मॉडल के लिए, कॉन्फ़िगरेशन के अलग-अलग विकल्प उपलब्ध होते हैं. (जैसे, क्लाउड बनाम उपयोगकर्ता के डिवाइस पर पैरामीटर).
- क्लाउड पर होस्ट किए गए मॉडल: इनका कॉन्फ़िगरेशन,
GenerationConfigमें सेट करें. - उपयोगकर्ता के डिवाइस पर मौजूद मॉडल: इनका कॉन्फ़िगरेशन,
FirebaseAI.GenerationOptionsमें सेट करें.
मॉडल को किए जाने वाले हर अनुरोध के लिए, इन विकल्पों को कॉन्फ़िगर किया जाता है.
यहां एक उदाहरण दिया गया है. इसमें, हाइब्रिड अनुमान लगाने के लिए, क्लाउड पर होस्ट किए गए मॉडल और उपयोगकर्ता के डिवाइस पर मौजूद मॉडल के कॉन्फ़िगरेशन सेट किए गए हैं:
// ...
let response = try await session.respond(
to: "Why is the sky blue?",
options: .hybrid(
// Config for cloud-hosted model
gemini: GenerationConfig(
temperature: 0.8,
topP: 0.9,
thinkingConfig: ThinkingConfig(thinkingLevel: .high)
),
// Config for on-device model
foundationModels: FirebaseAI.GenerationOptions(
sampling: .random(probabilityThreshold: 0.9),
temperature: 0.8
)
)
)
// ...
सुझाव/राय दें या शिकायत करें Firebase AI Logic