Gemini API के लिए Firebase एक्सटेंशन की मदद से, एआई (AI) के साथ काम करने वाले वेब ऐप्लिकेशन बनाएं

Gemini API के लिए Firebase एक्सटेंशन की मदद से, एआई की मदद से काम करने वाले वेब ऐप्लिकेशन बनाना

इस कोडलैब (कोड बनाना सीखने के लिए ट्यूटोरियल) के बारे में जानकारी

subjectपिछली बार अप्रैल 9, 2025 को अपडेट किया गया
account_circleAlex Astrum ने लिखा

1. शुरू करने से पहले

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

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

ज़रूरी शर्तें

  • Node.js, Next.js, और TypeScript के बारे में जानकारी.

आपको क्या सीखने को मिलेगा

  • भाषा को प्रोसेस करने के लिए, Gemini API के लिए Firebase एक्सटेंशन का इस्तेमाल करने का तरीका.
  • अपने लैंग्वेज मॉडल के लिए बेहतर संदर्भ बनाने के लिए, Firebase के लिए Cloud Functions का इस्तेमाल करने का तरीका.
  • Firebase एक्सटेंशन से जनरेट किए गए आउटपुट को ऐक्सेस करने के लिए, JavaScript का इस्तेमाल करने का तरीका.

आपको इन चीज़ों की ज़रूरत होगी

  • Google Chrome जैसा कोई ब्राउज़र
  • कोड एडिटर और टर्मिनल वाला डेवलपमेंट एनवायरमेंट
  • Firebase प्रोजेक्ट बनाने और उसे मैनेज करने के लिए Google खाता

2. वेब ऐप्लिकेशन, Firebase की सेवाएं, और एक्सटेंशन की समीक्षा करना

इस सेक्शन में, आपको उस वेब ऐप्लिकेशन की समीक्षा करनी होगी जिसे इस कोडलैब की मदद से बनाया जाएगा. साथ ही, आपको उन Firebase सेवाओं और Firebase एक्सटेंशन के बारे में भी जानकारी मिलेगी जिनका इस्तेमाल किया जाएगा.

वेब ऐप्लिकेशन

इस कोडलैब में, आपको Friendly Conf नाम का एक वेब ऐप्लिकेशन बनाना होगा.

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

5364a56a230ff075.png

Firebase की सेवाएं

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

सेवा

इस्तेमाल करने की वजह

Firebase Authentication

आपने वेब ऐप्लिकेशन के लिए, 'Google से साइन इन करें' सुविधा का इस्तेमाल किया हो.

Cloud Firestore

टेक्स्ट डेटा को Cloud Firestore में सेव किया जाता है. इसके बाद, Firebase एक्सटेंशन इस डेटा को प्रोसेस करते हैं.

Firebase के लिए Cloud Storage

वेब ऐप्लिकेशन में इमेज गैलरी दिखाने के लिए, Cloud Storage से डेटा पढ़ा और उसमें डेटा डाला जाता है.

Firebase के सुरक्षा नियम

Firebase की सेवाओं को सुरक्षित तरीके से ऐक्सेस करने के लिए, सुरक्षा के नियम लागू किए जाते हैं.

Firebase एक्सटेंशन

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

बोनस: Firebase होस्टिंग

GitHub रिपॉज़िटरी के बिना, अपने वेब ऐप्लिकेशन को होस्ट करने के लिए, Firebase होस्टिंग का इस्तेमाल किया जा सकता है. हालांकि, ऐसा करना ज़रूरी नहीं है.

बोनस: Firebase App Hosting

GitHub repo से कनेक्ट किए गए अपने डाइनैमिक Next.js वेब ऐप्लिकेशन को दिखाने के लिए, Firebase ऐप्लिकेशन होस्टिंग की नई सुविधा का इस्तेमाल किया जा सकता है. हालांकि, ऐसा करना ज़रूरी नहीं है.

Firebase एक्सटेंशन

इस कोडलैब में इस्तेमाल किए जाने वाले Firebase एक्सटेंशन में ये शामिल हैं:

एक्सटेंशन काम के होते हैं, क्योंकि वे आपके Firebase प्रोजेक्ट में होने वाले इवेंट पर प्रतिक्रिया देते हैं. इस कोडलैब में इस्तेमाल किए गए दोनों एक्सटेंशन, Cloud Firestore में पहले से कॉन्फ़िगर किए गए कलेक्शन में नए दस्तावेज़ बनाने पर काम करते हैं.

3. डेवलपमेंट एनवायरमेंट सेट अप करना

Node.js के वर्शन की पुष्टि करना

  1. अपने टर्मिनल में, पुष्टि करें कि आपने Node.js का 20.0.0 या इसके बाद का वर्शन इंस्टॉल किया है:
    node -v
    
  2. अगर आपके पास Node.js का 20.0.0 या इसके बाद का वर्शन नहीं है, तो एलटीएस का नया वर्शन डाउनलोड करें और इंस्टॉल करें.

कोडलैब का सोर्स कोड पाना

अगर आपके पास GitHub खाता है, तो:

  1. github.com/FirebaseExtended/codelab-gemini-api-extensions पर मौजूद हमारे टेंप्लेट का इस्तेमाल करके, नया रिपॉज़िटरी बनाएं65ef006167d600ab.png
  2. अभी-अभी बनाए गए कोडलैब के GitHub रिपॉज़िटरी को क्लोन करें:
    git clone https://github.com/<your-github-handle>/codelab-gemini-api-extensions
    

अगर आपने git इंस्टॉल नहीं किया है या आपको नया रिपॉज़िटरी नहीं बनाना है, तो:

GitHub रिपॉज़िटरी को zip फ़ाइल के तौर पर डाउनलोड करें.

