Google Chat, Vertex AI, और Apps Script की मदद से गड़बड़ियों का जवाब दें

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

इस ट्यूटोरियल में, https://www.googleapis.com/auth/chat.app.* से शुरू होने वाले ऑथराइज़ेशन स्कोप का इस्तेमाल किया गया है. Chat ऐप्लिकेशन को उन स्कोप का इस्तेमाल करने के लिए, आपको एक बार एडमिन की अनुमति लेनी होगी.

घटना एक ऐसा इवेंट होता है जिसे ठीक करने के लिए, लोगों की एक टीम को तुरंत ध्यान देना होता है. उदाहरण के लिए:

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

इस ट्यूटोरियल के लिए, घटना की सूचना तब शुरू होती है, जब कोई व्यक्ति वेब पेज पर मौजूद बटन पर क्लिक करके घटना की सूचना देता है. इस वेब पेज पर, उपयोगकर्ताओं से घटना की बुनियादी जानकारी डालने के लिए कहा जाता है. जैसे, टाइटल, जानकारी, और जवाब देने वालों के ईमेल पते.

इंसिडेंट मैनेजमेंट के लिए Chat ऐप्लिकेशन का इस्तेमाल करने का तरीका देखें:

  • वह वेबसाइट जिसकी वजह से कोई घटना शुरू होती है.
    पहली इमेज. वह वेबसाइट जहाँ कोई व्यक्ति किसी घटना की शिकायत कर सकता है.
  • इस बारे में सूचना कि घटना से जुड़ा चैट स्पेस बना दिया गया है.
    दूसरी इमेज. सूचना कि घटना से जुड़ा चैट स्पेस बना दिया गया है.
  • इंसिडेंट रिस्पॉन्स के लिए बनाया गया Chat स्पेस.
    तीसरी इमेज. इंसिडेंट रिस्पॉन्स के लिए बनाया गया Chat स्पेस.
  • स्लैश कमांड का इस्तेमाल करके, समस्या को हल करना.
    चौथी इमेज. स्लैश कमांड का इस्तेमाल करके, समस्या को हल करना.
  • समस्या हल होने की जानकारी देने वाला डायलॉग बॉक्स.
    पांचवीं इमेज. समस्या हल होने की जानकारी देने वाला डायलॉग बॉक्स.
  • स्पेस में, समस्या हल करने से जुड़ा Google Docs दस्तावेज़ शेयर किया गया.
    छठी इमेज. स्पेस में, समस्या हल करने से जुड़ा Google Docs दस्तावेज़ शेयर किया गया.
  • एआई की मदद से तैयार की गई खास जानकारी से जुड़ी समस्या को हल करने के बारे में जानकारी देने वाला Google दस्तावेज़.
    सातवीं इमेज. एआई की मदद से तैयार की गई खास जानकारी से जुड़ी समस्या को हल करने के बारे में Google Docs का दस्तावेज़.

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

अगर आपको अपने संगठन के लिए इनमें से किसी सुविधा को चालू करना है, तो अपने Google Workspace एडमिन से इसे चालू करने के लिए कहें:

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

मकसद

  • ऐसा Chat ऐप्लिकेशन बनाएं जो घटनाओं के बारे में जानकारी दे.
  • उपयोगकर्ताओं को इन तरीकों से, घटनाओं पर प्रतिक्रिया देने में मदद करें:
    • इंसिडेंट रिस्पॉन्स स्पेस बनाना.
    • पोस्ट में, घटनाओं और उनके जवाबों की खास जानकारी देना.
    • इंटरैक्टिव चैट ऐप्लिकेशन की सुविधाओं के साथ मिलकर काम करने की सुविधा.
  • Vertex AI की मदद से, बातचीत और समस्याओं के समाधान की खास जानकारी जनरेट करें.

आर्किटेक्चर

इस डायग्राम में, Google Workspace और Google Cloud के उन संसाधनों का आर्किटेक्चर दिखाया गया है जिनका इस्तेमाल, Google Chat में मौजूद 'इंसिडेंट रिस्पॉन्स' ऐप्लिकेशन करता है.

इंसिडेंट रिस्पॉन्स के लिए Google Chat ऐप्लिकेशन का आर्किटेक्चर

आर्किटेक्चर से पता चलता है कि Google Chat ऐप्लिकेशन, किसी घटना और उसके समाधान को कैसे प्रोसेस करता है.

  1. कोई उपयोगकर्ता, Apps Script पर होस्ट की गई किसी बाहरी वेबसाइट से कोई घटना शुरू करता है.

  2. वेबसाइट, Apps Script पर होस्ट किए गए Google Chat ऐप्लिकेशन को एसिंक्रोनस एचटीटीपी अनुरोध भेजती है.

  3. घटना से जुड़े जवाब देने वाला Google Chat ऐप्लिकेशन, अनुरोध को प्रोसेस करता है:

    1. Apps Script Admin SDK सेवा को टीम के सदस्यों की जानकारी मिलती है. जैसे, उपयोगकर्ता आईडी और ईमेल पता.

    2. Apps Script की ऐडवांस चैट सेवा का इस्तेमाल करके, Chat API को एचटीटीपी अनुरोधों का एक सेट भेजा जाता है. इसके बाद, Google Chat ऐप्लिकेशन में मौजूद 'घटना से जुड़ी प्रतिक्रिया' सुविधा, घटना से जुड़ा Chat स्पेस बनाती है. साथ ही, इसमें टीम के सदस्यों को जोड़ती है और स्पेस में एक मैसेज भेजती है.

  4. टीम के सदस्य, Chat स्पेस में घटना के बारे में चर्चा करते हैं.

  5. टीम का कोई सदस्य, घटना के हल होने का सिग्नल देने के लिए स्लैश कमांड का इस्तेमाल करता है.

    1. Apps Script की Chat की ऐडवांस सेवा का इस्तेमाल करके, Chat API को किया गया एचटीटीपी कॉल, Chat स्पेस के सभी मैसेज दिखाता है.

    2. Vertex AI को सूची में दिए गए मैसेज मिलते हैं और वह उनकी खास जानकारी जनरेट करता है.

    3. Apps Script की DocumentApp सेवा, Docs दस्तावेज़ बनाती है और उसमें Vertex AI की खास जानकारी जोड़ती है.

    4. घटना की जानकारी देने वाला Google Chat ऐप्लिकेशन, Chat API को कॉल करता है, ताकि वह खास जानकारी वाले Docs दस्तावेज़ का लिंक शेयर करने वाला मैसेज भेज सके.

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

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

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

