1. शुरू करने से पहले
Gemini की सुविधा वाले Google Chat ऐप्लिकेशन क्या हैं?
Gemini की सुविधा वाले Google Chat ऐप्लिकेशन ये काम करते हैं:
- अपनी सेवाओं और संसाधनों को Google Chat में जोड़ें. इससे उपयोगकर्ता, बातचीत छोड़े बिना जानकारी पा सकते हैं और कार्रवाई कर सकते हैं.
- इन्हें जनरेटिव एआई मॉडल Gemini के साथ इंटिग्रेट किया जा सकता है. इससे ये तय समय पर टेक्स्ट या इमेज जैसा डेटा बना सकते हैं या खोज सकते हैं, ताकि आपके वर्कफ़्लो को बेहतर बनाया जा सके.
Google Chat ऐप्लिकेशन को Gemini के साथ क्यों इंटिग्रेट करें?
Gemini जैसे जनरेटिव एआई मॉडल के इस्तेमाल के उदाहरण, इन कैटगरी में आते हैं:
- कॉन्टेंट बनाना और उसे बेहतर बनाना. मार्केटिंग कॉपी जनरेट करना, सोशल मीडिया पोस्ट बनाना, असली जैसी इमेज बनाना, संगीत तैयार करना या वीडियो कॉन्टेंट बनाने में मदद करना.
- डेटा खोजना. बेतरतीब तरीके से व्यवस्थित किए गए नॉलेज बेस से अहम जानकारी निकालें, लंबे टेक्स्ट का सारांश बनाएं, कॉन्टेंट को कैटगरी में बांटें या बेहतर सटीकता और तेज़ी से भाषाओं का अनुवाद करें.
- बातचीत. नैचुरल, जानकारी देने वाली, और क्रिएटिव बातचीत करें.
इन सुविधाओं को सीधे तौर पर Google Chat के जाने-पहचाने इंटरफ़ेस में इंटिग्रेट करने की सुविधा, उन सभी लोगों के लिए एक बेहतरीन अवसर है जो अपने उपयोगकर्ताओं के अनुभव और उनकी प्रॉडक्टिविटी को बेहतर बनाना चाहते हैं.
ज़रूरी शर्तें
- Apps Script, Google Cloud, और Node.js के बारे में बुनियादी जानकारी.
- Google Chat के कॉन्सेप्ट की बुनियादी जानकारी होनी चाहिए. जैसे, इवेंट हैंडलर, स्लैश कमांड, डायलॉग, कार्ड, मैसेज, ऐप्लिकेशन की पुष्टि, और एपीआई.
बनाई गई चीज़ें
इस कोडलैब में, Gemini की मदद से तीन Google Chat ऐप्लिकेशन बनाए जाते हैं. इससे पिछले सेक्शन में बताए गए तीन इस्तेमाल के उदाहरणों को कवर किया जा सकता है.
समस्या मैनेज करने वाला ऐप्लिकेशन (कॉन्टेंट बनाना और उसे बेहतर बनाना)
यह ऐप्लिकेशन ये काम करता है:
- यह ऐप्लिकेशन बनाने से लेकर बंद करने तक की समस्याओं को मैनेज करता है. इसके लिए, बुनियादी इंटरैक्शन, ऐप्लिकेशन होम, और ऐप्लिकेशन की पुष्टि करने की सुविधा का इस्तेमाल किया जाता है.
- यह मैसेज पर नज़र रखता है और इवेंट और ऐक्सेसरी विजेट के साथ, सभी को शामिल करने में मदद करता है.
Gemini का इस्तेमाल इन कामों के लिए किया जाता है:
- मैसेज के इतिहास और समस्या की जानकारी के आधार पर, समस्या की रिपोर्ट जनरेट करना.
- गेटेड प्रॉम्प्ट की मदद से, मैसेज में शामिल ऐसे शब्दों का पता लगाना जो सभी को साथ लेकर चलने की भावना को बढ़ावा नहीं देते.
इसमें Vertex AI, Gemini, Apps Script, और Google Workspace API (Admin, Chat, Docs, Events) जैसी मुख्य टेक्नोलॉजी का इस्तेमाल किया जाता है.



Knowledge ऐप्लिकेशन (डेटा खोजना)
यह ऐप्लिकेशन, आम भाषा में पूछे गए सवालों को समझने और उनके जवाब देने के लिए Gemini पर निर्भर करता है. साथ ही, यह बिना किसी स्ट्रक्चर वाले डेटा से सोर्स के रेफ़रंस भी देता है.
इसमें मुख्य तौर पर, Dialogflow CX डेटा स्टोर एजेंट, Dialogflow CX वेबहुक, Google Cloud Functions, और Gemini का इस्तेमाल किया जाता है.

Feedback app (conversation)
यह ऐप्लिकेशन, नैचुरल लैंग्वेज में बातचीत करके समीक्षाएं इकट्ठा करता है और उन्हें सेव करता है. इसके लिए, यह Gemini पर निर्भर करता है.
इसमें मुख्य तौर पर Dialogflow CX एजेंट, Dialogflow CX टूल, OpenAPI, Google Cloud Functions, और Gemini का इस्तेमाल किया जाता है.

आपको क्या सीखने को मिलेगा
- Vertex AI के ज़रिए, Google Chat ऐप्लिकेशन को Gemini के साथ इंटिग्रेट करने का तरीका.
- Google Chat ऐप्लिकेशन को Dialogflow CX एजेंट के साथ इंटिग्रेट करने का तरीका.
- Google Chat की नई सुविधाओं का इस्तेमाल करने का तरीका: ऐप्लिकेशन होम, Google Chat Events, और ऐक्सेसरी विजेट.
ज़रूरी शर्तें
- Apps Script की मदद से Google Chat ऐप्लिकेशन बनाएं क्विकस्टार्ट पूरा किया हो. यह कोडलैब, Apps Script और Google Cloud प्रोजेक्ट के नतीजों पर आधारित है.
2. सेट अप करें
संसाधन शुरू करना
इस सेक्शन में, अपने पसंदीदा वेब ब्राउज़र से इन संसाधनों को ऐक्सेस और कॉन्फ़िगर किया जा सकता है.
Apps Script प्रोजेक्ट
Apps Script console में जाकर, यह तरीका अपनाएं:
- सेटिंग पर क्लिक करें. इसके बाद, Google Apps Script API को चालू करें.

- अपना प्रोजेक्ट चुनें.
- प्रोजेक्ट सेटिंग पर क्लिक करें.
- एडिटर में "
appsscript.json" मेनिफ़ेस्ट फ़ाइल दिखाएं चेकबॉक्स को चुनें. - प्रोजेक्ट का नाम बदलकर
Chat Apps Geminiकर दो.

Google Cloud प्रोजेक्ट
Google Cloud Console में जाकर, यह तरीका अपनाएं:
- अपना प्रोजेक्ट चुनें.
- मेन्यू ☰ > एपीआई और सेवाएं > OAuth सहमति स्क्रीन > ऐप्लिकेशन में बदलाव करें पर क्लिक करें. इसके बाद, ऐप्लिकेशन का नाम को
Chat Apps Geminiपर सेट करें.
- Google Chat API कॉन्फ़िगरेशन पर जाएं. इसके बाद, ऐप्लिकेशन का नाम और ब्यौरा को
Chat Apps Geminiपर सेट करें.

Google Chat
Google Chat में जाकर, यह तरीका अपनाएं:
- ज़रूरत पड़ने पर, Google Chat ऐप्लिकेशन में जाकर चैट शुरू करें.
- यह सुविधा काम कर रही है या नहीं, यह देखने के लिए
Helloजैसा कोई मैसेज भेजें.

सोर्स कोड और संसाधनों को अपने डिवाइस में डाउनलोड करना
- GitHub की इस रिपॉज़िटरी को डाउनलोड करें.
- अपने पसंदीदा डेवलपमेंट एनवायरमेंट में,
apps-scriptडायरेक्ट्री खोलें. इसके बाद, अपने टर्मिनल में उसी डायरेक्ट्री पर जाएं.

clasp को इंस्टॉल और कॉन्फ़िगर करना
हम clasp का इस्तेमाल करते हैं, ताकि स्थानीय एनवायरमेंट से Apps Script प्रोजेक्ट में सोर्स कोड के वर्शन को आसानी से बदला और पुश किया जा सके.
- अपने लोकल एनवायरमेंट में,
node,npm, औरclaspके नए वर्शन इंस्टॉल करें.
npm install -g @google/clasp
- अपने खाते से लॉग इन करें:
clasp login

अगर पुष्टि हो जाती है, तो आपको अपने वेब ब्राउज़र में पुष्टि की सामान्य स्क्रीन दिखेगी. साथ ही, आपके क्लाइंट क्रेडेंशियल वाली .clasprc.json फ़ाइल अपडेट हो जाएगी. आपको अपने टर्मिनल में इसकी जगह की जानकारी मिल सकती है.

3. ऐप्लिकेशन 1: बिल्ड
कॉन्सेप्ट की समीक्षा करें
Vertex AI
Vertex AI में, जनरेटिव एआई को बनाने और इस्तेमाल करने के लिए ज़रूरी सभी सुविधाएँ मिलती हैं. जैसे, एआई के समाधान, एजेंट बिल्डर, 130 से ज़्यादा फ़ाउंडेशन मॉडल, और यूनीफ़ाइड एआई प्लैटफ़ॉर्म.

Gemini
Gemini, Google का एक मल्टीमॉडल एलएलएम है. इसे Vertex AI के ज़रिए ऐक्सेस किया जा सकता है. इससे लोगों को अपनी पूरी क्षमता का इस्तेमाल करने में मदद मिलती है. इससे वे अपनी कल्पना को और बेहतर बना पाते हैं, नई चीज़ें जानने की इच्छा को बढ़ा पाते हैं, और अपनी प्रॉडक्टिविटी को बेहतर बना पाते हैं.
ऐडवांस चैट सेवा
ऐडवांस चैट सेवा की मदद से, Apps Script में Google Chat API का इस्तेमाल किया जा सकता है. इससे स्क्रिप्ट को Chat स्पेस ढूंढने, बनाने, और उनमें बदलाव करने की अनुमति मिलती है. साथ ही, स्पेस में सदस्यों को जोड़ने या हटाने की अनुमति मिलती है. इसके अलावा, टेक्स्ट, कार्ड, अटैचमेंट, और प्रतिक्रियाओं वाले मैसेज पढ़ने या पोस्ट करने की अनुमति मिलती है.
आर्किटेक्चर की समीक्षा करना

