Firebase Genkit की मदद से, अपने डेटा का इस्तेमाल करके जनरेटिव एआई की सुविधाएं तैयार करें

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

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

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

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

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

आपको यह जानकारी मिलेगी

  • Firestore की ऐडवांस वेक्टर मिलती-जुलती वैल्यू खोजने की सुविधाओं की मदद से, स्मार्ट ऐप्लिकेशन बनाने का तरीका.
  • Firebase Genkit का इस्तेमाल करके, अपने ऐप्लिकेशन में जनरेटिव एआई को लागू करने का तरीका.
  • अपने समाधान को डिप्लॉयमेंट और इंटिग्रेशन के लिए तैयार करें.

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

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

2. इस्तेमाल किए गए वेब ऐप्लिकेशन और क्लाउड सेवाओं की समीक्षा करें

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

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

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

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

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

d54f2043af908fb.png

इस्तेमाल की गई सेवाएं

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

सेवा

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

Firebase Genkit

Node.js / Next.js ऐप्लिकेशन में जनरेटिव एआई का इस्तेमाल करने के लिए, Genkit का इस्तेमाल किया जाता है.

Cloud Firestore

डेटा को Cloud Firestore में सेव किया जाता है. इसके बाद, इसका इस्तेमाल वेक्टर मिलते-जुलते खोजने के लिए किया जाता है.

Google Cloud का Vertex AI

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

Firebase App Hosting

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

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

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

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

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

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

  1. github.com/FirebaseExtended/codelab-ai-genkit-rag65ef006167d600ab.png से हमारे टेंप्लेट का इस्तेमाल करके, डेटा स्टोर करने की नई जगह बनाएं
  2. अभी-अभी बनाए गए कोडलैब के GitHub रिपॉज़िटरी का लोकल क्लोन बनाएं:
    git clone https://github.com/<your-github-handle>/codelab-ai-genkit-rag
    

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

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

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

अपने कंप्यूटर पर, क्लोन किया गया डेटा स्टोर करने की जगह ढूंढें और फ़ोल्डर के स्ट्रक्चर की समीक्षा करें:

फ़ोल्डर

जानकारी

genkit-functions

बैकएंड Genkit कोड

load-firestore-data

अपने Firestore कलेक्शन को तुरंत पहले से भरने के लिए हेल्पर कमांड लाइन टूल

*बाकी सब

Next.js वेब ऐप्लिकेशन कोड

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

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

Firebase सीएलआई इंस्टॉल करें

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

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

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

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

Google Cloud का gcloud CLI इंस्टॉल करना

  1. gcloud सीएलआई इंस्टॉल करें.
  2. अपने टर्मिनल में, Google Cloud में लॉग इन करें:
    gcloud auth login
    

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

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

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

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

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

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

  1. अपने Firebase प्रोजेक्ट में प्रोजेक्ट की खास जानकारी स्क्रीन पर जाएं और फिर वेब ऐप्लिकेशन को दिखाने वाला आइकॉन, जिसमें ओपनिंग ऐंगल ब्रैकेट, स्लैश, और क्लोज़िंग ऐंगल ब्रैकेट हैं वेब पर क्लिक करें.Firebase कंसोल में, प्रोजेक्ट की खास जानकारी वाले सेक्शन में सबसे ऊपर मौजूद वेब बटन
  2. ऐप्लिकेशन का कोई दूसरा नाम टेक्स्ट बॉक्स में, ऐप्लिकेशन का कोई ऐसा दूसरा नाम डालें जिसे याद रखना आसान हो. जैसे, My Compass Codelab App. Firebase होस्टिंग सेट अप करने के लिए, चेक बॉक्स से सही का निशान हटाया जा सकता है. इसकी वजह यह है कि इस कोडलैब के आखिरी चरण में, आपको होस्टिंग सेवा को सेट अप करने का विकल्प मिलेगा.
    वेब ऐप्लिकेशन पंजीकृत करना
  3. ऐप्लिकेशन रजिस्टर करें > Console पर जाएं पर क्लिक करें.

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