फ़ोल्डर के स्ट्रक्चर की समीक्षा करना

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

अगर आपको इस कोडलैब में दिए गए निर्देशों के मुताबिक, कोड सही तरीके से लागू हुआ है या नहीं, इस बारे में पक्के तौर पर नहीं पता है, तो end git branch में जाकर, समस्या का हल करने वाला कोड देखा जा सकता है.

Firebase CLI इंस्टॉल करना

  1. पुष्टि करें कि आपने Firebase CLI इंस्टॉल किया है और उसका वर्शन 13.6 या इसके बाद का है:
    firebase --version
    
  2. अगर आपने Firebase CLI इंस्टॉल किया है, लेकिन उसका वर्शन 13.6 या इसके बाद का नहीं है, तो उसे अपडेट करें:
    npm update -g firebase-tools
    
  3. अगर आपने Firebase CLI इंस्टॉल नहीं किया है, तो इसे इंस्टॉल करें:
    npm install -g firebase-tools
    

अगर अनुमति से जुड़ी गड़बड़ियों की वजह से, Firebase CLI को अपडेट या इंस्टॉल नहीं किया जा सकता, तो npm दस्तावेज़ देखें या इंस्टॉल करने के किसी दूसरे विकल्प का इस्तेमाल करें.

Firebase में लॉग इन करना

  1. अपने टर्मिनल में, codelab-gemini-api-extensions फ़ोल्डर पर जाएं और Firebase में लॉग इन करें:
    cd codelab-gemini-api-extensions
    firebase login
    
    अगर आपके टर्मिनल पर यह दिखता है कि आपने Firebase में पहले ही लॉग इन कर लिया है, तो इस कोडलैब के अपना Firebase प्रोजेक्ट सेट अप करें सेक्शन पर जाएं.
  2. अपने टर्मिनल में, Y या N डालें. इससे यह तय होगा कि Firebase को डेटा इकट्ठा करना है या नहीं. (इस कोडलैब के लिए, दोनों विकल्प काम करते हैं)
  3. अपने ब्राउज़र में, अपना Google खाता चुनें और अनुमति दें पर क्लिक करें.

4. अपना Firebase प्रोजेक्ट सेट अप करना

इस सेक्शन में, आपको Firebase प्रोजेक्ट सेट अप करना होगा और उसमें Firebase वेब ऐप्लिकेशन रजिस्टर करना होगा. इस कोडलैब में आगे, आपको सैंपल वेब ऐप्लिकेशन में इस्तेमाल की जाने वाली कुछ Firebase सेवाएं भी चालू करनी होंगी.

इस सेक्शन में दिए गए सभी चरणों को Firebase कंसोल में पूरा किया जाता है.

Firebase प्रोजेक्ट बनाना

  1. Google खाते का इस्तेमाल करके, Firebase कंसोल में साइन इन करें.
  2. Firebase प्रोजेक्ट से शुरुआत करें पर क्लिक करें. इसके बाद, प्रोजेक्ट का नाम डालें. उदाहरण के लिए, AI Extensions Codelab.
    अपने Firebase प्रोजेक्ट के लिए अपने-आप असाइन किया गया प्रोजेक्ट आईडी याद रखें. इसके अलावा, अपना पसंदीदा प्रोजेक्ट आईडी सेट करने के लिए, बदलाव करें आइकॉन पर क्लिक करें. Firebase CLI में अपने Firebase प्रोजेक्ट की पहचान करने के लिए, आपको बाद में इस आईडी की ज़रूरत पड़ेगी. अगर आपको अपना आईडी याद नहीं है, तो प्रोजेक्ट सेटिंग में जाकर, इसे कभी भी देखा जा सकता है.
  3. जारी रखें पर क्लिक करें.
  4. अगर आपसे कहा जाए, तो Firebase की शर्तें देखें और उन्हें स्वीकार करें. इसके बाद, जारी रखें पर क्लिक करें.
  5. इस कोडलैब के लिए, आपको Google Analytics की ज़रूरत नहीं है. इसलिए, Google Analytics के विकल्प को टॉगल करके बंद करें.
  6. प्रोजेक्ट बनाएं पर क्लिक करें. इसके बाद, अपने प्रोजेक्ट के प्रोवाइड होने का इंतज़ार करें और फिर जारी रखें पर क्लिक करें.

Firebase के प्लान की कीमत अपग्रेड करना

Firebase एक्सटेंशन (और उनसे जुड़ी क्लाउड सेवाओं) के साथ-साथ, 'Firebase के लिए Cloud Storage' का इस्तेमाल करने के लिए, आपका Firebase प्रोजेक्ट पे-अस-यू-गो (Blaze) कीमत वाले प्लान पर होना चाहिए. इसका मतलब है कि यह Cloud Billing खाते से लिंक होना चाहिए.

  • Cloud Billing खाते के लिए, क्रेडिट कार्ड जैसा पेमेंट का कोई तरीका होना ज़रूरी है.
  • अगर आपने Firebase और Google Cloud का इस्तेमाल पहले कभी नहीं किया है, तो देखें कि क्या आपको 300 डॉलर का क्रेडिट और मुफ़्त में आज़माने के लिए Cloud Billing खाता मिल सकता है.
  • अगर आपने किसी इवेंट के तहत यह कोडलैब किया है, तो इवेंट के आयोजक से पूछें कि क्या कोई Cloud क्रेडिट उपलब्ध है.

यह भी ध्यान रखें कि Firebase प्रोजेक्ट पर बिलिंग की सुविधा चालू होने पर, Gemini API को किए गए कॉल के लिए आपसे शुल्क लिया जाएगा. भले ही, आपने Google AI या Vertex AI, दोनों में से किसी भी सेवा देने वाली कंपनी को चुना हो. Google के एआई और Vertex AI की कीमत के बारे में ज़्यादा जानें.