Google Cloud कंसोल

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

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

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

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

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

gcloud सीएलआई

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

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

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

Google Cloud कंसोल

  1. Google Cloud 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 Cloud कंसोल

  1. Google Cloud Console में, Google Chat API, Google Docs API, Admin SDK API, Google Workspace Marketplace SDK, और Vertex AI 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, Google Docs API, Admin SDK API, Google Workspace Marketplace SDK, और Vertex AI API चालू करें:

    gcloud services enable chat.googleapis.com docs.googleapis.com admin.googleapis.com aiplatform.googleapis.com appsmarket-component.googleapis.com

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

Chat ऐप्लिकेशन, Chat ऐप्लिकेशन के क्रेडेंशियल का इस्तेमाल करके Google Chat API को ऐक्सेस करता है. यह ऐप्लिकेशन, उपयोगकर्ता के क्रेडेंशियल की मदद से एडमिन SDK API और Google Docs API को ऐक्सेस करता है.

उपयोगकर्ता की पुष्टि करने और उसे अनुमति देने की सुविधा सेट अप करना

पुष्टि करने और अनुमति देने की सुविधा की मदद से, Chat ऐप्लिकेशन को Google Workspace और Google Cloud में मौजूद संसाधनों को ऐक्सेस करने की अनुमति मिलती है. इससे वह किसी घटना पर प्रतिक्रिया दे पाता है. खास तौर पर, उपयोगकर्ता की पुष्टि करने की सुविधा का इस्तेमाल, Google Docs API और Admin SDK API को कॉल करने के लिए किया जाता है.

इस ट्यूटोरियल में, ऐप्लिकेशन को अपने Workspace डोमेन में इंटरनल तौर पर पब्लिश किया जाता है. इसलिए, प्लेसहोल्डर की जानकारी का इस्तेमाल किया जा सकता है. ऐप्लिकेशन को बाहरी तौर पर पब्लिश करने से पहले, सहमति वाली स्क्रीन में प्लेसहोल्डर की जानकारी को असली जानकारी से बदलें.

  1. Google Cloud Console में, मेन्यू &gt &gt ब्रैंडिंग पर जाएं.

    ब्रैंडिंग पर जाएं

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

    1. ऐप्लिकेशन की जानकारी में जाकर, ऐप्लिकेशन का नाम में Incident Management टाइप करें.
    2. उपयोगकर्ता सहायता के लिए ईमेल पता में, अपना ईमेल पता या कोई सही Google ग्रुप चुनें.
    3. आगे बढ़ें पर क्लिक करें.
    4. दर्शक सेक्शन में जाकर, संगठन के अंदर से जनरेट होने वाला ट्रैफ़िक चुनें. अगर Internal को नहीं चुना जा सकता, तो External को चुनें.
    5. आगे बढ़ें पर क्लिक करें.
    6. संपर्क जानकारी में जाकर, वह ईमेल पता डालें जिस पर आपको अपने प्रोजेक्ट में हुए किसी भी बदलाव की सूचना मिल सके.
    7. आगे बढ़ें पर क्लिक करें.
    8. पूरा करें में जाकर, Google API सेवाओं के उपयोगकर्ता के डेटा की नीति पढ़ें. अगर आप इससे सहमत हैं, तो मैं Google API सेवाओं के उपयोगकर्ता के डेटा की नीति से सहमत हूं को चुनें.
    9. जारी रखें पर क्लिक करें.
    10. बनाएं पर क्लिक करें.
    11. अगर आपने उपयोगकर्ता के टाइप के लिए बाहरी चुना है, तो टेस्ट उपयोगकर्ता जोड़ें:
      1. ऑडियंस पर क्लिक करें.
      2. टेस्ट उपयोगकर्ता में जाकर, उपयोगकर्ता जोड़ें पर क्लिक करें.
      3. अपना ईमेल पता और टेस्ट करने वाले अन्य ज़्यादाृत उपयोगकर्ताओं का ईमेल पता डालें. इसके बाद, सेव करें पर क्लिक करें.
  3. डेटा ऐक्सेस > स्कोप जोड़ें या हटाएं पर क्लिक करें. एक पैनल दिखता है. इसमें हर उस एपीआई के लिए स्कोप की सूची होती है जिसे आपने अपने Google Cloud प्रोजेक्ट में चालू किया है.

    1. मैन्युअल तरीके से स्कोप जोड़ें में जाकर, ये स्कोप चिपकाएं:

      • https://www.googleapis.com/auth/documents
      • https://www.googleapis.com/auth/admin.directory.user.readonly
      • https://www.googleapis.com/auth/script.external_request
      • https://www.googleapis.com/auth/userinfo.email
      • https://www.googleapis.com/auth/cloud-platform
    2. टेबल में जोड़ें पर क्लिक करें.

    3. अपडेट करें पर क्लिक करें.

    4. आपके ऐप्लिकेशन के लिए ज़रूरी स्कोप चुनने के बाद, डेटा ऐक्सेस पेज पर जाकर, सेव करें पर क्लिक करें.

ऐप्लिकेशन की पुष्टि करने और उसे अनुमति देने की सुविधा सेट अप करना

Google Chat API को कॉल करने के लिए, ऐप्लिकेशन की पुष्टि करने की सुविधा का इस्तेमाल किया जाता है.

Google Cloud Console में सेवा खाता बनाना

सेवा खाता बनाने के लिए, यह तरीका अपनाएं:

Google Cloud कंसोल

  1. Google Cloud console में, मेन्यू > आईएएम और एडमिन > सेवा खाते पर जाएं.

    सेवा खातों पर जाएं

  2. सेवा खाता बनाएं पर क्लिक करें.
  3. सेवा खाते की जानकारी भरें. इसके बाद, बनाएं और जारी रखें पर क्लिक करें.
  4. ज़रूरी नहीं: अपने सेवा खाते को भूमिकाएं असाइन करें, ताकि उसे आपके Google Cloud प्रोजेक्ट के संसाधनों का ऐक्सेस मिल सके. ज़्यादा जानकारी के लिए, संसाधनों का ऐक्सेस देना, उसमें बदलाव करना, और उसे रद्द करना लेख पढ़ें.
  5. जारी रखें पर क्लिक करें.
  6. उन उपयोगकर्ताओं या ग्रुप के नाम डालें जिनके पास इस सेवा खाते को मैनेज करने और इससे जुड़ी कार्रवाइयां करने का ऐक्सेस है. हालांकि, यह ज़रूरी नहीं है. ज़्यादा जानकारी के लिए, सेवा खाते के डुप्लीकेट को मैनेज करना लेख पढ़ें.
  7. हो गया पर क्लिक करें. सेवा खाते का ईमेल पता नोट कर लें.

gcloud सीएलआई

  1. सेवा खाता बनाएं:
    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
      --display-name="SERVICE_ACCOUNT_NAME"
  2. ज़रूरी नहीं: अपने सेवा खाते को भूमिकाएं असाइन करें, ताकि उसे आपके Google Cloud प्रोजेक्ट के संसाधनों का ऐक्सेस मिल सके. ज़्यादा जानकारी के लिए, संसाधनों का ऐक्सेस देना, उसमें बदलाव करना, और उसे रद्द करना लेख पढ़ें.

सेवा खाता, सेवा खाते वाले पेज पर दिखता है. इसके बाद, सेवा खाते के लिए निजी कुंजी बनाएं.

निजी कुंजी बनाना

सेवा खाते के लिए निजी पासकोड बनाने और उसे डाउनलोड करने के लिए, यह तरीका अपनाएं:

  1. Google Cloud console में, मेन्यू > आईएएम और एडमिन > सेवा खाते पर जाएं.

    सेवा खातों पर जाएं

  2. अपना सेवा खाता चुनें.
  3. कुंजियां > कुंजी जोड़ें > नई कुंजी बनाएं पर क्लिक करें.
  4. JSON चुनें. इसके बाद, बनाएं पर क्लिक करें.

    आपकी नई सार्वजनिक/निजी कुंजी की जोड़ी जनरेट करके आपकी मशीन पर एक नई फ़ाइल के तौर पर डाउनलोड की जाती है. डाउनलोड की गई JSON फ़ाइल को अपनी वर्किंग डायरेक्ट्री में credentials.json के तौर पर सेव करें. यह फ़ाइल, इस कुंजी की सिर्फ़ एक कॉपी है. अपनी कुंजी को सुरक्षित तरीके से सेव करने के बारे में जानकारी के लिए, सेवा खाते की कुंजियां मैनेज करना लेख पढ़ें.

  5. बंद करें पर क्लिक करें.

सेवा खातों के बारे में ज़्यादा जानने के लिए, Google Cloud IAM के दस्तावेज़ में सेवा खाते लेख पढ़ें.

Google Workspace Marketplace के साथ काम करने वाला OAuth क्लाइंट बनाना

Google Workspace Marketplace के साथ काम करने वाला OAuth क्लाइंट बनाने के लिए, यह तरीका अपनाएं:

  1. Google Cloud console में, मेन्यू > आईएएम और एडमिन > सेवा खाते पर जाएं.

    सेवा खातों पर जाएं

  2. अपने Chat ऐप्लिकेशन के लिए बनाए गए सेवा खाते पर क्लिक करें.

  3. बेहतर सेटिंग पर क्लिक करें.

  4. Google Workspace Marketplace के साथ काम करने वाला OAuth क्लाइंट बनाएं पर क्लिक करें.

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

पुष्टि करने वाला एक मैसेज दिखता है. इसमें बताया जाता है कि Google Workspace Marketplace के साथ काम करने वाला OAuth क्लाइंट बना दिया गया है.

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

यहां दिए गए सेक्शन में, आपको पूरे Apps Script प्रोजेक्ट को कॉपी करके अपडेट करना है. इसमें आपके Chat ऐप्लिकेशन के लिए ज़रूरी सभी ऐप्लिकेशन कोड शामिल होते हैं. इसलिए, आपको हर फ़ाइल को कॉपी करके चिपकाने की ज़रूरत नहीं है.

कुछ फ़ंक्शन के नाम के आखिर में अंडरस्कोर होते हैं. जैसे, ChatApp.gs से processSlashCommand_(). अंडरस्कोर, फ़ंक्शन को ब्राउज़र में खुले हुए घटना की जानकारी देने वाले वेब पेज से छिपाता है. ज़्यादा जानकारी के लिए, निजी फ़ंक्शन देखें.

Apps Script में दो तरह की फ़ाइलें इस्तेमाल की जा सकती हैं: .gs स्क्रिप्ट और .html फ़ाइलें. इस सुविधा का इस्तेमाल करने के लिए, ऐप्लिकेशन की क्लाइंट-साइड JavaScript को <script /> टैग के अंदर शामिल किया जाता है. साथ ही, इसके सीएसएस को एचटीएमएल फ़ाइल में <style /> टैग के अंदर शामिल किया जाता है.

इसके अलावा, GitHub पर पूरा प्रोजेक्ट देखा जा सकता है.

GitHub पर देखें

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

Consts.gs

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

Consts.gs कोड देखें

apps-script/incident-response-app-auth/Consts.gs
const PROJECT_ID = 'replace-with-your-project-id';
const CLOSE_INCIDENT_COMMAND_ID = 1;
const APP_CREDENTIALS = 'replace-with-your-app-credentials';
const APP_CREDENTIALS_SCOPES = 'https://www.googleapis.com/auth/chat.bot https://www.googleapis.com/auth/chat.app.memberships https://www.googleapis.com/auth/chat.app.spaces.create';
const VERTEX_AI_LOCATION_ID = 'us-central1';
const MODEL_ID = 'gemini-1.5-flash-002';
ChatApp.gs