इस Google Chat ऐप्लिकेशन को Apps Script की मदद से बनाया गया है. यह इस तरह काम करता है:
- कोई उपयोगकर्ता, ऐप्लिकेशन को डायरेक्ट मैसेज या किसी स्पेस में मैसेज भेजता है.
- Apps Script प्रोजेक्ट में लागू किया गया और Google Cloud प्रोजेक्ट से जुड़ा ऐप्लिकेशन, मैसेज को प्रोसेस करता है.
- यह ऐप्लिकेशन, Google Docs और Google Chat API के साथ इंटिग्रेट होता है.
- यह ऐप्लिकेशन, स्क्रिप्ट प्रॉपर्टी में डेटा को सेव करने के लिए Properties Service का इस्तेमाल करता है.
- ऐप्लिकेशन, डायरेक्ट मैसेज या ओरिजनल स्पेस में सिंक्रोनस जवाब भेजता है.
समीक्षा के फ़्लो
समस्या दर्ज करें

समस्या को हल करने के लिए, खास तौर पर तैयार किए गए स्पेस का इस्तेमाल करना

समस्या को खास स्पेस से बंद करना

सोर्स कोड की समीक्षा करना
Apps Script प्रोजेक्ट में ये स्क्रिप्ट शामिल हैं:
Configuration: एनवायरमेंट के हिसाब से बदलाव करने के लिए कॉन्स्टेंट.ChatApp: यह Google Chat के इंटरैक्शन इवेंट को मैनेज करता है. इनमें मैसेज, कार्ड पर क्लिक, स्लैश कमांड, और डायलॉग शामिल हैं.Storage: ऐसे यूटिलिटी फ़ंक्शन जो Properties Services पर निर्भर होते हैं.ChatAppAuth: ये ऐसे फ़ंक्शन हैं जो Google Chat ऐप्लिकेशन की पुष्टि करने पर काम करते हैं.Docs: ऐसे यूटिलिटी फ़ंक्शन जो Google Docs पर काम करते हैं.VertexAi: ऐसे यूटिलिटी फ़ंक्शन जो Vertex AI पर निर्भर होते हैं.
Gemini और चैट स्पेस की चैट के इतिहास की मदद से रिपोर्ट के दस्तावेज़ जनरेट करते समय, इन हिस्सों का इस्तेमाल किया जाता है:
appsscript.json
// Enables the Admin SDK Directory and Chat services, which you need to retrieve
// messages and usernames.
"enabledAdvancedServices": [
...
{
"userSymbol": "AdminDirectory",
"version": "directory_v1",
"serviceId": "admin"
},
{
"userSymbol": "Chat",
"version": "v1",
"serviceId": "chat"
}
...
]
// Includes the OAuth scopes to request the Admin SDK Directory, Google Chat,
// Google Docs, and Vertex AI APIs.
"oauthScopes": [
...
"https://www.googleapis.com/auth/admin.directory.user.readonly",
"https://www.googleapis.com/auth/chat.messages.readonly",
"https://www.googleapis.com/auth/documents",
"https://www.googleapis.com/auth/cloud-platform",
...
]
Configuration.js
// Relies on two constants: the first one is the Google Cloud project ID and the
// second one is the Vertex AI location to be used.
...
const PROJECT_ID = 'replace-with-gcp-project-id';
const VERTEX_AI_LOCATION_ID = 'us-central1';
...
ChatApp.js
// The slash command process function retrieves history, generates content, and passes
// it to the report generator.
function processSlashCommand(event) {
...
if (event.message.slashCommand.commandId == CLOSE_COMMAND_ID
&& event.message.space.type !== "DM") {
...
const history = exportSpaceHistory(spaceId);
const summary = summarizeSpace(history);
const docUrl = createReport(
issue.title, issue.description, resolution, history, summary
);
...
}
...
}
/**
* Fetches and concatenates the 100 first space messages by using the Google Chat API.
*
* Messages with slash commands are filtered (app command invocations).
*
* @return {string} concatenate space messages in the format "Sender's name: Message"
*/
function exportSpaceHistory(spaceName) {
const messages = Chat.Spaces.Messages.list(spaceName, { 'pageSize': 100 }).messages;
// Returns results after fetching message sender display names.
let users = new Map();
return messages
.filter(message => message.slashCommand === undefined)
.map(message =>
`${getUserDisplayName(users, message.sender.name)}: ${message.text}`
).join('\n');
}
/**
* Fetches a user's display name by using the Admin Directory API.
*
* A cache is used to only call the API once per user.
*
* @param {Map} cache the map containing users previously fetched
* @param {string} userId the user ID to fetch
* @return {string} the user's display name
*/
function getUserDisplayName(cache, userId) {
if (cache.has(userId)) {
return cache.get(userId);
}
let displayName = 'Unknown User';
try {
const user = AdminDirectory.Users.get(
userId.replace("users/", ""),
{ projection: 'BASIC', viewType: 'domain_public' });
displayName = user.name.displayName ? user.name.displayName : user.name.fullName;
} catch (e) {
// Ignores errors, uses 'Unknown User' by default.
}
cache.set(userId, displayName);
return displayName;
}
VertexAi.js
/**
* Summarizes a Google Chat space history with the Gemini Pro model using
* Vertex AI API.
*
* @param {string} history the history
* @return {string} the summary
*/
function summarizeSpace(history) {
const url = `https://${VERTEX_AI_LOCATION_ID}-aiplatform.googleapis.com/v1`
+ `/projects/${PROJECT_ID}/locations/${VERTEX_AI_LOCATION_ID}`
+ "/publishers/google/models/gemini-1.0-pro:generateContent";
const options = {
method: "POST",
headers: { Authorization: "Bearer " + ScriptApp.getOAuthToken() },
contentType: "application/json",
payload: JSON.stringify({
contents: {
role: "user",
parts: {
text: "Summarize the following conversation between engineers resolving"
+ " an issue in a few sentences.\n\n" + history
}
},
safetySettings: {
category: "HARM_CATEGORY_SEXUALLY_EXPLICIT",
threshold: "BLOCK_LOW_AND_ABOVE"
},
generationConfig: {
temperature: 0.2,
topP: 0.8,
topK: 40
}
})
};
return JSON.parse(UrlFetchApp.fetch(url, options).getContentText())
.candidates[0].content.parts[0].text;
}
Docs.js
// The report generator function adds two sections: the first one is for the summary and the second one is for history.
function createReport(..., history, summary) {
...
body.appendParagraph("Summary").setHeading(DocumentApp.ParagraphHeading.HEADING1);
body.appendParagraph(summary);
body.appendParagraph("History").setHeading(DocumentApp.ParagraphHeading.HEADING1);
body.appendParagraph(history);
...
}
Google Cloud प्रोजेक्ट अपडेट करना
एपीआई चालू करना
- Google Cloud Console में, Google Docs, Google Admin SDK, और Vertex AI API चालू करें:
- मेन्यू ☰ > एपीआई और सेवाएं > चालू किए गए एपीआई और सेवाएं पर क्लिक करें. इसके बाद, पुष्टि करें कि एपीआई चालू हैं.
सेवा खाता शुरू करना
Google Cloud Console में जाकर, यह तरीका अपनाएं:
- मेन्यू ☰ > आईएएम और एडमिन > सेवा खाते > + सेवा खाता बनाएं पर क्लिक करें.

- सेवा खाते का नाम को
chat-appपर सेट करें. - सेवा खाते का ब्यौरा को
Chat app authपर सेट करें. - बनाएं और जारी रखें पर क्लिक करें.
- हो गया पर क्लिक करें. आपको सेवा खातों वाले पेज पर रीडायरेक्ट कर दिया जाएगा. यहां आपको बनाया गया सेवा खाता दिखेगा.

- नया बनाया गया सेवा खाता चुनें.
- कुंजियां टैब को चुनें.
- कुंजी जोड़ें पर क्लिक करें.
- नई कुंजी बनाएं पर क्लिक करें.
- JSON चुनें.
- बनाएं पर क्लिक करें.

डायलॉग बंद हो जाता है और आपकी नई सार्वजनिक/निजी कुंजी की जोड़ी, JSON फ़ाइल के तौर पर आपके लोकल एनवायरमेंट में अपने-आप डाउनलोड हो जाती है. Apps Script प्रोजेक्ट के सोर्स कोड में बदलाव करते समय, इस कॉन्टेंट का इस्तेमाल किया जाता है.
Google Chat API के कॉन्फ़िगरेशन को अपडेट करना
Google Cloud Console में जाकर, यह तरीका अपनाएं:
- कोई स्लैश कमांड जोड़ें.
- Name को
/createपर सेट करें. - कमांड आईडी को
1पर सेट करें. - ब्यौरा को
Create a new issueपर सेट करें. - डायलॉग बॉक्स खोलता है चेकबॉक्स चुनें.
- कोई अन्य स्लैश कमांड जोड़ें.
- Name को
/closeपर सेट करें. - कमांड आईडी को
2पर सेट करें. - ब्यौरा को
Close an issueपर सेट करें. - सेव करें पर क्लिक करें.

Apps Script प्रोजेक्ट अपडेट करना
- अपने लोकल टर्मिनल में मौजूद मौजूदा डायरेक्ट्री को
issue-management/1-baselineपर बदलें. इसमें सोर्स कोड होता है. सोर्स कोड को अपने Apps Script प्रोजेक्ट में पुश करने से पहले, आपको कुछ चीज़ें कॉन्फ़िगर करनी होंगी.
सोर्स कोड कॉन्फ़िगर करना
Configuration.jsफ़ाइल में,CHAT_CREDENTIALSनाम के JSON कॉन्स्टेंट को, निजी पासकोड वाली उस फ़ाइल के कॉन्टेंट पर सेट करें जिसे आपने पहले डाउनलोड किया था.

- Google Cloud console में, मेन्यू ☰ > IAM और एडमिन > सेटिंग पर क्लिक करें.
- प्रोजेक्ट आईडी को कॉपी करें.