Firebase प्राइसिंग प्लान को अपग्रेड करना

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

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

Vertex AI की सदस्यता की कीमत के बारे में ज़्यादा जानें.

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

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

Cloud Firestore सेट अप करना

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

Vertex AI चालू करना

Vertex AI को सेट अप करने के लिए, gcloud CLI का इस्तेमाल करें. इस पेज पर दिए गए सभी निर्देशों के लिए, YOUR_PROJECT_ID को अपने Firebase प्रोजेक्ट के आईडी से बदलना न भूलें.

  1. अपने टर्मिनल में, Google Cloud SDK के लिए डिफ़ॉल्ट प्रोजेक्ट सेट करें:
    gcloud config set project YOUR_PROJECT_ID
    
  2. अगर आपको चेतावनी वाला यह मैसेज दिखे, जिसमें लिखा हो कि "चेतावनी: आपका ऐक्टिव प्रोजेक्ट, आपके लोकल ऐप्लिकेशन की डिफ़ॉल्ट क्रेडेंशियल फ़ाइल के कोटा प्रोजेक्ट से मेल नहीं खाता. इसकी वजह से, कोटा से जुड़ी समस्याएं पैदा हो सकती हैं जिनकी उम्मीद नहीं थी.",
    gcloud auth application-default set-quota-project YOUR_PROJECT_ID
    
  3. अपने प्रोजेक्ट में Vertex AI की सेवा चालू करने के लिए:
    gcloud services enable aiplatform.googleapis.com
    

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

वेब ऐप्लिकेशन को चलाने के लिए, आपको अपने टर्मिनल में निर्देश चलाने होंगे और कोड एडिटर में कोड जोड़ना होगा. इस पेज पर दिए गए सभी निर्देशों के लिए, YOUR_PROJECT_ID को अपने Firebase प्रोजेक्ट के आईडी से बदलना न भूलें.

अपने प्रोजेक्ट को टारगेट करने के लिए, Firebase CLI को कॉन्फ़िगर करना

  1. अपने टर्मिनल में, अपने कोडलैब प्रोजेक्ट की रूट डायरेक्ट्री पर जाएं.
  2. Firebase सीएलआई को अपने Firebase प्रोजेक्ट के लिए सभी कमांड चलाने की सुविधा देने के लिए, नीचे दिया गया कमांड चलाएं:
    firebase use YOUR_PROJECT_ID
    

Firestore में सैंपल डेटा इंपोर्ट करना

यह कोडलैब आपको Firestore के लिए, पहले से जनरेट किया गया सैंपल डेटा उपलब्ध कराता है, ताकि आप जल्दी से काम शुरू कर सकें.

  1. लोकल कोड बेस को ऐसे कोड चलाने की अनुमति देने के लिए जो आम तौर पर सेवा खाते का इस्तेमाल करता है, अपने टर्मिनल में यह कमांड चलाएं:
    gcloud auth application-default login
    
    इससे आपके ब्राउज़र में एक नया टैब खुल जाएगा. उसी Google खाते से लॉग इन करें जिसका इस्तेमाल आपने पिछले चरणों में किया था.
  2. Firestore का सैंपल डेटा इंपोर्ट करने के लिए, ये कमांड चलाएं:
    cd load-firestore-data
    npm ci
    node index.js YOUR_PROJECT_ID
    cd ..
    
  3. Firebase कंसोल में, अपने Firebase प्रोजेक्ट के Firestore सेक्शन पर जाकर पुष्टि करें कि आपके डेटाबेस में डेटा जुड़ गया है.इसके बाद, आपको इंपोर्ट किया गया डेटा स्कीमा और उसका कॉन्टेंट दिखेगा.Firebase कंसोल में Compass का सैंपल डेटा

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

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

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

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

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

Compass ऐप्लिकेशन की होम स्क्रीन