यह कुकी, Chat के इंटरैक्शन इवेंट को मैनेज करती है. इनमें मैसेज, कार्ड पर क्लिक, स्लैश कमांड, और डायलॉग शामिल हैं. यह /closeIncident स्लैश कमांड का जवाब देता है. इसके लिए, यह एक डायलॉग बॉक्स खोलता है, ताकि समस्या हल करने से जुड़ी जानकारी इकट्ठा की जा सके. यह Chat API में spaces.messages.list तरीके को कॉल करके, स्पेस में मौजूद मैसेज पढ़ता है. Apps Script में, Admin SDK Directory सेवा का इस्तेमाल करके उपयोगकर्ता आईडी पाएं.

ChatApp.gs कोड देखें

apps-script/incident-response-app-auth/ChatApp.gs
/**
 * Responds to a MESSAGE event in Google Chat.
 *
 * This app only responds to a slash command with the ID 1 ("/closeIncident").
 * It will respond to any other message with a simple "Hello" text message.
 *
 * @param {Object} event the event object from Google Chat
 */
function onMessage(event) {
  if (event.message.slashCommand) {
    return processSlashCommand_(event);
  }
  return { "text": "Hello from Incident Response app!" };
}

/**
 * Responds to a CARD_CLICKED event in Google Chat.
 *
 * This app only responds to one kind of dialog (Close Incident).
 *
 * @param {Object} event the event object from Google Chat
 */
function onCardClick(event) {
  if (event.isDialogEvent) {
    if (event.dialogEventType == 'SUBMIT_DIALOG') {
      return processSubmitDialog_(event);
    }
    return {
      actionResponse: {
        type: "DIALOG",
        dialogAction: {
          actionStatus: "OK"
        }
      }
    };
  }
}

/**
 * Responds to a MESSAGE event with a Slash command in Google Chat.
 *
 * This app only responds to a slash command with the ID 1 ("/closeIncident")
 * by returning a Dialog.
 *
 * @param {Object} event the event object from Google Chat
 */
function processSlashCommand_(event) {
  if (event.message.slashCommand.commandId != CLOSE_INCIDENT_COMMAND_ID) {
    return {
      "text": "Command not recognized. Use the command `/closeIncident` to close the incident managed by this space."
    };
  }
  const sections = [
    {
      header: "Close Incident",
      widgets: [
        {
          textInput: {
            label: "Please describe the incident resolution",
            type: "MULTIPLE_LINE",
            name: "description"
          }
        },
        {
          buttonList: {
            buttons: [
              {
                text: "Close Incident",
                onClick: {
                  action: {
                    function: "closeIncident"
                  }
                }
              }
            ]
          }
        }
      ]
    }
  ];
  return {
    actionResponse: {
      type: "DIALOG",
      dialogAction: {
        dialog: {
          body: {
            sections,
          }
        }
      }
    }
  };
}

/**
 * Responds to a CARD_CLICKED event with a Dialog submission in Google Chat.
 *
 * This app only responds to one kind of dialog (Close Incident).
 * It creates a Doc with a summary of the incident information and posts a message
 * to the space with a link to the Doc.
 *
 * @param {Object} event the event object from Google Chat
 */
function processSubmitDialog_(event) {
  const resolution = event.common.formInputs.description[""].stringInputs.value[0];
  const chatHistory = concatenateAllSpaceMessages_(event.space.name);
  const chatSummary = summarizeChatHistory_(chatHistory);
  const docUrl = createDoc_(event.space.displayName, resolution, chatHistory, chatSummary);
  return {
    actionResponse: {
      type: "NEW_MESSAGE",
    },
    text: `Incident closed with the following resolution: ${resolution}\n\nHere is the automatically generated post-mortem:\n${docUrl}`
  };
}

/**
 * Lists all the messages in the Chat space, then concatenate all of them into
 * a single text containing the full Chat history.
 *
 * For simplicity for this demo, it only fetches the first 100 messages.
 *
 * Messages with slash commands are filtered out, so the returned history will
 * contain only the conversations between users and not app command invocations.
 *
 * @return {string} a text containing all the messages in the space in the format:
 *          Sender's name: Message
 */
function concatenateAllSpaceMessages_(spaceName) {
  // Call Chat API method spaces.messages.list
  const response = Chat.Spaces.Messages.list(spaceName, { 'pageSize': 100 });
  const messages = response.messages;
  // Fetch the display names of the message senders and returns a text
  // concatenating all the messages.
  let userMap = new Map();
  return messages
    .filter(message => message.slashCommand === undefined)
    .map(message => `${getUserDisplayName_(userMap, message.sender.name)}: ${message.text}`)
    .join('\n');
}

/**
 * Obtains the display name of a user by using the Admin Directory API.
 *
 * The fetched display name is cached in the provided map, so we only call the API
 * once per user.
 *
 * If the user does not have a display name, then the full name is used.
 *
 * @param {Map} userMap a map containing the display names previously fetched
 * @param {string} userName the resource name of the user
 * @return {string} the user's display name
 */
function getUserDisplayName_(userMap, userName) {
  if (userMap.has(userName)) {
    return userMap.get(userName);
  }
  let displayName = 'Unknown User';
  try {
    const user = AdminDirectory.Users.get(
      userName.replace("users/", ""),
      { projection: 'BASIC', viewType: 'domain_public' });
    displayName = user.name.displayName ? user.name.displayName : user.name.fullName;
  } catch (e) {
    // Ignore error if the API call fails (for example, because it's an
    // out-of-domain user or Chat app)) and just use 'Unknown User'.
  }
  userMap.set(userName, displayName);
  return displayName;
}
ChatSpaceCreator.gs

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

ChatSpaceCreator.gs कोड देखें

apps-script/incident-response-app-auth/ChatSpaceCreator.gs
/**
 * Handles an incident by creating a chat space, adding members, and posting a message.
 * All the actions are done using application credentials.
 *
 * @param {Object} formData - The data submitted by the user. It should contain the fields:
 *                           - title: The display name of the chat space.
 *                           - description: The description of the incident.
 *                           - users: A comma-separated string of user emails to be added to the space.
 * @return {string} The resource name of the new space.
 */