Configuration.jsफ़ाइल में मौजूदPROJECT_IDनाम के स्ट्रिंग कॉन्स्टेंट को प्रोजेक्ट आईडी पर सेट करें.

clasp की सेटिंग कॉन्फ़िगर करना
सोर्स कोड को सही Apps Script प्रोजेक्ट में पुश करने के लिए, clasp की सेटिंग को शुरू करने के लिए, यह तरीका अपनाएं:
- Apps Script कंसोल में, अपना प्रोजेक्ट चुनें.
- प्रोजेक्ट सेटिंग चुनें.
- आईडी में जाकर, कॉपी करें पर क्लिक करें.

- मौजूदा डायरेक्ट्री में,
.clasp.jsonफ़ाइल बनाएं. <your-script-id>की जगह कॉपी किया गया आईडी डालें.- नतीजे को
.clasp.jsonफ़ाइल में कॉपी करें. .clasp.jsonफ़ाइल सेव करें.
{
"scriptId": "<your-script-id>"
}
सोर्स कोड को पुश करना
- यह कमांड चलाएं:
$clasp push ? Manifest file has been updated. Do you want to push and overwrite? Yes └─ appsscript.json └─ ChatApp.js └─ ChatAppAuth.js └─ Configuration.js └─ Docs.js └─ Storage.js └─ VertexAi.js Pushed 7 files.
इसे आज़माएं
- Google Chat में, ऐप्लिकेशन को डायरेक्ट मैसेज में
Hello!भेजें. ऐप्लिकेशन इसका जवाब नहीं देता है, लेकिन एक मैसेज दिखता है, जिसमें कॉन्फ़िगरेशन करने के लिए कहा जाता है.

- कॉन्फ़िगर करें पर क्लिक करें.
- अपने Google खाते का चयन करें.
- पुष्टि करें.
- ऐप्लिकेशन को ऐक्सेस करने की अनुमति दें.

अगर पुष्टि हो जाती है, तो आपको वेब पेज पर पुष्टि की सामान्य स्क्रीन दिखेगी. साथ ही, ऐप्लिकेशन से आपके ओरिजनल मैसेज का जवाब मिलेगा.


- ऐप्लिकेशन को एक और डायरेक्ट मैसेज भेजें. हालांकि, इस बार स्लैश कमांड
/createका इस्तेमाल करें.

- डायलॉग बॉक्स में, टाइटल को
Issue Title 1पर सेट करें. - ब्यौरे को समस्या
Description 1पर सेट करें. - बनाएं पर क्लिक करें.

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

- नए बनाए गए स्पेस में, स्लैश कमांड
/closeऔर समस्या के बारे में जानकारी देकर मैसेज भेजें. जैसे,Not reproducible.

यह ऐप्लिकेशन ये काम करता है:
- Google Docs में रिपोर्ट का दस्तावेज़ बनाता है.
- समस्या के लिए बनाए गए स्पेस में, नई रिपोर्ट के दस्तावेज़ का लिंक भेजता है.

- रिपोर्ट का दस्तावेज़ खोलें. इसमें बुनियादी जानकारी, इतिहास, और खास जानकारी शामिल होती है.

4. ज़रूरी नहीं: ऐप्लिकेशन 1: ऐप्लिकेशन होम जोड़ना
कॉन्सेप्ट की समीक्षा करें
ऐप्लिकेशन का होम पेज, कार्ड के तौर पर दिखने वाला एक ऐसा मैसेज होता है जिसे पसंद के मुताबिक बनाया जा सकता है. Chat ऐप्लिकेशन, इस मैसेज को तब भेजता है, जब कोई उपयोगकर्ता Chat ऐप्लिकेशन के साथ हुए डायरेक्ट मैसेज से होम टैब को ऐक्सेस करता है. आम तौर पर, इसका इस्तेमाल ऐप्लिकेशन के दस्तावेज़ या खास जानकारी दिखाने के लिए किया जाता है. तकनीकी तौर पर, इस सुविधा को मैनेज करने के लिए एक खास इवेंट होता है. यह कार्ड मैसेज के मुख्य सिद्धांतों पर आधारित होता है.

समीक्षा के फ़्लो
समस्याएं मैनेज करना
सोर्स कोड की समीक्षा करना
Apps Script प्रोजेक्ट में बदलाव करना ज़रूरी है.
ChatApp.js
/**
* Handles app home requests in Google Chat.
*
* Displays the latest status of all issues.
*/
function onAppHome() {
// Generates one card section per issue.
var sections = [];
for (var issueKey in appProperties.getProperties()) {
const issue = JSON.parse(appProperties.getProperty(issueKey));
if (issue.spaceId) {
sections.push({
header: `${issue.status} - ${issue.title}`,
widgets: [{ textParagraph: {
text: `Description: ${issue.description}`
}}, { textParagraph: {
text: `Resolution: ${issue.resolution}`
}}, { buttonList: { buttons: [{
text: "Open space",
onClick: { openLink: {
url: `https://mail.google.com/mail/u/0/#chat/space/${issue.spaceId}`
}}
}, {
text: "Open report",
onClick: { openLink: {
url: issue.reportUrl !== "" ? issue.reportUrl : "docs.new"
}},
disabled: issue.reportUrl === ""
}]}
}]
});
}
}
return { action: { navigations: [{ push_card: {
sections: sections
}}]}};
}
Google Cloud प्रोजेक्ट अपडेट करना
Google Cloud Console में जाकर, यह तरीका अपनाएं:
अपने लोकल एनवायरमेंट में, यह तरीका अपनाएं:
- अपने टर्मिनल में मौजूद मौजूदा डायरेक्ट्री को
issue-management/2-app-homeमें बदलें. इसमें वह सोर्स कोड होता है जिसका आपको इस्तेमाल करना है. issue-management/1-baseline/.clasp.jsonफ़ाइल को अपनी मौजूदा डायरेक्ट्री में कॉपी करें.issue-management/1-baseline/Configuration.jsफ़ाइल को अपनी मौजूदा डायरेक्ट्री में कॉपी करें, ताकि यह मौजूदा फ़ाइल की जगह ले सके.- यह कमांड चलाएं:
clasp push
इसे आज़माएँ
Google Chat में जाकर, यह तरीका अपनाएं:
- ऐप्लिकेशन को
/createस्लैश कमांड के साथ डायरेक्ट मैसेज भेजें. ऐप्लिकेशन एक डायलॉग बॉक्स खोलेगा. - Title को
Issue Title 2पर सेट करें. - ब्यौरे को समस्या
Description 2पर सेट करें. - बनाएं पर क्लिक करें.

- Google Chat ऐप्लिकेशन में, अपने स्पेस में जाकर होम टैब चुनें. यहां आपको अपनी बनाई गई समस्याओं की जानकारी दिखेगी.

5. ज़रूरी नहीं: ऐप्लिकेशन 1: स्पेस की निगरानी करने की सुविधा जोड़ना
कॉन्सेप्ट की समीक्षा करना
Pub/Sub
Pub/Sub एक एसिंक्रोनस और स्केलेबल मैसेज सेवा है. यह मैसेज जनरेट करने वाली सेवाओं को, उन मैसेज को प्रोसेस करने वाली सेवाओं से अलग करती है. Pub/Sub की मदद से, इवेंट प्रोड्यूसर और उपभोक्ताओं के सिस्टम बनाए जा सकते हैं. इन्हें पब्लिशर और सदस्य कहा जाता है. पब्लिशर, इवेंट ब्रॉडकास्ट करके सदस्यों के साथ एसिंक्रोनस तरीके से कम्यूनिकेट करते हैं. इसके लिए, वे सिंक्रोनस रिमोट प्रोसीजर कॉल (आरपीसी) का इस्तेमाल नहीं करते.
पब्लिशर, Pub/Sub सेवा को इवेंट भेजते हैं. वे इस बात पर ध्यान नहीं देते कि इन इवेंट को कब और कैसे प्रोसेस किया जाना है. इसके बाद, Pub/Sub उन सभी सेवाओं को इवेंट डिलीवर करता है जो उन पर प्रतिक्रिया करती हैं. आरपीसी के ज़रिए कम्यूनिकेट करने वाले सिस्टम में, पब्लिशर को यह पक्का करना होगा कि सदस्यों को डेटा मिल गया हो. हालांकि, Pub/Sub में असिंक्रोनस इंटिग्रेशन की वजह से, पूरे सिस्टम को ज़्यादा लचीला और मज़बूत बनाया जा सकता है.
विषय: यह नाम दिया गया एक ऐसा संसाधन होता है जो मैसेज के फ़ीड को दिखाता है. किसी विषय को पब्लिश करने या उसकी सदस्यता लेने से पहले, आपको एक विषय बनाना होगा.
सदस्यता: किसी विषय पर पब्लिश हुए मैसेज पाने के लिए, आपको उस विषय की सदस्यता लेनी होगी. सदस्यता लेने वाला क्लाइंट, विषय के लिए पब्लिश किए गए मैसेज पाता है और उन्हें प्रोसेस करता है. किसी विषय के लिए एक से ज़्यादा सदस्यताएं ली जा सकती हैं. हालांकि, कोई सदस्यता सिर्फ़ एक विषय से जुड़ी होती है.
Google Workspace इवेंट
Google Workspace इवेंट, Google Workspace के संसाधनों में हुए बदलावों को दिखाते हैं. जैसे, संसाधन कब बनाए गए, अपडेट किए गए या मिटाए गए. ऐप्लिकेशन, Google Workspace के संसाधनों की सदस्यता ले सकते हैं. इससे उन्हें काम के इवेंट मिल सकते हैं और वे उन्हें एसिंक्रोनस तरीके से प्रोसेस कर सकते हैं.

Google Workspace Events API, सदस्यता के ज़रिए किसी ऐप्लिकेशन को इवेंट कैसे डिलीवर करता है, यहां बताया गया है:
- यह ऐप्लिकेशन, Google Workspace ऐप्लिकेशन में मौजूद किसी संसाधन की सदस्यता लेता है. जैसे, कोई स्पेस.
- जिस संसाधन के लिए ऐप्लिकेशन ने सदस्यता ली है उसमें बदलाव होता है.
- Google Workspace ऐप्लिकेशन, Pub/Sub में किसी विषय से जुड़ा इवेंट डिलीवर करता है. यह ऐप्लिकेशन की Google Workspace सदस्यता के लिए सूचना एंडपॉइंट के तौर पर काम करता है. इवेंट में, संसाधन में हुए बदलावों के बारे में डेटा होता है.
- ऐप्लिकेशन, Pub/Sub मैसेज को प्रोसेस करता है. इस मैसेज में इवेंट की जानकारी होती है. अगर ज़रूरी हो, तो ऐप्लिकेशन कार्रवाई भी करता है.
समीक्षा के फ़्लो
समस्या (अपडेट) बनाएं