Compass, React सर्वर कॉम्पोनेंट का इस्तेमाल करने वाला Next.js ऐप्लिकेशन है. यह इसका होम पेज है.

मेरी ड्रीम ट्रिप ढूंढें पर क्लिक करें. आप देख सकते हैं कि यह फ़िलहाल कुछ तय डेस्टिनेशन के लिए हार्ड कोड किया गया कुछ डेटा दिखाता है:

मेरी ड्रीम ट्रिप की स्क्रीन ढूंढें

बेझिझक एक्सप्लोर करें. जब आप जारी रखने के लिए तैयार हों, तो (ऊपर दाएँ कोने में) होम होम बटन पर क्लिक करें.

6. Genkit की मदद से जनरेटिव एआई का इस्तेमाल करें

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

Genkit, ट्रैस और फ़्लो स्टेटस को सेव कर सकता है. इससे, Genkit फ़्लो को लागू करने के नतीजे की जांच की जा सकती है. इस कोडलैब में, आपको इन ट्रेस को सेव करने के लिए Firestore का इस्तेमाल करना होगा.

इस कोडलैब के आखिरी चरण में, आपको Firebase ऐप्लिकेशन होस्टिंग पर अपना Genkit ऐप्लिकेशन डिप्लॉय करना होगा.

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

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

  1. अपने ऐप्लिकेशन का Firebase कॉन्फ़िगरेशन पाएं:
    1. Firebase कंसोल में, अपने Firebase प्रोजेक्ट पर जाएं.
    2. बाईं ओर मौजूद पैनल में, प्रोजेक्ट की खास जानकारी के बगल में मौजूद गियर आइकॉन पर क्लिक करें. इसके बाद, प्रोजेक्ट की सेटिंग चुनें.
    3. "आपके ऐप्लिकेशन" कार्ड में, अपना वेब ऐप्लिकेशन चुनें.
    4. "SDK टूल का सेटअप और कॉन्फ़िगरेशन" सेक्शन में, कॉन्फ़िगरेशन का विकल्प चुनें.
    5. स्निपेट कॉपी करें. यह const firebaseConfig ... से शुरू होता है.
  2. अपने Genkit ऐप्लिकेशन के कोडबेस में, अपने ऐप्लिकेशन का Firebase कॉन्फ़िगरेशन जोड़ें:
    1. अपने कोड एडिटर में, genkit-functions/src/lib/genkit.config.ts फ़ाइल खोलें.
    2. सही सेक्शन को कॉपी किए गए कोड से बदलें.
    3. फ़ाइल सेव करें.

Genkit का डेवलपर यूज़र इंटरफ़ेस (यूआई) लॉन्च करना

Genkit में वेब-आधारित यूज़र इंटरफ़ेस (यूआई) होता है. इसकी मदद से, एलएलएम, Genkit फ़्लो, रीट्रिवर, और एआई के अन्य कॉम्पोनेंट के साथ इंटरैक्ट किया जा सकता है.

  1. Genkit डेवलपर यूज़र इंटरफ़ेस (यूआई) लॉन्च करें:
    1. कोई नई टर्मिनल विंडो खोलें.
    2. अपनी genkit-functions डायरेक्ट्री की रूट पर जाएं.
    3. Genkit डेवलपर यूज़र इंटरफ़ेस (यूआई) को शुरू करने के लिए, यह कमांड चलाएं:
      cd genkit-functions
      npx genkit start
      
  2. अपने ब्राउज़र में, स्थानीय तौर पर होस्ट किए गए Genkit के यूआरएल पर जाएं. ज़्यादातर मामलों में, यह http://localhost:4000/ होता है.

Gemini के साथ इंटरैक्ट करें

अब Genkit के डेवलपर यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके, काम करने वाले किसी भी मॉडल या एआई के किसी भी अन्य कॉम्पोनेंट के साथ इंटरैक्ट किया जा सकता है. जैसे, प्रॉम्प्ट, रीट्रिवर, और Genkit फ़्लो.

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

