डिवाइस पर मौजूद और क्लाउड पर होस्ट किए गए मॉडल की मदद से, Apple के ऐप्लिकेशन में हाइब्रिड अनुभव बनाना

Firebase AI Logic

एआई की मदद से Apple के ऐप्लिकेशन और सुविधाएं बनाई जा सकती हैं. इसके लिए, हाइब्रिड इन्फ़रेंस का इस्तेमाल किया जा सकता है. Firebase AI Logic हाइब्रिड इन्फ़रेंस की मदद से, उपयोगकर्ता के डिवाइस पर मौजूद मॉडल (खास तौर पर, Apple का Foundation Models फ़्रेमवर्क) का इस्तेमाल करके अनुमान चलाया जा सकता है. अगर उपयोगकर्ता के डिवाइस पर मौजूद मॉडल उपलब्ध नहीं है, तो क्लाउड पर होस्ट किए गए Google के मॉडल का इस्तेमाल किया जा सकता है. इसके अलावा, क्लाउड पर होस्ट किए गए Google के मॉडल उपलब्ध न होने पर, उपयोगकर्ता के डिवाइस पर मौजूद मॉडल का इस्तेमाल किया जा सकता है.

इस पेज पर, क्लाइंट एसडीके का इस्तेमाल शुरू करने का तरीका बताया गया है. साथ ही, इसमें कॉन्फ़िगरेशन के अन्य विकल्प और केपबिलिटी भी दिखाई गई हैं जैसे, टेंपरेचर.

ध्यान दें कि Firebase AI Logic के ज़रिए, डिवाइस पर इन्फ़रेंस की सुविधा, Apple के उन ऐप्लिकेशन के लिए उपलब्ध है जो Firebase AI Logic SDK के 12.13.0 या इसके बाद के वर्शन का इस्तेमाल करते हैं. साथ ही, यह सुविधा उन डिवाइसों पर उपलब्ध है जिनमें Apple Intelligence की सुविधा चालू है. यह सुविधा, Apple के Foundation Models फ़्रेमवर्क के लिए, इस्तेमाल की ज़रूरी शर्तों के मुताबिक काम करती है.

इस्तेमाल के वे मामले जिनके लिए सुझाव दिया गया है

  • इन्फ़रेंस के लिए, डिवाइस पर मौजूद मॉडल का इस्तेमाल करने से ये फ़ायदे मिलते हैं:

    • निजता को बेहतर तरीके से सुरक्षित रखा जा सकता है
    • बिना किसी शुल्क के इन्फ़रेंस की सुविधा मिलती है
    • ऑफ़लाइन मोड में भी काम किया जा सकता है
  • हाइब्रिड सुविधा का इस्तेमाल करने से ये फ़ायदे मिलते हैं:

    • सभी ग्राहकों को एक जैसा ऐप्लिकेशन अनुभव मिलता है, भले ही वे किसी भी डिवाइस का इस्तेमाल कर रहे हों
    • इंटरनेट कनेक्टिविटी, कोटा की सीमाओं या डिवाइस की क्षमताओं के बावजूद, जनरेटिव एआई की सुविधाएं उपलब्ध रहती हैं

वे सुविधाएं, एपीआई, और डिवाइस जिनके साथ यह सुविधा काम करती है

Firebase AI Logic का इस्तेमाल करके, हाइब्रिड और डिवाइस पर इन्फ़रेंस की सुविधा लागू करने से पहले, इस सेक्शन की समीक्षा करें. इससे आपको यह समझने में मदद मिलेगी कि Apple के ऐप्लिकेशन के लिए कौनसी सुविधाएं उपलब्ध हैं.

डिवाइस पर इन्फ़रेंस के लिए उपलब्ध सुविधाएं और फ़ीचर

डिवाइस पर इन्फ़रेंस की सुविधा, सिर्फ़ टेक्स्ट जनरेट करने के लिए उपलब्ध है. खास तौर पर, टेक्स्ट जनरेट करने की इन सुविधाओं के लिए:

इस पेज पर सबसे नीचे, हाइब्रिड या डिवाइस पर इन्फ़रेंस के लिए, उन सुविधाओं की पूरी सूची देखें जो अभी उपलब्ध नहीं हैं .