डेडीकेटेड स्पेस से जुड़ी समस्या हल करना (अपडेट)

समस्या को किसी खास स्पेस से बंद करना (अपडेट)

सदस्यताओं को प्रोसेस करना

सोर्स कोड की समीक्षा करना
Apps Script प्रोजेक्ट में बदलाव करना ज़रूरी है.
appsscript.json
// Enables the Workspace Events service.
"enabledAdvancedServices": [
...
{
"userSymbol": "WorkspaceEvents",
"version": "v1",
"serviceId": "workspaceevents"
}
...
]
Configuration.js
// Adds two constants: the first one is the Pub/Sub topic ID and the second one
// is the Pub/Sub subscription ID to be used to retrieve Google Workspace events.
...
const GWS_PUBSUB_TOPIC_ID = `projects/${PROJECT_ID}/topics/workspace-events`;
const GWS_PUBSUB_SUBSCRIPTION_ID =
`projects/${PROJECT_ID}/subscriptions/workspace-events-sub`;
...
ChatApp.js
// Edits the function to delete the subscription at issue closure.
function processSlashCommand(event) {
...
if (event.message.slashCommand.commandId == CLOSE_COMMAND_ID
&& event.message.space.type !== "DM") {
...
deleteSubscription(issue.subscriptionId);
...
}
...
}
// Edits the function to create the subscription.
function createIssue(event) {
...
const subscriptionId = createSpaceSubscription(spaceUrl);
const createdIssue = saveCreatedIssue(..., subscriptionId);
...
}
// Edits the function to delete the subscription.
function onRemoveFromSpace(event) {
...
deleteSubscription(issue.subscriptionId);
...
}
Storage.js
// Edits the function to keep track of the subscription ID.
function saveCreatedIssue(..., spaceId, subscriptionId) {
...
appProperties.setProperty(spaceId, JSON.stringify({
...
subscriptionId: subscriptionId,
...
}));
...
}
WorkspaceEvent.js
/**
* Creates a new subscription to Google Workspace Events associated to a
* Google Chat space.
*
* The subscription scope includes message creation events and resources.
*
* @param {string} spaceId the space ID to create a subscription for
* @return the ID of the newly created subscription
*/
function createSpaceSubscription(spaceId) {
const operation = WorkspaceEvents.Subscriptions.create({
targetResource: `//chat.googleapis.com/${spaceId}`,
eventTypes: ["google.workspace.chat.message.v1.created"],
notificationEndpoint: { pubsubTopic: GWS_PUBSUB_TOPIC_ID },
payloadOptions: { includeResource: true },
});
return operation.response.name;
}
/**
* Processes events from subscription by using the Google Cloud PubSub API.
*
* It pulls and acknowledges each event.
*/
function processSubscription() {
const response = UrlFetchApp.fetch(
`https://pubsub.googleapis.com/v1/${GWS_PUBSUB_SUBSCRIPTION_ID}:pull`,
{
method: "POST",
contentType: "application/json",
headers: { "Authorization": "Bearer " + ScriptApp.getOAuthToken() },
payload: JSON.stringify({ maxMessages: 10 })
}
);
const messages = JSON.parse(response.getContentText()).receivedMessages;
for (var messageIndex in messages) {
const message = messages[messageIndex];
const ceType = message.message.attributes["ce-type"];
const dataStr = Utilities.newBlob(Utilities.base64Decode(message.message.data))
.getDataAsString();
if (ceType === "google.workspace.events.subscription.v1.expirationReminder") {
// Renews subscription.
renewSubscription(JSON.parse(dataStr).subscription.name);
} else if (ceType === "google.workspace.chat.message.v1.created") {
// Processes the message text when it's sent in a space.
const chatMessage = JSON.parse(dataStr).message;
if (chatMessage.sender.type !== "BOT") {
console.log("Message was processed.");
}
}
// Acknowledges successful processing to avoid getting it again next time.
ackSubscription(message.ackId);
}
}
/**
* Acknowledges a subscription event by using the Google Cloud PubSub API.
*
* @param {string} ackId the ID of the event acknowledgment to send
*/
function ackSubscription(ackId) {
UrlFetchApp.fetch(
`https://pubsub.googleapis.com/v1/${GWS_PUBSUB_SUBSCRIPTION_ID}:acknowledge`,
{
method: "POST",
contentType: "application/json",
headers: { "Authorization": "Bearer " + ScriptApp.getOAuthToken() },
payload: JSON.stringify({
ackIds: [ackId]
})
}
);
}
/**
* Renews a subscription to Google Workspace Events.
*
* The default time to live option is used.
*
* @param {string} subscriptionId the ID of the subscription to renew
*/
function renewSubscription(subscriptionId) {
WorkspaceEvents.Subscriptions.patch({ttl: '0s'}, subscriptionId);
}
/**
* Deletes a subscription to Google Workspace Events.
*
* @param {string} subscriptionId the ID of the subscription to delete
*/
function deleteSubscription(subscriptionId) {
WorkspaceEvents.Subscriptions.remove(subscriptionId);
}
Google Cloud प्रोजेक्ट अपडेट करना
एपीआई चालू करना
- Google Cloud Console में, Google Workspace Events और PubSub चालू करें.
- मेन्यू ☰ > एपीआई और सेवाएं > चालू किए गए एपीआई और सेवाएं पर क्लिक करें. इसके बाद, पुष्टि करें कि दोनों चालू हैं.
सदस्यता शुरू करना
आपको Pub/Sub विषय बनाना होगा और उसकी सदस्यता लेनी होगी, ताकि सभी Workspace इवेंट पोस्ट किए जा सकें.
Google Cloud Console में जाकर, यह तरीका अपनाएं:
- मेन्यू ☰ > Pub/Sub > विषय पर जाएं.
- विषय बनाएं पर क्लिक करें.
- विषय के आईडी को
workspace-eventsपर सेट करें. - डिफ़ॉल्ट सदस्यता जोड़ें चेकबॉक्स को चुनें.
- बनाएं पर क्लिक करें.

Google Chat से, Pub/Sub मैसेज को आपके बनाए गए नए विषय पर पब्लिश करने का ऐक्सेस देने के लिए, यह तरीका अपनाएं:
- सूची में से विषय चुनें.
- अनुमतियां टैब को चुनें.
- नए प्रिंसिपल में
chat-api-push@system.gserviceaccount.comजोड़ें. - भूमिका के लिए, Pub/Sub पब्लिशर चुनें.
- सेव करें पर क्लिक करें.

Apps Script प्रोजेक्ट अपडेट करना
Google Cloud Console में जाकर, यह तरीका अपनाएं:
- मेन्यू ☰ > IAM और एडमिन > सेटिंग पर जाएं.
- प्रोजेक्ट आईडी को कॉपी करें.

अपने लोकल एनवायरमेंट में, यह तरीका अपनाएं:
- अपने टर्मिनल में मौजूद मौजूदा डायरेक्ट्री को
issue-management/3-message-monitoringमें बदलें. इसमें वह सोर्स कोड होता है जिसकी आपको ज़रूरत है. Configuration.jsफ़ाइल में,PROJECT_IDनाम के स्ट्रिंग कॉन्स्टेंट को कॉपी किए गए प्रोजेक्ट आईडी पर सेट करें.Configuration.jsफ़ाइल में,CHAT_CREDENTIALSनाम के JSON कॉन्स्टेंट को, निजी पासकोड वाली उस फ़ाइल के कॉन्टेंट पर सेट करें जिसे आपने पहले डाउनलोड किया था.issue-management/2-app-home/.clasp.jsonफ़ाइल को अपनी मौजूदा डायरेक्ट्री में कॉपी करें.- यह कमांड चलाएं:
clasp push
इसे आज़माएँ
Google Chat में जाकर, यह तरीका अपनाएं:
- ऐप्लिकेशन को
/createस्लैश कमांड के साथ डायरेक्ट मैसेज भेजें. ऐप्लिकेशन एक डायलॉग बॉक्स खोलेगा. - Title को
Issue Title 3पर सेट करें. - ब्यौरे को समस्या
Description 3पर सेट करें. - बनाएं पर क्लिक करें.
- नए स्पेस में, समस्या के बारे में कुछ मैसेज भेजें.
- स्लैश कमांड
/closeऔर समस्या हल करने के तरीके, जैसे किFixedका इस्तेमाल करके मैसेज भेजें.
Google Cloud Console में जाकर, यह तरीका अपनाएं:
- मेन्यू ☰ > Pub/Sub > सदस्यताएं पर जाएं.
- workspace-events-sub सदस्यता चुनें.
- मैसेज टैब को चुनें.
- पुल करें पर क्लिक करें. इस टेबल में, नए स्पेस में भेजे गए मैसेज दिखते हैं.

Apps Script console में जाकर, यह तरीका अपनाएं:
- अपना प्रोजेक्ट चुनें.
- एडिटर को चुनें.
WorkspaceEvent.gsफ़ाइल चुनें.- रन करें सेक्शन में जाकर,
processSubscriptionको चुनें. Runपर क्लिक करें.आपको एक्ज़ीक्यूशन लॉग में दिखेगा कि मैसेज प्रोसेस किए गए थे.

Google Cloud Console में जाकर, यह तरीका अपनाएं:
- मेन्यू ☰ > Pub/Sub > सदस्यताएं पर जाएं.
- workspace-events-sub सदस्यता चुनें.
- मैसेज टैब को चुनें.
- पुल करें पर क्लिक करें. टेबल में, नए स्पेस में भेजे गए मैसेज नहीं दिखते.

