Google Chat, Vertex AI, और Firestore की मदद से प्रोजेक्ट मैनेज करें

इस ट्यूटोरियल में, Google Chat ऐप्लिकेशन बनाने का तरीका बताया गया है. इस ऐप्लिकेशन का इस्तेमाल करके, कोई टीम रीयल टाइम में प्रोजेक्ट मैनेज कर सकती है. Chat ऐप्लिकेशन, Vertex AI का इस्तेमाल करता है. इससे टीमें, उपयोगकर्ता की कहानियां लिख पाती हैं. ये कहानियां, किसी सॉफ़्टवेयर सिस्टम की उन सुविधाओं के बारे में बताती हैं जिन्हें टीम को उपयोगकर्ता के हिसाब से डेवलप करना होता है. साथ ही, इन कहानियों को Firestore डेटाबेस में सेव किया जाता है.

  • प्रोजेक्ट मैनेजमेंट ऐप्लिकेशन का नाम लेने पर, ऐप्लिकेशन मदद करने के लिए तैयार हो जाता है.
    पहली इमेज. चार्ली, Chat स्पेस में अपनी टीम के साथ किसी सुविधा को डेवलप करने के बारे में बातचीत करता है. प्रोजेक्ट मैनेजमेंट के लिए Chat ऐप्लिकेशन का नाम लेने पर, Chat ऐप्लिकेशन आपको मदद करने के लिए सुझाव देगा.
  • स्टोरी बनाने के लिए, /createUserStory स्लैश कमांड का इस्तेमाल करना.
    दूसरी इमेज. /createUserStory स्लैश कमांड का इस्तेमाल करके, चार्ली एक कहानी बनाता है.
  • प्रोजेक्ट मैनेजमेंट वाला चैट ऐप्लिकेशन, कहानी के ब्यौरे को लिखने के लिए Vertex AI का इस्तेमाल करता है.
    तीसरी इमेज. प्रोजेक्ट मैनेजमेंट के लिए इस्तेमाल किया जाने वाला Chat ऐप्लिकेशन, कहानी का ब्यौरा लिखने के लिए Vertex AI का इस्तेमाल करता है. इसके बाद, कहानी को स्पेस में शेयर करता है.
  • चार्ली कहानी की जानकारी को फ़ाइनल करता है.
    चौथी इमेज. कहानी की जानकारी को फ़ाइनल करने के लिए, चार्ली बदलाव करें पर क्लिक करता है. एआई से मिली जानकारी सटीक है, लेकिन चार्ली को ज़्यादा जानकारी चाहिए. इसलिए, चार्ली बड़ा करें पर क्लिक करता है, ताकि Vertex AI कहानी के ब्यौरे में ज़रूरी जानकारी जोड़ सके. चार्ली, कहानी को खुद को असाइन करता है. इसके बाद, स्थिति को 'शुरू हो गया' के तौर पर सेट करता है. साथ ही, प्राथमिकता और साइज़ चुनता है. इसके बाद, सेव करें पर क्लिक करता है.
  • टीम की सभी यूज़र स्टोरी मैनेज करना.
    पांचवीं इमेज. चार्ली, /manageUserStories स्लैश कमांड
    का इस्तेमाल करके, टीम के सभी सदस्यों की यूज़र स्टोरी को कभी भी देख और मैनेज कर सकता है.

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

मकसद

  • एक ऐसा Chat ऐप्लिकेशन बनाओ जो ऐजाइल सॉफ़्टवेयर प्रोजेक्ट मैनेज कर सके.
  • Vertex AI की मदद से काम करने वाले, कहानी लिखने के टूल की मदद से, उपयोगकर्ताओं को जनरेटिव एआई की मदद से यूज़र स्टोरी लिखने में मदद करें:
    • स्टोरी के ब्यौरे जनरेट करना और उन्हें फिर से जनरेट करना.
    • ज़रूरी शर्तों को पूरा करने के लिए, नोट में दी गई कहानी की जानकारी को बड़ा करें.
    • टाइपिंग की गड़बड़ियों को ठीक करने के लिए, व्याकरण में सुधार करना.
  • Firestore डेटाबेस में डेटा लिखकर और उससे डेटा पढ़कर, काम को अप-टू-डेट रखें.
  • Chat स्पेस में मिलकर काम करने की सुविधा मिलती है. इससे उपयोगकर्ता, बातचीत के दौरान सीधे तौर पर ये काम कर सकते हैं: स्टोरी बनाना, उसमें बदलाव करना, उसे असाइन करना, और उसे शुरू करना.

इस्तेमाल किए गए प्रॉडक्ट