वे एपीआई और डिवाइस जिनके साथ यह सुविधा काम करती है

शुरू करें

पक्का करें कि आपने ऊपर दिया गया सेक्शन पढ़ लिया हो. इसमें, उन सुविधाओं, एपीआई, और डिवाइसों के बारे में बताया गया है जिनके साथ यह सुविधा काम करती है.

शुरू करने के लिए दिए गए इन चरणों में, किसी भी ऐसे प्रॉम्प्ट के अनुरोध के लिए ज़रूरी सामान्य सेटअप के बारे में बताया गया है जिसे आपको भेजना है.

पहला चरण: Firebase प्रोजेक्ट सेट अप करना और अपने ऐप्लिकेशन को Firebase से कनेक्ट करना

  1. Firebase कंसोल में साइन इन करें. इसके बाद, अपना Firebase प्रोजेक्ट चुनें.

  2. Firebase कंसोल में, एआई सेवाएं > एआई लॉजिक पर जाएं.

  3. अपने प्रोजेक्ट के लिए ज़रूरी एपीआई और संसाधन सेट अप करने में मदद करने वाले, गाइड किए गए वर्कफ़्लो को लॉन्च करने के लिए, शुरू करें पर क्लिक करें.

  4. अपने प्रोजेक्ट को "Gemini API" के सेवा देने वाली कंपनी का इस्तेमाल करने के लिए सेट अप करें.

    हमारा सुझाव है कि Gemini Developer API का इस्तेमाल शुरू करें. किसी भी समय, सेट अप की जा सकती हैं Vertex AI Gemini API (और बिलिंग के लिए उसकी ज़रूरी शर्तें).

    Gemini Developer API के लिए, कंसोल ज़रूरी एपीआई चालू करेगा और आपके प्रोजेक्ट में Gemini एपीआई पासकोड बनाएगा.
    इस Gemini एपीआई पासकोड को अपने ऐप्लिकेशन के कोडबेस में शामिल करें. ज़्यादा जानें.

  5. अगर कंसोल के वर्कफ़्लो में आपसे ऐसा करने के लिए कहा जाता है, तो अपने ऐप्लिकेशन को रजिस्टर करने और उसे Firebase से कनेक्ट करने के लिए, स्क्रीन पर दिए गए निर्देशों का पालन करें.

  6. अपने ऐप्लिकेशन में एसडीके टूल जोड़ने के लिए, इस गाइड में अगले चरण पर जाएं.

दूसरा चरण: ज़रूरी एसडीके टूल जोड़ना

Xcode की डिपेंडेंसी इंस्टॉल और मैनेज करने के लिए, Swift Package Manager (एसपीएम) का इस्तेमाल करें. एसपीएम का इस्तेमाल करने पर ही, हाइब्रिड सुविधा उपलब्ध होती है.

Firebase AI Logic लाइब्रेरी से, जनरेटिव मॉडल के साथ इंटरैक्ट करने के लिए एपीआई का ऐक्सेस मिलता है. यह लाइब्रेरी, Apple प्लैटफ़ॉर्म के लिए Firebase SDK (firebase-ios-sdk) के हिस्से के तौर पर शामिल है.

अगर पहले से Firebase का इस्तेमाल किया जा रहा है, तो पक्का करें कि आपके Firebase पैकेज का वर्शन 12.13.0 या इसके बाद का हो.

  1. Xcode में, अपने ऐप्लिकेशन प्रोजेक्ट को खोलें. इसके बाद, फ़ाइल > पैकेज की डिपेंडेंसी जोड़ें पर जाएं.

  2. जब आपसे ऐसा करने के लिए कहा जाए, तो Apple प्लैटफ़ॉर्म के लिए Firebase SDK की रिपॉज़िटरी जोड़ें:

    https://github.com/firebase/firebase-ios-sdk
    
  3. एसडीके टूल का सबसे नया वर्शन चुनें.

  4. FirebaseAILogic लाइब्रेरी चुनें.

इसके बाद, Xcode बैकग्राउंड में आपकी डिपेंडेंसी से जुड़ी समस्या को हल करना और उन्हें डाउनलोड करना शुरू कर देगा.