- Google Chat में, तीसरी समस्या के लिए बनाए गए स्पेस में, स्लैश कमांड
/createका इस्तेमाल करके, समस्या के बारे में कुछ और मैसेज भेजें.
Google Cloud Console में जाकर, यह तरीका अपनाएं:
- मेन्यू ☰ > Pub/Sub > सदस्यताएं पर जाएं.
- workspace-events-sub सदस्यता चुनें.
- मैसेज टैब को चुनें.
- पुल करें पर क्लिक करें. टेबल में, नए स्पेस में भेजे गए मैसेज नहीं दिखते.
6. ज़रूरी नहीं: ऐप्लिकेशन 1: बिना किसी भेदभाव के सभी को शामिल करने से जुड़ी मदद पाएं
कॉन्सेप्ट की समीक्षा करना
जनरेटिव एआई को प्रॉम्प्ट देना, जनरेटिव एआई मॉडल को निर्देश देने या उससे सवाल पूछने की एक कला है. इससे, आपको अपनी पसंद का आउटपुट मिलता है. आम तौर पर, प्रॉम्प्ट में नियम और शर्तें जोड़कर, जवाबों को सीमित किया जाता है. इससे, जवाब को सुरक्षित, काम का, एक जैसा, और उम्मीदों के मुताबिक बनाने में मदद मिल सकती है.
समीक्षा के फ़्लो
सदस्यताओं को प्रोसेस करना (अपडेट करना)

सोर्स कोड की समीक्षा करना
Apps Script प्रोजेक्ट में बदलाव करना ज़रूरी है.
WorkspaceEvent.js
// Edits the function to replace logging by an actual card message.
function processSubscription() {
...
for (var messageIndex in messages) {
...
} else if (ceType === "google.workspace.chat.message.v1.created") {
...
const inclusivityCheck = getInclusivityFeedback(chatMessage.text);
if (inclusivityCheck !== "It's inclusive!") {
createAppMessageUsingChatService({
cardsV2: [{ cardId: "1", card: { header: {
title: "Inclusivity",
subtitle: `The following words are not inclusive: ${inclusivityCheck}`
}}}]
},
chatMessage.space.name);
}
...
}
...
}
...
}
VertexAi.js
/**
* Gets feedback on inclusivity for a text with the Gemini Pro model using
* Vertex AI API.
*
* Returns "It's inclusive!" when it is otherwise a list of word(s) that might not
* be optimal.
*
* @param {string} text the text
* @return {string} the feedback
*/
function getInclusivityFeedback(text) {
const url = `https://${VERTEX_AI_LOCATION_ID}-aiplatform.googleapis.com/v1`
+ `/projects/${PROJECT_ID}/locations/${VERTEX_AI_LOCATION_ID}`
+ "/publishers/google/models/gemini-1.0-pro:generateContent";
const options = {
method: "POST",
headers: { Authorization: "Bearer " + ScriptApp.getOAuthToken() },
contentType: "application/json",
payload: JSON.stringify({
contents: {
role: "user",
parts: {
text: "Are there any words that obviously go against inclusivity "
+ "in this text:"
+ `\n\n----------\n${text}\n----------\n\n`
+ "If there are not, answer \"It's inclusive!\" "
+ "otherwise answer by listing them separated by commas. "
+ "Do not answer with any explanation."
}
},
safetySettings: {
category: "HARM_CATEGORY_SEXUALLY_EXPLICIT",
threshold: "BLOCK_LOW_AND_ABOVE"
},
generationConfig: {
temperature: 0.2,
topP: 0.8,
topK: 40
}
})
};
return JSON.parse(UrlFetchApp.fetch(url, options).getContentText())
.candidates[0].content.parts[0].text;
}
Apps Script प्रोजेक्ट अपडेट करना
अपने लोकल एनवायरमेंट में, यह तरीका अपनाएं:
- अपने टर्मिनल में मौजूद मौजूदा डायरेक्ट्री को
issue-management/4-inclusivity-helpमें बदलें. इसमें वह सोर्स कोड होता है जिसकी आपको ज़रूरत है. issue-management/3-message-monitoring/.clasp.jsonफ़ाइल को अपनी मौजूदा डायरेक्ट्री में कॉपी करें.issue-management/3-message-monitoring/Configuration.jsफ़ाइल को अपनी मौजूदा डायरेक्ट्री में कॉपी करें, ताकि यह मौजूदा फ़ाइल की जगह ले सके.- यह कमांड चलाएं:
clasp push
इसे आज़माएँ
Google Chat में जाकर, यह तरीका अपनाएं:
- ऐप्लिकेशन को
/createस्लैश कमांड के साथ डायरेक्ट मैसेज भेजें. ऐप्लिकेशन एक डायलॉग बॉक्स खोलेगा. - Title को
Issue Title 4पर सेट करें. - ब्यौरे को समस्या
Description 4पर सेट करें. - बनाएं पर क्लिक करें.
- नए बनाए गए स्पेस में,
It happened to me last week as wellभेजें.
Apps Script console में जाकर, यह तरीका अपनाएं:
- अपना प्रोजेक्ट चुनें.
- एडिटर को चुनें.
WorkspaceEvent.gsफ़ाइल चुनें.- रन करें सेक्शन में जाकर,
processSubscriptionको चुनें. - चलाएं पर क्लिक करें. ऑटोमेशन लागू होने के लॉग से पता चलता है कि मैसेज प्रोसेस किए गए थे.
Google Chat में जाकर, यह तरीका अपनाएं:
- ध्यान दें कि ऐप्लिकेशन ने नए स्पेस में, समावेशिता से जुड़ी कोई मदद नहीं भेजी.
- नए बनाए गए स्पेस में, मैसेज
I had to add myself from the master to fix itभेजें.
Apps Script console में जाकर, यह तरीका अपनाएं:
- अपना प्रोजेक्ट चुनें.
- एडिटर को चुनें.
WorkspaceEvent.gsफ़ाइल चुनें.- रन करें सेक्शन में जाकर,
processSubscriptionको चुनें. - चलाएं पर क्लिक करें. ऑटोमेशन लागू होने के लॉग से पता चलता है कि मैसेज प्रोसेस किए गए थे. Google Chat में, ऐप्लिकेशन ने नए स्पेस में सभी को शामिल करने के बारे में मदद पाने से जुड़ा मैसेज भेजा.

7. ज़रूरी नहीं: ऐप्लिकेशन 1: प्राथमिकताएं जोड़ना
.
कॉन्सेप्ट की समीक्षा करना
ऐक्सेसरी विजेट, बिना बॉर्डर वाला एक विजेट होता है. यह किसी ऐप्लिकेशन से भेजे गए मैसेज के सबसे नीचे अटैच होता है. आम तौर पर, इसका इस्तेमाल मैसेज के खास कॉन्टेक्स्ट में, उपयोगकर्ता की तुरंत प्रतिक्रियाएं पाने के लिए किया जाता है. तकनीकी रूप से, यह कार्ड बटन के मुख्य सिद्धांतों पर आधारित है.

समीक्षा के फ़्लो
समावेशी भाषा इस्तेमाल करने में मदद पाने की सुविधा बंद करना

सोर्स कोड की समीक्षा करना
Apps Script प्रोजेक्ट में बदलाव करना ज़रूरी है.
ChatApp.js
// Edits the function to handle the inclusivity help disablement action for a
// given space.
function onCardClick(event) {
...
if (event.action.actionMethodName === "disableInclusivityHelp") {
disableInclusivityHelp(event.common.parameters.spaceId);
}
}
Storage.js
// Edits the function to keep track of the inclusivity help setting.
function saveCreatedIssue(title, description, spaceId, subscriptionId) {
appProperties.setProperty(spaceId, JSON.stringify({
...
inclusivityHelp: true,
...
}));
...
}
/**
* Disables inclusivity help in a space.
*
* @param {string} spaceId the ID of dedicated space of the issue
*/
function disableInclusivityHelp(spaceId) {
var issue = JSON.parse(appProperties.getProperty(spaceId));
issue.inclusivityHelp = false;
appProperties.setProperty(spaceId, JSON.stringify(issue));
}
/**
* Checks whether the app should help with inclusivity in a given space.
*
* @param {string} spaceId the ID of dedicated space of the issue
* @return whether the app should help with inclusivity
*/
function shouldHelpWithInclusivity(spaceId) {
return JSON.parse(appProperties.getProperty(spaceId)).inclusivityHelp;
}
WorkspaceEvent.js
// Edits the function to display the accessory widget to the existing card message.
function processSubscription() {
...
for (var messageIndex in messages) {
...
} else if (ceType === "google.workspace.chat.message.v1.created") {
...
if (... && shouldHelpWithInclusivity(chatMessage.space.name)) {
createAppMessageUsingChatService({
...
accessoryWidgets: [{ buttonList: { buttons: [{
altText: "Disable inclusivity help",
icon: {
iconUrl: "https://upload.wikimedia.org/.../Stop_hand_rugen.png"
},
onClick: { action: {
function: "disableInclusivityHelp",
parameters: [{
key: "spaceId",
value: chatMessage.space.name
}]
}}
}]}}]
}, ...);
...
}
...
}
...
}
...
}
Apps Script प्रोजेक्ट अपडेट करना
अपने लोकल एनवायरमेंट में, यह तरीका अपनाएं:
- अपने टर्मिनल में मौजूद मौजूदा डायरेक्ट्री को
issue-management/5-disable-helpमें बदलें. इसमें वह सोर्स कोड होता है जिसकी आपको ज़रूरत है. issue-management/4-inclusivity-help/.clasp.jsonफ़ाइल को अपनी मौजूदा डायरेक्ट्री में कॉपी करें.issue-management/4-inclusivity-help/Configuration.jsफ़ाइल को अपनी मौजूदा डायरेक्ट्री में कॉपी करें, ताकि यह मौजूदा फ़ाइल की जगह ले सके.- यह कमांड चलाएं:
clasp push
इसे आज़माएँ
मदद पाने की सुविधा बंद करना
- Google Chat में, चौथी समस्या के लिए बनाए गए स्पेस में, स्लैश कमांड
/createका इस्तेमाल करकेI had to add myself from the master to fixमैसेज भेजें.
Apps Script console में जाकर, यह तरीका अपनाएं:
- अपना प्रोजेक्ट चुनें.
- एडिटर को चुनें.
WorkspaceEvent.gsफ़ाइल चुनें.- रन करें सेक्शन में जाकर,
processSubscriptionको चुनें. - चलाएं पर क्लिक करें. ऑटोमेशन लागू होने के लॉग से पता चलता है कि मैसेज प्रोसेस किए गए थे.
Google Chat में जाकर, यह तरीका अपनाएं:
- ध्यान दें कि ऐप्लिकेशन ने, ऐक्सेसरी विजेट से जुड़ी समस्या के लिए बनाए गए स्पेस में, समावेशिता से जुड़ी मदद के बारे में एक मैसेज भेजा है.
- समावेशी भाषा इस्तेमाल करने से जुड़ी मदद की सुविधा बंद करने के लिए, ऐक्सेसरी विजेट पर क्लिक करें.