प्रोजेक्ट मैनेजमेंट ऐप्लिकेशन, Google Workspace और Google Cloud के इन प्रॉडक्ट का इस्तेमाल करता है:

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

    Cloud Functions, इन Google Cloud प्रॉडक्ट का इस्तेमाल करता है:

    • Cloud Build: यह पूरी तरह से मैनेज किया जाने वाला, लगातार इंटिग्रेशन, डिलीवरी, और डिप्लॉयमेंट प्लैटफ़ॉर्म है. यह ऑटोमेटेड बिल्ड चलाता है.
    • Pub/Sub: यह एक एसिंक्रोनस और स्केलेबल मैसेज सेवा है. यह मैसेज जनरेट करने वाली सेवाओं को, उन सेवाओं से अलग करती है जो उन मैसेज को प्रोसेस करती हैं.
    • Cloud Run Admin API: कंटेनर वाले ऐप्लिकेशन चलाने के लिए, पूरी तरह से मैनेज किया गया एनवायरमेंट.

आर्किटेक्चर

प्रोजेक्ट मैनेजमेंट के लिए Google Chat ऐप्लिकेशन का आर्किटेक्चर, एचटीटीपी एंडपॉइंट पर Chat इंटरैक्शन इवेंट को पाता है और उन्हें प्रोसेस करता है. साथ ही, उपयोगकर्ता की स्टोरी लिखने में मदद करने के लिए Vertex AI का इस्तेमाल करता है. इसके अलावा, उपयोगकर्ता की स्टोरी की जानकारी को Firestore डेटाबेस में सेव करता है. इस डायग्राम में, Google Workspace और इस्तेमाल किए गए Google Cloud संसाधनों का आर्किटेक्चर दिखाया गया है.

प्रोजेक्ट मैनेजमेंट के लिए Google Chat ऐप्लिकेशन का आर्किटेक्चर डायग्राम

प्रोजेक्ट मैनेजमेंट से जुड़ा Google Chat ऐप्लिकेशन इस तरह काम करता है:

  1. कोई उपयोगकर्ता Chat में मैसेज भेजता है और प्रोजेक्ट मैनेजमेंट वाले Google Chat ऐप्लिकेशन को चालू करता है. इसके लिए, वह ऐप्लिकेशन को सीधे मैसेज भेजता है, उसे किसी स्पेस में टैग करता है या स्लैश कमांड डालता है.

  2. Chat, Cloud Functions के एचटीटीपी एंडपॉइंट पर एक सिंक्रोनस एचटीटीपी अनुरोध भेजता है.

  3. प्रोजेक्ट मैनेजमेंट से जुड़ा Google Chat ऐप्लिकेशन, एचटीटीपी अनुरोध को प्रोसेस करता है:

    1. Vertex AI, उपयोगकर्ता की कहानी लिखने या उसे अपडेट करने में मदद करता है.

    2. Firestore डेटाबेस, उपयोगकर्ता की कहानी का डेटा सेव करता है, उसे वापस पाता है, अपडेट करता है या मिटाता है.

  4. Cloud Functions, Chat को एक एचटीटीपी रिस्पॉन्स भेजता है. Chat, इसे उपयोगकर्ता को मैसेज या डायलॉग के तौर पर दिखाता है.

एनवायरमेंट तैयार करना

इस सेक्शन में, Chat ऐप्लिकेशन के लिए Google Cloud प्रोजेक्ट बनाने और उसे कॉन्फ़िगर करने का तरीका बताया गया है.

Google Cloud प्रोजेक्ट बनाना

Google API (एपीआई) कंसोल

  1. Google API Console में, मेन्यू > IAM और एडमिन > प्रोजेक्ट बनाएं पर जाएं.

    प्रोजेक्ट बनाएं पर जाएं

  2. प्रोजेक्ट का नाम फ़ील्ड में, अपने प्रोजेक्ट के लिए जानकारी देने वाला नाम डालें.

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

  3. जगह फ़ील्ड में, ब्राउज़ करें पर क्लिक करके, अपने प्रोजेक्ट के लिए संभावित जगहें दिखाएं. इसके बाद, चुनें पर क्लिक करें.
  4. बनाएं पर क्लिक करें. Google API Console, डैशबोर्ड पेज पर रीडायरेक्ट हो जाता है. इसके बाद, आपका प्रोजेक्ट कुछ ही मिनटों में बन जाता है.

gcloud सीएलआई

नीचे दिए गए डेवलपमेंट एनवायरमेंट में से किसी एक में, Google Cloud सीएलआई (gcloud) को ऐक्सेस करें:

  • Cloud Shell: gcloud CLI के साथ ऑनलाइन टर्मिनल का इस्तेमाल करने के लिए, Cloud Shell चालू करें.
    Cloud Shell चालू करें
  • लोकल शेल: लोकल डेवलपमेंट एनवायरमेंट का इस्तेमाल करने के लिए, gcloud सीएलआई को इंस्टॉल करें और शुरू करें.
    Cloud प्रोजेक्ट बनाने के लिए, gcloud projects create कमांड का इस्तेमाल करें:
    gcloud projects create PROJECT_ID
    आपको जिस प्रोजेक्ट को बनाना है उसके लिए आईडी सेट करके, PROJECT_ID को बदलें.

Cloud प्रोजेक्ट के लिए बिलिंग की सुविधा चालू करना