अपने प्रोजेक्ट को Blaze प्लान पर अपग्रेड करने के लिए, यह तरीका अपनाएं:

  1. Firebase कंसोल में, अपना प्लान अपग्रेड करें को चुनें.
  2. ब्लेज़ प्लान चुनें. अपने प्रोजेक्ट से Cloud Billing खाता लिंक करने के लिए, स्क्रीन पर दिए गए निर्देशों का पालन करें.
    अगर आपको इस अपग्रेड के तहत Cloud Billing खाता बनाना पड़ा है, तो अपग्रेड पूरा करने के लिए, आपको Firebase Console में अपग्रेड फ़्लो पर वापस जाना पड़ सकता है.

अपने Firebase प्रोजेक्ट में वेब ऐप्लिकेशन जोड़ना

  1. अपने Firebase प्रोजेक्ट में, प्रोजेक्ट की खास जानकारी स्क्रीन पर जाएं. इसके बाद, af10a034ec77938d.pngवेब पर क्लिक करें.Firebase प्रोजेक्ट में सबसे ऊपर मौजूद &#39;वेब&#39; बटन
  2. ऐप्लिकेशन का कोई दूसरा नाम टेक्स्ट बॉक्स में, ऐप्लिकेशन का कोई ऐसा दूसरा नाम डालें जिसे याद रखना आसान हो. जैसे, My AI Extensions
  3. ऐप्लिकेशन रजिस्टर करें > अगला > अगला > Console पर जाएं पर क्लिक करें.
    वेब ऐप्लिकेशन के फ़्लो में, "होस्टिंग" से जुड़े सभी चरणों को छोड़ा जा सकता है. इसकी वजह यह है कि इस कोडलैब में, आपको बाद में होस्टिंग सेवा को सेट अप करने का विकल्प मिलेगा.

Firebase प्रोजेक्ट में बनाया गया वेब ऐप्लिकेशन

बढ़िया! अब आपने अपने नए Firebase प्रोजेक्ट में वेब ऐप्लिकेशन रजिस्टर कर लिया है.

Firebase Authentication सेट अप करना

  1. बाईं ओर मौजूद नेविगेशन पैनल का इस्तेमाल करके, पुष्टि पर जाएं.
  2. शुरू करें पर क्लिक करें.
  3. अतिरिक्त सेवा देने वाली कंपनियां कॉलम में, Google > चालू करें पर क्लिक करें.232b8f0336c25585.png
  4. प्रोजेक्ट का ऐसा नाम जो सार्वजनिक तौर पर दिखे टेक्स्ट बॉक्स में, कोई काम का नाम डालें, जैसे कि My AI Extensions Codelab.
  5. प्रोजेक्ट के लिए सहायता ईमेल मेन्यू में, अपना ईमेल पता चुनें.
  6. सेव करें पर क्लिक करें.

37e54f32f8133be3.png

Cloud Firestore सेट अप करना

  1. Firebase कंसोल के बाएं पैनल में, बिल्ड करें को बड़ा करें. इसके बाद, Firestore डेटाबेस चुनें.
  2. डेटाबेस बनाएं पर क्लिक करें.
  3. डेटाबेस आईडी को (default) पर सेट रहने दें.
  4. अपने डेटाबेस के लिए कोई जगह चुनें. इसके बाद, आगे बढ़ें पर क्लिक करें.
    असल ऐप्लिकेशन के लिए, आपको ऐसी जगह चुननी होगी जो आपके उपयोगकर्ताओं के आस-पास हो.
  5. टेस्ट मोड में शुरू करें पर क्लिक करें. सुरक्षा नियमों के बारे में डिसक्लेमर पढ़ें.
    इस कोडलैब में आगे, आपको अपने डेटा को सुरक्षित करने के लिए सुरक्षा नियम जोड़ने होंगे. अपने डेटाबेस के लिए सुरक्षा नियम जोड़े बिना, किसी ऐप्लिकेशन को सार्वजनिक तौर पर डिस्ट्रिब्यूट या एक्सपोज़ करें.
  6. बनाएं पर क्लिक करें.

Firebase के लिए Cloud Storage सेट अप करना

  1. Firebase कंसोल के बाएं पैनल में, बिल्ड को बड़ा करें. इसके बाद, स्टोरेज चुनें.
  2. शुरू करें पर क्लिक करें.
  3. अपनी डिफ़ॉल्ट स्टोरेज बकेट के लिए कोई जगह चुनें.
    US-WEST1, US-CENTRAL1, और US-EAST1 में मौजूद बकेट, Google Cloud Storage के लिए "हमेशा मुफ़्त" टीयर का फ़ायदा ले सकती हैं. अन्य सभी जगहों की बकेट के लिए, Google Cloud Storage की कीमत और इस्तेमाल लागू होता है.
  4. टेस्ट मोड में शुरू करें पर क्लिक करें. सुरक्षा नियमों के बारे में डिसक्लेमर पढ़ें.
    इस कोडलैब में आगे, आपको अपने डेटा को सुरक्षित करने के लिए सुरक्षा नियम जोड़ने होंगे. अपनी स्टोरेज बकेट के लिए सुरक्षा नियम जोड़े बिना, किसी ऐप्लिकेशन को सार्वजनिक तौर पर डिस्ट्रिब्यूट या एक्सपोज़ करें.
  5. बनाएं पर क्लिक करें.

इस कोडलैब के अगले सेक्शन में, आपको दो Firebase एक्सटेंशन इंस्टॉल और कॉन्फ़िगर करने होंगे. इनका इस्तेमाल, इस कोडलैब के दौरान वेब ऐप्लिकेशन में किया जाएगा.