function handleIncident(formData) {
  const users = formData.users.trim().length > 0 ? formData.users.split(',') : [];
  const service = getService_();
  if (!service.hasAccess()) {
    console.error(service.getLastError());
    return;
   }
  const spaceName = createChatSpace_(formData.title, service);
  createHumanMembership_(spaceName, getUserEmail(), service);
  for (const user of users ){
    createHumanMembership_(spaceName, user, service);
  }
  createMessage_(spaceName, formData.description, service);
  return spaceName;
}
/**
 * Creates a chat space with application credentials.
 *
 * @param {string} displayName - The name of the chat space.
 * @param {object} service - The credentials of the service account.
 * @returns {string} The resource name of the new space.
*/
function createChatSpace_(displayName, service) {
  try {
    // For private apps, the alias can be used
    const my_customer_alias = "customers/my_customer";
    // Specify the space to create.
    const space = {
        displayName: displayName,
        spaceType: 'SPACE',                
        customer: my_customer_alias
    };
    // Call Chat API with a service account to create a message.
    const createdSpace = Chat.Spaces.create(
        space,
        {},
        // Authenticate with the service account token.
        {'Authorization': 'Bearer ' + service.getAccessToken()});
    return createdSpace.name;
  } catch (err) {
    // TODO (developer) - Handle exception.
    console.log('Failed to create space with error %s', err.message);
  }
}
/*
 * Creates a chat message with application credentials.
 *
 * @param {string} spaceName - The resource name of the space.
 * @param {string} message - The text to be posted.
 * @param {object} service - The credentials of the service account.
 * @return {string} the resource name of the new space.
 */
function createMessage_(spaceName, message, service) {
  try {
    // Call Chat API with a service account to create a message.
    const result = Chat.Spaces.Messages.create(
        {'text': message},
        spaceName,
        {},
        // Authenticate with the service account token.
        {'Authorization': 'Bearer ' + service.getAccessToken()});

  } catch (err) {
    // TODO (developer) - Handle exception.
    console.log('Failed to create message with error %s', err.message);
  }
}
/**
 * Creates a human membership in a chat space with application credentials.
 *
 * @param {string} spaceName - The resource name of the space.
 * @param {string} email - The email of the user to be added.
 * @param {object} service - The credentials of the service account.
 */
function createHumanMembership_(spaceName, email, service){
  try{
    const membership = {
      member: {
        name: 'users/'+email,
        // User type for the membership
        type: 'HUMAN'
      }
    };
    const result = Chat.Spaces.Members.create(
      membership,
      spaceName,
      {},
      {'Authorization': 'Bearer ' + service.getAccessToken()}
    );
  } catch (err){
    console.log('Failed to create membership with error %s', err.message)
  }

}

 /*
 * Creates a service for the service account.
 * @return {object}  - The credentials of the service account.
 */
function getService_() {
  return OAuth2.createService(APP_CREDENTIALS.client_email)
      .setTokenUrl('https://oauth2.googleapis.com/token')
      .setPrivateKey(APP_CREDENTIALS.private_key)
      .setIssuer(APP_CREDENTIALS.client_email)
      .setSubject(APP_CREDENTIALS.client_email)
      .setScope(APP_CREDENTIALS_SCOPES)
      .setPropertyStore(PropertiesService.getScriptProperties());
}
DocsApi.gs

यह फ़ंक्शन, Google Docs API को कॉल करके उपयोगकर्ता की Google Drive में Google Docs दस्तावेज़ बनाता है. साथ ही, VertexAiApi.gs में बनाई गई घटना की जानकारी की खास जानकारी को दस्तावेज़ में लिखता है.

DocsApi.gs कोड देखें

apps-script/incident-response-app-auth/DocsApi.gs
/**
 * Creates a Doc in the user's Google Drive and writes a summary of the incident information to it.
 *
 * @param {string} title The title of the incident
 * @param {string} resolution Incident resolution described by the user
 * @param {string} chatHistory The whole Chat history be included in the document
 * @param {string} chatSummary A summary of the Chat conversation to be included in the document
 * @return {string} the URL of the created Doc
 */
function createDoc_(title, resolution, chatHistory, chatSummary) {
  let doc = DocumentApp.create(title);
  let body = doc.getBody();
  body.appendParagraph(`Post-Mortem: ${title}`).setHeading(DocumentApp.ParagraphHeading.TITLE);
  body.appendParagraph("Resolution").setHeading(DocumentApp.ParagraphHeading.HEADING1);
  body.appendParagraph(resolution);
  body.appendParagraph("Summary of the conversation").setHeading(DocumentApp.ParagraphHeading.HEADING1);
  body.appendParagraph(chatSummary);
  body.appendParagraph("Full Chat history").setHeading(DocumentApp.ParagraphHeading.HEADING1);
  body.appendParagraph(chatHistory);
  return doc.getUrl();
}
VertexAiApi.gs

यह कुकी, Vertex AI API का इस्तेमाल करके Chat स्पेस में हुई बातचीत की खास जानकारी देती है. यह खास जानकारी, DocsAPI.gs में खास तौर पर बनाए गए दस्तावेज़ में पोस्ट की गई है.

VertexAiApi.gs कोड देखें

apps-script/incident-response-app-auth/VertexAiApi.gs
/**
 * Summarizes a Chat conversation using the Vertex AI text prediction API.
 *
 * @param {string} chatHistory The Chat history that will be summarized.
 * @return {string} The content from the text prediction response.
 */