Google API (एपीआई) कंसोल

  1. Google API Console में, बिलिंग पर जाएं. मेन्यू > बिलिंग > मेरे प्रोजेक्ट पर क्लिक करें.

    मेरे प्रोजेक्ट के लिए बिलिंग पर जाएं

  2. कोई संगठन चुनें में जाकर, अपने Google Cloud प्रोजेक्ट से जुड़ा संगठन चुनें.
  3. प्रोजेक्ट की लाइन में, कार्रवाइयां मेन्यू () खोलें. इसके बाद, बिलिंग बदलें पर क्लिक करें और Cloud Billing खाता चुनें.
  4. खाता सेट करें पर क्लिक करें.

gcloud सीएलआई

  1. उपलब्ध बिलिंग खातों की सूची देखने के लिए, यह कमांड चलाएं:
    gcloud billing accounts list
  2. किसी बिलिंग खाते को Google Cloud प्रोजेक्ट से लिंक करने के लिए:
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    इनकी जगह ये डालें:

    • PROJECT_ID उस Cloud प्रोजेक्ट का प्रोजेक्ट आईडी है जिसके लिए आपको बिलिंग की सुविधा चालू करनी है.
    • BILLING_ACCOUNT_ID वह बिलिंग खाता आईडी है जिसे Google Cloud प्रोजेक्ट से लिंक करना है.

एपीआई चालू करना

Google API (एपीआई) कंसोल

  1. Google API Console में, Google Chat API, Vertex AI API, Cloud Functions API, Firestore API, Cloud Build API, Pub/Sub API, और Cloud Run Admin API चालू करें.

    एपीआई चालू करना

  2. पुष्टि करें कि आपने सही Cloud प्रोजेक्ट में एपीआई चालू किए हैं. इसके बाद, आगे बढ़ें पर क्लिक करें.

  3. पुष्टि करें कि आपने सही एपीआई चालू किए हैं. इसके बाद, चालू करें पर क्लिक करें.

gcloud सीएलआई

  1. अगर ज़रूरी हो, तो मौजूदा Cloud प्रोजेक्ट को उस प्रोजेक्ट पर सेट करें जिसे आपने gcloud config set project कमांड का इस्तेमाल करके बनाया है:

    gcloud config set project PROJECT_ID

    PROJECT_ID की जगह, बनाए गए Cloud प्रोजेक्ट का प्रोजेक्ट आईडी डालें.

  2. gcloud services enable कमांड का इस्तेमाल करके, Google Chat API, Vertex AI API, Cloud Functions API, Firestore API, Cloud Build API, Pub/Sub API, और Cloud Run Admin API चालू करें:

    gcloud services enable chat.googleapis.com \
    aiplatform.googleapis.com \
    cloudfunctions.googleapis.com \
    firestore.googleapis.com \
    cloudbuild.googleapis.com \
    pubsub.googleapis.com \
    run.googleapis.com

    Cloud Functions के लिए, Cloud Build, Pub/Sub, और Cloud Run Admin API ज़रूरी हैं.

पुष्टि करना और अनुमति देना

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

Firestore और Vertex AI API को कॉल करने के लिए, इस ट्यूटोरियल में ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल का इस्तेमाल किया गया है. साथ ही, Cloud फ़ंक्शन से जुड़े डिफ़ॉल्ट सेवा खाते का इस्तेमाल किया गया है. आपको इसे सेट अप करने की ज़रूरत नहीं है. आम तौर पर, प्रोडक्शन एनवायरमेंट के लिए, Cloud Functions में सेवा खाता बनाया जाता है और उसे अटैच किया जाता है.

Google Chat ऐप्लिकेशन बनाना और उसे डिप्लॉय करना

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

  1. एक Firestore डेटाबेस बनाएं, जिसमें उपयोगकर्ता की स्टोरी सेव की जा सकें और उन्हें वापस पाया जा सके.
  2. इसके अलावा, सैंपल कोड की समीक्षा करें.
  3. Chat ऐप्लिकेशन के कोड को होस्ट करने और चलाने के लिए, Cloud फ़ंक्शन बनाएं. यह कोड, Chat से एचटीटीपी अनुरोधों के तौर पर मिले इवेंट के जवाब में काम करेगा.
  4. Google Chat API कॉन्फ़िगरेशन पेज पर, Google Chat ऐप्लिकेशन बनाएं और उसे डिप्लॉय करें.

Firestore डेटाबेस बनाना

इस सेक्शन में, उपयोगकर्ता की कहानियों को सेव करने और उन्हें वापस पाने के लिए, Firestore डेटाबेस बनाया जाता है. हालांकि, इसमें डेटा मॉडल तय नहीं किया जाता. डेटा मॉडल को model/user-story.js और model/user.js फ़ाइलों के ज़रिए, सैंपल कोड में इंप्लिसिट तौर पर सेट किया जाता है.