तीसरा चरण: सेवा को शुरू करना और मॉडल सेशन का इंस्टेंस बनाना

सेवा देने वाली कंपनी के हिसाब से कॉन्टेंट और कोड देखने के लिए, Gemini API सेवा देने वाली कंपनी पर क्लिक करें.

मॉडल को प्रॉम्प्ट का अनुरोध भेजने से पहले, यह सेटअप करें.

  1. चुने गए Gemini API की सेवा देने वाली कंपनी के लिए, सेवा को शुरू करें.

  2. HybridModel के साथ, GenerativeModelSession का इंस्टेंस बनाएं.

  3. अपनी प्राथमिकताओं के हिसाब से, primary और secondary मॉडल सेट करें. आप कोशिश किए गए अनुमान का क्रम सेट कर सकते हैं:

    • सबसे पहले, उपयोगकर्ता के डिवाइस पर इन्फ़रेंस की कोशिश करें, लेकिन क्लाउड पर फ़ॉल बैक की अनुमति दें: primary को "सिस्टम" मॉडल और secondary को क्लाउड मॉडल पर सेट करें.

    • सबसे पहले, क्लाउड में इन्फ़रेंस की कोशिश करें, लेकिन उपयोगकर्ता के डिवाइस पर फ़ॉल बैक की अनुमति दें: सेट primary को क्लाउड मॉडल और secondary को "सिस्टम" मॉडल पर सेट करें.

    ध्यान दें कि एसडीके टूल, सिर्फ़ एक model सेट करने की सुविधा देता है. इसका मतलब है कि एसडीके टूल, सिर्फ़ डिवाइस पर या क्लाउड में इन्फ़रेंस की कोशिश करेगा. हालांकि, हाइब्रिड अनुभव के लिए, आपको HybridModel बनाना होगा. साथ ही, primary और secondary मॉडल, दोनों को सेट करना होगा.

    कॉन्फ़िगरेशन के विकल्पों में, "अनुमान मोड" (अनुमान की कोशिश का क्रम) के व्यवहार के बारे में ज़्यादा जानें.

यहां दिए गए उदाहरण में, सबसे पहले उपयोगकर्ता के डिवाइस पर इन्फ़रेंस की कोशिश करने का तरीका बताया गया है. साथ ही, इसमें क्लाउड पर होस्ट किए गए मॉडल पर फ़ॉल बैक की अनुमति देने का तरीका भी बताया गया है:

// Initialize the Gemini Developer API backend service
let ai = FirebaseAI.firebaseAI(backend: .googleAI())

// 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 Hybrid Model
// Provide your preferred model as `primary` and your fallback model as `secondary`
// In this example, attempt to use on-device model; otherwise, fall back to cloud.
let hybridModel = HybridModel(
  primary: systemModel,
  secondary: cloudModel
)

// Create a GenerativeModelSession with the HybridModel created earlier.
let session = firebaseAI.generativeModelSession(
  model: hybridModel,
)

चौथा चरण: मॉडल को प्रॉम्प्ट का अनुरोध भेजना

इस सेक्शन में, ये काम करने का तरीका बताया गया है:

सिर्फ़ टेक्स्ट वाले इनपुट से टेक्स्ट जनरेट करना

इस सैंपल को आज़माने से पहले, पक्का करें कि आपने इस गाइड का 'शुरू करें' सेक्शन पूरा कर लिया हो.

टेक्स्ट वाले प्रॉम्प्ट से टेक्स्ट जनरेट करने के लिए, respond(to:) का इस्तेमाल इस तरह करें:

// Imports + initialization of Gemini API backend service + creation of model session

// Provide a prompt that contains text
let prompt = "Write a story about a magic backpack."

// To generate text output, call `respond(to:)` with the text input
let response = try await session.respond(to: prompt)
print(response.content)

सिर्फ़ टेक्स्ट वाले इनपुट से टेक्स्ट स्ट्रीम करना

इस सैंपल को आज़माने से पहले, पक्का करें कि आपने इस गाइड का 'शुरू करें' सेक्शन पूरा कर लिया हो.