Genkit डेवलपर यूज़र इंटरफ़ेस (यूआई) में, Gemini मॉडल के साथ इंटरैक्ट करना

प्रॉम्प्ट मैनेज करना

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

डॉटप्रॉम्प्ट का इस्तेमाल करने के लिए, 'हैलो-वर्ल्ड' से शुरुआत करें:

  1. अपने कोड एडिटर में, genkit-functions/prompts/1-hello-world.prompt फ़ाइल खोलें.
  2. Genkit Developer के यूज़र इंटरफ़ेस (यूआई) में, dotprompt/1-hello-world खोलें.
  3. अपनी पसंद की किसी भी भाषा के नाम या कोड का इस्तेमाल करें या इसे खाली स्ट्रिंग के तौर पर छोड़ दें.
  4. चालू करें पर क्लिक करें.स्वीडिश भाषा में अभिवादन करने के लिए, Dotprompt का इस्तेमाल करना
  5. अलग-अलग वैल्यू डालकर देखें. बड़े लैंग्वेज मॉडल, इस तरह की आसान क्वेरी में छोटे, गलत स्पेलिंग वाले या अधूरे प्रॉम्प्ट को समझने में अच्छे होते हैं.

स्ट्रक्चर्ड डेटा की मदद से अपने आउटपुट को बेहतर बनाएं

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

आउटपुट स्कीमा को एक्सप्लोर करना

एलएलएम कॉल के लिए, आउटपुट स्कीमा भी तय किया जा सकता है.

  1. अपने कोड एडिटर में, प्रॉम्प्ट फ़ाइल की जांच करें:
    1. dotprompt/2-simple-itinerary फ़ाइल खोलें.
    2. तय किए गए इनपुट और आउटपुट स्कीमा की जांच करें.
  2. यूज़र इंटरफ़ेस (यूआई) के साथ इंटरैक्ट करें:
    1. Genkit डेवलपर यूज़र इंटरफ़ेस (यूआई) में, dotprompt/2-simple-itinerary सेक्शन पर जाएं.
    2. place और interests फ़ील्ड में सैंपल डेटा डालकर इनपुट दें:
      {
          "interests": [
              "Museums"
          ],
          "place": "Paris"
      }
      
    3. Run पर क्लिक करें.

आउटपुट स्कीमा तय करने के लिए, Dotprompt का इस्तेमाल करना

स्कीमा पर आधारित आउटपुट को समझना

देखें कि जनरेट किया गया आउटपुट, तय स्कीमा के मुताबिक कैसे काम करता है. अपने हिसाब से स्ट्रक्चर तय करने का मतलब है कि आपने एलएलएम को ऐसा डेटा बनाने के लिए कहा है जिसे आसानी से पार्स किया जा सके और आपके ऐप्लिकेशन में इंटिग्रेट किया जा सके. Genkit, स्कीमा के हिसाब से आउटपुट की पुष्टि अपने-आप करता है. इससे डेटा की सुरक्षा को पक्का किया जाता है.

इसके अलावा, अगर आउटपुट स्कीमा से मेल नहीं खाता है, तो उसे फिर से ठीक करने के लिए Genkit को कॉन्फ़िगर किया जा सकता है या उसे ठीक करने की कोशिश की जा सकती है.

आउटपुट स्कीमा के मुख्य फ़ायदे

  • इंटिग्रेशन को आसान बनाना: अपने ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) एलिमेंट में स्ट्रक्चर्ड डेटा को आसानी से शामिल करें.
  • डेटा की पुष्टि करना: पक्का करें कि जनरेट किए गए आउटपुट सही और एक जैसे हों.
  • गड़बड़ी ठीक करना: स्कीमा के मेल न खाने की समस्या को हल करने के लिए, तरीके लागू करें.

आउटपुट स्कीमा का इस्तेमाल करने से Genkit का अनुभव बेहतर होता है. इससे आपको अपनी ज़रूरत के मुताबिक स्ट्रक्चर्ड डेटा बनाने में मदद मिलती है, ताकि उपयोगकर्ता को बेहतर और ज़्यादा डाइनैमिक अनुभव मिल सके.