5. &quot;Gemini API की मदद से चैटबॉट बनाना&quot; एक्सटेंशन सेट अप करना

"Gemini API की मदद से चैटबॉट बनाना" एक्सटेंशन इंस्टॉल करें

  1. "Gemini API की मदद से चैटबॉट बनाएं" एक्सटेंशन" पर जाएं.
  2. Firebase कंसोल में इंस्टॉल करें पर क्लिक करें.
  3. अपना Firebase प्रोजेक्ट चुनें. इसके बाद, आगे बढ़ें पर क्लिक करें.
  4. चालू किए गए एपीआई और बनाए गए संसाधनों की समीक्षा करें सेक्शन में, आपको सुझाई गई किसी भी सेवा के बगल में मौजूद, चालू करें पर क्लिक करें. इसके बाद, आगे बढ़ें पर क्लिक करें.8e58e717da8182a2.png
  5. आपको जो अनुमतियां सुझाई गई हैं उनके लिए, अनुमति दें को चुनें. इसके बाद, आगे बढ़ें पर क्लिक करें.269e1c3c4123425c.png
  6. एक्सटेंशन कॉन्फ़िगर करें:
    1. Gemini API की सेवा देने वाली कंपनी मेन्यू में, चुनें कि आपको Google AI या Vertex AI के Gemini API का इस्तेमाल करना है या नहीं. Firebase का इस्तेमाल करने वाले डेवलपर के लिए, हमारा सुझाव है कि वे Vertex AI का इस्तेमाल करें.
    2. Firestore कलेक्शन का पाथ टेक्स्ट बॉक्स में, यह डालें: users/{uid}/messages.
      इस कोडलैब के आगे के चरणों में, इस कलेक्शन में दस्तावेज़ जोड़ने पर, Gemini API को कॉल करने के लिए एक्सटेंशन ट्रिगर हो जाएगा.
    3. Cloud Functions की जगह मेन्यू में, अपनी पसंदीदा जगह चुनें. जैसे, Iowa (us-central1) या वह जगह जो आपने पहले अपने Firestore डेटाबेस के लिए बताई थी.
    4. बाकी सभी वैल्यू को डिफ़ॉल्ट के तौर पर छोड़ दें.
  7. एक्सटेंशन इंस्टॉल करें पर क्लिक करें और एक्सटेंशन के इंस्टॉल होने का इंतज़ार करें.

"Gemini API की मदद से चैटबॉट बनाएं" एक्सटेंशन आज़माएं

इस कोडलैब का मकसद, किसी वेब ऐप्लिकेशन की मदद से "Gemini API की मदद से चैटबॉट बनाएं" एक्सटेंशन के साथ इंटरैक्ट करना है. हालांकि, Firebase कंसोल में पहले इसे आज़माकर, यह जानना मददगार होता है कि एक्सटेंशन कैसे काम करता है.

जब भी कलेक्शन users/{uid}/discussion/{discussionId}/messages में कोई Firestore दस्तावेज़ बनाया जाता है, तब यह एक्सटेंशन ट्रिगर होता है. ऐसा Firebase कंसोल में किया जा सकता है.

  1. Firebase कंसोल में, Firestore पर जाएं. इसके बाद, पहले कॉलम में 63873f95ceaf00ac.pngकलेक्शन शुरू करें पर क्लिक करें.
  2. कलेक्शन आईडी टेक्स्ट बॉक्स में, users डालें. इसके बाद, आगे बढ़ें पर क्लिक करें.
  3. दस्तावेज़ आईडी टेक्स्ट बॉक्स में, अपने-आप आईडी जनरेट करें पर क्लिक करें. इसके बाद, सेव करें पर क्लिक करें.
  4. users कलेक्शन में, dec3188dd2d1aa02.pngकलेक्शन शुरू करें पर क्लिक करें.Firestore में नया कलेक्शन बनाना
  5. कलेक्शन आईडी टेक्स्ट बॉक्स में, messages डालें. इसके बाद, आगे बढ़ें पर क्लिक करें.
    1. दस्तावेज़ आईडी टेक्स्ट बॉक्स में, अपने-आप आईडी जनरेट करें पर क्लिक करें.
    2. फ़ील्ड टेक्स्ट बॉक्स में, prompt डालें
    3. वैल्यू टेक्स्ट बॉक्स में, Tell me 5 random fruits डालें
  6. सेव करें पर क्लिक करें और कुछ सेकंड इंतज़ार करें.

इस दस्तावेज़ को जोड़ने पर, Gemini API को कॉल करने के लिए एक्सटेंशन ट्रिगर हो गया. आपने जिस दस्तावेज़ को अभी-अभी messages कलेक्शन में जोड़ा है उसमें अब आपकी क्वेरी के लिए, न सिर्फ़ आपका prompt बल्कि मॉडल का response भी शामिल है.

Firestore दस्तावेज़ में भाषा मॉडल का जवाब

messages कलेक्शन में कोई दूसरा दस्तावेज़ जोड़कर, एक्सटेंशन को फिर से ट्रिगर करें:

  1. messages कलेक्शन में, dec3188dd2d1aa02.png दस्तावेज़ जोड़ें पर क्लिक करें.
  2. दस्तावेज़ आईडी टेक्स्ट बॉक्स में, अपने-आप आईडी जनरेट करें पर क्लिक करें.
  3. फ़ील्ड टेक्स्ट बॉक्स में, prompt डालें
  4. वैल्यू टेक्स्ट बॉक्स में, And now, vegetables डालें
  5. सेव करें पर क्लिक करें और कुछ सेकंड इंतज़ार करें. आपने अभी-अभी messages कलेक्शन में जो दस्तावेज़ जोड़ा है उसमें अब आपकी क्वेरी के लिए response शामिल है.

    यह जवाब जनरेट करते समय, Gemini का मॉडल आपकी पिछली क्वेरी से मिले पुराने डेटा का इस्तेमाल करता है.