खाता बंद किए जाने की स्थिति की जांच करना
- Google Chat में, चौथी समस्या के लिए बनाए गए स्पेस में, स्लैश कमांड
/createका इस्तेमाल करकेI had to add myself from the master to fixमैसेज भेजें.
Apps Script console में जाकर, यह तरीका अपनाएं:
- अपना प्रोजेक्ट चुनें.
- एडिटर को चुनें.
WorkspaceEvent.gsफ़ाइल चुनें.- रन करें सेक्शन में जाकर,
processSubscriptionको चुनें. - चलाएं पर क्लिक करें. ऑटोमेशन लागू होने के लॉग से पता चलता है कि मैसेज प्रोसेस किए गए थे. Google Chat में, ऐप्लिकेशन ने समस्या से जुड़े स्पेस में, सभी को साथ लेकर चलने के बारे में जानकारी देने वाला मैसेज नहीं भेजा. ऐसा इसलिए हुआ, क्योंकि यह सुविधा बंद थी.

8. ऐप्लिकेशन 2: बिल्ड
कॉन्सेप्ट की समीक्षा करें
जेन एआई के लिए भरोसेमंद सोर्स से जानकारी पाना
इसका मतलब है कि एआई मॉडल को ज़्यादा भरोसेमंद और तथ्यों के हिसाब से सही बनाना. इसके लिए, उन्हें जानकारी के ऐसे सोर्स से कनेक्ट किया जाता है जिनकी पुष्टि की जा सकती है. इस तकनीक से, एआई को जानकारी गढ़ने से रोकने में मदद मिलती है. साथ ही, इससे जवाबों को संदर्भ के हिसाब से ज़्यादा सटीक और कम पक्षपाती बनाने में मदद मिलती है.
असली लगने वाली भाषा
ऐसी भाषा जिसे लोग रोज़ाना बातचीत करने के लिए बोलते या लिखते हैं. यह आर्टिफ़िशियल या कंप्यूटर आधारित भाषाओं से अलग होती है.
Cloud Storage
Cloud Storage की मदद से, दुनिया भर में किसी भी समय ज़रूरत के मुताबिक डेटा सेव किया जा सकता है और उसे वापस पाया जा सकता है. इसका इस्तेमाल कई तरह के कामों के लिए किया जा सकता है. जैसे, वेबसाइट का कॉन्टेंट दिखाना, डेटा को संग्रह और आपदा से उबरने के लिए सेव करना या बड़े डेटा ऑब्जेक्ट को सीधे डाउनलोड करने की सुविधा के ज़रिए लोगों तक पहुंचाना.
Dialogflow CX डेटा स्टोर
Dialogflow CX, डेटा स्टोर के साथ इंटिग्रेट होता है. डेटा स्टोर, वेबसाइटों और दस्तावेज़ों के कलेक्शन होते हैं. इनका इस्तेमाल डेटा स्टोर एजेंट करते हैं. इससे वे खास डेटा से, उपयोगकर्ता के सवालों के जवाब ढूंढ पाते हैं. किसी सवाल के लिए, डेटा स्टोर एजेंट दिए गए सोर्स कॉन्टेंट से जवाब खोजता है. इसके बाद, वह खोज के नतीजों को एक जवाब में शामिल करता है. यह जवाब के सोर्स के लिंक भी देता है, ताकि उपयोगकर्ता ज़्यादा जान सकें.
आर्किटेक्चर की समीक्षा करना

इस Google Chat ऐप्लिकेशन को Dialogflow CX की मदद से बनाया गया है. यह इस तरह काम करता है:
- कोई उपयोगकर्ता, ऐप्लिकेशन को डायरेक्ट मैसेज या किसी स्पेस में मैसेज भेजता है.
- यह ऐप्लिकेशन, Dialogflow CX एजेंट है और Google Cloud प्रोजेक्ट से जुड़ा है. यह मैसेज को प्रोसेस करता है.
- यह ऐप्लिकेशन, Cloud Storage में मौजूद डेटा स्टोर के साथ इंटिग्रेट होता है.
- ऐप्लिकेशन, डायरेक्ट मैसेज या ओरिजनल स्पेस में सिंक्रोनस जवाब भेजता है.
फ़्लो की समीक्षा करना
सवाल का जवाब देना
सोर्स कोड की समीक्षा करना
आपको सिर्फ़ एक सोर्स की ज़रूरत होती है. यह सोर्स कोड नहीं, बल्कि वह डेटा होता है जिसका इस्तेमाल आपको जवाब तैयार करने के लिए करना है.
google-chat-overview.pdf
इसमें Google Chat ऐप्लिकेशन की बिना किसी क्रम के जानकारी शामिल होती है. साथ ही, इसमें Google Workspace Developers वेबसाइट के किसी पेज का प्रिंटेड वर्शन भी होता है.

Google Cloud प्रोजेक्ट अपडेट करना
Google Cloud Console में जाकर, यह तरीका अपनाएं:
- Dialogflow और Cloud Storage API चालू करें.
- Vertex AI Agent Builder API चालू करें.
- मेन्यू ☰ > एपीआई और सेवाएं > चालू किए गए एपीआई और सेवाएं पर क्लिक करें. इसके बाद, पुष्टि करें कि सभी एपीआई चालू हैं.
.
Dialogflow CX डेटा स्टोर एजेंट बनाना
ज्ञान से जुड़ा डेटा इकट्ठा करना शुरू करना
Google Cloud Console में जाकर, यह तरीका अपनाएं:
- मेन्यू ☰ > Cloud Storage > बकेट पर क्लिक करें.

- बनाएं पर क्लिक करें.
- name को
gchat-knowledgeपर सेट करें. - बनाएं पर क्लिक करें.

- gchat-knowledge बकेट चुनें.
- फ़ाइलें अपलोड करें पर क्लिक करें.
- अपने लोकल एनवायरमेंट से google-chat-overview.pdf फ़ाइल डाउनलोड करें और उसे चुनें.

ऐप्लिकेशन बनाएं
Google Cloud Console में जाकर, यह तरीका अपनाएं:
- मेन्यू ☰ > एजेंट बिल्डर > ऐप्लिकेशन पर क्लिक करें.
- नया ऐप्लिकेशन पर क्लिक करें.
- चैट का टाइप चुनें.

Company nameको अपनी कंपनी के नाम पर सेट करें.Agent nameकोknowledgeपर सेट करें.- जारी रखें पर क्लिक करें.

- नया डेटा स्टोर बनाएं पर क्लिक करें.
- डेटा सोर्स के तौर पर Cloud Storage को चुनें.

- फ़ाइल को चुनें.
- ब्राउज़ करें पर क्लिक करें.
google-chat-overview.pdfफ़ाइल चुनें.- जारी रखें पर क्लिक करें.
- डेटा स्टोर का नाम
gchat-knowledge-dsपर सेट करें. - बनाएं पर क्लिक करें.

- टेबल में, gchat-knowledge-ds डेटा स्टोर चुनें.
- बनाएं पर क्लिक करें.

- कुछ मिनट बाद, मेन्यू ☰ > एजेंट बिल्डर > ऐप्लिकेशन पर क्लिक करें. आपको ऐप्लिकेशन दिखेगा.

- मेन्यू ☰ > एजेंट बिल्डर > डेटा स्टोर पर क्लिक करें.
- gchat-knowledge-ds डेटा स्टोर पर क्लिक करें. दस्तावेज़ों की संख्या
1है. इसका मतलब है कि यह सुविधा इस्तेमाल के लिए तैयार है.

ऐप्लिकेशन को पूरा करना और उसकी जांच करना
Dialogflow CX कंसोल में जाकर, यह तरीका अपनाएं:
- अपना Google Cloud प्रोजेक्ट चुनें.
- नॉलेज एजेंट चुनें.

- एजेंट की सेटिंग > जनरेटिव एआई > जनरेटिव एजेंट को चुनें.
- मॉडल को Text Bison से Gemini Pro पर स्विच करें.
- सेव करें पर क्लिक करें.

- टेस्ट एजेंट पर क्लिक करें.
What is Google Chat?भेजें. एजेंट, काम का जवाब देता है.

Google Chat ऐप्लिकेशन को इंटिग्रेट करना
Dialogflow CX कंसोल में जाकर, यह तरीका अपनाएं:
- अपना Google Cloud प्रोजेक्ट चुनें.
- नॉलेज एजेंट की लाइन में,
> नाम कॉपी करें पर क्लिक करें.

Google Cloud Console में जाकर, यह तरीका अपनाएं:
- Google Chat API के कॉन्फ़िगरेशन पर जाएं.
- कनेक्शन सेटिंग में जाकर, Dialogflow चुनें.
- Dialogflow की सेटिंग में जाकर, Dialogflow CX चुनें.
- एजेंट या एनवायरमेंट के संसाधन का नाम को उस एजेंट के नाम पर सेट करें जिसे आपने कॉपी किया है.
- दोनों स्लैश कमांड हटाएं.

- Google Chat में, Google Chat ऐप्लिकेशन को डाइरेक्ट मैसेज में
What is Google Chat?भेजें. एजेंट आपको काम की जानकारी देगा.