function summarizeChatHistory_(chatHistory) {

  const API_ENDPOINT = `https://${VERTEX_AI_LOCATION_ID}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${VERTEX_AI_LOCATION_ID}/publishers/google/models/${MODEL_ID}:generateContent`;
  const prompt = "Summarize the following conversation between Engineers resolving an incident"
      + " in a few sentences. Use only the information from the conversation.\n\n" + chatHistory;
  // Get the access token.
  const accessToken = ScriptApp.getOAuthToken();

  const headers = {
    'Authorization': 'Bearer ' + accessToken,
    'Content-Type': 'application/json',
  };
  const payload = {
    'contents': {
      'role': 'user',
      'parts' : [
        {
          'text': prompt
        }
      ]
    }
  }
  const options = {
    'method': 'post',
    'headers': headers,
    'payload': JSON.stringify(payload),
    'muteHttpExceptions': true,
  };
  try {
    const response = UrlFetchApp.fetch(API_ENDPOINT, options);
    const responseCode = response.getResponseCode();
    const responseText = response.getContentText();

    if (responseCode === 200) {
      const jsonResponse = JSON.parse(responseText);
      console.log(jsonResponse)
      if (jsonResponse.candidates && jsonResponse.candidates.length > 0) {
        return jsonResponse.candidates[0].content.parts[0].text; // Access the summarized text
      } else {
        return "No summary found in response.";
      }

    } else {
      console.error("Vertex AI API Error:", responseCode, responseText);
      return `Error: ${responseCode} - ${responseText}`;
    }
  } catch (e) {
    console.error("UrlFetchApp Error:", e);
    return "Error: " + e.toString();
  }
}
WebController.gs

यह कुकी, घटना की जानकारी देने वाली वेबसाइट को चालू करती है.

WebController.gs कोड देखें

apps-script/incident-response-app-auth/WebController.gs
/**
 * Serves the web page from Index.html.
 */
function doGet() {
  return HtmlService
    .createTemplateFromFile('Index')
    .evaluate();
}

/**
 * Serves the web content from the specified filename.
 */
function include(filename) {
  return HtmlService
    .createHtmlOutputFromFile(filename)
    .getContent();
}

/**
 * Returns the email address of the user running the script.
 */
function getUserEmail() {
  return Session.getActiveUser().getEmail();
}
Index.html

इस वेबसाइट को शुरू करने के लिए इस्तेमाल किया गया एचटीएमएल.

Index.html कोड देखें

apps-script/incident-response-app-auth/Index.html
<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <link href='https://fonts.googleapis.com/css?family=Roboto' rel='stylesheet'>
    <?!= include('Stylesheet'); ?>
  </head>
  <body>
    <div class="container">
      <div class="content">
        <h1>Incident Manager</h1>
        <form id="incident-form" onsubmit="handleFormSubmit(this)">
          <div id="form">
            <p>
              <label for="title">Incident title</label><br/>
              <input type="text" name="title" id="title" />
            </p>
            <p>
              <label for="users">Incident responders</label><br/>
              <small>
                Please enter a comma-separated list of email addresses of the users
                that should be added to the space.
                Do not include <?= getUserEmail() ?> as it will be added automatically.
              </small><br/>
              <input type="text" name="users" id="users" />
            </p>
            <p>
              <label for="description">Initial message</label></br>
              <small>This message will be posted after the space is created.</small><br/>
              <textarea name="description" id="description"></textarea>
            </p>
            <p class="text-center">
              <input type="submit" value="CREATE CHAT SPACE" />
            </p>
          </div>
          <div id="output" class="hidden"></div>
          <div id="clear" class="hidden">
            <input type="reset" value="CREATE ANOTHER INCIDENT" onclick="onReset()" />
          </div>
        </form>
      </div>
    </div>
    <?!= include('JavaScript'); ?>
  </body>
</html>
JavaScript.html

यह कुकी, घटना की जानकारी देने वाली वेबसाइट के लिए फ़ॉर्म के व्यवहार को मैनेज करती है. इसमें सबमिट करना, गड़बड़ियां ठीक करना, और साफ़ करना शामिल है. इसे WebController.gs में मौजूद कस्टम include फ़ंक्शन की मदद से Index.html में शामिल किया जाता है.

JavaScript.html कोड देखें

apps-script/incident-response-app-auth/JavaScript.html
<script>
  var formDiv = document.getElementById('form');
  var outputDiv = document.getElementById('output');
  var clearDiv = document.getElementById('clear');

  function handleFormSubmit(formObject) {
    event.preventDefault();
    outputDiv.innerHTML = 'Please wait while we create the space...';
    hide(formDiv);
    show(outputDiv);
    google.script.run
      .withSuccessHandler(updateOutput)
      .withFailureHandler(onFailure)
      .handleIncident(formObject);
  }

  function updateOutput(response) {
    var spaceId = response.replace('spaces/', '');
    outputDiv.innerHTML =
      '<p>Space created!</p><p><a href="https://mail.google.com/chat/#chat/space/'
        + spaceId
        + '" target="_blank">Open space</a></p>';
    show(outputDiv);
    show(clearDiv);
  }

  function onFailure(error) {
    outputDiv.innerHTML = 'ERROR: ' + error.message;
    outputDiv.classList.add('error');
    show(outputDiv);
    show(clearDiv);
  }

  function onReset() {
    outputDiv.innerHTML = '';
    outputDiv.classList.remove('error');
    show(formDiv);
    hide(outputDiv);
    hide(clearDiv);
  }

  function hide(element) {
    element.classList.add('hidden');
  }

  function show(element) {
    element.classList.remove('hidden');
  }
</script>
Stylesheet.html

यह सीएसएस, घटना की जानकारी देने वाली वेबसाइट के लिए है. इसे WebController.gs में कस्टम include फ़ंक्शन के ज़रिए Index.html में शामिल किया गया है.

Stylesheet.html कोड देखें

apps-script/incident-response-app-auth/Stylesheet.html
<style>
  * {
    box-sizing: border-box;
  }
  body {
    font-family: Roboto, Arial, Helvetica, sans-serif;
  }
  div.container {
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 0; bottom: 0; left: 0; right: 0;
  }
  div.content {
    width: 80%;
    max-width: 1000px;
    padding: 1rem;
    border: 1px solid #999;
    border-radius: 0.25rem;
    box-shadow: 0 2px 2px 0 rgba(66, 66, 66, 0.08), 0 2px 4px 2px rgba(66, 66, 66, 0.16);
  }
  h1 {
    text-align: center;
    padding-bottom: 1rem;
    margin: 0 -1rem 1rem -1rem;
    border-bottom: 1px solid #999;
  }
 #output {
    text-align: center;
    min-height: 250px;
  }
  div#clear {
    text-align: center;
    padding-top: 1rem;
    margin: 1rem -1rem 0 -1rem;
    border-top: 1px solid #999;
  }
  input[type=text], textarea {
    width: 100%;
    padding: 1rem 0.5rem;
    margin: 0.5rem 0;
    border: 0;
    border-bottom: 1px solid #999;
    background-color: #f0f0f0;
  }
  textarea {
    height: 5rem;
  }
  small {
    color: #999;
  }
  input[type=submit], input[type=reset] {
    padding: 1rem;
    border: none;
    background-color: #6200ee;
    color: #fff;
    border-radius: 0.25rem;
    width: 25%;
  }
  .hidden {
    display: none;
  }
  .text-center {
    text-align: center;
  }
  .error {
    color: red;
  }