मॉडल जनरेशन से पूरा नतीजा मिलने का इंतज़ार न करके, तेज़ इंटरैक्शन किया जा सकता है. इसके लिए, आंशिक नतीजों को मैनेज करने के लिए स्ट्रीमिंग का इस्तेमाल करें. टेक्स्ट वाले प्रॉम्प्ट से जनरेट किए गए टेक्स्ट को स्ट्रीम करने के लिए, streamResponse(to:) का इस्तेमाल इस तरह करें:

// Imports + initialization of Gemini API backend service + creation of model session

// Provide a prompt that contains text
let prompt = "Write a story about a magic backpack."

// To stream generated text output, call `streamResponse(to:)` with the text input
let stream = session.streamResponse(to: prompt)
for try await snapshot in stream {
  print(snapshot.content)
}

तुम और क्या कर सकती हो?

हाइब्रिड अनुभवों के लिए, कॉन्फ़िगरेशन के अन्य विकल्प और सुविधाएं इस्तेमाल की जा सकती हैं:

वे सुविधाएं जो हाइब्रिड या डिवाइस पर इन्फ़रेंस के लिए अभी उपलब्ध नहीं हैं

एक्सपेरिमेंट के तौर पर उपलब्ध वर्शन में, Firebase AI Logic या क्लाउड पर होस्ट किए गए मॉडल की सभी सुविधाएं उपलब्ध नहीं हैं.

  • Imagen मॉडल, Gemini Live API, और प्रॉम्प्ट टेम्पलेट, हाइब्रिड या डिवाइस पर इन्फ़रेंस के लिए उपलब्ध नहीं हैं. साथ ही, टोकन की संख्या पर भरोसा नहीं किया जाना चाहिए, क्योंकि क्लाउड पर होस्ट किए गए और उपयोगकर्ता के डिवाइस पर मौजूद मॉडल के बीच, टोकन की संख्या अलग-अलग होगी. इसलिए, फ़ॉल बैक की कोई सुविधा उपलब्ध नहीं है.

  • डिवाइस पर इन्फ़रेंस के लिए, ये सुविधाएं अभी उपलब्ध नहीं हैं. अगर इनमें से किसी सुविधा का इस्तेमाल करना है, तो हमारा सुझाव है कि बेहतर अनुभव के लिए, सिर्फ़ क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल करें.

    • मल्टीमॉडल इनपुट से टेक्स्ट जनरेट करना. जैसे, इमेज, ऑडियो, वीडियो, और दस्तावेज़ (पीडीएफ़)

    • मीडिया जनरेट करना. जैसे, इमेज, ऑडियो या वीडियो

    • 4,096 टोकन (या करीब 3,000 अंग्रेज़ी शब्दों) से ज़्यादा के अनुरोध भेजना.

    • उपयोगकर्ता के डिवाइस पर मौजूद मॉडल को इन-बिल्ट टूल उपलब्ध कराना, ताकि वह अपना जवाब जनरेट कर सके. जैसे, कोड एक्ज़ीक्यूशन, यूआरएल कॉन्टेक्स्ट, और Google Search से सटीक जानकारी पाने की सुविधा

  • Firebase कंसोल में, एआई की निगरानी करने की सुविधा, डिवाइस पर इन्फ़रेंस के लिए कोई डेटा नहीं दिखाती. इसमें, डिवाइस पर मौजूद लॉग भी शामिल हैं. हालांकि, क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल करके किए गए किसी भी इन्फ़रेंस की निगरानी की जा सकती है.Firebase AI Logic

अन्य सीमाएं

ऊपर बताई गई सीमाओं के अलावा, डिवाइस पर इन्फ़रेंस के लिए ये सीमाएं लागू होती हैं:

  • आपके ऐप्लिकेशन का इस्तेमाल करने वाले उपयोगकर्ता के पास, Apple Intelligence की सुविधा वाला डिवाइस होना चाहिए.

  • आपका ऐप्लिकेशन, डिवाइस पर इन्फ़रेंस की सुविधा का इस्तेमाल सिर्फ़ तब कर सकता है, जब वह स्क्रीन पर दिख रहा हो.


सुझाव/राय देना या शिकायत करना के बारे में अपने अनुभव के साथ Firebase AI Logic