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

Firebase AI Logic

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

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

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

इस्तेमाल के सुझाए गए उदाहरण

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

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

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

साथ काम करने वाली सुविधाएं, एपीआई, और डिवाइस

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

डिवाइस पर मौजूद डेटा का इस्तेमाल करके अनुमान लगाने की सुविधा के लिए, इस्तेमाल की जा सकने वाली सुविधाएं

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

इस पेज पर सबसे नीचे, हाइब्रिड या उपयोगकर्ता के डिवाइस पर अनुमान लगाने की सुविधा के लिए, अब तक उपलब्ध नहीं कराए गए मॉडल की पूरी सूची देखें.

इसके साथ काम करने वाले एपीआई और डिवाइस

  • क्लाउड में मौजूद इन्फ़्रास्ट्रक्चर का इस्तेमाल करके अनुमान लगाने की सुविधा, आपकी चुनी गई Gemini API सेवा देने वाली कंपनी (Gemini Developer API या Vertex AI Gemini API) का इस्तेमाल करती है.

  • डिवाइस पर अनुमान लगाने की सुविधा, Apple के Foundation Models फ़्रेमवर्क का इस्तेमाल करती है. यह सुविधा सिर्फ़ Apple Intelligence की सुविधा वाले डिवाइसों पर उपलब्ध है. Apple Intelligence चालू होने पर, उपयोगकर्ता के डिवाइस पर मौजूद मॉडल अपने-आप डाउनलोड हो जाता है.

शुरू करें

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Xcode में, अपना ऐप्लिकेशन प्रोजेक्ट खोलें. इसके बाद, File > Add Package Dependencies पर जाएं.

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

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

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

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

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

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

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

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

  2. HybridModel की मदद से GenerativeModelSession इंस्टेंस बनाएं.

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

    • सबसे पहले, उपयोगकर्ता के डिवाइस पर अनुमान लगाने की कोशिश करें, लेकिन क्लाउड पर वापस जाने की अनुमति दें: primary को "system" मॉडल पर और 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, और प्रॉम्प्ट टेंप्लेट. साथ ही, टोकन की गिनती पर भरोसा नहीं किया जाना चाहिए, क्योंकि क्लाउड पर होस्ट किए गए मॉडल और उपयोगकर्ता के डिवाइस पर मौजूद मॉडल के बीच गिनती अलग-अलग होगी. इसलिए, कोई भी सहज फ़ॉल बैक नहीं है.

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

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

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

    • ऐसे अनुरोध भेजना जिनमें 4096 से ज़्यादा टोकन (या अंग्रेज़ी के करीब 3000 शब्द) शामिल हों.

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

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

अन्य सीमाएं

ऊपर दी गई सीमाओं के अलावा, उपयोगकर्ता के डिवाइस पर अनुमान लगाने की सुविधा की ये सीमाएं हैं:

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

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


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