</style>

अपने Cloud प्रोजेक्ट का नंबर और आईडी ढूंढना

  1. Google Cloud Console में, अपने Cloud प्रोजेक्ट पर जाएं.

    Google Cloud Console पर जाएं

  2. सेटिंग और यूटिलिटी &gt प्रोजेक्ट सेटिंग पर क्लिक करें.

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

Apps Script प्रोजेक्ट बनाना

Apps Script प्रोजेक्ट बनाने और उसे अपने Cloud प्रोजेक्ट से कनेक्ट करने के लिए:

  1. Google Chat की मदद से, घटनाओं के बारे में सूचनाएं पाना और उनका जवाब देना Apps Script प्रोजेक्ट खोलने के लिए, यहां दिए गए बटन पर क्लिक करें.
    प्रोजेक्ट खोलें
  2. खास जानकारी पर क्लिक करें.
  3. खास जानकारी वाले पेज पर, कॉपी बनाने का आइकॉन कॉपी बनाएं पर क्लिक करें.
  4. Apps Script प्रोजेक्ट की कॉपी का नाम डालें:

    1. Google Chat की मदद से घटनाओं का जवाब दें की कॉपी पर क्लिक करें.

    2. प्रोजेक्ट का टाइटल में, Incident Management Chat app टाइप करें.

    3. नाम बदलें पर क्लिक करें.

  5. Apps Script प्रोजेक्ट की अपनी कॉपी में, Consts.gs फ़ाइल पर जाएं और YOUR_PROJECT_ID की जगह अपने Cloud प्रोजेक्ट का आईडी डालें.

Apps Script प्रोजेक्ट के लिए Cloud प्रोजेक्ट सेट करना

  1. अपने Apps Script प्रोजेक्ट में, प्रोजेक्ट सेटिंग का आइकॉन प्रोजेक्ट की सेटिंग पर क्लिक करें.
  2. Google Cloud Platform (GCP) प्रोजेक्ट में जाकर, प्रोजेक्ट बदलें पर क्लिक करें.
  3. GCP प्रोजेक्ट नंबर में, अपने Cloud प्रोजेक्ट का प्रोजेक्ट नंबर चिपकाएं.
  4. प्रोजेक्ट सेट करें पर क्लिक करें. अब Cloud प्रोजेक्ट और Apps Script प्रोजेक्ट कनेक्ट हो गए हैं.

Apps Script का डिप्लॉयमेंट बनाना

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

  1. Apps Script में, घटना की जानकारी देने वाले ऐप्लिकेशन का प्रोजेक्ट खोलें.

    Apps Script पर जाएं

  2. डिप्लॉय करें > नया डिप्लॉयमेंट पर क्लिक करें.

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

  4. ब्यौरा में, इस वर्शन के बारे में जानकारी डालें. जैसे, Complete version of incident management app.

  5. इसके तौर पर लागू करें में जाकर, वेब ऐप्लिकेशन ऐक्सेस कर रहा उपयोगकर्ता को चुनें

  6. किसके पास ऐक्सेस है में जाकर, आपके Workspace संगठन में मौजूद कोई भी व्यक्ति को चुनें. यहां "आपके Workspace संगठन" का मतलब, आपके Google Workspace संगठन के नाम से है.

  7. डिप्लॉय करें पर क्लिक करें. Apps Script, डिप्लॉयमेंट के पूरा होने की सूचना देती है. साथ ही, डिप्लॉयमेंट आईडी और घटना की शुरुआत वाले वेब पेज का यूआरएल उपलब्ध कराती है.

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

  9. हो गया पर क्लिक करें.

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

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

  1. Google Cloud Console में, मेन्यू > ज़्यादा प्रॉडक्ट > Google Workspace > प्रॉडक्ट लाइब्रेरी > Google Chat API > मैनेज करें > कॉन्फ़िगरेशन पर क्लिक करें.

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

  2. इस Chat ऐप्लिकेशन को Google Workspace ऐड-ऑन के तौर पर बनाएं को अनचेक करें. इसके बाद, एक डायलॉग बॉक्स खुलेगा. इसमें आपसे पुष्टि करने के लिए कहा जाएगा. डायलॉग बॉक्स में, बंद करें पर क्लिक करें.

  3. ऐप्लिकेशन का नाम में, Incident Management टाइप करें.

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

  5. जानकारी में जाकर, Responds to incidents. टाइप करें.

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

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

  8. कनेक्शन की सेटिंग में जाकर, Apps Script को चुनें.

  9. डिप्लॉयमेंट आईडी में, Apps Script का वह डिप्लॉयमेंट आईडी चिपकाएं जिसे आपने Apps Script प्रोजेक्ट के डिप्लॉयमेंट से पहले कॉपी किया था.

  10. ऐसी स्लैश कमांड रजिस्टर करें जिसका इस्तेमाल, पूरी तरह से लागू किया गया Chat ऐप्लिकेशन करता है:

    1. निर्देश में जाकर, कोई निर्देश जोड़ें पर क्लिक करें.

    2. कमांड आईडी में, 1 टाइप करें.

    3. ब्यौरा में, Closes the incident being discussed in the space. टाइप करें

    4. कमांड टाइप में जाकर, स्लैश कमांड चुनें.

    5. स्लैश कमांड का नाम में, /closeIncident टाइप करें.

    6. डायलॉग बॉक्स खोलता है को चुनें.

    7. हो गया पर क्लिक करें. स्लैश कमांड रजिस्टर हो जाती है और सूची में दिखती है.

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

  12. लॉग में जाकर, लॉगिंग में गड़बड़ियों को लॉग करें चुनें.

  13. सेव करें पर क्लिक करें. आपको 'कॉन्फ़िगरेशन सेव किया गया' मैसेज दिखेगा. इसका मतलब है कि ऐप्लिकेशन की जांच की जा सकती है.