मल्टीमोडल इनपुट इस्तेमाल करें

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

  1. अपने कोड एडिटर में, प्रॉम्प्ट फ़ाइल की जांच करें:
    1. genkit-functions/prompts/imgDescription.prompt फ़ाइल खोलें.
    2. {{media url=this}} को शामिल करने पर ध्यान दें. यह एक हैंडलबार सिंटैक्स एलिमेंट है, जो आपके प्रॉम्प्ट में इमेज शामिल करने में मदद करता है.
  2. यूज़र इंटरफ़ेस (यूआई) के साथ इंटरैक्ट करें:
    1. Genkit डेवलपर यूज़र इंटरफ़ेस (यूआई) में, dotprompt/imgDescription प्रॉम्प्ट खोलें.
    2. imageUrls फ़ील्ड में इमेज का यूआरएल डालें. इसके लिए, इमेज का यूआरएल चिपकाएं. उदाहरण के लिए, एफ़िल टावर दिखाने वाली Wikipedia की थंबनेल इमेज का इस्तेमाल किया जा सकता है:
      {
          "imageUrls": [
              "https://upload.wikimedia.org/wikipedia/commons/thumb/4/4b/La_Tour_Eiffel_vue_de_la_Tour_Saint-Jacques%2C_Paris_ao%C3%BBt_2014_%282%29.jpg/556px-La_Tour_Eiffel_vue_de_la_Tour_Saint-Jacques%2C_Paris_ao%C3%BBt_2014_%282%29.jpg"
          ]
      }
      
    3. चालू करें पर क्लिक करें.

7. वेक्टर समानता खोजने की सुविधा का इस्तेमाल करके डेटा वापस पाएं

एआई मॉडल की मदद से क्रिएटिव कॉन्टेंट जनरेट करना काफ़ी शानदार है. हालांकि, ज़रूरी कामों के लिए, अक्सर आउटपुट को किसी खास कॉन्टेक्स्ट में रखना ज़रूरी होता है.

कोडलैब के इस मामले में, आपके पास डेस्टिनेशन (जगहों और गतिविधियों) का एक डेटाबेस है. आपको यह पक्का करना होगा कि Gemini मॉडल के जनरेट किए गए सुझाव, इस डेटाबेस में मौजूद एंट्री के हिसाब से ही हों.

स्ट्रक्चर नहीं की गई क्वेरी और काम के कॉन्टेंट के बीच के अंतर को कम करने के लिए, जनरेट किए गए एम्बेड पर वेक्टर से मिलते-जुलते विषयों से जुड़ी खोज का इस्तेमाल करें.

एम्बेड और वेक्टर की समानता को समझना

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

डेटा वापस पाने की प्रोसेस के काम करने का तरीका समझना

  1. क्वेरी एम्बेड करना: आपके उपयोगकर्ता से मिलने वाले इनपुट (उदाहरण के लिए, "दिल्ली में रोमैंटिक डिनर") को एम्बेड करने वाले मॉडल से पास किया जाता है, जिससे क्वेरी वेक्टर जनरेट होता है.
  2. डेटाबेस एम्बेडिंग: आम तौर पर, आपने डेस्टिनेशन के डेटाबेस को पहले से प्रोसेस कर लिया होता है. साथ ही, हर एंट्री के लिए एम्बेडिंग वेक्टर बना लिया होता है.
  3. मिलते-जुलते डाइमेंशन का कैलकुलेशन: क्वेरी वेक्टर की तुलना, डेटाबेस में मौजूद हर एम्बेडिंग वेक्टर से की जाती है. इसके लिए, समानता वाली मेट्रिक (जैसे, कोसाइन (कोसाइन)) का इस्तेमाल किया जाता है.
  4. वापस पाना: क्वेरी वेक्टर से उनकी निकटता के आधार पर डेटाबेस की सबसे मिलती-जुलती एंट्री, काम के सुझावों के रूप में ली जाती हैं.

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

