डिवाइस पर मौजूद और क्लाउड पर होस्ट किए गए मॉडल की मदद से, 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 की मदद से, क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल करके किए गए किसी भी इन्फ़रेंस की निगरानी की जा सकती है. Firebase AI Logic

अन्य सीमाएं

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


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