6. वेब ऐप्लिकेशन सेट अप करना

वेब ऐप्लिकेशन चलाने के लिए, आपको अपने टर्मिनल में निर्देश चलाने होंगे और कोड एडिटर में कोड जोड़ना होगा.

अपने Firebase प्रोजेक्ट के साथ काम करने के लिए, Firebase CLI को सेट अप करना

अपने टर्मिनल में, CLI को अपने Firebase प्रोजेक्ट का इस्तेमाल करने के लिए कहें. इसके लिए, यह कमांड चलाएं:

firebase use YOUR_PROJECT_ID

Firestore और Cloud Storage के लिए सुरक्षा नियमों को डिप्लॉय करना

इस कोडलैब के कोडबेस में, आपके लिए Firestore के सुरक्षा नियमों और Cloud Storage के सुरक्षा नियमों का सेट पहले से मौजूद है. सुरक्षा से जुड़े इन नियमों को लागू करने के बाद, आपके Firebase प्रोजेक्ट में मौजूद Firebase की सेवाओं को गलत इस्तेमाल से बेहतर तरीके से सुरक्षित रखा जा सकता है.

  1. सुरक्षा नियमों को डिप्लॉय करने के लिए, अपने टर्मिनल में यह कमांड चलाएं:
    firebase deploy --only firestore:rules,storage
    
  2. अगर आपसे पूछा जाए कि अलग-अलग सेवाओं के नियमों का इस्तेमाल करने के लिए, Cloud Storage को आईएएम भूमिका देनी है या नहीं, तो Y या N डालें. (इस कोडलैब के लिए, दोनों विकल्प काम करते हैं)

अपने वेब ऐप्लिकेशन को Firebase प्रोजेक्ट से कनेक्ट करना

आपके वेब ऐप्लिकेशन के कोडबेस को यह पता होना चाहिए कि उसे अपने डेटाबेस, स्टोरेज वगैरह के लिए किस Firebase प्रोजेक्ट का इस्तेमाल करना चाहिए. इसके लिए, आपको अपने ऐप्लिकेशन के कोडबेस में Firebase कॉन्फ़िगरेशन जोड़ना होगा.

  1. अपना Firebase कॉन्फ़िगरेशन पाएं:
    1. Firebase कंसोल में, अपने Firebase प्रोजेक्ट में प्रोजेक्ट सेटिंग पर जाएं.
    2. नीचे की ओर स्क्रोल करके, आपके ऐप्लिकेशन सेक्शन पर जाएं और रजिस्टर किया गया वेब ऐप्लिकेशन चुनें.
    3. SDK टूल का सेटअप और कॉन्फ़िगरेशन पैनल में, firebaseConfig const के साथ पूरा initializeApp कोड कॉपी करें.
  2. अपने वेब ऐप्लिकेशन के कोडबेस में Firebase कॉन्फ़िगरेशन जोड़ें:
    1. अपने कोड एडिटर में, src/lib/firebase/firebase.config.js फ़ाइल खोलें.
    2. फ़ाइल में मौजूद सभी को चुनें और कॉपी किए गए कोड से बदलें.
    3. फ़ाइल सेव करें.

अपने ब्राउज़र में वेब ऐप्लिकेशन की झलक देखना

  1. अपने टर्मिनल में, डिपेंडेंसी इंस्टॉल करें और फिर वेब ऐप्लिकेशन चलाएं:
    npm install
    npm run dev
    
  2. वेब ऐप्लिकेशन देखने के लिए, अपने ब्राउज़र में लोकल होस्टिंग यूआरएल पर जाएं. उदाहरण के लिए, ज़्यादातर मामलों में यूआरएल http://localhost:3000/ या इससे मिलता-जुलता होता है.

वेब ऐप्लिकेशन के चैटबॉट का इस्तेमाल करना

  1. अपने ब्राउज़र में, उस टैब पर वापस जाएं जिस पर Friendly Conf वेब ऐप्लिकेशन स्थानीय तौर पर चल रहा है.
  2. Google से साइन इन करें पर क्लिक करें. अगर ज़रूरी हो, तो अपना Google खाता चुनें.
  3. साइन इन करने के बाद, आपको एक खाली चैट विंडो दिखेगी.
  4. नमस्ते (जैसे कि hi) लिखें. इसके बाद, भेजें पर क्लिक करें.
  5. चैटबॉट के जवाब का इंतज़ार करें.

ऐप्लिकेशन में मौजूद चैटबॉट, सामान्य जवाब देता है.

1929b9f465053ae7.png

ऐप्लिकेशन के लिए चैटबॉट को खास बनाना

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

  1. अपने ब्राउज़र में वेब ऐप्लिकेशन में, चैट इतिहास में मैसेज के बगल में मौजूद लाल "x" बटन पर क्लिक करके, बातचीत मिटाएं.
  2. अपने कोड एडिटर में, src/app/page.tsx फ़ाइल खोलें.
  3. नीचे की ओर स्क्रोल करें और 93वीं लाइन या उसके आस-पास मौजूद, prompt: userMsg वाले कोड को इस कोड से बदलें:
    prompt: preparePrompt(userMsg, messages),
  4. फ़ाइल सेव करें.
  5. अपने ब्राउज़र में चल रहे वेब ऐप्लिकेशन पर वापस जाएं.
  6. फिर से कोई ग्रीटिंग टाइप करें, जैसे कि hi. इसके बाद, भेजें पर क्लिक करें.
  7. चैटबॉट के जवाब का इंतज़ार करें.