Firestore में वेक्टर समानता खोजने की सुविधा चालू करें

इस कोडलैब के पिछले चरण में, आपने अपने Firestore डेटाबेस में जगहों और गतिविधियों के सैंपल डाले थे. हर जगह की जानकारी में, knownFor टेक्स्ट फ़ील्ड होता है, जिसमें जगह की खास विशेषताओं के बारे में बताया जाता है. साथ ही, उससे जुड़ा embedding फ़ील्ड होता है, जिसमें इस जानकारी का वेक्टर वर्शन होता है.

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

  1. अपने टर्मिनल में, नया alpha कॉम्पोनेंट इंस्टॉल करने के लिए यह कमांड चलाएं. आपके पास 2024.05.03 या इसके बाद का वर्शन होना चाहिए:
    gcloud components install alpha
    
  2. इंडेक्स बनाएं और YOUR_PROJECT_ID को अपने प्रोजेक्ट के आईडी से बदलना न भूलें.
    gcloud alpha firestore indexes composite create --project=YOUR_PROJECT_ID --collection-group=places --query-scope=COLLECTION --field-config=vector-config='{"dimension":"768","flat": "{}"}',field-path=embedding
    
  3. Genkit Developer के यूज़र इंटरफ़ेस (यूआई) में, placesRetriever खोलें.
  4. चालू करें पर क्लिक करें. प्लेसहोल्डर टेक्स्ट के साथ स्कैफ़ोल्ड किए गए ऑब्जेक्ट को देखें. इससे पता चलता है कि आपको रीट्रिवर लॉजिक को कहां लागू करना है.
  5. अपने कोड एडिटर में, genkit-functions/src/lib/placesRetriever.ts फ़ाइल खोलें.
  6. नीचे तक स्क्रोल करें और प्लेसहोल्डर placesRetriever की जगह यह डालें:
    export const placesRetriever = defineFirestoreRetriever({
      name: 'placesRetriever',
      firestore,
      collection: 'places',
      contentField: 'knownFor',
      vectorField: 'embedding',
      embedder: textEmbeddingGecko,
      distanceMeasure: 'COSINE',
    });
    

डेटा पाने वाले टूल की जांच करना

  1. Genkit डेवलपर यूज़र इंटरफ़ेस (यूआई) में, placesRetriever रीट्रिवर खोलें.
  2. यह क्वेरी दें:
    {
        "content": [
            {
                "text": "UNESCO"
            }
        ]
    }
    
  3. विकल्प भी दिए जा सकते हैं. उदाहरण के लिए, यहां यह बताने का तरीका बताया गया है कि रिट्रीवर को कितने दस्तावेज़ देने चाहिए:
    {
        "limit": 4
    }
    
  4. चालू करें पर क्लिक करें.

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

8. Genkit की मदद से, रिट्रीवल ऑगमेंटेड जनरेशन (आरएजी)

पिछले सेक्शन में, आपने टेक्स्ट, JSON, और इमेज को मैनेज करने के साथ-साथ, अपने उपयोगकर्ताओं के लिए छुट्टियों के डेस्टिनेशन और दिलचस्प कॉन्टेंट जनरेट करने वाले अलग-अलग प्रॉम्प्ट बनाए हैं. आपने एक प्रॉम्प्ट भी लागू किया है, जो आपके Firestore डेटाबेस से काम के डेस्टिनेशन हासिल करता है. अब, इन कॉम्पोनेंट को एक साथ जोड़कर, रिट्रीवल ऑगमेंटेड जनरेशन (आरएजी) फ़्लो बनाएं.