प्रोजेक्ट मैनेजमेंट वाले Chat ऐप्लिकेशन का डेटाबेस, NoSQL डेटा मॉडल का इस्तेमाल करता है. यह मॉडल, दस्तावेज़ों पर आधारित होता है. इन दस्तावेज़ों को संग्रहों में व्यवस्थित किया जाता है. ज़्यादा जानने के लिए, Firestore का डेटा मॉडल देखें.

इस डायग्राम में, Google Chat ऐप्लिकेशन के डेटा मॉडल में प्रोजेक्ट मैनेजमेंट की खास जानकारी दी गई है:

Firestore डेटाबेस का डेटा मॉडल.

रूट कलेक्शन spaces है. इसमें मौजूद हर दस्तावेज़, उस स्पेस को दिखाता है जिसमें Chat ऐप्लिकेशन ने स्टोरी बनाई हैं. हर उपयोगकर्ता की कहानी को userStories सब-कलेक्शन में मौजूद एक दस्तावेज़ के तौर पर दिखाया जाता है. साथ ही, हर उपयोगकर्ता को users सब-कलेक्शन में मौजूद एक दस्तावेज़ के तौर पर दिखाया जाता है.

कलेक्शन, दस्तावेज़, और फ़ील्ड की परिभाषाएं देखना

spaces

उन स्पेस की जानकारी जिनमें Chat ऐप्लिकेशन ने स्टोरी बनाई हैं.

फ़ील्ड
Document IDString
उस स्पेस का यूनीक आईडी जहां कहानियां बनाई जाती हैं. यह Chat API में स्पेस के संसाधन के नाम से मेल खाता है.
userStoriesSubcollection of Documents (userStories)
Chat ऐप्लिकेशन और उसके उपयोगकर्ताओं की बनाई गई कहानियां. यह Firebase में मौजूद userStories के Document ID से मेल खाता है.
usersSubcollection of Documents (user)
वे उपयोगकर्ता जिन्होंने स्टोरी बनाई हैं या जिन्हें स्टोरी असाइन की गई हैं.
displayNameString
Chat API में स्पेस का डिसप्ले नेम. उपयोगकर्ताओं के साथ डायरेक्ट मैसेज के लिए सेट नहीं किया गया है.

userStories

Chat ऐप्लिकेशन और इसके उपयोगकर्ताओं की बनाई गई कहानियां.

फ़ील्ड
Document IDString
Chat ऐप्लिकेशन और उसके उपयोगकर्ताओं की ओर से बनाई गई किसी उपयोगकर्ता की कहानी का यूनीक आईडी.
assigneeDocument (user)
स्टोरी पूरी करने के लिए असाइन किए गए उपयोगकर्ता के संसाधन का नाम. यह users दस्तावेज़ के Document ID और Chat API में उपयोगकर्ता के संसाधन के नाम से मेल खाता है.
descriptionString
उपयोगकर्ता के नज़रिए से, सॉफ़्टवेयर की सुविधा के बारे में जानकारी.
priorityEnum
काम को कितनी जल्दी पूरा करना है. Low, Medium या High को वैल्यू के तौर पर इस्तेमाल किया जा सकता है.
sizeEnum
काम की मात्रा. Small, Medium या Large को वैल्यू के तौर पर इस्तेमाल किया जा सकता है.
statusEnum
काम का चरण. OPEN, STARTED या COMPLETED को वैल्यू के तौर पर इस्तेमाल किया जा सकता है.
titleString
कहानी का टाइटल; कम शब्दों में खास जानकारी.

users

वे उपयोगकर्ता जिन्होंने कहानियां बनाई हैं या जिन्हें कहानियां असाइन की गई हैं.

फ़ील्ड
Document IDString
किसी उपयोगकर्ता का यूनीक आईडी. यह Firebase में मौजूद userStories के assignee और Chat API में उपयोगकर्ता के संसाधन के नाम से मेल खाता है.
avatarUrlString
उपयोगकर्ता के Chat अवतार की इमेज को होस्ट करने वाला यूआरएल.
displayNameString
Chat इस्तेमाल करने वाले व्यक्ति का डिसप्ले नेम.

यहां Firestore डेटाबेस बनाने का तरीका बताया गया है:

Google API (एपीआई) कंसोल

  1. Google API Console में, Firestore पर जाएं. मेन्यू > Firestore पर क्लिक करें.

    Firestore पर जाएं

  2. डेटाबेस बनाएं पर क्लिक करें.

  3. Firestore का मोड चुनें में जाकर, नेटिव मोड पर क्लिक करें.

  4. जारी रखें पर क्लिक करें.

  5. डेटाबेस को कॉन्फ़िगर करें:

    1. अपने डेटाबेस को नाम दें में, डेटाबेस आईडी को (default) के तौर पर छोड़ दें.

    2. जगह की स्थिति में, अपने डेटाबेस के लिए कोई क्षेत्र चुनें. जैसे, us-central1. बेहतर परफ़ॉर्मेंस के लिए, Chat ऐप्लिकेशन के क्लाउड फ़ंक्शन के लिए चुनी गई जगह या उसके आस-पास की जगह चुनें.

  6. डेटाबेस बनाएं पर क्लिक करें.