एडमिन की मंज़ूरी पाना

एडमिन से मंज़ूरी पाने के लिए, आपको Google Workspace Marketplace SDK में Chat ऐप्लिकेशन को कॉन्फ़िगर करना होगा.

Google Workspace Marketplace SDK टूल में Chat ऐप्लिकेशन को कॉन्फ़िगर करना

Google Workspace Marketplace SDK में Chat ऐप्लिकेशन को कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:

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

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

  2. ऐप्लिकेशन कॉन्फ़िगरेशन पेज पर जाकर, ज़रूरी जानकारी भरें. Chat ऐप्लिकेशन को कॉन्फ़िगर करने का तरीका, आपकी टारगेट ऑडियंस और अन्य बातों पर निर्भर करता है. ऐप्लिकेशन कॉन्फ़िगरेशन पेज को पूरा करने में मदद पाने के लिए, Google Workspace Marketplace SDK में अपना ऐप्लिकेशन कॉन्फ़िगर करना लेख पढ़ें. इस गाइड के लिए, यह जानकारी डालें:

    1. ऐप्लिकेशन किसको दिखाई दे में जाकर, निजी को चुनें.
    2. इंस्टॉलेशन सेटिंग में जाकर, एडमिन के तौर पर इंस्टॉल करें को चुनें.
    3. ऐप्लिकेशन इंटिग्रेशन में जाकर, Chat ऐप्लिकेशन चुनें.
    4. OAuth के दायरे में जाकर, ये दायरे डालें:
      • https://www.googleapis.com/auth/chat.app.spaces
      • https://www.googleapis.com/auth/chat.app.memberships
    5. डेवलपर के बारे में जानकारी में जाकर, डेवलपर का नाम, डेवलपर की वेबसाइट का यूआरएल, और डेवलपर का ईमेल पता डालें.
    6. ड्राफ़्ट सेव करें पर क्लिक करें.

ऐप्लिकेशन को कॉन्फ़िगर करने के बाद, स्टोर पेज को अपडेट करें:

  1. Google Cloud Console में, मेन्यू > एपीआई और सेवाएं > चालू किए गए एपीआई और सेवाएं > Google Workspace Marketplace SDK > स्टोर पेज पर जाएं.
  2. ऐप्लिकेशन की जानकारी में जाकर, वेब डेवलपमेंट को कैटगरी के तौर पर चुनें.
  3. ग्राफ़िक ऐसेट में जाकर, ऐप्लिकेशन के आइकॉन को अनुरोध किए गए फ़ॉर्मैट में अपलोड करें.
  4. स्क्रीनशॉट में जाकर, ऐप्लिकेशन का स्क्रीनशॉट अपलोड करें.
  5. सहायता लिंक में, सेवा की शर्तों का यूआरएल, निजता नीति का यूआरएल, और सहायता पेज का यूआरएल डालें.
  6. वितरण में जाकर, वे इलाके चुनें जहां यह ऐप्लिकेशन उपलब्ध होगा.
  7. पब्लिश करें पर क्लिक करें.

एडमिन की मंज़ूरी पाना

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

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

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

  1. Apps Script की मदद से डिप्लॉय किए गए वेब ऐप्लिकेशन के यूआरएल पर जाएं.

  2. जब Apps Script आपके डेटा को ऐक्सेस करने की अनुमति मांगे, तो अनुमतियों की समीक्षा करें पर क्लिक करें. इसके बाद, अपने Google Workspace डोमेन में मौजूद किसी Google खाते से साइन इन करें. इसके बाद, अनुमति दें पर क्लिक करें.

  3. इससे, घटना की शुरुआत करने वाला वेब पेज खुलता है. जांच की जानकारी डालें:

    1. घटना का टाइटल में, The First Incident टाइप करें.
    2. अगर चाहें, तो घटना से जुड़े जवाब देने वाले लोग में, घटना से जुड़े जवाब देने वाले अपने साथियों के ईमेल पते डालें. उनका Google Workspace संगठन में Google Chat खाता होना चाहिए. ऐसा न होने पर, स्पेस नहीं बनाया जा सकेगा. अपना ईमेल पता न डालें, क्योंकि यह अपने-आप शामिल हो जाता है.
    3. शुरुआती मैसेज में, Testing the incident management Chat app. टाइप करें
  4. चैट स्पेस बनाएं पर क्लिक करें. आपको creating space मैसेज दिखेगा.

  5. स्पेस बन जाने के बाद, Space created! मैसेज दिखता है. स्पेस खोलें पर क्लिक करें. इससे Chat में स्पेस, नए टैब में खुल जाएगा.

  6. आप और घटना से जुड़े अन्य लोग चाहें, तो स्पेस में मैसेज भेज सकते हैं. ऐप्लिकेशन, Vertex AI का इस्तेमाल करके इन मैसेज की खास जानकारी देता है. साथ ही, एक दस्तावेज़ शेयर करता है, जिसमें पिछली गतिविधियों की जानकारी होती है.

  7. समस्या से निपटने की प्रोसेस खत्म करने और समस्या हल करने की प्रोसेस शुरू करने के लिए, चैट स्पेस में /closeIncident टाइप करें. 'इंसिडेंट मैनेजमेंट' डायलॉग बॉक्स खुलता है.

  8. समस्या हल करें में जाकर, समस्या हल करने के बारे में जानकारी डालें. जैसे, Test complete.

  9. समस्या बंद करें पर क्लिक करें.

इंसिडेंट मैनेजमेंट ऐप्लिकेशन, स्पेस में मौजूद मैसेज की सूची बनाता है. इसके बाद, Vertex AI की मदद से उनका खास जानकारी तैयार करता है. इसके बाद, इस खास जानकारी को Google Docs दस्तावेज़ में चिपकाता है और दस्तावेज़ को स्पेस में शेयर करता है.

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

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

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

    Resource Manager पर जाएं

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