6fbe972296fcb4d8.png

चैटबॉट, src/app/lib/context.md में दिए गए संदर्भ के आधार पर जानकारी के साथ जवाब देता है. भले ही, आपने कोई खास अनुरोध न किया हो, लेकिन Gemini का मॉडल इस संदर्भ के साथ-साथ मौजूदा तारीख/समय के आधार पर, आपके हिसाब से सुझाव जनरेट करता है. अब आपके पास फ़ॉलो-अप सवाल पूछने और ज़्यादा जानकारी पाने का विकल्प है.

बड़ा किया गया यह कॉन्टेक्स्ट, चैटबॉट के लिए ज़रूरी है. हालांकि, आपको इसे वेब ऐप्लिकेशन के उपयोगकर्ता को नहीं दिखाना चाहिए. इसे छिपाने का तरीका यहां बताया गया है:

  1. अपने कोड एडिटर में, src/app/page.tsx फ़ाइल खोलें.
  2. नीचे की ओर स्क्रोल करें और 56वीं लाइन या उसके आस-पास मौजूद, ...doc.data(), वाले कोड को इस कोड से बदलें:
    ...prepareMessage(doc.data()),
  3. फ़ाइल सेव करें.
  4. अपने ब्राउज़र में चल रहे वेब ऐप्लिकेशन पर वापस जाएं.
  5. पेज फिर लोड करें.

चैटबॉट से बातचीत करने के दौरान, पुराने कॉन्टेक्स्ट का इस्तेमाल करने की सुविधा भी आज़माएं:

  1. मैसेज टाइप करें टेक्स्ट बॉक्स में, कोई ऐसा सवाल पूछें: Any other interesting talks about AI?चैटबॉट आपको जवाब देगा.
  2. मैसेज टाइप करें टेक्स्ट बॉक्स में, पिछले सवाल से जुड़ा कोई फ़ॉलो-अप सवाल पूछें: Give me a few more details about the last one.

चैटबॉट, इतिहास से जुड़ी जानकारी के साथ जवाब देता है. चैट इतिहास अब संदर्भ का हिस्सा है. इसलिए, चैटबॉट फ़ॉलो-अप सवालों को समझता है.

7. &quot;Gemini API की मदद से, कई तरीकों से टास्क करने की सुविधा&quot; एक्सटेंशन सेट अप करना

"Gemini API की मदद से कई मोड में टास्क करने की सुविधा" एक्सटेंशन, Gemini API को कई मोड वाले प्रॉम्प्ट के साथ कॉल करता है. इन प्रॉम्प्ट में टेक्स्ट प्रॉम्प्ट के साथ-साथ, काम करने वाली फ़ाइल का यूआरएल या Cloud Storage का यूआरएल भी शामिल होता है. ध्यान दें कि Google के एआई Gemini API में भी, फ़ाइल के यूआरएल के बुनियादी ढांचे के तौर पर Cloud Storage का यूआरएल इस्तेमाल किया जाता है. यह एक्सटेंशन, हैंडलबार वैरिएबल के साथ भी काम करता है. इससे, टेक्स्ट प्रॉम्प्ट को पसंद के मुताबिक बनाने के लिए, Cloud Firestore दस्तावेज़ की वैल्यू को बदला जा सकता है.

अपने ऐप्लिकेशन में, जब भी किसी Cloud Storage बकेट में इमेज अपलोड की जाती है, तो उसका यूआरएल जनरेट किया जा सकता है और उस यूआरएल को नए Cloud Firestore दस्तावेज़ में जोड़ा जा सकता है. इससे, मल्टीमोडल प्रॉम्प्ट बनाने और Gemini API को कॉल करने के लिए, एक्सटेंशन ट्रिगर हो जाता है. इस कोडलैब के सोर्स कोड में, हमने इमेज अपलोड करने और Firestore दस्तावेज़ में यूआरएल लिखने के लिए कोड पहले ही उपलब्ध कराया है.

"Gemini API की मदद से, कई तरीकों से टास्क करने की सुविधा" एक्सटेंशन इंस्टॉल करना

  1. "Gemini API की मदद से मल्टीमोडल टास्क" एक्सटेंशन" पर जाएं.
  2. Firebase कंसोल में इंस्टॉल करें पर क्लिक करें.
  3. अपना Firebase प्रोजेक्ट चुनें.
  4. आगे बढ़ें > आगे बढ़ें > आगे बढ़ें पर क्लिक करके, एक्सटेंशन कॉन्फ़िगर करें सेक्शन पर जाएं.
    1. Gemini API की सेवा देने वाली कंपनी मेन्यू में, चुनें कि आपको Google AI या Vertex AI के Gemini API का इस्तेमाल करना है या नहीं. Firebase का इस्तेमाल करने वाले डेवलपर के लिए, हमारा सुझाव है कि वे Vertex AI का इस्तेमाल करें.
    2. Firestore कलेक्शन का पाथ टेक्स्ट बॉक्स में, यह डालें: gallery
    3. प्रॉम्प्ट टेक्स्ट बॉक्स में, यह डालें: Please describe the provided image; if there is no image, say "no image"
    4. इमेज फ़ील्ड टेक्स्ट बॉक्स में, यह जानकारी डालें: image
    5. Cloud Functions की जगह मेन्यू में, अपनी पसंदीदा जगह चुनें. जैसे, Iowa (us-central1) या वह जगह जो आपने पहले अपने Firestore डेटाबेस के लिए बताई थी.
    6. बाकी सभी वैल्यू को डिफ़ॉल्ट के तौर पर छोड़ दें.
  5. एक्सटेंशन इंस्टॉल करें पर क्लिक करें और एक्सटेंशन के इंस्टॉल होने का इंतज़ार करें.