9. ज़रूरी नहीं: दूसरा ऐप्लिकेशन: सोर्स जोड़ना
कॉन्सेप्ट की समीक्षा करें
Dialogflow CX वेबहुक
यह एक ऐसी सेवा है जो कारोबार के लॉजिक को होस्ट करती है या अन्य सेवाओं को कॉल करती है. Dialogflow CX सेशन के दौरान, वेबुक, नैचुरल लैंग्वेज प्रोसेसिंग से निकाले गए डेटा पर भरोसा कर सकते हैं. इससे डाइनैमिक जवाब जनरेट किए जा सकते हैं, इकट्ठा किए गए डेटा की पुष्टि की जा सकती है या बैकएंड पर कार्रवाइयां ट्रिगर की जा सकती हैं.
Cloud Functions
Cloud Functions, बिना सर्वर वाले बैकएंड बनाने, रीयल-टाइम में डेटा प्रोसेस करने, और स्मार्ट ऐप्लिकेशन बनाने के लिए बेहतरीन हैं. सर्वर को मैनेज, पैच या अपडेट करने की ज़रूरत नहीं होती. ये अपने-आप स्केल हो जाते हैं. साथ ही, ये आसानी से उपलब्ध होते हैं और इनमें गड़बड़ी होने की आशंका कम होती है.
फ़्लो की समीक्षा करना
सवाल का जवाब देना (अपडेट करना)

सोर्स कोड की समीक्षा करना
आपको सिर्फ़ उस सोर्स कोड की ज़रूरत होती है जो Google Chat के मैसेज के हिसाब से, एजेंट के जवाबों को अडैप्ट करने का फ़ंक्शन करता है. इसका इस्तेमाल वेबहुक के तौर पर किया जाता है.
package.json
// The function relies on the Cloud Functions framework to run.
{
"name": "agent-response-adapter",
"version": "0.0.1",
"dependencies": {
"@google-cloud/functions-framework": "^3.0.0"
},
...
}
index.js
/**
* Handles all incoming requests.
*
* It takes a Dialogflow CX agent response as input and returns a
* valid Google Chat card message with both the text and source links
*/
functions.http('agent-response-adapter', (request, response) => {
// Creates Google Chat buttons based on the data store agent response
// grounding details.
var linkTitles = [];
var linkButtons = [];
const grounding = request.body.messages[1].payload.richContent[0][0];
if (grounding.type === "match_citations") {
// Supports citation match type.
grounding.citations.forEach((citation) => {
// Avoid duplications.
if (linkTitles.indexOf(citation.title) < 0) {
linkButtons.push({
text: citation.title,
onClick: { openLink: {
url: citation.actionLink
}}
});
linkTitles.push(citation.title);
}
});
} else if (grounding.type === "info") {
// Supports info type.
if (linkTitles.indexOf(grounding.title) < 0) {
linkButtons.push({
text: grounding.title,
onClick: { openLink: {
url: grounding.actionLink
}}
});
linkTitles.push(grounding.title);
}
}
// Sends the Dialogflow CX fulfillment response to replace the agent response
// with the Chat message with text and source buttons.
response.send({ fulfillment_response: {
merge_behavior: "REPLACE",
messages: [{ payload: {
// Reuses the original data store agent response text.
text: request.body.messages[0].text.text[0],
cardsV2: [{
cardId: "sourcesCard",
card: { sections: [{
header: "Sources",
widgets: [{ buttonList: {
buttons: linkButtons
}}]
}]}
}]
}}]
}});
});
Google Cloud प्रोजेक्ट अपडेट करना
Google Cloud Console में जाकर, यह तरीका अपनाएं:
- Cloud Build, Cloud Functions, Cloud Logging, Artifact Registry, और Cloud Run API चालू करें.
- मेन्यू ☰ > एपीआई और सेवाएं > चालू किए गए एपीआई और सेवाएं पर क्लिक करें. इसके बाद, पुष्टि करें कि एपीआई चालू हैं.
Dialogflow CX डेटा स्टोर एजेंट को अपडेट करना
आपको एक Cloud फ़ंक्शन डिप्लॉय करना होगा. साथ ही, Dialogflow CX वेबहुक को अपडेट करना होगा, ताकि ज़रूरत पड़ने पर उसे कई सोर्स से ट्रिगर किया जा सके.
एक से ज़्यादा सोर्स से जवाब पाना
डिफ़ॉल्ट रूप से, नया डेटा स्टोर एजेंट ज़्यादा से ज़्यादा एक सोर्स दिखाता है. हालांकि, इसे ज़्यादा सोर्स दिखाने के लिए बदला जा सकता है.
Dialogflow CX कंसोल में जाकर, यह तरीका अपनाएं:
- अपना Google Cloud प्रोजेक्ट चुनें.
- नॉलेज एजेंट चुनें.
- स्टार्ट पेज को चुनें.
- डेटा स्टोर में बदलाव करें को चुनें.
- एजेंट के जवाब सेक्शन में जाकर, डेटा स्टोर से जवाब पाने के विकल्प को
5पर सेट करें. - सेव करें पर क्लिक करें.

Cloud फ़ंक्शन शुरू करना
Google Cloud Console में जाकर, यह तरीका अपनाएं:
- मेन्यू ☰ > Cloud Functions पर क्लिक करें.
- फ़ंक्शन बनाएं पर क्लिक करें.
- बुनियादी जानकारी में जाकर, नाम को
function-1पर सेट करें. - पुष्टि करें में जाकर, बिना पुष्टि किए गए अनुरोधों को अनुमति दें रेडियो बटन को चुनें.
- रनटाइम, बिल्ड, कनेक्शन, और सुरक्षा सेटिंग में जाकर, ज़्यादा से ज़्यादा इंस्टेंस की संख्या को
3पर सेट करें. - आगे बढ़ें पर क्लिक करें.

- Entry point को
agent-response-adapterपर सेट करें. - डिफ़ॉल्ट कॉन्टेंट को package.json और index.js फ़ाइलों से बदलें.
- डिप्लॉय करें पर क्लिक करें.

- फ़ंक्शन को लागू होने में कुछ मिनट लगते हैं. इस दौरान, यूआरएल को कॉपी करें.

वेबहुक शुरू करें
आपको Dialogflow CX एजेंट को कॉन्फ़िगर करना होगा, ताकि वह वेबुक का इस्तेमाल करके नए फ़ंक्शन को ट्रिगर कर सके.
Dialogflow CX कंसोल में जाकर, यह तरीका अपनाएं:
- अपना Google Cloud प्रोजेक्ट चुनें.
- नॉलेज एजेंट चुनें.
- मैनेज करें > वेबहुक > बनाएं को चुनें.
- डिसप्ले नेम को
Google Chat Response Adapterपर सेट करें. - वेबबुक यूआरएल को उस यूआरएल पर सेट करें जिसे आपने पहले कॉपी किया था.
- सेव करें पर क्लिक करें.

- बनाएं पर क्लिक करें.
- स्टार्ट पेज को चुनें.
- डेटा स्टोर में बदलाव करें को चुनें.
- वेबहुक सेटिंग में जाकर, वेबहुक चालू करें टॉगल पर क्लिक करें.
- Google Chat Response Adapter for Webhook चुनें.
- tag को
arbitrary_tagपर सेट करें. - सेव करें पर क्लिक करें.

टेस्ट ऐप्लिकेशन
- Google Chat में, Google Chat ऐप्लिकेशन को डाइरेक्ट मैसेज में
What is Google Chat?भेजें. इसके बाद, एजेंट आपको काम की जानकारी देगा. साथ ही, अगर कोई स्रोत उपलब्ध होगा, तो वह आपको कार्ड के साथ दिखेगा.

10. ऐप्लिकेशन 3: बिल्ड
कॉन्सेप्ट की समीक्षा करें
बातचीत वाले इंटरैक्शन
ये आम बोलचाल की भाषा में, दो या उससे ज़्यादा लोगों के बीच जानकारी या विचारों का आदान-प्रदान होता है. यह तकनीकी इंटरफ़ेस से अलग है. तकनीकी इंटरफ़ेस अक्सर स्टेटलेस, बहुत ज़्यादा स्ट्रक्चर्ड, और असहिष्णु एक्सचेंज पर निर्भर करते हैं.
OpenAPI स्पेसिफ़िकेशन
यह एपीआई के लाइफ़साइकल के हर चरण में, जानकारी को एक जैसा बनाए रखने का तरीका उपलब्ध कराता है. यह एचटीटीपी एपीआई के लिए स्पेसिफ़िकेशन लैंग्वेज है. यह स्ट्रक्चर और सिंटैक्स को इस तरह से तय करती है कि एपीआई को बनाने के लिए इस्तेमाल की गई प्रोग्रामिंग भाषा से इसका कोई लेना-देना नहीं होता. एपीआई स्पेसिफ़िकेशन आम तौर पर YAML या JSON में लिखे जाते हैं. इससे स्पेसिफ़िकेशन को आसानी से शेयर किया जा सकता है और इस्तेमाल किया जा सकता है.
Dialogflow CX एजेंट
एजेंट ऐप्लिकेशन का बुनियादी बिल्डिंग ब्लॉक. एजेंट ऐप्लिकेशन में आम तौर पर कई एजेंट होते हैं. हर एजेंट को कुछ खास टास्क हैंडल करने के लिए बनाया जाता है. एजेंट का डेटा एलएलएम को दिया जाता है, ताकि उसके पास सवालों के जवाब देने और टास्क पूरे करने के लिए ज़रूरी जानकारी हो. हर एजेंट जानकारी दे सकता है, बाहरी सेवाओं को क्वेरी भेज सकता है या बातचीत को Dialogflow CX फ़्लो या किसी अन्य एजेंट को सौंप सकता है, ताकि उप-टास्क को मैनेज किया जा सके.
Dialogflow CX टूल
टूल का इस्तेमाल, एजेंट ऐप्लिकेशन को बाहरी सिस्टम से कनेक्ट करने के लिए किया जाता है. ये सिस्टम, एजेंट ऐप्लिकेशन की जानकारी को बेहतर बना सकते हैं. साथ ही, उन्हें मुश्किल टास्क को बेहतर तरीके से पूरा करने में मदद कर सकते हैं.
आर्किटेक्चर की समीक्षा करना

इस Google Chat ऐप्लिकेशन को Dialogflow CX की मदद से बनाया गया है. यह इस तरह काम करता है:
- कोई उपयोगकर्ता, ऐप्लिकेशन को डायरेक्ट मैसेज या किसी स्पेस में मैसेज भेजता है.
- यह ऐप्लिकेशन, Dialogflow CX एजेंट है और Google Cloud प्रोजेक्ट से जुड़ा है. यह मैसेज को प्रोसेस करता है.
- ऐप्लिकेशन, एजेंट के साथ इंटिग्रेट होता है.
- ऐप्लिकेशन, डायरेक्ट मैसेज या ओरिजनल स्पेस में सिंक्रोनस जवाब भेजता है.
फ़्लो की समीक्षा करना
समीक्षा इकट्ठा करना