इस सेक्शन में, Genkit के एक अहम कॉन्सेप्ट के बारे में बताया गया है. इसे फ़्लो कहा जाता है. फ़्लो अच्छी तरह टाइप किए जाने वाले और स्ट्रीम किए जा सकने वाले ऐसे फ़ंक्शन होते हैं जिन्हें स्थानीय तौर पर या किसी दूसरी जगह से, पूरी तरह से मॉनिटर किया जा सकता है. आपके पास Genkit के सीएलआई और Genkit डेवलपर यूज़र इंटरफ़ेस (यूआई), दोनों से फ़्लो को मैनेज और शुरू करने का विकल्प होता है.

  1. अपने कोड एडिटर में, यात्रा की योजना के लिए प्रॉम्प्ट की जांच करें:
    1. genkit-functions/prompts/itineraryGen.prompt फ़ाइल खोलें.
    2. ध्यान दें कि अतिरिक्त इनपुट स्वीकार करने के लिए, प्रॉम्प्ट को कैसे बड़ा किया गया है. खास तौर पर, रीट्रिवर से मिला गतिविधियों का डेटा.
  2. Genkit डेवलपर यूज़र इंटरफ़ेस (यूआई) में, genkit-functions/src/lib/itineraryFlow.ts फ़ाइल में Genkit फ़्लो देखें.
    सलाह: डीबग करने की प्रोसेस को आसान बनाने के लिए, लंबे फ़्लो को छोटे और मैनेज किए जा सकने वाले चरणों में बांटें.
  3. "इमेज की जानकारी" चरण को जोड़कर, प्रक्रिया को बेहतर बनाएं:
    1. TODO: 2 टिप्पणी ढूंढें (लाइन 70 के आस-पास). इससे उस जगह का पता चलता है जहां आपको फ़्लो को बेहतर बनाना है.
    2. खाली imgDescription प्लेसहोल्डर को imgDescription प्रॉम्प्ट कॉल से जनरेट किए गए आउटपुट से बदलें.
  4. फ़्लो की जांच करें:
    1. itineraryFlow पर जाएं.
    2. जोड़े गए नए चरण के साथ itineraryFlow को लागू करने की जांच करने के लिए, यहां दिए गए इनपुट का इस्तेमाल करें:
      {
          "request": "Sightseeing in Paris",
          "imageUrls": [
              "https://upload.wikimedia.org/wikipedia/commons/thumb/4/4b/La_Tour_Eiffel_vue_de_la_Tour_Saint-Jacques%2C_Paris_ao%C3%BBt_2014_%282%29.jpg/556px-La_Tour_Eiffel_vue_de_la_Tour_Saint-Jacques%2C_Paris_ao%C3%BBt_2014_%282%29.jpg"
          ]
      }
      
    3. चालू करें पर क्लिक करें.
    4. जनरेट किए गए आउटपुट को देखें. इसमें, यात्रा की योजना के सुझाव में इमेज के ब्यौरे को शामिल किया जाना चाहिए.
  5. अगर आपको कोई गड़बड़ी या अनचाहा व्यवहार दिखता है, तो ज़्यादा जानकारी के लिए, जांच करें टैब देखें. ट्रेस स्टोर में, इस टैब का इस्तेमाल करके एक्ज़ीक्यूशन का इतिहास देखा जा सकता है.