"Gemini API की मदद से, कई तरीकों से टास्क करने की सुविधा" एक्सटेंशन आज़माएं

इस कोडलैब का मकसद, वेब ऐप्लिकेशन की मदद से "Gemini API के साथ मल्टीमोडल टास्क" एक्सटेंशन का इस्तेमाल करना है. हालांकि, Firebase कंसोल में पहले इसे आज़माकर, यह जानना मददगार होता है कि एक्सटेंशन कैसे काम करता है.

जब भी कलेक्शन users/{uid}/gallery में कोई Firestore दस्तावेज़ बनाया जाता है, तब यह एक्सटेंशन ट्रिगर होता है. ऐसा Firebase कंसोल में किया जा सकता है. इसके बाद, एक्सटेंशन Cloud Firestore दस्तावेज़ में मौजूद Cloud Storage इमेज का यूआरएल लेता है और उसे Gemini API के कॉल में मल्टीमोडल प्रॉम्प्ट के हिस्से के तौर पर पास करता है.

सबसे पहले, Cloud Storage बकेट में इमेज अपलोड करें:

  1. अपने Firebase प्रोजेक्ट में, स्टोरेज पर जाएं.
  2. 17eeb1712828b84f.pngफ़ोल्डर बनाएं पर क्लिक करें.
  3. फ़ोल्डर का नाम टेक्स्ट बॉक्स में, galleryba63b07a7a04f055.png डालें
  4. फ़ोल्डर जोड़ें पर क्लिक करें.
  5. gallery फ़ोल्डर में, फ़ाइल अपलोड करें पर क्लिक करें.
  6. अपलोड करने के लिए, कोई JPEG इमेज फ़ाइल चुनें.

इसके बाद, इमेज के Cloud Storage यूआरएल को Firestore दस्तावेज़ में जोड़ें. यह एक्सटेंशन के लिए ट्रिगर होता है:

  1. अपने Firebase प्रोजेक्ट में Firestore पर जाएं
  2. पहले कॉलम में, 63873f95ceaf00ac.pngकलेक्शन शुरू करें पर क्लिक करें.
  3. कलेक्शन आईडी टेक्स्ट बॉक्स में, gallery डालें. इसके बाद, आगे बढ़ें पर क्लिक करें.
  4. कलेक्शन में कोई दस्तावेज़ जोड़ने के लिए:
    1. दस्तावेज़ आईडी टेक्स्ट बॉक्स में, अपने-आप आईडी जनरेट करें पर क्लिक करें.
    2. फ़ील्ड टेक्स्ट बॉक्स में, यह डालें: image. वैल्यू बॉक्स में, उस इमेज की स्टोरेज लोकेशन यूआरआई डालें जिसे आपने अभी अपलोड किया है.3af50c4266c2a735.png
  5. फ़ील्ड जोड़ें पर क्लिक करें.
  6. फ़ील्ड टेक्स्ट बॉक्स में, यह डालें: published. टाइप बॉक्स में, बुलियन चुनें. वैल्यू बॉक्स में, true चुनें.9cacd855ff370a9f.png
  7. सेव करें पर क्लिक करें और कुछ सेकंड इंतज़ार करें.

gallery कलेक्शन में अब एक दस्तावेज़ शामिल है, जिसमें आपकी क्वेरी का जवाब है.

  1. अपने ब्राउज़र में, उस टैब पर वापस जाएं जिस पर Friendly Conf वेब ऐप्लिकेशन स्थानीय तौर पर चल रहा है.
  2. गैलरी नेविगेशन टैब पर क्लिक करें.
  3. आपको अपलोड की गई इमेज और एआई से जनरेट की गई जानकारी की गैलरी दिखेगी. इसमें वह इमेज होनी चाहिए जिसे आपने पहले अपनी स्टोरेज बकेट के gallery फ़ोल्डर में अपलोड किया था.
  4. "अपलोड करें" बटन पर क्लिक करें और कोई दूसरी JPEG इमेज चुनें.
  5. गैलरी में इमेज दिखने के लिए कुछ सेकंड इंतज़ार करें. कुछ देर बाद, नई अपलोड की गई इमेज के लिए, एआई से जनरेट की गई जानकारी भी दिखेगी.

अगर आपको यह समझना है कि यह सुविधा कैसे लागू की गई है, तो वेब ऐप्लिकेशन के कोडबेस में src/app/gallery/page.tsx देखें.

8. बोनस: अपना ऐप्लिकेशन डिप्लॉय करना

Firebase, वेब ऐप्लिकेशन को डिप्लॉय करने के कई तरीके उपलब्ध कराता है. इस कोडलैब के लिए, इनमें से कोई एक विकल्प चुनें:

  • पहला विकल्प: Firebase होस्टिंग - अगर आपको अपना GitHub रिपॉज़िटरी नहीं बनाना है और आपका सोर्स कोड सिर्फ़ आपकी मशीन पर सेव है, तो इस विकल्प का इस्तेमाल करें.
  • दूसरा विकल्प: Firebase ऐप्लिकेशन होस्टिंग - अगर आपको अपने GitHub रिपॉज़िटरी में बदलाव करने पर, ऐप्लिकेशन अपने-आप डिप्लॉय होने की सुविधा चाहिए, तो इस विकल्प का इस्तेमाल करें. Firebase की यह नई सेवा, खास तौर पर डाइनैमिक Next.js और Angular ऐप्लिकेशन की ज़रूरतों को पूरा करने के लिए बनाई गई है.

पहला विकल्प: Firebase होस्टिंग का इस्तेमाल करके डिप्लॉय करना

