मल्टीमोडल अनुरोधों में बड़ी फ़ाइलें शामिल करें और 'Firebase के लिए Cloud Storage' का इस्तेमाल करके फ़ाइलें मैनेज करें

'Firebase के लिए Vertex AI SDK टूल' का इस्तेमाल करके, अपने ऐप्लिकेशन से Gemini API को कॉल करते समय, Gemini मॉडल को मल्टीमोडल इनपुट के आधार पर टेक्स्ट जनरेट करने के लिए कहा जा सकता है. मल्टीमोडल प्रॉम्प्ट में कई तरीके (या अलग-अलग तरह के इनपुट) शामिल हो सकते हैं. जैसे, टेक्स्ट के साथ इमेज, PDF, वीडियो, और ऑडियो.

इनपुट के बिना टेक्स्ट वाले हिस्सों (जैसे कि मीडिया फ़ाइलें) के लिए, अनुरोध में फ़ाइलें शामिल करने के लिए, विकल्प के तौर पर Firebase के लिए Cloud Storage का इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए, इस सुविधा के बारे में आपके लिए ज़रूरी जानकारी यहां दी गई है:

  • आप किसी भी मल्टीमोडल अनुरोध (जैसे कि टेक्स्ट जनरेट करना और चैट दोनों) के साथ, Firebase के लिए Cloud Storage का इस्तेमाल कर सकते हैं. इस गाइड में दिए गए उदाहरण में, बुनियादी टेक्स्ट और इमेज इनपुट दिखाया गया है.

  • अनुरोध इनपुट में, फ़ाइल के MIME टाइप और 'Firebase के लिए Cloud Storage' के यूआरएल (जो हमेशा gs:// से शुरू होते हैं) तय करते हैं. ये वैल्यू, Cloud Storage बकेट में अपलोड की गई किसी भी फ़ाइल को अपने-आप असाइन होने वाले मेटाडेटा हैं.

  • आपको ऐसे फ़ाइल टाइप और यूआरएल का इस्तेमाल करना होगा जिस पर यह सुविधा काम करती हो.


समाधान की इस गाइड में बताया गया है कि Google Cloud में, 'Firebase के लिए Cloud Storage' कैसे सेट अप किया जाए और अपने ऐप्लिकेशन से 'Firebase के लिए Cloud Storage' बकेट में फ़ाइल कैसे अपलोड की जाए. इसके बाद, Gemini API को कई तरीकों से किए जाने वाले अनुरोध में फ़ाइल का MIME टाइप और 'Firebase के लिए Cloud Storage' यूआरएल शामिल करें.

क्या आपको ये कोड उदाहरण देखने हैं? या क्या आपने पहले ही 'Firebase के लिए Cloud Storage' सेट अप कर लिया है और आप मल्टीमोडल अनुरोधों के साथ इसका इस्तेमाल करने के लिए तैयार हैं?

कोड के उदाहरण पर जाएं

अपने ऐप्लिकेशन के साथ, Firebase के लिए Cloud Storage का इस्तेमाल क्यों करना चाहिए?

Firebase के लिए Cloud Storage, ब्लॉब और फ़ाइलों को सेव करने के लिए, Google Cloud Storage के तेज़, सुरक्षित, और बढ़ाए जा सकने वाले इन्फ़्रास्ट्रक्चर का इस्तेमाल करता है. इसके क्लाइंट SDK टूल खास तौर पर मोबाइल और वेब ऐप्लिकेशन के लिए बनाए गए हैं.

Firebase SDK टूल के लिए Vertex AI के लिए, अनुरोध का साइज़ 20 एमबी से ज़्यादा नहीं होना चाहिए. अगर किसी अनुरोध का साइज़ बहुत बड़ा है, तो आपको एचटीटीपी 413 वाली गड़बड़ी का मैसेज मिलेगा. अगर किसी फ़ाइल का साइज़ 20 एमबी से ज़्यादा हो जाता है, तो मल्टीमोडल अनुरोध में फ़ाइल को शामिल करने के लिए, 'Firebase के लिए Cloud Storage' से जुड़े यूआरएल का इस्तेमाल करें. हालांकि, अगर कोई फ़ाइल छोटी है, तो उसे अक्सर सीधे इनलाइन डेटा के तौर पर पास किया जा सकता है. ध्यान दें कि इनलाइन डेटा के तौर पर दी गई फ़ाइल, ट्रांज़िट में base64 कोड में बदली जाती है. इससे अनुरोध का साइज़ बढ़ जाता है.

'Firebase के लिए Cloud Storage' का इस्तेमाल करने के कुछ और फ़ायदे यहां दिए गए हैं:

  • असली उपयोगकर्ता, सीधे आपके ऐप्लिकेशन से 'Firebase के लिए Cloud Storage' बकेट में इमेज अपलोड कर सकते हैं. इसके बाद, उन इमेज को मल्टीमोडल प्रॉम्प्ट में शामिल करने के लिए, फ़ाइल के MIME टाइप और 'Firebase के लिए Cloud Storage' यूआरएल (यह फ़ाइल का आइडेंटिफ़ायर होता है) की जानकारी देता है.

  • अगर असली उपयोगकर्ताओं को इमेज देने की ज़रूरत पड़ती है, तो आपके पास उनका समय और बैंडविड्थ बचाने का विकल्प होता है. खास तौर पर, ऐसा तब किया जा सकता है, जब उनकी नेटवर्क क्वालिटी खराब हो या खराब हो.

    • अगर किसी फ़ाइल के अपलोड या डाउनलोड होने में कोई रुकावट आती है, तो 'Firebase के लिए Cloud Storage SDK टूल' अपने-आप वहीं से शुरू हो जाता है जहां उसे छोड़ा गया था.
    • अपलोड की गई एक ही फ़ाइल का कई बार इस्तेमाल किया जा सकता है. इसके लिए, असली उपयोगकर्ता को ऐप्लिकेशन में हर बार एक ही फ़ाइल अपलोड करने की ज़रूरत नहीं होगी (जैसे, किसी नए मल्टीमोडल अनुरोध में).
  • Firebase के सुरक्षा नियमों का इस्तेमाल करके, असली उपयोगकर्ता को 'Firebase के लिए Cloud Storage' में सेव की गई फ़ाइलों का ऐक्सेस सीमित किया जा सकता है. इन नियमों के तहत, सिर्फ़ उपयोगकर्ता को फ़ाइलें अपलोड, डाउनलोड या मिटाने की अनुमति मिलती है.

  • अपनी बकेट में मौजूद फ़ाइलों को Firebase या Google Cloud से ऐक्सेस किया जा सकता है. इससे आपको सर्वर साइड प्रोसेसिंग, जैसे कि Google Cloud Storage API का इस्तेमाल करके इमेज फ़िल्टर या वीडियो ट्रांसकोडिंग करने की सुविधा मिलती है.

किस तरह की फ़ाइलें और यूआरएल काम करते हैं?

'Firebase के लिए Cloud Storage' वाले यूआरएल, 'Firebase के लिए Vertex AI' SDK टूल के साथ काम करने वाले यूआरएल से जुड़ी फ़ाइलों और यूआरएल से जुड़ी ज़रूरी शर्तों के बारे में यहां बताया गया है:

  • 'Firebase SDK टूल के लिए Vertex AI' का इस्तेमाल करते समय, फ़ाइल को मल्टीमोडल अनुरोधों के लिए इनपुट फ़ाइलों की ज़रूरी शर्तों को पूरा करना चाहिए. इसमें MIME टाइप और फ़ाइल साइज़ जैसी ज़रूरी शर्तें शामिल हैं.

  • फ़ाइल को Firebase के लिए Cloud Storage बकेट में सेव किया जाना चाहिए इसका मतलब है कि बकेट को Firebase की सेवाएं ऐक्सेस की जा सकती हैं, जैसे कि Firebase सुरक्षा नियम. अगर Firebase कंसोल में अपना बकेट देखा जा सकता है, तो यह Firebase के लिए Cloud Storage बकेट है.

  • 'Firebase के लिए Cloud Storage' बकेट उसी Firebase प्रोजेक्ट में होनी चाहिए जिसमें आपने अपना ऐप्लिकेशन रजिस्टर किया है.

  • फ़ाइल का 'Firebase के लिए Cloud Storage' यूआरएल, gs:// से शुरू होना चाहिए. इसी तरीके से, Google Cloud Storage के सभी यूआरएल बनाए जाते हैं.

  • फ़ाइल का यूआरएल कोई "ब्राउज़र" यूआरएल नहीं हो सकता (उदाहरण के लिए, किसी इमेज का यूआरएल जो आपको इंटरनेट पर मिला है).

साथ ही, आपकी बकेट के लिए Firebase सुरक्षा नियमों से फ़ाइल का सही ऐक्सेस मिलना चाहिए. उदाहरण के लिए:

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

  • अगर आपने मज़बूत नियम (खास तौर पर सुझाया है) बनाए हैं, तो Firebase यह जांच करेगा कि साइन इन किए हुए उपयोगकर्ता या क्लाइंट के पास फ़ाइल का ऐक्सेस है या नहीं. इसके बाद ही, दिए गए यूआरएल को कॉल करने की अनुमति देगा.

'Firebase के लिए Cloud Storage' के साथ-साथ, Vertex AI for Firebase का इस्तेमाल करें

पहला चरण: Firebase के लिए Cloud Storage सेट अप करना

आपको ये ज़रूरी टास्क करने होंगे:

  1. अपने Firebase प्रोजेक्ट में, 'Firebase के लिए Cloud Storage बकेट' बनाएं.

  2. इस बकेट पर Firebase के सुरक्षा नियम लागू करें. Firebase के सुरक्षा नियमों से, आपको अपनी फ़ाइलों को सुरक्षित रखने में मदद मिलती है. इसके लिए, असली उपयोगकर्ताओं के ऐक्सेस को सीमित किया जाता है.

  3. अपने ऐप्लिकेशन में, 'Firebase के लिए Cloud Storage' की क्लाइंट लाइब्रेरी जोड़ें.

    ध्यान दें कि इस टास्क को छोड़ा जा सकता है. हालांकि, इसके बाद आपको मल्टीमॉडल अनुरोधों में, MIME टाइप और 'Firebase के लिए Cloud Storage' के यूआरएल की वैल्यू को हमेशा शामिल करना होगा.

दूसरा चरण: फ़ाइल को बकेट में अपलोड करना

जब किसी बकेट में कोई फ़ाइल अपलोड की जाती है, तो Cloud Storage, फ़ाइल में ये दो जानकारी अपने-आप लागू कर देता है. आपको मल्टीमोडल अनुरोध में ये वैल्यू शामिल करनी होंगी (जैसा कि इस गाइड के अगले चरण में दिखाया गया है).

  • MIME टाइप: यह फ़ाइल का मीडिया टाइप है (उदाहरण के लिए, image/png). Firebase के लिए Cloud Storage, अपलोड के दौरान MIME टाइप का अपने-आप पता लगाने की कोशिश करेगा और उस मेटाडेटा को बकेट में मौजूद ऑब्जेक्ट पर लागू कर देगा. हालांकि, अपलोड करते समय, वैकल्पिक तौर पर MIME टाइप बताया जा सकता है.

  • 'Firebase के लिए Cloud Storage' यूआरएल: यह फ़ाइल का यूनीक आइडेंटिफ़ायर होता है. यूआरएल, gs:// से शुरू होना चाहिए.

तीसरा चरण: मल्टीमोडल अनुरोध में फ़ाइल के MIME टाइप और यूआरएल को शामिल करें

'Firebase के लिए Cloud Storage' बकेट में फ़ाइल सेव करने के बाद, मल्टीमोडल अनुरोध में फ़ाइल का MIME टाइप और 'Firebase के लिए Cloud Storage' यूआरएल शामिल किया जा सकता है. ध्यान दें कि इन उदाहरणों में, स्ट्रीमिंग न होने वाला generateContent अनुरोध दिखता है. हालांकि, स्ट्रीमिंग और चैट के साथ, 'Firebase के लिए Cloud Storage' के यूआरएल भी इस्तेमाल किए जा सकते हैं.

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

पहला विकल्प: स्टोरेज रेफ़रंस का इस्तेमाल करके, MIME टाइप और यूआरएल शामिल करना

अगर आपने हाल ही में फ़ाइल को बकेट में अपलोड किया है और मल्टीमोडल अनुरोध में फ़ाइल को तुरंत शामिल करना है (स्टोरेज रेफ़रंस के ज़रिए), तो इस विकल्प का इस्तेमाल करें. कॉल के लिए MIME टाइप और 'Firebase के लिए Cloud Storage' यूआरएल, दोनों की ज़रूरत होती है.

दूसरा विकल्प: MIME टाइप और यूआरएल को साफ़ तौर पर शामिल करें

अगर आपको MIME टाइप और 'Firebase के लिए Cloud Storage' यूआरएल की वैल्यू पता है और आपको उन्हें मल्टीमोडल अनुरोध में साफ़ तौर पर शामिल करना है, तो इस विकल्प का इस्तेमाल करें. कॉल के लिए MIME टाइप और यूआरएल, दोनों की ज़रूरत होती है.