मल्टीमोडल अनुरोधों में बड़ी फ़ाइलें शामिल करें और '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 के लिए Vertex AI' SDK टूल के लिए, अनुरोध का साइज़ ज़्यादा से ज़्यादा 20 एमबी हो सकता है. अगर कोई अनुरोध बहुत बड़ा होता है, तो आपको HTTP 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 के लिए Vertex AI' SDK टूल के साथ 'Firebase के लिए Cloud Storage' यूआरएल का इस्तेमाल करना है, तो फ़ाइलों और यूआरएल के लिए ज़रूरी शर्तें यहां दी गई हैं:

  • 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 के लिए Vertex AI' SDK टूल का इस्तेमाल करके फ़ाइल को ऐक्सेस कर सकता है और कॉल में उसका यूआरएल दे सकता है. इस तरह के नियमों का इस्तेमाल सिर्फ़ शुरुआत करने और शुरुआती प्रोटोटाइपिंग के दौरान किया जाना चाहिए (जब तक कि फ़ाइलें वाकई सार्वजनिक तौर पर ऐक्सेस करने लायक न हों).

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

Firebase के लिए Vertex AI की मदद से, Firebase के यूआरएल के लिए Cloud Storage का इस्तेमाल करना

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

यहां ऐसे हाई-लेवल टास्क दिए गए हैं जो आपको पूरे करने होंगे:

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

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

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

    ध्यान दें कि आप इस टास्क को छोड़ सकते हैं. हालांकि, आपको हमेशा अपने मल्टीमॉडल अनुरोधों में, Firebase यूआरएल के लिए MIME टाइप और 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 टाइप और यूआरएल, दोनों की ज़रूरत होती है.