gcloud सीएलआई

  • gcloud firestore databases create कमांड का इस्तेमाल करके, नेटिव मोड में Firestore डेटाबेस बनाएं:

    gcloud firestore databases create \
    --location=LOCATION \
    --type=firestore-native

    LOCATION की जगह Firestore क्षेत्र का नाम डालें. जैसे, us-central1.

सैंपल कोड की समीक्षा करें

Cloud फ़ंक्शन बनाने से पहले, GitHub पर होस्ट किए गए सैंपल कोड को देख लें और उसके बारे में जान लें. हालांकि, ऐसा करना ज़रूरी नहीं है.

GitHub पर देखें

यहां हर फ़ाइल के बारे में खास जानकारी दी गई है:

env.js
एनवायरमेंट कॉन्फ़िगरेशन वैरिएबल, Chat ऐप्लिकेशन को किसी Google Cloud प्रोजेक्ट और क्षेत्र में डिप्लॉय करने के लिए. आपको इस फ़ाइल में कॉन्फ़िगरेशन वैरिएबल अपडेट करने होंगे.
package.json और package-lock.json
Node.js प्रोजेक्ट की सेटिंग और डिपेंडेंसी.
index.js
Chat ऐप्लिकेशन के Cloud फ़ंक्शन का एंट्री पॉइंट. यह एचटीटीपी अनुरोध से चैट इवेंट को पढ़ता है, ऐप्लिकेशन हैंडलर को कॉल करता है, और एचटीटीपी रिस्पॉन्स को JSON ऑब्जेक्ट के तौर पर पोस्ट करता है.
controllers/app.js
ऐप्लिकेशन का मुख्य लॉजिक. यह कुकी, इंटरैक्शन इवेंट को प्रोसेस करती है. इसके लिए, यह Chat ऐप्लिकेशन में किए गए मेंशन और स्लैश कमांड को मैनेज करती है. कार्ड पर क्लिक करने पर, यह app-action-handler.js को कॉल करता है.
controllers/app-action-handler.js
कार्ड पर क्लिक करने की सुविधा को मैनेज करने के लिए ऐप्लिकेशन लॉजिक Chat इंटरैक्शन इवेंट.
services/space-service.js, services/user-service.js, और services/user-story-service.js
इन फ़ाइलों में, ऐप्लिकेशन लॉजिक के वे हिस्से शामिल होते हैं जो Chat स्पेस, उपयोगकर्ताओं, और उपयोगकर्ता की कहानियों के साथ काम करने के लिए खास होते हैं. इन फ़ाइलों में मौजूद फ़ंक्शन को app.js या app-action-handler.js कॉल करता है. डेटाबेस से जुड़ी कार्रवाइयां करने के लिए, इन फ़ाइलों में मौजूद फ़ंक्शन, firestore-service.js में मौजूद फ़ंक्शन को कॉल करते हैं.
services/firestore-service.js
डेटाबेस से जुड़ी कार्रवाइयां मैनेज करता है. इस फ़ाइल में मौजूद फ़ंक्शन को services/space-service.js, services/user-service.js, और services/user-story-service.js कॉल करते हैं.
services/aip-service.js
यह कुकी, जनरेटिव एआई की मदद से टेक्स्ट का अनुमान लगाने के लिए, Vertex AI API को कॉल करती है.
model/*.js
इन फ़ाइलों में क्लास और इनम की परिभाषाएं होती हैं. ऐप्लिकेशन सेवाएं इनका इस्तेमाल, फ़ंक्शन के बीच डेटा को सेव करने और पास करने के लिए करती हैं. ये Firestore डेटाबेस के लिए डेटा मॉडल सेट करते हैं.
views/*.js
इस डायरेक्ट्री में मौजूद हर फ़ाइल, कार्ड ऑब्जेक्ट को इंस्टैंशिएट करती है. इसके बाद, Chat ऐप्लिकेशन इस ऑब्जेक्ट को Chat पर कार्ड मैसेज या डायलॉग ऐक्शन रिस्पॉन्स के तौर पर वापस भेजता है.
views/widgets/*.js
हर फ़ाइल, विजेट ऑब्जेक्ट के किसी टाइप को इंस्टैंशिएट करती है. ऐप्लिकेशन इसका इस्तेमाल, views/ डायरेक्ट्री में कार्ड बनाने के लिए करता है.
test/**/*.test.js
इस डायरेक्ट्री और इसकी सबडायरेक्ट्री में मौजूद हर फ़ाइल में, फ़ंक्शन, कंट्रोलर, सेवा, व्यू या विजेट के लिए यूनिट टेस्ट शामिल होती हैं. प्रोजेक्ट की रूट डायरेक्ट्री में रहते हुए, npm run test चलाकर सभी यूनिट टेस्ट किए जा सकते हैं.

Cloud Function बनाना और उसे डिप्लॉय करना

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