आपके वेब ऐप्लिकेशन के लिए RAG

  1. अपने ब्राउज़र में http://localhost:3000/ पर जाकर पक्का करें कि वेब ऐप्लिकेशन अब भी चल रहा हो.
  2. अगर वेब ऐप्लिकेशन अब काम नहीं कर रहा है, तो अपने टर्मिनल में ये निर्देश चलाएं:
    npm install
    npm run dev
    
  3. Dream Your Vacation वेब ऐप्लिकेशन पेज (http://localhost:3000/gemini) पर जाएं.
  4. Next.js इंटिग्रेशन के उदाहरण के लिए, इसका सोर्स कोड (src/app/gemini/page.tsx) देखें.

1e626124e09e04e9.pngb059decb53c249a1.pnge31f6acf87a98cb2.png19c0c9459d5e1601.png

9. Firebase ऐप्लिकेशन होस्टिंग की मदद से अपने ऐप्लिकेशन को डिप्लॉय करें

इस प्रोसेस का आखिरी चरण है अपने वेब ऐप्लिकेशन को डिप्लॉय करना. आपको Firebase ऐप्लिकेशन होस्टिंग का फ़ायदा मिलेगा. यह फ़्रेमवर्क को लेकर जानकारी देने वाला होस्टिंग समाधान है. इसे बिना सर्वर वाले बैकएंड पर Next.js और Angular ऐप्लिकेशन के डिप्लॉयमेंट को आसान बनाने के लिए डिज़ाइन किया गया है.

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

डिप्लॉयमेंट की स्थिति की निगरानी करना

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

अपने सेवा खाते को अनुमतियां देना

अपने Node.js बैकएंड को Vertex AI के संसाधनों को ऐक्सेस करने के लिए, अपने ऐप्लिकेशन के सेवा खाते के लिए aiplatform.user की भूमिका असाइन करनी होगी:

gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
--member "serviceAccount:firebase-app-hosting-compute@YOUR_PROJECT_ID.iam.gserviceaccount.com" \
--role "roles/aiplatform.user"

प्रोसेस पूरी होने के बाद, उपयोगकर्ता आपके वेब ऐप्लिकेशन को ऐक्सेस कर पाएंगे.

अपने-आप फिर से डिप्लॉयमेंट

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

10. नतीजा

इस कोडलैब को पूरा करने पर बधाई!

आपने Firebase Genkit, Firestore, और Vertex AI की सुविधाओं का इस्तेमाल करके, एक बेहतरीन "फ़्लो" बनाया है. यह उपयोगकर्ता की पसंद और प्रेरणा के आधार पर, छुट्टियों के लिए मनमुताबिक सुझाव जनरेट करता है. साथ ही, यह सब आपके ऐप्लिकेशन के डेटा में मौजूद सुझावों के आधार पर भी किया जा सकता है.

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

  • प्रॉम्प्ट मैनेजमेंट: साथ मिलकर बेहतर तरीके से काम करने और वर्शन कंट्रोल के लिए, प्रॉम्प्ट को कोड के तौर पर व्यवस्थित और मैनेज करना.
  • मल्टीमॉडल कॉन्टेंट: एआई (AI) इंटरैक्शन को बेहतर बनाने के लिए, इमेज और टेक्स्ट जैसे अलग-अलग तरह के डेटा को इंटिग्रेट करना.
  • इनपुट/आउटपुट स्कीमा: अपने ऐप्लिकेशन में आसानी से इंटिग्रेशन और पुष्टि करने के लिए, डेटा को व्यवस्थित करना.
  • वेक्टर स्टोर: एक जैसी समानता और काम की जानकारी वापस पाने के लिए, वेक्टर एम्बेड करने की सुविधा का इस्तेमाल करना.
  • डेटा वापस पाना: डेटाबेस से डेटा को फ़ेच करने और उसे एआई से बनाए गए कॉन्टेंट में शामिल करने के तरीके लागू करना.
  • रिट्रीवल ऑगमेंटेड जनरेशन (आरएजी): कॉन्टेक्स्ट के हिसाब से काम के और सटीक आउटपुट पाने के लिए, जनरेटिव एआई के साथ रिट्रीवल टेक्नोलॉजी का इस्तेमाल करना.
  • फ़्लो इंस्ट्रूमेंटेशन: आसानी से और निगरानी के साथ लागू करने के लिए, एआई के जटिल वर्कफ़्लो बनाना और उन्हें ऑर्केस्ट्रेट करना.

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

डिप्लॉयमेंट के अन्य विकल्पों का पता लगाना

Genkit, आपकी ज़रूरतों के हिसाब से डिप्लॉयमेंट के कई विकल्प उपलब्ध कराता है. इनमें ये शामिल हैं:

अपने (package.json) नोड फ़ोल्डर में नीचे दिया गया निर्देश चलाकर, अपने हिसाब से सबसे अच्छा विकल्प चुनें:

npx genkit init

अगले चरण