अगर आपको अपना GitHub रिपॉज़िटरी बनाना है और आपका सोर्स कोड सिर्फ़ आपकी मशीन पर सेव है, तो इस विकल्प का इस्तेमाल करें.

  1. अपने टर्मिनल में, ये निर्देश चलाकर Firebase होस्टिंग को शुरू करें:
    firebase experiments:enable webframeworks
    firebase init hosting
    
  2. प्रॉम्प्ट: Detected an existing Next.js codebase in your current directory, should we use this? के लिए, Y दबाएं.
  3. प्रॉम्प्ट: In which region would you like to host server-side content, if applicable? के लिए, डिफ़ॉल्ट जगह या वह जगह चुनें जिसका इस्तेमाल आपने इस कोडलैब में पहले किया था. इसके बाद, Enter (या macOS पर return) दबाएं.
  4. प्रॉम्प्ट: Set up automatic builds and deploys with GitHub? के लिए, N दबाएं.
  5. इस कमांड को चलाकर, अपने वेब ऐप्लिकेशन को होस्टिंग पर डिप्लॉय करें:
    firebase deploy --only hosting
    

सब हो गया! अगर आपको अपना ऐप्लिकेशन अपडेट करना है और उसके नए वर्शन को डिप्लॉय करना है, तो firebase deploy --only hosting को फिर से चलाएं. ऐसा करने पर, Firebase होस्टिंग आपके ऐप्लिकेशन को फिर से बनाएगी और डिप्लॉय करेगी.

दूसरा विकल्प: Firebase ऐप्लिकेशन होस्टिंग का इस्तेमाल करके डिप्लॉय करना

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

  1. GitHub पर अपने बदलावों को कमिट करें.
  2. Firebase कंसोल में, अपने Firebase प्रोजेक्ट में ऐप्लिकेशन होस्टिंग पर जाएं.
  3. शुरू करें > GitHub से कनेक्ट करें पर क्लिक करें.
  4. अपना GitHub खाता और रिपॉज़िटरी चुनें. आगे बढ़ें पर क्लिक करें.
  5. अगर आपका package.json आपकी रिपॉज़िटरी की रूट डायरेक्ट्री में नहीं है, तो डिप्लॉयमेंट सेटिंग > रूट डायरेक्ट्री में, अपने सोर्स कोड वाले फ़ोल्डर का नाम डालें.
  6. लाइव शाखा के लिए, अपने GitHub repo की main शाखा चुनें. आगे बढ़ें पर क्लिक करें.
  7. अपने बैकएंड के लिए कोई आईडी डालें. उदाहरण के लिए, chatbot.
  8. पूरा करें और डिप्लॉय करें पर क्लिक करें.

आपका नया डिप्लॉयमेंट तैयार होने में कुछ मिनट लगेंगे. डिप्लॉयमेंट की स्थिति देखने के लिए, Firebase कंसोल के ऐप्लिकेशन होस्टिंग सेक्शन में जाएं.

इसके बाद, जब भी GitHub रिपॉज़िटरी में कोई बदलाव किया जाएगा, तो Firebase ऐप्लिकेशन होस्टिंग आपके ऐप्लिकेशन को अपने-आप बनाकर डिप्लॉय कर देगा.

9. नतीजा

बधाई हो! आपने इस कोडलैब में बहुत कुछ हासिल किया है!

एक्सटेंशन इंस्टॉल और कॉन्फ़िगर करना

आपने Firebase कंसोल का इस्तेमाल करके, जनरेटिव एआई का इस्तेमाल करने वाले अलग-अलग Firebase एक्सटेंशन को कॉन्फ़िगर और इंस्टॉल किया है. Firebase एक्सटेंशन का इस्तेमाल करना आसान है. इसकी मदद से, आपको Google Cloud की सेवाओं के साथ पुष्टि करने या Firestore और Google Cloud की सेवाओं और एपीआई के साथ इंटरैक्ट करने के लिए, बैकएंड Cloud Functions लॉजिक या बहुत सारे बॉयलरप्लेट कोड के बारे में जानने और उन्हें लिखने की ज़रूरत नहीं होती.

Firebase कंसोल का इस्तेमाल करके एक्सटेंशन आज़माना

सीधे कोड में जाने के बजाय, आपने Firestore या Cloud Storage के ज़रिए दिए गए इनपुट के आधार पर, यह समझने में समय लिया कि ये genAI एक्सटेंशन कैसे काम करते हैं. यह सुविधा, किसी एक्सटेंशन के आउटपुट को डीबग करते समय खास तौर पर काम आ सकती है.

एआई की मदद से काम करने वाला वेब ऐप्लिकेशन बनाना

आपने एआई (AI) की मदद से काम करने वाला एक वेब ऐप्लिकेशन बनाया है, जो Gemini मॉडल की कुछ सुविधाओं को ऐक्सेस करने के लिए Firebase एक्सटेंशन का इस्तेमाल करता है.

वेब ऐप्लिकेशन में, "Gemini API के साथ चैटबॉट" एक्सटेंशन का इस्तेमाल करके, उपयोगकर्ता को इंटरैक्टिव चैट इंटरफ़ेस दिया जाता है. इसमें, बातचीत में ऐप्लिकेशन के हिसाब से और पुराने कॉन्टेक्स्ट शामिल होते हैं. साथ ही, हर मैसेज को किसी खास उपयोगकर्ता के स्कोप वाले Firestore दस्तावेज़ में सेव किया जाता है.

वेब ऐप्लिकेशन ने अपलोड की गई इमेज के लिए, जानकारी अपने-आप जनरेट करने के लिए, "Gemini API के साथ मल्टीमोडल टास्क" एक्सटेंशन का भी इस्तेमाल किया.

अगले चरण