Cloud Functions, Chat से मिले एचटीटीपी अनुरोध के जवाब में काम करता है. इस अनुरोध में, Chat इंटरैक्शन इवेंट होता है. Cloud Functions का कोड चालू होने पर, इवेंट को प्रोसेस करता है. इसके बाद, Chat को जवाब देता है. Chat, इस जवाब को मैसेज, डायलॉग या उपयोगकर्ता के साथ होने वाले अन्य इंटरैक्शन के तौर पर रेंडर करता है. अगर लागू हो, तो Cloud Function, Firestore डेटाबेस से डेटा पढ़ता है या उसमें डेटा लिखता है.

Cloud फ़ंक्शन बनाने का तरीका यहां दिया गया है:

Google API (एपीआई) कंसोल

  1. GitHub से कोड को zip फ़ाइल के तौर पर डाउनलोड करें.

    ज़िप फ़ाइल डाउनलोड करना

  2. डाउनलोड की गई ज़िप फ़ाइल को एक्स्ट्रैक्ट करें.

    एक्सट्रैक्ट किए गए फ़ोल्डर में, Google Workspace के सभी सैंपल की रिपॉज़िटरी होती है.

  3. एक्सट्रैक्ट किए गए फ़ोल्डर में, add-ons-samples-main/node/chat/project-management-app/ पर जाएं. इसके बाद, project-management-app फ़ोल्डर को ZIP फ़ाइल में कंप्रेस करें.

    ZIP फ़ाइल की रूट डायरेक्ट्री में ये फ़ाइलें और फ़ोल्डर होने चाहिए:

    • env.js
    • README.md
    • gcloudignore.text
    • package-lock.json
    • package.json
    • index.js
    • model/
    • controllers/
    • views/
    • services/
  4. Google API Console में, Cloud Functions पेज पर जाएं:

    Cloud Functions पर जाएं

    पक्का करें कि आपके चैट ऐप्लिकेशन के लिए, Google Cloud प्रोजेक्ट चुना गया हो.

  5. फ़ंक्शन बनाएं पर क्लिक करें.

  6. फ़ंक्शन बनाएं पेज पर, अपना फ़ंक्शन सेट अप करें:

    1. एनवायरमेंट में, Cloud Run फ़ंक्शन चुनें.
    2. फ़ंक्शन का नाम में जाकर, project-management-tutorial डालें.
    3. देश/इलाका में जाकर, कोई देश/इलाका चुनें.
    4. पुष्टि में जाकर, बिना पुष्टि किए गए इनवोकेशन की अनुमति दें को चुनें.
    5. आगे बढ़ें पर क्लिक करें.
  7. रनटाइम में जाकर, Node.js 20 चुनें.

  8. एंट्री पॉइंट में, डिफ़ॉल्ट टेक्स्ट मिटाएं और projectManagementChatApp डालें.

  9. सोर्स कोड में जाकर, ज़िप फ़ाइल अपलोड करें को चुनें.

  10. डेस्टिनेशन बकेट में जाकर, कोई बकेट बनाएं या चुनें:

    1. ब्राउज़ करें पर क्लिक करें.
    2. कोई बकेट चुनें.
    3. चुनें पर क्लिक करें.

    Google Cloud, इस बकेट में ZIP फ़ाइल अपलोड करता है और कॉम्पोनेंट फ़ाइलों को एक्सट्रैक्ट करता है. इसके बाद, Cloud Functions कॉम्पोनेंट फ़ाइलों को Cloud Function में कॉपी करता है.

  11. Zip फ़ाइल में, GitHub से डाउनलोड की गई, एक्स्ट्रैक्ट की गई, और फिर से कंप्रेस की गई zip फ़ाइल अपलोड करें:

    1. ब्राउज़ करें पर क्लिक करें.
    2. ज़िप फ़ाइल पर जाएं और उसे चुनें.
    3. खोलें पर क्लिक करें.
  12. डिप्लॉय करें पर क्लिक करें.

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

  13. कॉन्स्टेंट सेट करने के लिए, सैंपल कोड में बदलाव करें:

    1. Cloud फ़ंक्शन की ज़्यादा जानकारी वाले पेज पर, बदलाव करें पर क्लिक करें.
    2. आगे बढ़ें पर क्लिक करें.
    3. सोर्स कोड में जाकर, इनलाइन एडिटर को चुनें.
    4. इनलाइन एडिटर में, env.js फ़ाइल खोलें.
    5. project-id की जगह अपना Cloud प्रोजेक्ट आईडी डालें.
    6. ज़रूरी नहीं: अपने Cloud फ़ंक्शन के लिए, us-central1 को सपोर्ट की जाने वाली जगह से अपडेट करें.
  14. डिप्लॉय करें पर क्लिक करें.

  15. फ़ंक्शन के डिप्लॉय हो जाने के बाद, ट्रिगर यूआरएल कॉपी करें:

    1. फ़ंक्शन की जानकारी पेज पर, ट्रिगर करें पर क्लिक करें.
    2. यूआरएल कॉपी करें. आपको इसकी ज़रूरत, इस सेक्शन में Chat ऐप्लिकेशन को कॉन्फ़िगर करने के लिए होगी.