सोर्स कोड की समीक्षा करना
आपको सिर्फ़ उस सोर्स कोड की ज़रूरत होती है जो एजेंट के टूल के तौर पर इस्तेमाल की जाने वाली बैकएंड सेवा को मॉक करता है.
package.json
// The function relies on the Cloud Functions framework to run.
{
"name": "feedback-app-backend",
"version": "0.0.1",
"dependencies": {
"@google-cloud/functions-framework": "^3.0.0"
},
...
}
index.js
/**
* Handles all incoming requests.
*
* It always returns OK in plain text.
*/
functions.http('feedback-app-backend', (request, response) => {
response.send('OK');
});
service-openapi.yaml
// Defines the backend service structure and how to request it.
openapi: 3.1.0
info:
title: Review Store
license:
name: Apache 2.0
identifier: Apache-2.0
version: 0.0.1
servers:
- url: https://us-central1-project-0.cloudfunctions.net
paths:
/store-review:
post:
operationId: storeReview
summary: Store a new review
requestBody:
content:
application/json:
schema:
type: object
properties:
stars:
type: integer
format: int64
responses:
'200':
description: success
content:
application/json:
schema:
type: string
बैकएंड सेवा का मॉक शुरू करना
आपको Cloud Functions को डिप्लॉय करना होगा, ताकि बैकएंड सेवा को सिम्युलेट किया जा सके. Dialogflow CX एजेंट ऐप्लिकेशन को इस सेवा को इंटिग्रेट करना होगा और इसे टूल के तौर पर कॉल करना होगा.
Google Cloud Console में जाकर, यह तरीका अपनाएं:
- मेन्यू ☰ > Cloud Functions पर क्लिक करें.
- फ़ंक्शन बनाएं पर क्लिक करें.
- बुनियादी जानकारी में जाकर, नाम को
function-2पर सेट करें. - पुष्टि में जाकर, बिना पुष्टि किए गए अनुरोधों को अनुमति दें रेडियो बटन को चुनें.
- रनटाइम, बिल्ड, कनेक्शन, और सुरक्षा सेटिंग में जाकर, ज़्यादा से ज़्यादा इंस्टेंस की संख्या को
3पर सेट करें. - आगे बढ़ें पर क्लिक करें.

- Entry point को
feedback-app-backendपर सेट करें. - डिफ़ॉल्ट कॉन्टेंट को package.json और index.js फ़ाइलों से बदलें.
- डिप्लॉय करें पर क्लिक करें.

- फ़ंक्शन को लागू होने में कुछ मिनट लगते हैं. इस दौरान, यूआरएल को कॉपी करें.
Dialogflow CX एजेंट ऐप्लिकेशन बनाना
ऐप्लिकेशन बनाएं
Google Cloud Console में जाकर, यह तरीका अपनाएं:
- मेन्यू ☰ > एजेंट बिल्डर > ऐप्लिकेशन पर क्लिक करें.
- नया ऐप्लिकेशन पर क्लिक करें.
- एजेंट चुनें.
- डिसप्ले नेम को
Feedback Appपर सेट करें. - बनाएं पर क्लिक करें.

टूल शुरू करना
Google Cloud Console में जाकर, यह तरीका अपनाएं:
- मेन्यू ☰ > एजेंट बिल्डर > ऐप्लिकेशन पर क्लिक करें.
- Feedback App एजेंट को चुनें.
- टूल > + बनाएं पर क्लिक करें.
- Name को
reviewपर सेट करें. - OpenAPI को चुनें.
- description को इस वैल्यू पर सेट करें:
The tool takes the number of stars as a parameter of the store review method and saves it in a database for later use.
- service-openapi.yaml फ़ाइल में मौजूद
$URLको डाउनलोड करें और उसे उस यूआरएल से बदलें जिसे आपने पहले कॉपी किया था. YAML Schemaकोservice-openapi.yamlफ़ाइल के बदले गए कॉन्टेंट पर सेट करें.- सेव करें पर क्लिक करें.

Initiate agent
Google Cloud Console में जाकर, यह तरीका अपनाएं:
- मेन्यू ☰ > एजेंट बिल्डर > ऐप्लिकेशन पर क्लिक करें.
- Feedback App एजेंट को चुनें.
- एजेंट > डिफ़ॉल्ट जनरेटिव एजेंट चुनें.
- एजेंट का नाम को
Feedback collectorपर सेट करें. goalको इस वैल्यू पर सेट करें:
You are an agent that collects reviews from Google Chat app developers. A review may be between 0 and 5 stars. The more stars, the more positive the review.
- instructions को इस वैल्यू पर सेट करें:
If the developer didn't provide the number of stars, ask for the number of stars.
After the developer provides the number of stars of the review, confirm the number with the developer and use ${TOOL: review} to store the review with the number of stars.
If ${TOOL: review} fails, apologize and ask to try again later. Otherwise, thank the developer for the review.
- सेव करें पर क्लिक करें.

टेस्ट ऐप्लिकेशन
Google Cloud Console में जाकर, यह तरीका अपनाएं:
- मेन्यू ☰ > एजेंट बिल्डर > ऐप्लिकेशन पर क्लिक करें.
- Feedback App एजेंट को चुनें.
- एजेंट की झलक देखें पर जाएं.
- एजेंट में जाकर, फ़ीडबैक इकट्ठा करने वाला चुनें.
- जनरेटिव मॉडल चुनें में जाकर, gemini-pro को चुनें.
- शुरू करने के लिए,
Hello!मैसेज भेजें.

Google Cloud Console में जाकर, यह तरीका अपनाएं:
- मेन्यू ☰ > Cloud Functions पर क्लिक करें.
- function-2 > लॉग चुनें. कुछ लॉग में, Google-Dialogflow को कॉलर के तौर पर दिखाया गया है.

Google Chat ऐप्लिकेशन को इंटिग्रेट करना
Dialogflow CX कंसोल में जाकर, यह तरीका अपनाएं:
- अपना Google Cloud प्रोजेक्ट चुनें.
Feedback Appएजेंट के ऐक्शन मेन्यू पर क्लिक करें.- नाम कॉपी करें पर क्लिक करें.
Google Cloud Console में जाकर, यह तरीका अपनाएं:
- Google Chat API के कॉन्फ़िगरेशन पर जाएं.
- एजेंट या एनवायरमेंट के संसाधन का नाम को उस एजेंट के नाम पर सेट करें जिसे आपने पहले कॉपी किया था.

- शुरू करने के लिए, Google Chat में जाकर, Google Chat ऐप्लिकेशन को डाइरेक्ट मैसेज में
Hello!भेजें. Dialogflow CX कंसोल में किए गए टेस्ट की तरह ही, एजेंट जवाब देता है.

11. व्यवस्थित करें
Google Cloud प्रोजेक्ट मिटाना
इस कोडलैब में इस्तेमाल किए गए संसाधनों के लिए, अपने Google Cloud खाते से शुल्क लिए जाने से बचने के लिए, हमारा सुझाव है कि आप Google Cloud प्रोजेक्ट को मिटा दें.
Google Cloud Console में जाकर, यह तरीका अपनाएं:
- मेन्यू ☰ > आईएएम और एडमिन > सेटिंग पर क्लिक करें.
- शट डाउन करें पर क्लिक करें.
- प्रोजेक्ट आईडी डालें.
- फिर भी बंद करें पर क्लिक करें.

Apps Script प्रोजेक्ट मिटाना
हमारा सुझाव है कि आप अपना Apps Script प्रोजेक्ट भी मिटा दें.
Apps Script console में जाकर, यह तरीका अपनाएं:
- अपना प्रोजेक्ट चुनें.
- ऐक्शन मेन्यू पर क्लिक करें.
- हटाएं पर क्लिक करें.

12. बधाई हो
बधाई हो! आपने Gemini की मदद से Google Chat ऐप्लिकेशन बनाए हैं!
आगे क्या करना है?
हमने इस कोडलैब में, सिर्फ़ इस्तेमाल के सामान्य उदाहरण दिखाए हैं. हालांकि, ऐसे कई क्षेत्र हैं जिनमें विस्तार किया जा सकता है. आपको अपने Google Chat ऐप्लिकेशन में इन क्षेत्रों पर विचार करना चाहिए. जैसे:
- जनरेटिव एआई के अन्य मॉडल के साथ इंटिग्रेट किया जा सकता है. इनमें कस्टम मॉडल भी शामिल हैं.
- ऑडियो, इमेज, और वीडियो जैसे अन्य मीडिया टाइप के साथ काम करता हो.
- मल्टीमोडैलिटी का इस्तेमाल करें.
- लंबी कॉन्टेक्स्ट विंडो और फ़ीडबैक लूप का इस्तेमाल करें.
- मार्केटप्लेस पर, प्रोडक्शन के लिए तैयार Google Chat ऐप्लिकेशन पब्लिश करें. डेवलपर के लिए कई संसाधन उपलब्ध हैं. जैसे, YouTube वीडियो, दस्तावेज़ वाली वेबसाइटें, कोड सैंपल, और ट्यूटोरियल.
- अपने संगठन के लिए Google Chat चालू करें. इंपोर्ट मोड की सुविधा से, शुरुआत करना आसान हो जाता है.
ज़्यादा जानें
- Google Chat के लिए डेवलपर दस्तावेज़ की वेबसाइट
- Google Chat और Dialogflow CX इंटिग्रेशन
- Google Chat के सभी सैंपल के लिए GitHub रिपॉज़िटरी
- Google Chat का इंपोर्ट मोड
- Apps Script के लिए डेवलपर के दस्तावेज़ों की वेबसाइट
- Google Workspace Developers का YouTube चैनल
- Google Cloud Developer Center
- जनरेटिव एआई मॉडल
- जनरेटिव एआई के कस्टम मॉडल
- जनरेटिव एआई के लिए, लंबे कॉन्टेक्स्ट वाली विंडो
- जनरेटिव एआई के लिए फ़ीडबैक लूप