gcloud सीएलआई

  1. GitHub से कोड क्लोन करें:

    git clone https://github.com/googleworkspace/add-ons-samples.git
  2. उस डायरेक्ट्री पर स्विच करें जिसमें इस प्रोजेक्ट मैनेजमेंट Chat ऐप्लिकेशन का कोड मौजूद है:

    cd add-ons-samples/node/chat/project-management-app
  3. एनवायरमेंट वैरिएबल सेट करने के लिए, env.js फ़ाइल में बदलाव करें:

    1. project-id की जगह अपना Google Cloud प्रोजेक्ट आईडी डालें.
    2. us-central1 की जगह, अपने Google Cloud प्रोजेक्ट की जगह की जानकारी डालें.
  4. Cloud फ़ंक्शन को Google Cloud पर डिप्लॉय करें:

    gcloud functions deploy project-management-tutorial \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=projectManagementChatApp \
    --trigger-http \
    --allow-unauthenticated

    REGION की जगह Cloud Functions की जगह डालें. यह वह जगह होती है जहां इसका इंफ़्रास्ट्रक्चर होस्ट किया जाता है. जैसे, us-central1.

  1. फ़ंक्शन के डिप्लॉय होने के बाद, जवाब से url प्रॉपर्टी कॉपी करें. यह ट्रिगर यूआरएल है. इसका इस्तेमाल, Google Chat ऐप्लिकेशन को कॉन्फ़िगर करने के लिए किया जाता है.

Google API Console में Google Chat ऐप्लिकेशन को कॉन्फ़िगर करना

इस सेक्शन में, Google API Console में Chat API को कॉन्फ़िगर करने का तरीका बताया गया है. इसमें आपके Chat ऐप्लिकेशन के बारे में जानकारी शामिल है. जैसे, Chat ऐप्लिकेशन का नाम, काम करने वाली स्लैश कमांड, और Chat ऐप्लिकेशन के Cloud फ़ंक्शन का ट्रिगर यूआरएल. इस Cloud फ़ंक्शन को Chat ऐप्लिकेशन, Chat इंटरैक्शन इवेंट भेजता है.

  1. Google API Console में, मेन्यू > एपीआई और सेवाएं > चालू किए गए एपीआई और सेवाएं > Google Chat API > कॉन्फ़िगरेशन पर क्लिक करें.

    Chat API कॉन्फ़िगरेशन पर जाएं

  2. ऐप्लिकेशन का नाम में, Project Manager टाइप करें.

  3. अवतार यूआरएल में, https://developers.google.com/add-ons/samples/images/quickstart-app-avatar.png टाइप करें.

  4. ब्यौरा में, Manages projects with user stories. टाइप करें

  5. इंटरैक्टिव सुविधाएं चालू करें टॉगल पर क्लिक करके उसे चालू करें.

  6. सुविधाएं में जाकर, स्पेस और ग्रुप बातचीत में शामिल हों को चुनें.

  7. कनेक्शन सेटिंग में जाकर, एचटीटीपी एंडपॉइंट यूआरएल चुनें.

  8. सेवा खाते का ईमेल कॉपी करें. अपने ऐड-ऑन को फ़ंक्शन शुरू करने की अनुमति देते समय, आपको इस ईमेल पते की ज़रूरत होगी.

  9. ट्रिगर में जाकर, सभी ट्रिगर के लिए, एक ही एचटीटीपी एंडपॉइंट यूआरएल का इस्तेमाल करें को चुनें.

  10. एचटीटीपी एंडपॉइंट यूआरएल में, Cloud Function का ट्रिगर यूआरएल चिपकाएं. यह यूआरएल, https://REGION-PROJECT_ID.cloudfunctions.net/project-management-tutorial के तौर पर फ़ॉर्मैट किया गया होना चाहिए. अगर आपने gcloud CLI की मदद से Cloud फ़ंक्शन डिप्लॉय किया है, तो यह url प्रॉपर्टी है.

  11. Chat ऐप्लिकेशन के स्लैश कमांड रजिस्टर करें. स्लैश कमांड रजिस्टर करने के लिए:

    1. निर्देश में जाकर, कोई निर्देश जोड़ें पर क्लिक करें.
    2. यहां दी गई टेबल में हर निर्देश के लिए, निर्देश आईडी डालें. इसके बाद, ब्यौरा डालें. निर्देश का टाइप में जाकर, स्लैश कमांड चुनें. इसके बाद, स्लैश कमांड का नाम डालें. इसके बाद, डायलॉग चुनें. इसके बाद, हो गया पर क्लिक करें:

      कमांड आईडी ब्यौरा स्लैश कमांड का नाम Dialog
      1 दिए गए टाइटल के साथ कोई कहानी बनाएं. /createUserStory नहीं चुना गया है
      2 यह कुकी, उपयोगकर्ता को असाइन की गई सभी कहानियों की सूची बनाती है. /myUserStories नहीं चुना गया है
      3 चुनी गई स्टोरी का मौजूदा स्टेटस दिखाता है. /userStory नहीं चुना गया है
      4 इससे एक डायलॉग बॉक्स खुलता है, जहां कहानियों में बदलाव किया जा सकता है. /manageUserStories चुना गया
      5 इस स्पेस में मौजूद सभी स्टोरी मिटा दी जाती हैं. /cleanupUserStories नहीं चुना गया है
  12. दिखने की सेटिंग में जाकर, इस Google Chat ऐप्लिकेशन को अपने Workspace डोमेन के कुछ लोगों और ग्रुप के लिए उपलब्ध कराएं को चुनें. इसके बाद, अपना ईमेल पता डालें.

  13. इसके अलावा, लॉग में जाकर, लॉगिंग में गड़बड़ियों को लॉग करें को चुनें.

  14. सेव करें पर क्लिक करें. आपको कॉन्फ़िगरेशन सेव होने का मैसेज दिखेगा.

Chat ऐप्लिकेशन, Chat पर मैसेज पाने और उनका जवाब देने के लिए तैयार है.

Chat ऐप्लिकेशन की टेस्टिंग करना

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

  1. Google Workspace खाते का इस्तेमाल करके Google Chat खोलें. आपने इसी खाते का इस्तेमाल करके, भरोसेमंद टेस्टर के तौर पर खुद को जोड़ा था.

    Google Chat पर जाएं

  2. नई चैट पर क्लिक करें.
  3. एक या उससे ज़्यादा लोगों को जोड़ें फ़ील्ड में, अपने Chat ऐप्लिकेशन का नाम डालें.
  4. नतीजों में से अपना Chat ऐप्लिकेशन चुनें. एक डायरेक्ट मैसेज खुलता है.

  5. ऐप्लिकेशन को भेजे गए नए डायरेक्ट मैसेज में, Hello लिखें और enter दबाएं. प्रोजेक्ट मैनेजमेंट वाला चैट ऐप्लिकेशन, मदद मेन्यू के साथ जवाब देता है. इसमें बताया जाता है कि वह क्या-क्या कर सकता है.
  6. कोई कहानी बनाने के लिए, मैसेज बार में /createUserStory Test story टाइप करें और उसे भेजें. प्रोजेक्ट मैनेजमेंट चैट ऐप्लिकेशन, कार्ड मैसेज के साथ जवाब देता है. इसमें, Vertex AI के जनरेटिव एआई का इस्तेमाल करके बनाई गई उपयोगकर्ता की कहानी के बारे में जानकारी होती है.
  7. API Console में, Firestore डेटाबेस की जांच करें. इससे आपको इन चीज़ों के बारे में जानकारी मिलेगी: आपने जिस स्पेस में Chat ऐप्लिकेशन जोड़ा है उसके बारे में बनाए गए रिकॉर्ड, इससे इंटरैक्ट करने वाले उपयोगकर्ता, और आपके बनाए गए उपयोगकर्ता की कहानी.

    Firestore पर जाएं

  8. Google Chat पर वापस जाएं.

    Google Chat पर जाएं

  9. इसके अलावा, कहानी में बदलाव करने के लिए, बदलाव करें पर क्लिक करें. खबर से संतुष्ट होने के बाद, सेव करें पर क्लिक करें.
  10. ऐप्लिकेशन के साथ काम करने वाली हर स्लैश कमांड को टेस्ट करें. इन्हें देखने के लिए, / टाइप करें या Chat ऐप्लिकेशन को मेंशन करें.
  11. /cleanupUserStories स्लैश कमांड का इस्तेमाल करके, टेस्ट यूज़र स्टोरी मिटाएं. इसके अलावा, ऐप्लिकेशन को हटाएं या अनइंस्टॉल करें. ऐप्लिकेशन को हटाने पर, उस स्पेस में बनाई गई सभी उपयोगकर्ता कहानियां मिट जाती हैं.

समस्या हल करें

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

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

व्यवस्थित करें

इस ट्यूटोरियल में इस्तेमाल किए गए संसाधनों के लिए, अपने Google Cloud खाते से शुल्क लिए जाने से बचने के लिए, हमारा सुझाव है कि आप Cloud प्रोजेक्ट मिटा दें.

  1. Google API Console में, संसाधन मैनेज करें पेज पर जाएं. मेन्यू > IAM और एडमिन > संसाधन मैनेज करें पर क्लिक करें.

    Resource Manager पर जाएं

  2. प्रोजेक्ट की सूची में, वह प्रोजेक्ट चुनें जिसे आपको मिटाना है. इसके बाद, मिटाएं पर क्लिक करें.
  3. डायलॉग बॉक्स में, प्रोजेक्ट आईडी डालें. इसके बाद, प्रोजेक्ट मिटाने के लिए बंद करें पर क्लिक करें.