মিথুনের সাথে Google চ্যাটের জন্য অ্যাপ তৈরি করুন

1. আপনি শুরু করার আগে

মিথুনের সাথে গুগল চ্যাট অ্যাপগুলি কী কী?

মিথুনের সাথে Google চ্যাট অ্যাপগুলি নিম্নলিখিতগুলি করে:

  • আপনার পরিষেবা এবং সংস্থানগুলিকে Google Chat-এ আনুন, যা ব্যবহারকারীদের তথ্য পেতে এবং কথোপকথন ছেড়ে না দিয়ে পদক্ষেপ নিতে দেয়৷
  • জেনারেটিভ এআই মডেল জেমিনির সাথে একীভূত করুন, যাতে তারা আপনার কর্মপ্রবাহকে স্ট্রীমলাইন করতে নির্দিষ্ট সময়ে পাঠ্য বা চিত্রের মতো ডেটা তৈরি বা অনুসন্ধান করতে পারে।

কেন মিথুনের সাথে গুগল চ্যাট অ্যাপ একত্রিত করবেন?

জেমিনির মতো জেনারেটিভ এআই মডেলের সাধারণ ব্যবহারের ক্ষেত্রে নিম্নলিখিত বিভাগে পড়ে:

  • বিষয়বস্তু তৈরি এবং বর্ধন । মার্কেটিং কপি তৈরি করুন, সোশ্যাল মিডিয়া পোস্ট তৈরি করুন, বাস্তবসম্মত ছবি তৈরি করুন, সঙ্গীত রচনা করুন বা ভিডিও সামগ্রী তৈরিতে সহায়তা করুন।
  • ডেটা অনুসন্ধান । একটি অসংগঠিত জ্ঞান বেস থেকে মূল অন্তর্দৃষ্টি বের করুন, দীর্ঘ পাঠ্যের সংক্ষিপ্তসার করুন, বিষয়বস্তু শ্রেণীবদ্ধ করুন, বা উন্নত নির্ভুলতা এবং গতির সাথে ভাষা অনুবাদ করুন।
  • কথোপকথন । প্রাকৃতিক, তথ্যপূর্ণ, এবং সৃজনশীল কথোপকথনে নিযুক্ত হন।

Google Chat-এর পরিচিত ইন্টারফেসের মধ্যে সরাসরি এই ক্ষমতাগুলিকে একীভূত করার ক্ষমতা হল একটি বিশাল সুযোগ যারা তাদের ব্যবহারকারীদের অভিজ্ঞতা এবং উৎপাদনশীলতা উন্নত করতে চান।

পূর্বশর্ত

আপনি কি নির্মাণ

এই কোডল্যাবে, আপনি পূর্ববর্তী বিভাগে প্রবর্তিত তিনটি ব্যবহারের ক্ষেত্রে কভার করার জন্য Gemini-এর সাথে তিনটি Google Chat অ্যাপ তৈরি করেন।

ইস্যু ম্যানেজমেন্ট অ্যাপ (কন্টেন্ট তৈরি এবং বর্ধিতকরণ)

এই অ্যাপটি নিম্নলিখিতগুলি করে:

  • মৌলিক ইন্টারঅ্যাকশন, অ্যাপ হোম এবং অ্যাপ প্রমাণীকরণের মাধ্যমে সৃষ্টি থেকে বন্ধ হওয়া পর্যন্ত সমস্যাগুলি পরিচালনা করে।
  • বার্তাগুলি নিরীক্ষণ করে এবং ইভেন্ট এবং আনুষঙ্গিক উইজেটগুলির সাথে অন্তর্ভুক্তি সহায়তা প্রদান করে।

আপনি নিম্নলিখিত কাজ করতে মিথুন ব্যবহার করেন:

  • বার্তা ইতিহাস এবং ইস্যু বিশদ বিবরণের উপর ভিত্তি করে সমস্যা প্রতিবেদন তৈরি করুন।
  • গেটেড প্রম্পট সহ বার্তাগুলিতে অ-অন্তর্ভুক্ত শব্দ শ্রেণীবদ্ধ করুন।

ব্যবহৃত প্রধান প্রযুক্তিগুলি হল Vertex AI, Gemini, Apps Script, এবং Google Workspace APIs (Admin, Chat, Docs, Events)।

22efdecff4601417.png

2d127c63518673b2.png

9aea694937f2f3ed.png

এই অ্যাপটি প্রাকৃতিক ভাষায় প্রশ্ন বোঝার ও উত্তর দেওয়ার জন্য এবং অসংগঠিত ডেটা থেকে উৎসের রেফারেন্স ফেরত দিতে মিথুনের উপর নির্ভর করে।

ব্যবহৃত প্রধান প্রযুক্তিগুলি হল ডায়ালগফ্লো সিএক্স ডেটা স্টোর এজেন্ট, ডায়ালগফ্লো সিএক্স ওয়েবহুক, গুগল ক্লাউড ফাংশন এবং জেমিনি।

9468866bfe848bb8.png

ফিডব্যাক অ্যাপ (কথোপকথন)

এই অ্যাপটি প্রাকৃতিক ভাষায় কথোপকথন সহ রিভিউ সংগ্রহ ও সঞ্চয় করতে মিথুনের উপর নির্ভর করে।

ব্যবহৃত প্রধান প্রযুক্তিগুলি হল Dialogflow CX এজেন্ট, Dialogflow CX টুল, OpenAPI, Google ক্লাউড ফাংশন, এবং Gemini।

99a7a0295f122f31.png

আপনি কি শিখুন

  • Vertex AI এর মাধ্যমে Gemini-এর সাথে Google Chat অ্যাপগুলিকে কীভাবে একীভূত করা যায়।
  • ডায়ালগফ্লো সিএক্স এজেন্টের সাথে কীভাবে গুগল চ্যাট অ্যাপগুলিকে একীভূত করবেন।
  • গুগল চ্যাটের সর্বশেষ বৈশিষ্ট্যগুলি কীভাবে ব্যবহার করবেন: অ্যাপ হোম, গুগল চ্যাট ইভেন্ট এবং আনুষঙ্গিক উইজেট।

আপনার যা প্রয়োজন

2. সেট আপ করুন

সংস্থান শুরু করুন

এই বিভাগে, আপনি আপনার পছন্দের ওয়েব ব্রাউজার থেকে নিম্নলিখিত সংস্থানগুলি অ্যাক্সেস এবং কনফিগার করেন৷

অ্যাপস স্ক্রিপ্ট প্রকল্প

Apps স্ক্রিপ্ট কনসোলে , এই ধাপগুলি অনুসরণ করুন:

  1. সেটিংসে ক্লিক করুন এবং তারপরে Google Apps Script API সক্ষম করুন৷

ea06c593b347b9d1.png

  1. আপনার প্রকল্প নির্বাচন করুন.
  2. প্রকল্প সেটিংস ক্লিক করুন.
  3. সম্পাদক চেকবক্সে " appsscript.json " ম্যানিফেস্ট ফাইল দেখান নির্বাচন করুন৷
  4. প্রকল্পটির নাম পরিবর্তন করে Chat Apps Gemini

12c1485bd248b766.png

গুগল ক্লাউড প্রকল্প

Google ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার প্রকল্প নির্বাচন করুন.
  2. মেনু ☰ > API এবং পরিষেবাগুলি > OAuth সম্মতি স্ক্রীন > অ্যাপ সম্পাদনা করুন ক্লিক করুন এবং তারপর অ্যাপের নাম Chat Apps Gemini সেট করুন।

  1. Google Chat API কনফিগারেশনে নেভিগেট করুন, এবং তারপর অ্যাপের নাম এবং বিবরণ Chat Apps Gemini এ সেট করুন।

a71f040755da3b8b.png

গুগল চ্যাট

Google Chat- এ, এই ধাপগুলি অনুসরণ করুন:

  1. প্রয়োজনে আপনার Google Chat অ্যাপের সাথে চ্যাট শুরু করুন।
  2. এটি কাজ করে তা নিশ্চিত করতে একটি বার্তা পাঠান, যেমন Hello

9625418251528ae9.png

স্থানীয়ভাবে সোর্স কোড এবং রিসোর্স ডাউনলোড করুন

  1. এই GitHub সংগ্রহস্থলটি ডাউনলোড করুন।

  1. আপনার পছন্দের উন্নয়ন পরিবেশে, apps-script ডিরেক্টরি খুলুন এবং তারপর আপনার টার্মিনালে একই ডিরেক্টরিতে নেভিগেট করুন।

da9478df97c99194.png

clasp ইনস্টল করুন এবং কনফিগার করুন

আমরা স্থানীয় পরিবেশ থেকে অ্যাপস স্ক্রিপ্ট প্রকল্পে সোর্স কোডের সংস্করণগুলিকে সহজে সম্পাদনা করতে এবং পুশ করার জন্য clasp ব্যবহার করি।

  1. আপনার স্থানীয় পরিবেশে, node , npm , এবং clasp এর সর্বশেষ সংস্করণ ইনস্টল করুন
npm install -g @google/clasp
  1. আপনার অ্যাকাউন্ট দিয়ে লগ ইন করুন :
clasp login

8bc2434e6dc6f22a.png

সফল হলে, আপনি আপনার ওয়েব ব্রাউজারে একটি মৌলিক নিশ্চিতকরণ স্ক্রীন দেখতে পাবেন এবং আপনার ক্লায়েন্ট শংসাপত্র সহ .clasprc.json ফাইল আপডেট করা হয়েছে। আপনার টার্মিনালে এটি কোথায় অবস্থিত তা আপনি খুঁজে পেতে পারেন।

e1d833eb4d5b3a8f.png

3. অ্যাপ 1: তৈরি করুন

ধারণাগুলি পর্যালোচনা করুন

ভার্টেক্স এআই

Vertex AI আপনাকে জেনারেটিভ AI তৈরি এবং ব্যবহার করার জন্য প্রয়োজনীয় সমস্ত কিছু অফার করে, যার মধ্যে AI সমাধান, এজেন্ট বিল্ডার, 130 টিরও বেশি ফাউন্ডেশন মডেল এবং একটি ইউনিফাইড AI প্ল্যাটফর্ম রয়েছে৷

c9e9c7a1945b22ac.png

মিথুন

Gemini হল Google-এর একটি মাল্টিমডাল LLM যা Vertex AI-এর মাধ্যমে অ্যাক্সেসযোগ্য। এটি লোকেদের তাদের মানবিক সম্ভাবনাকে আনলক করতে সাহায্য করে যাতে তারা তাদের কল্পনা বৃদ্ধি করতে পারে, তাদের কৌতূহল প্রসারিত করতে পারে এবং তাদের উত্পাদনশীলতা বাড়াতে পারে।

উন্নত চ্যাট পরিষেবা

অ্যাডভান্সড চ্যাট পরিষেবা আপনাকে অ্যাপস স্ক্রিপ্টে Google Chat API ব্যবহার করতে দেয়। এটি স্ক্রিপ্টগুলিকে চ্যাট স্পেসগুলি সন্ধান করতে, তৈরি করতে এবং সংশোধন করতে, স্পেসগুলিতে সদস্যদের যুক্ত করতে বা সরাতে এবং পাঠ্য, কার্ড, সংযুক্তি এবং প্রতিক্রিয়া সহ বার্তাগুলি পড়তে বা পোস্ট করতে দেয়৷

স্থাপত্য পর্যালোচনা করুন

8c9c7b7328a69ea6.png

এই Google Chat অ্যাপটি Apps Script দিয়ে তৈরি করা হয়েছে। এটি নিম্নরূপ কাজ করে:

  1. একজন ব্যবহারকারী অ্যাপটিতে একটি বার্তা পাঠান, হয় সরাসরি বার্তায় বা একটি স্পেসে।
  2. অ্যাপটি, যা একটি Apps স্ক্রিপ্ট প্রকল্পে প্রয়োগ করা হয় এবং একটি Google ক্লাউড প্রকল্পের সাথে যুক্ত, বার্তাটি প্রক্রিয়া করে।
  3. অ্যাপটি Google Docs এবং Google Chat API-এর সাথে একীভূত হয়।
  4. অ্যাপটি স্ক্রিপ্ট বৈশিষ্ট্যগুলিতে ডেটা বজায় রাখতে বৈশিষ্ট্য পরিষেবা ব্যবহার করে।
  5. অ্যাপটি একটি সিঙ্ক্রোনাস প্রতিক্রিয়া পাঠায়, হয় সরাসরি বার্তায় বা আসল স্থানে।

পর্যালোচনা প্রবাহ

সমস্যা তৈরি করুন

7ca0e8ba3c8255bb.png

ডেডিকেটেড স্পেস থেকে সমস্যা সমাধান করুন

51b47714c378a24b.png

ডেডিকেটেড স্থান থেকে সমস্যা বন্ধ করুন

89e50228deeab0f9.png

সোর্স কোড পর্যালোচনা করুন

অ্যাপস স্ক্রিপ্ট প্রকল্পে নিম্নলিখিত স্ক্রিপ্টগুলি রয়েছে:

  • Configuration : পরিবেশের উপর ভিত্তি করে সম্পাদনা করার জন্য ধ্রুবক।
  • ChatApp : বার্তা, কার্ড ক্লিক, স্ল্যাশ কমান্ড এবং ডায়ালগ সহ Google Chat ইন্টারঅ্যাকশন ইভেন্টগুলি পরিচালনা করে৷
  • Storage : ইউটিলিটি ফাংশন যা প্রোপার্টি সার্ভিসের উপর নির্ভর করে।
  • ChatAppAuth : ইউটিলিটি ফাংশন যা Google Chat অ্যাপ প্রমাণীকরণের উপর নির্ভর করে।
  • Docs : ইউটিলিটি ফাংশন যা Google ডক্সের উপর নির্ভর করে।
  • VertexAi : ইউটিলিটি ফাংশন যা ভার্টেক্স এআই-এর উপর নির্ভর করে।

এবং এখানে সেই অংশগুলি রয়েছে যা মিথুন এবং চ্যাট স্পেস ইতিহাসের সাথে রিপোর্ট নথি তৈরি করার সময় সক্রিয়ভাবে ব্যবহৃত হয়:

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 ক্লাউড প্রকল্প আপডেট করুন

এপিআই সক্ষম করুন

  1. Google ক্লাউড কনসোলে , Google ডক্স , Google অ্যাডমিন SDK , এবং Vertex AI APIগুলি সক্ষম করুন:

  1. মেনু ☰ > APIs & Services > Enabled APIs & Services এ ক্লিক করুন এবং তারপর নিশ্চিত করুন যে API গুলি সক্ষম।

পরিষেবা অ্যাকাউন্ট শুরু করুন

Google ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনুতে ক্লিক করুন ☰ > IAM & Admin > Service Accounts > + Create service account .

74cf57426419f39.png

  1. পরিষেবা অ্যাকাউন্টের নাম chat-app সেট করুন।
  2. Chat app auth পরিষেবা অ্যাকাউন্টের বিবরণ সেট করুন।
  3. তৈরি করুন এবং চালিয়ে যান ক্লিক করুন।
  4. সম্পন্ন ক্লিক করুন. আপনাকে পরিষেবা অ্যাকাউন্ট পৃষ্ঠায় পুনঃনির্দেশিত করা হয়েছে এবং আপনি যে পরিষেবা অ্যাকাউন্ট তৈরি করেছেন তা দেখতে পাবেন।

ca0468f1f93990f9.png

  1. নতুন তৈরি পরিষেবা অ্যাকাউন্ট নির্বাচন করুন.
  2. কী ট্যাবটি নির্বাচন করুন।
  3. Add কী ক্লিক করুন।
  4. নতুন কী তৈরি করুন ক্লিক করুন।
  5. JSON নির্বাচন করুন।
  6. তৈরি করুন ক্লিক করুন।

9f7e6ea020978ab0.png

ডায়ালগ বন্ধ হয়ে যায় এবং আপনার নতুন তৈরি করা পাবলিক/প্রাইভেট কী জোড়া স্বয়ংক্রিয়ভাবে আপনার স্থানীয় পরিবেশে একটি JSON ফাইল হিসেবে ডাউনলোড হয়। আপনি যখন আপনার Apps স্ক্রিপ্ট প্রোজেক্টের সোর্স কোড এডিট করেন তখন আপনি এর বিষয়বস্তু ব্যবহার করেন।

Google Chat API কনফিগারেশন আপডেট করুন

Google ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. একটি স্ল্যাশ কমান্ড যোগ করুন।
  2. /create নাম সেট করুন।
  3. কমান্ড আইডি 1 এ সেট করুন।
  4. Create a new issue করতে বিবরণ সেট করুন।
  5. একটি ডায়ালগ খোলে চেকবক্স নির্বাচন করুন।
  6. আরেকটি স্ল্যাশ কমান্ড যোগ করুন।
  7. /close নাম সেট করুন।
  8. কমান্ড আইডি 2 এ সেট করুন।
  9. Close an issue করতে বিবরণ সেট করুন।
  10. Save এ ক্লিক করুন।

bee2e7b63659ab33.png

অ্যাপস স্ক্রিপ্ট প্রকল্প আপডেট করুন

  • আপনার স্থানীয় টার্মিনালে বর্তমান ডিরেক্টরিটিকে issue-management/1-baseline পরিবর্তন করুন। এতে সোর্স কোড থাকে। আপনার অ্যাপস স্ক্রিপ্ট প্রকল্পে সোর্স কোড পুশ করার আগে, আপনাকে কয়েকটি জিনিস কনফিগার করতে হবে।

সোর্স কোড কনফিগার করুন

  1. Configuration.js ফাইলে CHAT_CREDENTIALS নামের JSON ধ্রুবকটিকে প্রাইভেট কী ফাইল সামগ্রীতে সেট করুন যা আপনি আগে ডাউনলোড করেছেন।

d721f6bff73c5304.png

  1. Google ক্লাউড কনসোলে , মেনু ☰ > IAM & Admin > সেটিংস- এ ক্লিক করুন।

  1. প্রজেক্ট আইডি কপি করুন।

82592fa0bd113469.png

  1. Configuration.js ফাইলে প্রোজেক্ট আইডিতে PROJECT_ID নামের স্ট্রিং কনস্ট্যান্ট সেট করুন।

383cee561130ceba.png

clasp সেটিংস কনফিগার করুন

সোর্স কোডটিকে সঠিক অ্যাপস স্ক্রিপ্ট প্রকল্পে পুশ করতে clasp সেটিংস শুরু করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. অ্যাপস স্ক্রিপ্ট কনসোলে , আপনার প্রকল্প নির্বাচন করুন।
  2. প্রকল্প সেটিংস নির্বাচন করুন।
  3. আইডির অধীনে, অনুলিপি ক্লিক করুন।

20ea033b6de882c6.png

  1. বর্তমান ডিরেক্টরিতে, একটি .clasp.json ফাইল তৈরি করুন।
  2. <your-script-id> কপি করা আইডি দিয়ে প্রতিস্থাপন করুন।
  3. ফলাফলটি .clasp.json ফাইলে কপি করুন।
  4. .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.

চেষ্টা করে দেখুন

  1. গুগল চ্যাটে , Hello! অ্যাপে সরাসরি বার্তায়। অ্যাপটি উত্তর দেয় না, তবে একটি বার্তা উপস্থিত হয় যা কনফিগারেশনকে অনুরোধ করে।

4c1fc68121dcffed.png

  1. কনফিগার ক্লিক করুন।
  2. আপনার Google অ্যাকাউন্ট নির্বাচন করুন.
  3. প্রমাণীকরণ।
  4. পর্যালোচনা করুন এবং অ্যাপে অ্যাক্সেসের অনুমতি দিন।

4a2fd7ac5918bf1a.png

সফল হলে, আপনি ওয়েব পৃষ্ঠায় একটি মৌলিক নিশ্চিতকরণ স্ক্রীন এবং অ্যাপ থেকে আপনার আসল বার্তায় একটি প্রকৃত প্রতিক্রিয়া দেখতে পাবেন।

acb9065568fe47d2.png

2d6ef9c62f47e082.png

  1. অ্যাপটিতে অন্য একটি সরাসরি বার্তা পাঠান, কিন্তু স্ল্যাশ কমান্ড দিয়ে /create

be3f3c6eb0f929c1.png

  1. ডায়ালগে, শিরোনামকে Issue Title 1 এ সেট করুন।
  2. বিবরণ ইস্যু Description 1 এ সেট করুন।
  3. তৈরি করুন ক্লিক করুন।

22efdecff4601417.png

অ্যাপটি নিম্নলিখিতগুলি করে:

  1. ডায়ালগ বন্ধ করে।
  2. একই শিরোনাম দিয়ে সদ্য তৈরি হওয়া ইস্যুতে নিবেদিত একটি স্থান তৈরি করে।
  3. নতুন সৃষ্ট স্থানে যোগদান করে।
  4. নতুন সৃষ্ট স্থানে সমস্যার বর্ণনা সম্বলিত একটি বার্তা পাঠায়।
  5. নতুন তৈরি স্থানের একটি লিঙ্ক সহ আপনাকে একটি সরাসরি বার্তা পাঠায়।

3253cec2392e281f.png

  1. নতুন সৃষ্ট স্থানে, স্ল্যাশ কমান্ড /close এবং রেজুলেশন সহ একটি বার্তা পাঠান যেমন Not reproducible

132cc4acfc10b98c.png

অ্যাপটি নিম্নলিখিতগুলি করে:

  1. Google ডক্সে একটি রিপোর্ট নথি তৈরি করে।
  2. সদ্য তৈরি রিপোর্ট নথির লিঙ্ক সহ সমস্যাটির জন্য নিবেদিত স্থানটিতে একটি বার্তা পাঠায়।

2d127c63518673b2.png

  1. রিপোর্ট নথি খুলুন. এতে মৌলিক তথ্য, ইতিহাস এবং একটি সারাংশ রয়েছে।

9aea694937f2f3ed.png

4. ঐচ্ছিক: অ্যাপ 1: অ্যাপ হোম যোগ করুন

ধারণাগুলি পর্যালোচনা করুন

অ্যাপ হোম হল একটি কাস্টমাইজযোগ্য কার্ড বার্তা যা একটি চ্যাট অ্যাপ ব্যবহারকারীকে পাঠায় যখন ব্যবহারকারী চ্যাট অ্যাপের মাধ্যমে সরাসরি বার্তা থেকে হোম ট্যাব অ্যাক্সেস করেন। এটি সাধারণত অ্যাপ ডকুমেন্টেশন বা একটি ওভারভিউ প্রদর্শন করতে ব্যবহৃত হয়। প্রযুক্তিগতভাবে, পরিচালনা করার জন্য একটি উত্সর্গীকৃত ইভেন্ট রয়েছে এবং এটি কার্ড বার্তাগুলির মতো একই মূল নীতির উপর ভিত্তি করে।

65f56f70f67a32e4.png

পর্যালোচনা প্রবাহ

সমস্যাগুলি পরিচালনা করুন

10663f5fc107fb3f.png

সোর্স কোড পর্যালোচনা করুন

Apps স্ক্রিপ্ট প্রকল্প সম্পাদনা করা প্রয়োজন.

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 ক্লাউড প্রকল্প আপডেট করুন

Google ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. ইন্টারেক্টিভ বৈশিষ্ট্য বিভাগের অধীনে, সমর্থন অ্যাপ হোম চেকবক্স নির্বাচন করুন।

97159c1c69ca8303.png

আপনার স্থানীয় পরিবেশে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার টার্মিনালে বর্তমান ডিরেক্টরিটিকে issue-management/2-app-home পরিবর্তন করুন। এটিতে সোর্স কোড রয়েছে যা আপনাকে ব্যবহার করতে হবে।
  2. আপনার বর্তমান ডিরেক্টরিতে issue-management/1-baseline/.clasp.json ফাইলটি কপি করুন।
  3. আপনার বর্তমান ডিরেক্টরিতে issue-management/1-baseline/Configuration.js ফাইলটি অনুলিপি করুন যাতে এটি বিদ্যমান একটিকে প্রতিস্থাপন করে।
  4. নিম্নলিখিত কমান্ড চালান:
clasp push

চেষ্টা করে দেখুন

Google Chat- এ, এই ধাপগুলি অনুসরণ করুন:

  1. অ্যাপটিতে স্ল্যাশ কমান্ড /create দিয়ে একটি সরাসরি বার্তা পাঠান। অ্যাপটি একটি ডায়ালগ খোলে।
  2. Issue Title 2শিরোনাম সেট করুন।
  3. বিবরণ ইস্যু Description 2 এ সেট করুন।
  4. তৈরি করুন ক্লিক করুন।

3b2a8690e758f965.png

  1. Google Chat অ্যাপের মাধ্যমে আপনার স্পেস থেকে হোম ট্যাবটি নির্বাচন করুন। আপনি আপনার তৈরি করা সমস্যার বিবরণ দেখতে পারেন।

ed8e32da0e6f2ac6.png

5. ঐচ্ছিক: অ্যাপ 1: স্থান নিরীক্ষণ যোগ করুন

ধারণাগুলি পর্যালোচনা করুন

পাব/সাব

Pub/Sub হল একটি অ্যাসিঙ্ক্রোনাস এবং স্কেলেবল মেসেজিং পরিষেবা যা সেই বার্তাগুলিকে প্রক্রিয়াকরণ করা পরিষেবাগুলি থেকে বার্তা তৈরি করে পরিষেবাগুলিকে ডিকপল করে৷ পাব/সাব আপনাকে ইভেন্ট প্রযোজক এবং গ্রাহকদের সিস্টেম তৈরি করতে দেয়, যাকে প্রকাশক এবং গ্রাহক বলা হয়। প্রকাশকরা সিঙ্ক্রোনাস রিমোট পদ্ধতি কল (RPCs) এর পরিবর্তে ইভেন্ট সম্প্রচারের মাধ্যমে গ্রাহকদের সাথে অসিঙ্ক্রোনাসভাবে যোগাযোগ করে।

এই ইভেন্টগুলি কীভাবে বা কখন প্রক্রিয়া করা হবে তা বিবেচনা না করে প্রকাশকরা পাব/সাব পরিষেবাতে ইভেন্টগুলি পাঠান। Pub/Sub তারপরে সমস্ত পরিষেবাগুলিতে ইভেন্টগুলি সরবরাহ করে যা তাদের প্রতিক্রিয়া জানায়। RPC-এর মাধ্যমে যোগাযোগ করা সিস্টেমে, প্রকাশকদের অবশ্যই গ্রাহকদের ডেটা পাওয়ার জন্য অপেক্ষা করতে হবে। যাইহোক, Pub/Sub-এ অ্যাসিঙ্ক্রোনাস ইন্টিগ্রেশন সামগ্রিক সিস্টেমের নমনীয়তা এবং দৃঢ়তা বাড়ায়।

বিষয় : একটি নামযুক্ত সংস্থান যা বার্তাগুলির একটি ফিড প্রতিনিধিত্ব করে। আপনি এটি প্রকাশ করতে বা সদস্যতা নেওয়ার আগে আপনাকে অবশ্যই একটি বিষয় তৈরি করতে হবে৷

সাবস্ক্রিপশন : একটি বিষয়ে প্রকাশিত বার্তা পেতে, আপনাকে অবশ্যই সেই বিষয়ে একটি সাবস্ক্রিপশন তৈরি করতে হবে। গ্রাহক ক্লায়েন্ট বিষয়টিতে প্রকাশিত বার্তাগুলি গ্রহণ করে এবং প্রক্রিয়া করে। একটি বিষয়ের একাধিক সদস্যতা থাকতে পারে, তবে একটি প্রদত্ত সদস্যতা একটি একক বিষয়ের অন্তর্গত।

Google Workspace ইভেন্ট

Google Workspace ইভেন্টগুলি Google Workspace রিসোর্সে পরিবর্তন দেখায়, যেমন রিসোর্স তৈরি করা, আপডেট করা বা মুছে ফেলা হয়। অ্যাসিঙ্ক্রোনাসভাবে প্রাসঙ্গিক ইভেন্টগুলি গ্রহণ এবং প্রক্রিয়া করার জন্য অ্যাপগুলি Google Workspace রিসোর্সে সাবস্ক্রাইব করতে পারে।

7816e477b112bfb6.png

Google Workspace Events API কীভাবে সাবস্ক্রিপশনের মাধ্যমে অ্যাপে ইভেন্ট ডেলিভার করে তা এখানে দেওয়া হল:

  1. অ্যাপটি Google Workspace অ্যাপের রিসোর্সে সাবস্ক্রাইব করে, যেমন স্পেস।
  2. যে সংস্থানটিতে অ্যাপটি সদস্যতা নিয়েছে সেটি পরিবর্তিত হয়৷
  3. Google Workspace অ্যাপ Pub/Sub-এ একটি বিষয়ের জন্য একটি ইভেন্ট ডেলিভার করে, যেটি অ্যাপের Google Workspace সাবস্ক্রিপশনের বিজ্ঞপ্তির শেষ পয়েন্ট হিসেবে কাজ করে। ইভেন্টে রিসোর্সে কী পরিবর্তন হয়েছে সে সম্পর্কে ডেটা রয়েছে।
  4. অ্যাপটি পাব/সাব মেসেজ প্রক্রিয়া করে যাতে ইভেন্টটি থাকে এবং প্রয়োজনে ব্যবস্থা নেয়।

পর্যালোচনা প্রবাহ

সমস্যা তৈরি করুন (আপডেট)

6d7a9d7a68666a80.png

ডেডিকেটেড স্পেস থেকে সমস্যা সমাধান করুন (আপডেট)

17e60f052f222456.png

উত্সর্গীকৃত স্থান থেকে সমস্যা বন্ধ করুন (আপডেট)

742d490ea0b6fe3a.png

প্রক্রিয়া সদস্যতা

de3017100dec6401.png

সোর্স কোড পর্যালোচনা করুন

Apps স্ক্রিপ্ট প্রকল্প সম্পাদনা করা প্রয়োজন.

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 ক্লাউড প্রকল্প আপডেট করুন

এপিআই সক্ষম করুন

  1. Google ক্লাউড কনসোলে, Google Workspace ইভেন্ট এবং PubSub চালু করুন।

  1. মেনু ☰ > API এবং পরিষেবা > সক্ষম API এবং পরিষেবাগুলিতে ক্লিক করুন এবং তারপর নিশ্চিত করুন যে উভয়ই সক্ষম৷

সাবস্ক্রিপশন শুরু করুন

সমস্ত কর্মক্ষেত্র ইভেন্ট পোস্ট করার জন্য আপনাকে একটি পাব/সাব বিষয় তৈরি করতে এবং সদস্যতা নিতে হবে।

Google ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনুতে যান ☰ > পাব/সাব > বিষয়

  1. বিষয় তৈরি করুন ক্লিক করুন.
  2. workspace-events টপিক আইডি সেট করুন।
  3. একটি ডিফল্ট সদস্যতা যোগ করুন চেকবক্স নির্বাচন করুন।
  4. তৈরি করুন ক্লিক করুন।

b39f9a0aec7c9939.png

Google Chat থেকে আপনার নতুন তৈরি করা বিষয়ের পাব/সাব মেসেজ প্রকাশের অ্যাক্সেস মঞ্জুর করতে, এই ধাপগুলি অনুসরণ করুন:

  1. তালিকা থেকে বিষয় নির্বাচন করুন.
  2. অনুমতি ট্যাব নির্বাচন করুন।
  3. নতুন প্রিন্সিপালে chat-api-push@system.gserviceaccount.com যোগ করুন।
  4. ভূমিকার জন্য পাব/সাব প্রকাশক নির্বাচন করুন।
  5. Save এ ক্লিক করুন।

8d4016c37532503.png

অ্যাপস স্ক্রিপ্ট প্রকল্প আপডেট করুন

Google ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনুতে যান ☰ > IAM & Admin > সেটিংস

  1. প্রজেক্ট আইডি কপি করুন।

82592fa0bd113469.png

আপনার স্থানীয় পরিবেশে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার টার্মিনালে বর্তমান ডিরেক্টরিকে issue-management/3-message-monitoring এ পরিবর্তন করুন। এটিতে আপনার প্রয়োজনীয় সোর্স কোড রয়েছে।
  2. কপি করা প্রজেক্ট আইডিতে Configuration.js ফাইলে PROJECT_ID নামের স্ট্রিং কনস্ট্যান্ট সেট করুন।
  3. Configuration.js ফাইলে CHAT_CREDENTIALS নামের JSON ধ্রুবকটিকে আপনার আগে ডাউনলোড করা ব্যক্তিগত কী ফাইল সামগ্রীতে সেট করুন।
  4. আপনার বর্তমান ডিরেক্টরিতে issue-management/2-app-home/.clasp.json ফাইলটি কপি করুন।
  5. নিম্নলিখিত কমান্ড চালান:
clasp push

চেষ্টা করে দেখুন

Google Chat- এ, এই ধাপগুলি অনুসরণ করুন:

  1. অ্যাপটিতে স্ল্যাশ কমান্ড /create দিয়ে একটি সরাসরি বার্তা পাঠান। অ্যাপটি একটি ডায়ালগ খোলে।
  2. Issue Title 3শিরোনাম সেট করুন।
  3. বিবরণ ইস্যু Description 3 এ সেট করুন।
  4. তৈরি করুন ক্লিক করুন।
  5. নতুন তৈরি জায়গায়, সমস্যা নিয়ে আলোচনা করে এমন কয়েকটি বার্তা পাঠান।
  6. স্ল্যাশ কমান্ড /close এবং রেজোলিউশন সহ একটি বার্তা পাঠান যেমন Fixed

Google ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনুতে যান ☰ > Pub/Sub > সদস্যতা

  1. সাবস্ক্রিপশন ওয়ার্কস্পেস-ইভেন্ট-সাব নির্বাচন করুন।
  2. বার্তা ট্যাব নির্বাচন করুন।
  3. টানতে ক্লিক করুন। সারণীটি সদ্য নির্মিত স্থানে আপনি যা পাঠিয়েছেন তার সাথে সম্পর্কিত বার্তাগুলি প্রদর্শন করে৷

82631c9792d83889.png

Apps স্ক্রিপ্ট কনসোলে , এই ধাপগুলি অনুসরণ করুন:

  1. আপনার প্রকল্প নির্বাচন করুন.
  2. সম্পাদক নির্বাচন করুন।
  3. WorkspaceEvent.gs ফাইলটি নির্বাচন করুন।
  4. রান বিভাগে processSubscription নির্বাচন করুন।
  5. Run ক্লিক করুন। আপনি এক্সিকিউশন লগ থেকে দেখতে পাবেন যে বার্তাগুলি প্রক্রিয়া করা হয়েছে।

c612e8fa2bd0a163.png

Google ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনুতে যান ☰ > Pub/Sub > সদস্যতা

  1. সাবস্ক্রিপশন ওয়ার্কস্পেস-ইভেন্ট-সাব নির্বাচন করুন।
  2. বার্তা ট্যাব নির্বাচন করুন।
  3. টানতে ক্লিক করুন। আপনি সদ্য তৈরি করা জায়গায় যা পাঠিয়েছেন তার সাথে সম্পর্কিত বার্তাগুলি টেবিলটি আর প্রদর্শন করে না।

e185454cac862a7b.png

  • Google চ্যাটে , স্ল্যাশ কমান্ড /create দিয়ে আপনি যে তৃতীয় সমস্যাটি তৈরি করেছেন তার জন্য উৎসর্গীকৃত স্থানে, সমস্যাটি নিয়ে আলোচনা করে এমন আরও কয়েকটি বার্তা পাঠান।

Google ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনুতে যান ☰ > Pub/Sub > সদস্যতা

  1. সাবস্ক্রিপশন ওয়ার্কস্পেস-ইভেন্ট-সাব নির্বাচন করুন।
  2. বার্তা ট্যাব নির্বাচন করুন।
  3. টানতে ক্লিক করুন। আপনি সদ্য তৈরি করা জায়গায় যা পাঠিয়েছেন তার সাথে সম্পর্কিত বার্তাগুলি টেবিলটি প্রদর্শন করে না।

6. ঐচ্ছিক: অ্যাপ 1: অন্তর্ভুক্তি সহায়তা যোগ করুন

ধারণাগুলি পর্যালোচনা করুন

Gen AI প্রম্পটিং হল একটি জেনারেটিভ AI মডেলকে কাঙ্খিত আউটপুটের দিকে পরিচালিত করার জন্য নির্দেশাবলী বা প্রশ্ন তৈরির শিল্প। একটি সাধারণ অভ্যাস হল প্রম্পটে নিয়ম ও শর্ত যোগ করে উত্তর গেট করা। এটি আউটপুটকে নিরাপদ, প্রাসঙ্গিক, সামঞ্জস্যপূর্ণ এবং প্রত্যাশার সাথে সারিবদ্ধ করতে সাহায্য করতে পারে।

পর্যালোচনা প্রবাহ

প্রক্রিয়া সদস্যতা (আপডেট)

780d0802f77dd180.png

সোর্স কোড পর্যালোচনা করুন

Apps স্ক্রিপ্ট প্রকল্প সম্পাদনা করা প্রয়োজন.

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;
}

অ্যাপস স্ক্রিপ্ট প্রকল্প আপডেট করুন

আপনার স্থানীয় পরিবেশে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার টার্মিনালে বর্তমান ডিরেক্টরিকে issue-management/4-inclusivity-help পরিবর্তন করুন। এটিতে আপনার প্রয়োজনীয় সোর্স কোড রয়েছে।
  2. আপনার বর্তমান ডিরেক্টরিতে issue-management/3-message-monitoring/.clasp.json ফাইলটি কপি করুন।
  3. আপনার বর্তমান ডিরেক্টরিতে issue-management/3-message-monitoring/Configuration.js ফাইলটি অনুলিপি করুন যাতে এটি বিদ্যমান একটিকে প্রতিস্থাপন করে।
  4. নিম্নলিখিত কমান্ড চালান:
clasp push

চেষ্টা করে দেখুন

Google Chat- এ, এই ধাপগুলি অনুসরণ করুন:

  1. অ্যাপটিতে স্ল্যাশ কমান্ড /create দিয়ে একটি সরাসরি বার্তা পাঠান। অ্যাপটি একটি ডায়ালগ খোলে।
  2. Issue Title 4শিরোনাম সেট করুন।
  3. বিবরণ ইস্যু Description 4 এ সেট করুন।
  4. তৈরি করুন ক্লিক করুন।
  5. সদ্য তৈরি জায়গায়, পাঠাও It happened to me last week as well

Apps স্ক্রিপ্ট কনসোলে , এই ধাপগুলি অনুসরণ করুন:

  1. আপনার প্রকল্প নির্বাচন করুন.
  2. সম্পাদক নির্বাচন করুন।
  3. WorkspaceEvent.gs ফাইলটি নির্বাচন করুন।
  4. রান বিভাগে processSubscription নির্বাচন করুন।
  5. রান এ ক্লিক করুন। আপনি এক্সিকিউশন লগ থেকে দেখতে পাচ্ছেন যে বার্তাগুলি প্রক্রিয়া করা হয়েছে৷

Google Chat- এ, এই ধাপগুলি অনুসরণ করুন:

  1. লক্ষ্য করুন যে অ্যাপটি নতুন তৈরি করা জায়গায় কোনও অন্তর্ভুক্তি সহায়তা পাঠায়নি।
  2. নতুন সৃষ্ট স্থানে, বার্তা পাঠান I had to add myself from the master to fix it

Apps স্ক্রিপ্ট কনসোলে , এই ধাপগুলি অনুসরণ করুন:

  1. আপনার প্রকল্প নির্বাচন করুন.
  2. সম্পাদক নির্বাচন করুন।
  3. WorkspaceEvent.gs ফাইলটি নির্বাচন করুন।
  4. রান বিভাগে processSubscription নির্বাচন করুন।
  5. রান এ ক্লিক করুন। আপনি এক্সিকিউশন লগ থেকে দেখতে পাচ্ছেন যে বার্তাগুলি প্রক্রিয়া করা হয়েছে৷ Google Chat- এ, অ্যাপটি নতুন তৈরি করা জায়গায় একটি অন্তর্ভুক্তি সহায়তা বার্তা পাঠিয়েছে।

7936342847acbe2d.png

7. ঐচ্ছিক: অ্যাপ 1: পছন্দ যোগ করুন

.

ধারণাগুলি পর্যালোচনা করুন

একটি আনুষঙ্গিক উইজেট হল একটি সীমাহীন উইজেট যা একটি অ্যাপ দ্বারা প্রেরিত একটি বার্তার নীচে সংযুক্ত থাকে। এটি সাধারণত বার্তাগুলির নির্দিষ্ট প্রসঙ্গে ব্যবহারকারীর কাছ থেকে দ্রুত প্রতিক্রিয়া সক্ষম করতে ব্যবহৃত হয়। প্রযুক্তিগতভাবে, এটি কার্ড বোতামগুলির মতো একই মূল নীতির উপর ভিত্তি করে।

eebe88238f6b13f.png

পর্যালোচনা প্রবাহ

অন্তর্ভুক্তি সহায়তা অক্ষম করুন

1bb7a8592ee6221e.png

সোর্স কোড পর্যালোচনা করুন

Apps স্ক্রিপ্ট প্রকল্প সম্পাদনা করা প্রয়োজন.

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
              }]
            }}
          }]}}]
        }, ...);
        ...
      }
      ...
    }
    ...
  }
  ...
}

অ্যাপস স্ক্রিপ্ট প্রকল্প আপডেট করুন

আপনার স্থানীয় পরিবেশে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার টার্মিনালে বর্তমান ডিরেক্টরি পরিবর্তন করে issue-management/5-disable-help । এটিতে আপনার প্রয়োজনীয় সোর্স কোড রয়েছে।
  2. আপনার বর্তমান ডিরেক্টরিতে issue-management/4-inclusivity-help/.clasp.json ফাইলটি কপি করুন।
  3. আপনার বর্তমান ডিরেক্টরিতে issue-management/4-inclusivity-help/Configuration.js ফাইলটি অনুলিপি করুন যাতে এটি বিদ্যমান একটিকে প্রতিস্থাপন করে।
  4. নিম্নলিখিত কমান্ড চালান:
clasp push

চেষ্টা করে দেখুন

সাহায্য অক্ষম করুন

  • Google চ্যাটে , স্ল্যাশ কমান্ড /create দিয়ে আপনি যে চতুর্থ সমস্যাটি তৈরি করেছেন তার জন্য উত্সর্গীকৃত স্পেসে, I had to add myself from the master to fix বার্তা পাঠান।

Apps স্ক্রিপ্ট কনসোলে , এই ধাপগুলি অনুসরণ করুন:

  1. আপনার প্রকল্প নির্বাচন করুন.
  2. সম্পাদক নির্বাচন করুন।
  3. WorkspaceEvent.gs ফাইলটি নির্বাচন করুন।
  4. রান বিভাগে processSubscription নির্বাচন করুন।
  5. রান এ ক্লিক করুন। আপনি এক্সিকিউশন লগ থেকে দেখতে পাচ্ছেন যে বার্তাগুলি প্রক্রিয়া করা হয়েছে৷

Google Chat- এ, এই ধাপগুলি অনুসরণ করুন:

  1. লক্ষ্য করুন যে অ্যাপটি একটি আনুষঙ্গিক উইজেট সহ সমস্যাটির জন্য নিবেদিত স্থানে অন্তর্ভুক্তি সহায়তা সহ একটি বার্তা পাঠিয়েছে।
  2. অন্তর্ভুক্তি সহায়তা অক্ষম করতে আনুষঙ্গিক উইজেটে ক্লিক করুন।

de722cff1928dec9.png

অক্ষমতা পরীক্ষা করুন

  • Google চ্যাটে , স্ল্যাশ কমান্ড /create দিয়ে আপনি যে চতুর্থ সমস্যাটি তৈরি করেছেন তার জন্য উত্সর্গীকৃত স্পেসে, I had to add myself from the master to fix বার্তা পাঠান।

Apps স্ক্রিপ্ট কনসোলে , এই ধাপগুলি অনুসরণ করুন:

  1. আপনার প্রকল্প নির্বাচন করুন.
  2. সম্পাদক নির্বাচন করুন।
  3. WorkspaceEvent.gs ফাইলটি নির্বাচন করুন।
  4. রান বিভাগে processSubscription নির্বাচন করুন।
  5. রান এ ক্লিক করুন। আপনি এক্সিকিউশন লগ থেকে দেখতে পাচ্ছেন যে বার্তাগুলি প্রক্রিয়া করা হয়েছে৷ Google Chat- এ, অ্যাপটি সমস্যাটির জন্য নিবেদিত স্থানটিতে অন্তর্ভুক্তি সহায়তা সহ একটি বার্তা পাঠায়নি কারণ এটি নিষ্ক্রিয় ছিল।

347d659db53b73e9.png

8. অ্যাপ 2: তৈরি করুন

ধারণাগুলি পর্যালোচনা করুন

জেনারেল এআই গ্রাউন্ডিং

এটি জ্ঞানের যাচাইযোগ্য উত্সগুলির সাথে সংযোগ করে এআই মডেলগুলিকে আরও বাস্তব এবং নির্ভরযোগ্য করে তোলার বিষয়ে। এই কৌশলটি AI-কে তথ্য উদ্ভাবন থেকে আটকাতে সাহায্য করে এবং প্রতিক্রিয়াগুলিকে প্রাসঙ্গিকভাবে প্রাসঙ্গিক এবং কম পক্ষপাতদুষ্ট করতে সাহায্য করতে পারে।

প্রাকৃতিক ভাষা

কৃত্রিম বা কম্পিউটার-ভিত্তিক ভাষার বিপরীতে দৈনন্দিন যোগাযোগের জন্য মানুষের দ্বারা বলা বা লিখিত যেকোনো ভাষা।

ক্লাউড স্টোরেজ

ক্লাউড স্টোরেজ বিশ্বব্যাপী সঞ্চয়স্থান এবং যে কোনো সময় যে কোনো পরিমাণ ডেটা পুনরুদ্ধারের অনুমতি দেয়। এটি ওয়েবসাইট বিষয়বস্তু পরিবেশন, সংরক্ষণাগার এবং দুর্যোগ পুনরুদ্ধারের জন্য ডেটা সংরক্ষণ করা, অথবা সরাসরি ডাউনলোডের মাধ্যমে ব্যবহারকারীদের কাছে বৃহৎ ডেটা বস্তু বিতরণ সহ বিভিন্ন পরিস্থিতিতে ব্যবহার করা যেতে পারে।

ডায়ালগফ্লো সিএক্স ডেটা স্টোর

ডায়ালগফ্লো সিএক্স ডেটা স্টোরগুলির সাথে একীভূত হয় যা নির্দিষ্ট ডেটা থেকে শেষ ব্যবহারকারীর প্রশ্নের উত্তর খুঁজতে ডেটা স্টোর এজেন্টদের দ্বারা ব্যবহৃত ওয়েবসাইট এবং নথির সংগ্রহ। একটি প্রদত্ত প্রশ্নের জন্য, ডেটা স্টোর এজেন্ট প্রদত্ত উত্স বিষয়বস্তু থেকে একটি উত্তর অনুসন্ধান করে এবং ফলাফলগুলিকে একটি সুসংগত প্রতিক্রিয়া হিসাবে সংক্ষিপ্ত করে৷ এটি আরও জানার জন্য শেষ ব্যবহারকারীর প্রতিক্রিয়ার উত্সগুলির সমর্থনকারী লিঙ্কগুলিও সরবরাহ করে৷

স্থাপত্য পর্যালোচনা করুন

9d3342d12f3b4dda.png

এই Google চ্যাট অ্যাপটি ডায়ালগফ্লো সিএক্স দিয়ে তৈরি এবং এটি নিম্নরূপ কাজ করে:

  1. একজন ব্যবহারকারী অ্যাপটিতে একটি বার্তা পাঠান, হয় সরাসরি বার্তায় বা একটি স্পেসে।
  2. অ্যাপটি, যা একটি ডায়ালগফ্লো সিএক্স এজেন্ট এবং এটি একটি Google ক্লাউড প্রকল্পের সাথে যুক্ত, বার্তাটি প্রক্রিয়া করে৷
  3. অ্যাপটি ক্লাউড স্টোরেজে অবস্থিত একটি ডেটা স্টোরের সাথে একীভূত হয়।
  4. অ্যাপটি একটি সিঙ্ক্রোনাস প্রতিক্রিয়া পাঠায়, হয় সরাসরি বার্তায় বা আসল স্থানে।

পর্যালোচনা প্রবাহ

প্রশ্নের উত্তর দাও

aad9fb5a7ca48956.png

সোর্স কোড পর্যালোচনা করুন

আপনার প্রয়োজন একমাত্র উত্স কোড নয়, বরং ডেটা যা আপনি গ্রাউন্ডিংয়ের জন্য ব্যবহার করেন।

google-chat-overview.pdf

এতে Google Chat অ্যাপের অসংগঠিত তথ্য রয়েছে, এটি Google Workspace ডেভেলপারদের ওয়েবসাইটের একটি পৃষ্ঠার প্রিন্ট করা সংস্করণ।

e9b91c4587b1a3a0.png

Google ক্লাউড প্রকল্প আপডেট করুন

Google ক্লাউড কনসোলে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. ডায়ালগফ্লো এবং ক্লাউড স্টোরেজ এপিআই সক্ষম করুন।

  1. Vertex AI এজেন্ট বিল্ডার API সক্ষম করুন।

  1. মেনু ☰ > APIs এবং পরিষেবাগুলি > সক্ষম APIs এবং পরিষেবাগুলিতে ক্লিক করুন এবং তারপর নিশ্চিত করুন যে সমস্ত APIS সক্ষম হয়েছে৷

.

ডায়ালগফ্লো সিএক্স ডেটা স্টোর এজেন্ট তৈরি করুন

জ্ঞান ডেটা শুরু করুন

Google ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনুতে ক্লিক করুন ☰ > ক্লাউড স্টোরেজ > বালতি

4f15978ae9f1b687.png

  1. তৈরি করুন ক্লিক করুন।
  2. gchat-knowledge নাম সেট করুন।
  3. তৈরি করুন ক্লিক করুন।

6b38c6d4d2c41bba.png

  1. gchat-জ্ঞান বালতি নির্বাচন করুন.
  2. ফাইল আপলোড ক্লিক করুন.
  3. আপনার স্থানীয় পরিবেশ থেকে google-chat-overview.pdf ফাইলটি ডাউনলোড করুন এবং নির্বাচন করুন।

df89acb22e1762af.png

অ্যাপ তৈরি করুন

Google ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনু ☰ > এজেন্ট নির্মাতা > অ্যাপস-এ ক্লিক করুন।

  1. নতুন অ্যাপে ক্লিক করুন।
  2. চ্যাটের ধরন নির্বাচন করুন।

44276003074bcf14.png

  1. আপনার কোম্পানির নামের সাথে Company name সেট করুন।
  2. knowledge Agent name সেট করুন.
  3. অবিরত ক্লিক করুন.

c4fedfd7556f723b.png

  1. নতুন ডেটা স্টোর তৈরি করুন ক্লিক করুন।
  2. ডেটা উত্স হিসাবে ক্লাউড স্টোরেজ নির্বাচন করুন।

6e2440ecf0f8f9bd.png

  1. ফাইল নির্বাচন করুন।
  2. ব্রাউজ ক্লিক করুন.
  3. google-chat-overview.pdf ফাইলটি নির্বাচন করুন।
  4. অবিরত ক্লিক করুন.
  5. ডেটা স্টোরের নামটি gchat-knowledge-ds এ সেট করুন।
  6. তৈরি করুন ক্লিক করুন।

a675df7490b83900.png

  1. টেবিলে gchat-knowledge-ds ডেটা স্টোর নির্বাচন করুন।
  2. তৈরি করুন ক্লিক করুন।

f121d580771ed96.png

  1. কয়েক মিনিট পর, মেনু ☰ > এজেন্ট নির্মাতা > অ্যাপে ক্লিক করুন এবং লক্ষ্য করুন যে আপনি অ্যাপটি দেখতে পাচ্ছেন।

d929a7431dd84968.png

  1. মেনু ☰ > এজেন্ট নির্মাতা > ডেটা স্টোরে ক্লিক করুন।

  1. gchat-knowledge-ds ডেটা স্টোরে ক্লিক করুন। নথির সংখ্যা হল 1 , যা নির্দেশ করে যে এটি প্রস্তুত৷

558319790a0accf2.png

সম্পূর্ণ এবং পরীক্ষা অ্যাপ্লিকেশন

Dialogflow CX কনসোলে , এই ধাপগুলি অনুসরণ করুন:

  1. আপনার Google ক্লাউড প্রকল্প নির্বাচন করুন.
  2. জ্ঞান এজেন্ট নির্বাচন করুন.

ca9b2fb4be92e8e4.png

  1. এজেন্ট সেটিংস > জেনারেটিভ এআই > জেনারেটিভ এজেন্ট নির্বাচন করুন।
  2. টেক্সট বাইসন থেকে জেমিনি প্রোতে মডেলটি পরিবর্তন করুন।
  3. Save এ ক্লিক করুন।

68cc4713ec9b25a0.png

  1. টেস্ট এজেন্ট ক্লিক করুন.
  2. পাঠান What is Google Chat? . এজেন্ট অর্থপূর্ণ কিছু সঙ্গে প্রতিক্রিয়া.

8e3a2cb02469041a.png

গুগল চ্যাট অ্যাপ ইন্টিগ্রেট করুন

Dialogflow CX কনসোলে , এই ধাপগুলি অনুসরণ করুন:

  1. আপনার Google ক্লাউড প্রকল্প নির্বাচন করুন.
  2. নলেজ এজেন্টের সারিতে ক্লিক করুন 1e7ede7abae4aa3c.png > নাম কপি করুন

e19f61185158110d.png

Google ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. Google Chat API কনফিগারেশনে যান।

  1. সংযোগ সেটিংসের অধীনে, ডায়ালগফ্লো নির্বাচন করুন।
  2. Dialogflow সেটিংসের অধীনে, Dialogflow CX নির্বাচন করুন।
  3. আপনি যে এজেন্টের নাম কপি করেছেন তাতে এজেন্ট বা পরিবেশ সম্পদের নাম সেট করুন।
  4. দুটি স্ল্যাশ কমান্ড সরান।

505ff39a50880904.png

  1. গুগল চ্যাটে , পাঠান What is Google Chat? Google Chat অ্যাপে সরাসরি বার্তায়। এজেন্ট অর্থপূর্ণ কিছু সঙ্গে প্রতিক্রিয়া.

abda9e43b81fb0ea.png

9. ঐচ্ছিক: অ্যাপ 2: উৎস যোগ করুন

ধারণাগুলি পর্যালোচনা করুন

ডায়ালগফ্লো সিএক্স ওয়েবহুক

একটি পরিষেবা যা ব্যবসায়িক যুক্তি হোস্ট করে বা অন্য পরিষেবাগুলিকে কল করে৷ ডায়ালগফ্লো সিএক্স সেশন চলাকালীন, ওয়েবহুকগুলি গতিশীল প্রতিক্রিয়া তৈরি করতে, সংগৃহীত ডেটা যাচাই করতে বা ব্যাকএন্ডে অ্যাকশন ট্রিগার করতে প্রাকৃতিক ভাষা প্রক্রিয়াকরণের মাধ্যমে নিষ্কাশন করা ডেটার উপর নির্ভর করতে পারে।

ক্লাউড ফাংশন

ক্লাউড ফাংশন সার্ভারহীন ব্যাকএন্ড তৈরি, রিয়েল-টাইম ডেটা প্রসেসিং এবং বুদ্ধিমান অ্যাপ তৈরি করার জন্য দুর্দান্ত। বিধান, পরিচালনা, প্যাচ বা আপডেট করার জন্য কোন সার্ভার নেই। তারা স্বয়ংক্রিয়ভাবে স্কেল, এবং অত্যন্ত উপলব্ধ এবং দোষ-সহনশীল।

পর্যালোচনা প্রবাহ

প্রশ্নের উত্তর দিন (আপডেট)

92767c07c7b252aa.png

সোর্স কোড পর্যালোচনা করুন

Google চ্যাট বার্তাগুলিতে এজেন্ট প্রতিক্রিয়াগুলিকে মানিয়ে নেওয়ার জন্য আপনার একমাত্র সোর্স কোডটি প্রয়োজন। এটি একটি ওয়েবহুক হিসাবে ব্যবহৃত হয়।

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 ক্লাউড প্রকল্প আপডেট করুন

Google ক্লাউড কনসোলে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. ক্লাউড বিল্ড, ক্লাউড ফাংশন, ক্লাউড লগিং, আর্টিফ্যাক্ট রেজিস্ট্রি এবং ক্লাউড রান এপিআই সক্ষম করুন।

  1. মেনু ☰ > APIs এবং পরিষেবাগুলি > সক্ষম APIs এবং পরিষেবাগুলিতে ক্লিক করুন এবং তারপর নিশ্চিত করুন যে API গুলি সক্ষম হয়েছে৷

Dialogflow CX ডেটা স্টোর এজেন্ট আপডেট করুন

আপনাকে একটি ক্লাউড ফাংশন স্থাপন করতে হবে এবং ডায়ালগফ্লো সিএক্স ওয়েবহুক আপডেট করতে হবে যাতে এটি সম্ভব হলে একাধিক উত্সের সাথে ট্রিগার করা যায়৷

একাধিক উৎস ফেরত দিন

ডিফল্টরূপে, একটি নতুন ডেটা স্টোর এজেন্ট সর্বোচ্চ একটি উৎস ফেরত দেয়, কিন্তু আপনি আরও কিছুর জন্য পরিবর্তন করতে পারেন।

Dialogflow CX কনসোলে , এই ধাপগুলি অনুসরণ করুন:

  1. আপনার Google ক্লাউড প্রকল্প নির্বাচন করুন.
  2. জ্ঞান এজেন্ট নির্বাচন করুন.
  3. শুরু পৃষ্ঠা নির্বাচন করুন.
  4. ডেটা স্টোর সম্পাদনা নির্বাচন করুন।
  5. এজেন্ট প্রতিক্রিয়া বিভাগের অধীনে, ডেটা স্টোর প্রতিক্রিয়া বিকল্পগুলি 5 এ সেট করুন।
  6. Save এ ক্লিক করুন।

f5932d03057df645.png

ক্লাউড ফাংশন শুরু করুন

Google ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনু ☰ > ক্লাউড ফাংশন ক্লিক করুন।

  1. Create function এ ক্লিক করুন।
  2. বেসিকের অধীনে, function-1 নাম সেট করুন।
  3. প্রমাণীকরণের অধীনে, অনুমোদনহীন আহ্বানের রেডিও বোতামটি নির্বাচন করুন।
  4. রানটাইম, বিল্ড, সংযোগ এবং নিরাপত্তা সেটিংসের অধীনে, দৃষ্টান্তের সর্বাধিক সংখ্যা 3 এ সেট করুন।
  5. পরবর্তী ক্লিক করুন.

bd3790a9285f9c07.png

  1. agent-response-adapter এন্ট্রি পয়েন্ট সেট করুন।
  2. প্যাকেজ.json এবং index.js ফাইলগুলির সাথে ডিফল্ট বিষয়বস্তু প্রতিস্থাপন করুন।
  3. ডিপ্লোয় ক্লিক করুন।

b379bb8ca0fc1079.png

  1. আপনি ফাংশন স্থাপনের জন্য কয়েক মিনিট অপেক্ষা করার সময় URLটি অনুলিপি করুন৷

eaae08cf048b9b1c.png

ওয়েবহুক শুরু করুন

আপনাকে একটি ওয়েবহুক ব্যবহার করতে ডায়ালগফ্লো CX এজেন্ট কনফিগার করতে হবে যা নতুন স্থাপন করা ফাংশনটিকে ট্রিগার করে।

Dialogflow CX কনসোলে , এই ধাপগুলি অনুসরণ করুন:

  1. আপনার Google ক্লাউড প্রকল্প নির্বাচন করুন.
  2. জ্ঞান এজেন্ট নির্বাচন করুন.
  3. পরিচালনা > ওয়েবহুক > তৈরি করুন নির্বাচন করুন।
  4. Google Chat Response Adapter প্রদর্শনের নাম সেট করুন।
  5. ওয়েবহুক ইউআরএল সেট করুন যা আপনি আগে কপি করেছেন।
  6. Save এ ক্লিক করুন।

5f3c6804d52b87c1.png

  1. বিল্ড এ ক্লিক করুন।
  2. শুরু পৃষ্ঠা নির্বাচন করুন.
  3. ডেটা স্টোর সম্পাদনা নির্বাচন করুন।
  4. ওয়েবহুক সেটিংসের অধীনে, ওয়েবহুক টগল সক্ষম করুন ক্লিক করুন।
  5. ওয়েবহুকের জন্য Google চ্যাট প্রতিক্রিয়া অ্যাডাপ্টার নির্বাচন করুন।
  6. ট্যাগকে arbitrary_tag এ সেট করুন।
  7. Save এ ক্লিক করুন।

442fcaaec9b8f2e3.png

পরীক্ষা অ্যাপ

  • গুগল চ্যাটে , পাঠান What is Google Chat? Google Chat অ্যাপে সরাসরি বার্তায়। এজেন্ট অর্থপূর্ণ কিছু এবং উত্স সহ একটি কার্ড দিয়ে প্রতিক্রিয়া জানায়, যদি থাকে।

9468866bfe848bb8.png

10. অ্যাপ 3: তৈরি করুন

ধারণাগুলি পর্যালোচনা করুন

কথোপকথন মিথস্ক্রিয়া

এগুলো হলো প্রাকৃতিক ভাষার মাধ্যমে দুই বা ততোধিক মানুষের মধ্যে তথ্য বা ধারণার আদান-প্রদান। এটি প্রযুক্তিগত ইন্টারফেসের সাথে বৈপরীত্য যা প্রায়শই রাষ্ট্রহীন, উচ্চ কাঠামোগত এবং অসহিষ্ণু বিনিময়ের উপর নির্ভর করে।

OpenAPI স্পেসিফিকেশন

এটি এপিআই লাইফসাইকেলের প্রতিটি পর্যায়ে তথ্য বহন করার একটি ধারাবাহিক উপায় সরবরাহ করে। এটি এইচটিটিপি এপিআই-এর জন্য একটি স্পেসিফিকেশন ল্যাঙ্গুয়েজ যা কাঠামো এবং সিনট্যাক্সকে এমনভাবে সংজ্ঞায়িত করে যা API তৈরি করা প্রোগ্রামিং ভাষার সাথে যুক্ত নয়। API স্পেসিফিকেশনগুলি সাধারণত YAML বা JSON-এ লেখা হয়, যা স্পেসিফিকেশন সহজে ভাগ করে নেওয়া এবং ব্যবহার করার অনুমতি দেয়।

ডায়ালগফ্লো সিএক্স এজেন্ট

এজেন্ট অ্যাপ্লিকেশনগুলির প্রাথমিক বিল্ডিং ব্লক। একটি এজেন্ট অ্যাপ্লিকেশন সাধারণত অনেক এজেন্ট থাকে, যেখানে প্রতিটি এজেন্ট নির্দিষ্ট কাজগুলি পরিচালনা করতে সংজ্ঞায়িত করা হয়। এজেন্টের ডেটা এলএলএমকে সরবরাহ করা হয়, সুতরাং এটিতে প্রশ্নের উত্তর এবং কার্য সম্পাদন করার জন্য প্রয়োজনীয় তথ্য রয়েছে। প্রতিটি এজেন্ট তথ্য সরবরাহ করতে পারে, বাহ্যিক পরিষেবাদিতে প্রশ্নগুলি প্রেরণ করতে পারে, বা সাব-টাস্কগুলি পরিচালনা করতে ডায়ালগফ্লো সিএক্স ফ্লো বা অন্য কোনও এজেন্টকে হ্যান্ডলিং মুলতুবি করতে পারে।

ডায়ালগফ্লো সিএক্স সরঞ্জাম

বাহ্যিক সিস্টেমে এজেন্ট অ্যাপ্লিকেশনগুলিকে সংযুক্ত করতে সরঞ্জামগুলি ব্যবহৃত হয়। এই সিস্টেমগুলি এজেন্ট অ্যাপ্লিকেশনগুলির জ্ঞানকে বাড়িয়ে তুলতে পারে এবং দক্ষতার সাথে জটিল কাজগুলি কার্যকর করতে তাদের ক্ষমতায়িত করতে পারে।

আর্কিটেকচার পর্যালোচনা

9D3342D12F3B4DDA.PNG

এই গুগল চ্যাট অ্যাপ্লিকেশনটি ডায়ালগফ্লো সিএক্স দিয়ে নির্মিত এবং নিম্নলিখিত হিসাবে কাজ করে:

  1. কোনও ব্যবহারকারী সরাসরি বার্তায় বা কোনও জায়গাতে অ্যাপটিতে একটি বার্তা প্রেরণ করে।
  2. অ্যাপটি, যা একটি ডায়ালগফ্লো সিএক্স এজেন্ট এবং এটি একটি গুগল ক্লাউড প্রকল্পের সাথে সম্পর্কিত, বার্তাটি প্রক্রিয়া করে।
  3. অ্যাপটি কোনও এজেন্টের সাথে সংহত করে।
  4. অ্যাপ্লিকেশনটি সরাসরি বার্তায় বা মূল স্থানে একটি সিঙ্ক্রোনাস প্রতিক্রিয়া প্রেরণ করে।

প্রবাহ পর্যালোচনা

পর্যালোচনা সংগ্রহ করুন

A67A5B8B513BFC2C.PNG

উত্স কোড পর্যালোচনা

এজেন্ট একটি সরঞ্জাম হিসাবে ব্যবহার করে এমন ব্যাকএন্ড পরিষেবাটিকে উপহাস করার জন্য আপনার কেবলমাত্র উত্স কোডটি হ'ল ফাংশন।

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');
});

পরিষেবা-ওপেনাপি.ইমল

// 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

ব্যাকএন্ড পরিষেবা মক শুরু করুন

ডায়ালগফ্লো সিএক্স এজেন্ট অ্যাপ্লিকেশনটিকে একটি সরঞ্জাম হিসাবে সংহত করতে এবং কল করতে হবে এমন একটি ব্যাকএন্ড পরিষেবাটি অনুকরণ করতে আপনি একটি ক্লাউড ফাংশন স্থাপন করেছেন।

গুগল ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনুতে ক্লিক করুন ☰> ক্লাউড ফাংশন

  1. ফাংশন তৈরি করুন ক্লিক করুন।
  2. বেসিকগুলির অধীনে, function-2নাম সেট করুন।
  3. প্রমাণীকরণের অধীনে, অনির্বাচিত আমন্ত্রণ রেডিও বোতামটি মঞ্জুর করুন নির্বাচন করুন।
  4. রানটাইম, বিল্ড, সংযোগ এবং সুরক্ষা সেটিংসের অধীনে, সর্বাধিক সংখ্যক উদাহরণ 3 এ সেট করুন।
  5. পরবর্তী ক্লিক করুন.

E8CF0EE7441BF634.PNG

  1. feedback-app-backend এন্ট্রি পয়েন্ট সেট করুন।
  2. ফাইলগুলি প্যাকেজ.জসন এবং ইনডেক্স.জেএসের সাথে ডিফল্ট সামগ্রীটি প্রতিস্থাপন করুন।
  3. ডিপ্লোয় ক্লিক করুন।

bdb5cf9f503aa7f6.png

  1. ফাংশনটি মোতায়েন করার জন্য কয়েক মিনিট অপেক্ষা করার সময় ইউআরএলটি অনুলিপি করুন।

ডায়ালগফ্লো সিএক্স এজেন্ট অ্যাপ্লিকেশন তৈরি করুন

অ্যাপ তৈরি করুন

গুগল ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনুতে ক্লিক করুন ☰> এজেন্ট নির্মাতা> অ্যাপ্লিকেশনগুলি

  1. নতুন অ্যাপ্লিকেশন ক্লিক করুন।
  2. এজেন্ট নির্বাচন করুন।
  3. Feedback App প্রদর্শনের নাম সেট করুন।
  4. তৈরি করুন ক্লিক করুন।

7EF3DBACEE96C5AA.PNG

সরঞ্জাম শুরু করুন

গুগল ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনুতে ক্লিক করুন ☰> এজেন্ট নির্মাতা> অ্যাপ্লিকেশনগুলি

  1. প্রতিক্রিয়া অ্যাপ্লিকেশন এজেন্ট নির্বাচন করুন।
  2. সরঞ্জাম> + তৈরি ক্লিক করুন।
  3. review নাম সেট করুন।
  4. ওপেনাপি নির্বাচন করুন।
  5. নিম্নলিখিত মানটিতে বর্ণনা সেট করুন:
The tool takes the number of stars as a parameter of the store review method and saves it in a database for later use.
  1. আপনি পূর্বে অনুলিপি করেছেন এমন ইউআরএল দিয়ে পরিষেবা-ওপেনাপি.ইমলে ফাইলটিতে $URL ডাউনলোড করুন এবং প্রতিস্থাপন করুন।
  2. service-openapi.yaml ফাইলের সম্পাদিত সামগ্রীতে YAML Schema সেট করুন।
  3. Save এ ক্লিক করুন।

58085d6d56b603f7.png

এজেন্ট দীক্ষা

গুগল ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনুতে ক্লিক করুন ☰> এজেন্ট নির্মাতা> অ্যাপ্লিকেশনগুলি

  1. প্রতিক্রিয়া অ্যাপ্লিকেশন এজেন্ট নির্বাচন করুন।
  2. এজেন্টগুলি নির্বাচন করুন> ডিফল্ট জেনারেটরি এজেন্ট
  3. Feedback collector কাছে এজেন্টের নাম সেট করুন।
  4. নিম্নলিখিত মানটিতে 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.
  1. নিম্নলিখিত মানের নির্দেশাবলী সেট করুন:
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.
  1. Save এ ক্লিক করুন।

EBE7FDFA826B487.png

পরীক্ষার অ্যাপ

গুগল ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনুতে ক্লিক করুন ☰> এজেন্ট নির্মাতা> অ্যাপ্লিকেশনগুলি

  1. প্রতিক্রিয়া অ্যাপ্লিকেশন এজেন্ট নির্বাচন করুন।
  2. পূর্বরূপ এজেন্টে যান।
  3. এজেন্টের অধীনে, প্রতিক্রিয়া সংগ্রাহক নির্বাচন করুন।
  4. জেনারেটর মডেল নির্বাচন করুন , জেমিনি-প্রো নির্বাচন করুন।
  5. Hello! শুরু করতে

90CA8CB7B2C1CB4B.PNG

গুগল ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনুতে ক্লিক করুন ☰> ক্লাউড ফাংশন

  1. ফাংশন -2> লগগুলি নির্বাচন করুন। কিছু লগ কলার হিসাবে গুগল-ডায়ালগফ্লো দেখায়।

48BFDF1788004D18.png

গুগল চ্যাট অ্যাপকে সংহত করুন

ডায়ালগফ্লো সিএক্স কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার গুগল ক্লাউড প্রকল্প নির্বাচন করুন।
  2. Feedback App এজেন্টের অ্যাকশন মেনুতে ক্লিক করুন।
  3. অনুলিপি নাম ক্লিক করুন।

গুগল ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. গুগল চ্যাট এপিআই কনফিগারেশনে যান।

  1. এজেন্ট বা পরিবেশের সংস্থান নাম সেট করুন এজেন্টের নাম যা আপনি আগে অনুলিপি করেছেন।

df16619a1cb85cf8.png

  • গুগল চ্যাটে , Hello! শুরু করার জন্য গুগল চ্যাট অ্যাপ্লিকেশনটিতে সরাসরি বার্তায়। এজেন্ট ডায়ালগফ্লো সিএক্স কনসোল থেকে আপনার পরীক্ষার অনুরূপ প্রতিক্রিয়া জানায়।

99A7A0295F122F31.png

11. পরিষ্কার করুন

গুগল ক্লাউড প্রকল্প মুছুন

এই কোডল্যাবটিতে ব্যবহৃত সংস্থানগুলির জন্য আপনার গুগল ক্লাউড অ্যাকাউন্টে ব্যয় করা চার্জ এড়াতে, আমরা আপনাকে গুগল ক্লাউড প্রকল্পটি মুছতে সুপারিশ করি।

গুগল ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনুতে ক্লিক করুন ☰> আইএএম এবং অ্যাডমিন> সেটিংস

  1. শাট ডাউন ক্লিক করুন।
  2. প্রকল্প আইডি লিখুন।
  3. যাইহোক শাট ডাউন ক্লিক করুন।

407699a4e03afea6.png

অ্যাপস স্ক্রিপ্ট প্রকল্প মুছুন

আমরা আপনাকে আপনার অ্যাপ্লিকেশন স্ক্রিপ্ট প্রকল্পটিও মুছতে সুপারিশ করি।

অ্যাপস স্ক্রিপ্ট কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার প্রকল্প নির্বাচন করুন.
  2. অ্যাকশন মেনুতে ক্লিক করুন।
  3. সরান ক্লিক করুন.

FA3A42D7D2201EB9.png

12. অভিনন্দন

অভিনন্দন! আপনি মিথুনের সাথে গুগল চ্যাট অ্যাপস তৈরি করেছেন!

এরপর কি?

আমরা কেবল এই কোডল্যাবগুলিতে সহজ ব্যবহারের কেসগুলি প্রদর্শন করেছি, তবে প্রচুর পরিমাণে সম্প্রসারণ অঞ্চল রয়েছে যা আপনি আপনার গুগল চ্যাট অ্যাপ্লিকেশনগুলিতে বিবেচনা করতে চাইতে পারেন, যেমন নিম্নলিখিতগুলি:

  • শুল্ক সহ অন্যান্য জেনারেটর এআই মডেলের সাথে সংহত করুন।
  • অন্যান্য ধরণের মিডিয়া যেমন অডিও, চিত্র এবং ভিডিও সমর্থন করুন।
  • মাল্টিমোডালিটি ব্যবহার করুন।
  • দীর্ঘ প্রসঙ্গে উইন্ডোজ এবং প্রতিক্রিয়া লুপগুলিতে নির্ভর করুন।
  • বাজারে উত্পাদন প্রস্তুত গুগল চ্যাট অ্যাপ্লিকেশন প্রকাশ করুন। ইউটিউব ভিডিও, ডকুমেন্টেশন ওয়েবসাইট, কোড নমুনা এবং টিউটোরিয়ালগুলির মতো বিকাশকারীদের জন্য প্রচুর সংস্থান উপলব্ধ।
  • আপনার সংস্থার জন্য গুগল চ্যাট সক্ষম করুন। আমদানি মোড বৈশিষ্ট্যটি শুরু করা সহজ করে তোলে।

আরও জানুন

,

1. আপনি শুরু করার আগে

মিথুনের সাথে গুগল চ্যাট অ্যাপ্লিকেশনগুলি কী?

মিথুনের সাথে গুগল চ্যাট অ্যাপ্লিকেশনগুলি নিম্নলিখিতগুলি করে:

  • আপনার পরিষেবাগুলি এবং সংস্থানগুলি গুগল চ্যাটে আনুন, যা ব্যবহারকারীদের কথোপকথনটি ছাড়াই তথ্য পেতে এবং পদক্ষেপ নিতে দেয়।
  • জেনারেটর এআই মডেল মিথুনির সাথে সংহত করুন, যাতে তারা আপনার কর্মপ্রবাহকে প্রবাহিত করতে নির্দিষ্ট সময়ে পাঠ্য বা চিত্রগুলির মতো ডেটা তৈরি বা অনুসন্ধান করতে পারে।

মিথুনের সাথে গুগল চ্যাট অ্যাপ্লিকেশনগুলিকে কেন একীভূত করবেন?

জেমিনির মতো জেনারেটর এআই মডেলের সাধারণ ব্যবহারের ক্ষেত্রে নিম্নলিখিত বিভাগগুলিতে পড়ে:

  • সামগ্রী তৈরি এবং বর্ধন । বিপণনের অনুলিপি তৈরি করুন, সোশ্যাল মিডিয়া পোস্টগুলি তৈরি করুন, বাস্তবসম্মত চিত্র তৈরি করুন, সংগীত রচনা করুন বা ভিডিও সামগ্রী তৈরিতে সহায়তা করুন।
  • ডেটা অনুসন্ধান । একটি কাঠামোগত জ্ঞান বেস থেকে কী অন্তর্দৃষ্টিগুলি বের করুন, দীর্ঘ পাঠ্যগুলির সংক্ষিপ্তসার করুন, সামগ্রীগুলিকে শ্রেণিবদ্ধ করুন বা ভাষাগুলি বর্ধিত নির্ভুলতা এবং গতির সাথে অনুবাদ করুন।
  • কথোপকথন । প্রাকৃতিক, তথ্যমূলক এবং সৃজনশীল কথোপকথনে জড়িত।

গুগল চ্যাটের পরিচিত ইন্টারফেসের মধ্যে সরাসরি এই ক্ষমতাগুলি সংহত করার ক্ষমতা যে কেউ তাদের ব্যবহারকারীর অভিজ্ঞতা এবং উত্পাদনশীলতা উন্নত করতে চায় তাদের পক্ষে একটি বিশাল সুযোগ।

পূর্বশর্ত

আপনি কি নির্মাণ

এই কোডল্যাব -এ, আপনি পূর্ববর্তী বিভাগে প্রবর্তিত তিনটি ব্যবহারের কেসটি কভার করতে জেমিনির সাথে তিনটি গুগল চ্যাট অ্যাপ্লিকেশন তৈরি করেছেন।

ইস্যু ম্যানেজমেন্ট অ্যাপ্লিকেশন (সামগ্রী তৈরি এবং বর্ধন)

এই অ্যাপ্লিকেশনটি নিম্নলিখিতগুলি করে:

  • বেসিক ইন্টারঅ্যাকশন, অ্যাপ হোম এবং অ্যাপ্লিকেশন প্রমাণীকরণের সাথে বন্ধ হয়ে যাওয়ার জন্য সৃষ্টি থেকে সমস্যাগুলি পরিচালনা করে।
  • বার্তাগুলি পর্যবেক্ষণ করে এবং ইভেন্ট এবং আনুষাঙ্গিক উইজেটগুলির সাথে অন্তর্ভুক্তি সহায়তা সরবরাহ করে।

আপনি নিম্নলিখিতগুলি করতে মিথুন ব্যবহার করেন:

  • বার্তার ইতিহাসের ভিত্তিতে ইস্যু প্রতিবেদনগুলি তৈরি করুন এবং ইস্যু সম্পর্কিত বিশদ।
  • গেটেড প্রম্পটগুলির সাথে বার্তাগুলিতে অ-অন্তর্ভুক্ত শব্দগুলিকে শ্রেণিবদ্ধ করুন।

ব্যবহৃত প্রধান প্রযুক্তিগুলি হ'ল ভার্টেক্স এআই, জেমিনি, অ্যাপস স্ক্রিপ্ট এবং গুগল ওয়ার্কস্পেস এপিআই (অ্যাডমিন, চ্যাট, ডক্স, ইভেন্ট)।

22EFDECFF4601417.png

2D127C63518673B2.png

9AEA694937F2F3ED.PNG

এই অ্যাপ্লিকেশনটি প্রাকৃতিক ভাষায় প্রশ্নগুলি বুঝতে এবং উত্তর দেওয়ার জন্য এবং কাঠামোগত ডেটা থেকে উত্সের রেফারেন্সগুলি ফিরিয়ে আনতে মিথুনের উপর নির্ভর করে।

ব্যবহৃত প্রধান প্রযুক্তিগুলি হ'ল ডায়ালগফ্লো সিএক্স ডেটা স্টোর এজেন্ট, ডায়ালগফ্লো সিএক্স ওয়েবহুক, গুগল ক্লাউড ফাংশন এবং জেমিনি।

94688666bfe848bb8.png

প্রতিক্রিয়া অ্যাপ্লিকেশন (কথোপকথন)

এই অ্যাপ্লিকেশনটি প্রাকৃতিক ভাষায় কথোপকথনের সাথে পর্যালোচনাগুলি সংগ্রহ এবং সঞ্চয় করতে মিথুনের উপর নির্ভর করে।

ব্যবহৃত প্রধান প্রযুক্তিগুলি হ'ল ডায়ালগফ্লো সিএক্স এজেন্ট, ডায়ালগফ্লো সিএক্স সরঞ্জাম, ওপেনাপি, গুগল ক্লাউড ফাংশন এবং জেমিনি।

99A7A0295F122F31.png

আপনি কি শিখুন

  • কীভাবে ভার্টেক্স এআই এর মাধ্যমে জেমিনির সাথে গুগল চ্যাট অ্যাপ্লিকেশনগুলিকে সংহত করবেন।
  • ডায়ালগফ্লো সিএক্স এজেন্টদের সাথে কীভাবে গুগল চ্যাট অ্যাপ্লিকেশনগুলিকে সংহত করবেন।
  • গুগল চ্যাটের সর্বশেষ বৈশিষ্ট্যগুলি কীভাবে ব্যবহার করবেন: অ্যাপ হোম, গুগল চ্যাট ইভেন্টগুলি এবং আনুষাঙ্গিক উইজেটগুলি।

আপনার যা প্রয়োজন

2. সেট আপ করুন

সংস্থান শুরু করুন

এই বিভাগে, আপনি আপনার পছন্দসই ওয়েব ব্রাউজার থেকে নিম্নলিখিত সংস্থানগুলি অ্যাক্সেস এবং কনফিগার করেন।

অ্যাপ্লিকেশন স্ক্রিপ্ট প্রকল্প

অ্যাপস স্ক্রিপ্ট কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. সেটিংস ক্লিক করুন এবং তারপরে গুগল অ্যাপস স্ক্রিপ্ট এপিআই সক্ষম করুন।

EA06C593B347B9D1.png

  1. আপনার প্রকল্প নির্বাচন করুন.
  2. প্রকল্প সেটিংস ক্লিক করুন।
  3. সম্পাদক চেকবক্সে " appsscript.json " ম্যানিফেস্ট ফাইলটি নির্বাচন করুন।
  4. Chat Apps Gemini করতে প্রকল্পটির নামকরণ করুন।

12C1485BD248B766.png

গুগল ক্লাউড প্রকল্প

গুগল ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার প্রকল্প নির্বাচন করুন.
  2. মেনুতে ক্লিক করুন ☰> এপিআইএস এবং পরিষেবাদি> ওআউথ সম্মতি স্ক্রিন> সম্পাদনা অ্যাপ্লিকেশন এবং তারপরে Chat Apps Gemini অ্যাপের নাম সেট করুন।

  1. গুগল চ্যাট এপিআই কনফিগারেশনে নেভিগেট করুন এবং তারপরে Chat Apps Gemini অ্যাপের নাম এবং বিবরণ সেট করুন।

A71F040755DA3B8B.PNG

গুগল চ্যাট

গুগল চ্যাটে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. যদি প্রয়োজন হয় তবে আপনার গুগল চ্যাট অ্যাপ্লিকেশনটির সাথে চ্যাট শুরু করুন।
  2. এটি কার্যকর হয় তা নিশ্চিত করার জন্য Hello হিসাবে একটি বার্তা প্রেরণ করুন।

9625418251528ae9.png

স্থানীয়ভাবে উত্স কোড এবং সংস্থানগুলি ডাউনলোড করুন

  1. এই গিটহাব সংগ্রহস্থলটি ডাউনলোড করুন।

  1. আপনার পছন্দসই বিকাশের পরিবেশে, apps-script ডিরেক্টরিটি খুলুন এবং তারপরে আপনার টার্মিনালে একই ডিরেক্টরিতে নেভিগেট করুন।

DA9478DF97C99194.png

clasp ইনস্টল করুন এবং কনফিগার করুন

আমরা স্থানীয় পরিবেশ থেকে অ্যাপস স্ক্রিপ্ট প্রকল্পে উত্স কোডের সংস্করণগুলি সহজেই সম্পাদনা এবং ধাক্কা দিতে clasp ব্যবহার করি।

  1. আপনার স্থানীয় পরিবেশে, node , npm এবং clasp সর্বশেষ সংস্করণগুলি ইনস্টল করুন
npm install -g @google/clasp
  1. আপনার অ্যাকাউন্টের সাথে লগ ইন করুন :
clasp login

8bc2434e6dc6f22a.png

যদি সফল হয় তবে আপনি আপনার ওয়েব ব্রাউজারে একটি প্রাথমিক নিশ্চিতকরণ স্ক্রিন এবং আপনার ক্লায়েন্টের শংসাপত্রগুলির সাথে .clasprc.json ফাইলটি আপডেট করা হয়েছে। এটি আপনার টার্মিনালে কোথায় অবস্থিত তা আপনি খুঁজে পেতে পারেন।

E1D833EB4D5B3A8F.PNG

3. অ্যাপ্লিকেশন 1: বিল্ড

ধারণাগুলি পর্যালোচনা

ভার্টেক্স এআই

ভার্টেক্স এআই এআই সলিউশনস, এজেন্ট নির্মাতা, ১৩০ টিরও বেশি ফাউন্ডেশন মডেল এবং একটি ইউনিফাইড এআই প্ল্যাটফর্ম সহ জেনারেটর এআই তৈরি এবং ব্যবহার করার জন্য আপনার প্রয়োজনীয় সমস্ত কিছু সরবরাহ করে।

C9E9C7A1945B22AC.PNG

মিথুন

জেমিনি হ'ল ভার্টেক্স এআই এর মাধ্যমে অ্যাক্সেসযোগ্য গুগল থেকে একটি মাল্টিমোডাল এলএলএম। এটি লোকেদের তাদের মানবিক সম্ভাবনাকে আনলক করতে সহায়তা করে যাতে তারা তাদের কল্পনা বৃদ্ধি করতে পারে, তাদের কৌতূহল প্রসারিত করতে পারে এবং তাদের উত্পাদনশীলতা বাড়িয়ে তুলতে পারে।

উন্নত চ্যাট পরিষেবা

উন্নত চ্যাট পরিষেবা আপনাকে অ্যাপ্লিকেশন স্ক্রিপ্টে গুগল চ্যাট এপিআই ব্যবহার করতে দেয়। এটি স্ক্রিপ্টগুলিকে চ্যাট স্পেসগুলি সন্ধান, তৈরি এবং সংশোধন করতে, স্পেসগুলিতে সদস্যদের যুক্ত বা অপসারণ করতে এবং পাঠ্য, কার্ড, সংযুক্তি এবং প্রতিক্রিয়া সহ বার্তাগুলি পড়তে বা পোস্ট করতে দেয়।

আর্কিটেকচার পর্যালোচনা

8c9c7b7328a69ea6.png

এই গুগল চ্যাট অ্যাপ্লিকেশন অ্যাপস স্ক্রিপ্ট দিয়ে নির্মিত। এটি নিম্নরূপ কাজ করে:

  1. কোনও ব্যবহারকারী সরাসরি বার্তায় বা কোনও জায়গাতে অ্যাপটিতে একটি বার্তা প্রেরণ করে।
  2. অ্যাপস, যা একটি অ্যাপ্লিকেশন স্ক্রিপ্ট প্রকল্পে প্রয়োগ করা হয়েছে এবং একটি গুগল ক্লাউড প্রকল্পের সাথে সম্পর্কিত, বার্তাটি প্রক্রিয়া করে।
  3. অ্যাপটি গুগল ডক্স এবং গুগল চ্যাট এপিআইয়ের সাথে সংহত করে।
  4. অ্যাপ্লিকেশন স্ক্রিপ্ট বৈশিষ্ট্যগুলিতে ডেটা বজায় রাখতে বৈশিষ্ট্য পরিষেবা ব্যবহার করে।
  5. অ্যাপ্লিকেশনটি সরাসরি বার্তায় বা মূল স্থানে একটি সিঙ্ক্রোনাস প্রতিক্রিয়া প্রেরণ করে।

প্রবাহ পর্যালোচনা

সমস্যা তৈরি করুন

7CA0E8BA3C8255BB.PNG

উত্সর্গীকৃত স্থান থেকে সমস্যা সমাধান

51B47714C378A24B.PNG

উত্সর্গীকৃত স্থান থেকে সমস্যা বন্ধ করুন

89E50228Deeab0f9.png

উত্স কোড পর্যালোচনা

অ্যাপ্লিকেশন স্ক্রিপ্ট প্রকল্পে নিম্নলিখিত স্ক্রিপ্টগুলি রয়েছে:

  • Configuration : পরিবেশের ভিত্তিতে সম্পাদনা করার জন্য ধ্রুবক।
  • ChatApp : বার্তা, কার্ড ক্লিক, স্ল্যাশ কমান্ড এবং ডায়ালগ সহ গুগল চ্যাট ইন্টারঅ্যাকশন ইভেন্টগুলি পরিচালনা করে।
  • Storage : ইউটিলিটি ফাংশন যা বৈশিষ্ট্য পরিষেবার উপর নির্ভর করে।
  • ChatAppAuth : গুগল চ্যাট অ্যাপ্লিকেশন প্রমাণীকরণের উপর নির্ভর করে এমন ইউটিলিটি ফাংশন।
  • Docs : ইউটিলিটি ফাংশন যা গুগল ডক্সের উপর নির্ভর করে।
  • VertexAi : ইউটিলিটি ফাংশনগুলি যা ভার্টেক্স এআইয়ের উপর নির্ভর করে।

এবং জেমিনি এবং চ্যাট স্পেস ইতিহাসের সাথে রিপোর্ট নথি তৈরি করার সময় সক্রিয়ভাবে ব্যবহৃত অংশগুলি এখানে রয়েছে:

অ্যাপসস্ক্রিপ্ট.জসন

// 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",
  ...
]

কনফিগারেশন.জেএস

// 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;
}

ভার্টেক্সাই.জেএস

/**
 * 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;
}

ডকস.জেএস

// 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);
  ...
}

গুগল ক্লাউড প্রকল্প আপডেট করুন

এপিআই সক্ষম করুন

  1. গুগল ক্লাউড কনসোলে , গুগল ডক্স , গুগল অ্যাডমিন এসডিকে এবং ভার্টেক্স এআই এপিআইএস সক্ষম করুন:

  1. মেনুতে ক্লিক করুন ☰> এপিআই এবং পরিষেবাদি > সক্ষম এপিআই এবং পরিষেবাগুলি এবং তারপরে এপিআইগুলি সক্ষম হয়েছে তা নিশ্চিত করুন।

পরিষেবা অ্যাকাউন্ট শুরু করুন

গুগল ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনুতে ক্লিক করুন ☰> আইএম এবং অ্যাডমিন> পরিষেবা অ্যাকাউন্ট> + পরিষেবা অ্যাকাউন্ট তৈরি করুন

74CF57426419F39.png

  1. chat-app পরিষেবা অ্যাকাউন্টের নাম সেট করুন।
  2. Chat app auth পরিষেবা অ্যাকাউন্টের বিবরণ সেট করুন।
  3. তৈরি করুন এবং চালিয়ে যান ক্লিক করুন।
  4. সম্পন্ন ক্লিক করুন. আপনাকে পরিষেবা অ্যাকাউন্ট পৃষ্ঠায় পুনঃনির্দেশিত করা হয়েছে এবং আপনি যে পরিষেবা অ্যাকাউন্টটি তৈরি করেছেন তা দেখতে পারেন।

CA0468F1F93990F9.png

  1. সদ্য নির্মিত পরিষেবা অ্যাকাউন্ট নির্বাচন করুন।
  2. কী ট্যাবটি নির্বাচন করুন।
  3. কী যুক্ত করুন ক্লিক করুন।
  4. নতুন কী তৈরি করুন ক্লিক করুন।
  5. JSON নির্বাচন করুন।
  6. তৈরি করুন ক্লিক করুন।

9F7E6EA020978ab0.png

ডায়ালগটি বন্ধ হয়ে যায় এবং আপনার সদ্য নির্মিত পাবলিক/প্রাইভেট কী জুড়িটি জেএসএন ফাইল হিসাবে আপনার স্থানীয় পরিবেশে স্বয়ংক্রিয়ভাবে ডাউনলোড হয়ে যায়। আপনি যখন আপনার অ্যাপ্লিকেশন স্ক্রিপ্ট প্রকল্পের উত্স কোডটি সম্পাদনা করেন তখন আপনি এর সামগ্রীটি পরে ব্যবহার করেন।

গুগল চ্যাট এপিআই কনফিগারেশন আপডেট করুন

গুগল ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. একটি স্ল্যাশ কমান্ড যুক্ত করুন।
  2. নাম /create
  3. কমান্ড আইডি 1 এ সেট করুন।
  4. Create a new issue করতে বিবরণ সেট করুন।
  5. একটি ডায়ালগ চেকবক্স খুলুন নির্বাচন করুন।
  6. অন্য স্ল্যাশ কমান্ড যুক্ত করুন।
  7. নাম /close করুন সেট করুন।
  8. কমান্ড আইডি 2 এ সেট করুন।
  9. Close an issue করতে বিবরণ সেট করুন।
  10. Save এ ক্লিক করুন।

Bee2e7b63659ab33.png

অ্যাপ্লিকেশন স্ক্রিপ্ট প্রকল্প আপডেট করুন

  • আপনার স্থানীয় টার্মিনালের বর্তমান ডিরেক্টরিটি issue-management/1-baseline পরিবর্তন করুন। এটিতে উত্স কোড রয়েছে। আপনার অ্যাপ্লিকেশন স্ক্রিপ্ট প্রকল্পে উত্স কোডটি চাপ দেওয়ার আগে আপনাকে কয়েকটি জিনিস কনফিগার করতে হবে।

উত্স কোড কনফিগার করুন

  1. আপনি পূর্বে ডাউনলোড করা ব্যক্তিগত কী ফাইল সামগ্রীতে Configuration.js ফাইলটিতে JSON ধ্রুবক নামকরণ CHAT_CREDENTIALS সেট করুন।

d721f6bff73c5304.png

  1. গুগল ক্লাউড কনসোলে , মেনুতে ক্লিক করুন ☰> আইএএম এবং অ্যাডমিন> সেটিংস

  1. প্রকল্প আইডি অনুলিপি করুন।

82592FA0BD113469.png

  1. প্রজেক্ট আইডিতে Configuration.js ফাইলটিতে স্ট্রিং ধ্রুবক নামকরণ করুন PROJECT_ID সেট করুন।

383cee561130ceba.png

clasp সেটিংস কনফিগার করুন

সোর্স কোডটিকে ডান অ্যাপ্লিকেশন স্ক্রিপ্ট প্রকল্পে ঠেলে দেওয়ার জন্য clasp সেটিংস শুরু করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. অ্যাপস স্ক্রিপ্ট কনসোলে , আপনার প্রকল্পটি নির্বাচন করুন।
  2. প্রকল্প সেটিংস নির্বাচন করুন।
  3. আইডিএসের অধীনে, অনুলিপি ক্লিক করুন।

20ea033b6de882c6.png

  1. বর্তমান ডিরেক্টরিতে, একটি .clasp.json ফাইল তৈরি করুন।
  2. অনুলিপি আইডি সহ <your-script-id> প্রতিস্থাপন করুন।
  3. .clasp.json ফাইলে ফলাফলটি অনুলিপি করুন।
  4. .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.

চেষ্টা করে দেখুন

  1. গুগল চ্যাটে , Hello! অ্যাপ্লিকেশনটিতে সরাসরি বার্তায়। অ্যাপ্লিকেশনটি উত্তর দেয় না, তবে একটি বার্তা উপস্থিত হয় যা কনফিগারেশনকে অনুরোধ করে।

4C1FC68121DCFFED.PNG

  1. কনফিগার ক্লিক করুন।
  2. আপনার Google অ্যাকাউন্ট নির্বাচন করুন.
  3. প্রমাণীকরণ।
  4. পর্যালোচনা এবং অ্যাপ্লিকেশন অ্যাক্সেসের অনুমতি দিন।

4A2FD7AC5918BF1A.PNG

যদি সফল হয় তবে আপনি ওয়েব পৃষ্ঠায় একটি প্রাথমিক নিশ্চিতকরণ স্ক্রিন এবং অ্যাপ্লিকেশন থেকে আপনার মূল বার্তায় একটি প্রকৃত প্রতিক্রিয়া দেখতে পাবেন।

ACB9065568FE47D2.PNG

2d6ef9c62f47e082.png

  1. অ্যাপটিতে অন্য একটি সরাসরি বার্তা প্রেরণ করুন, তবে স্ল্যাশ কমান্ড /create

be3f3c6eb0f929c1.png

  1. সংলাপে, Issue Title 1 শিরোনাম সেট করুন।
  2. বিবরণ ইস্যু করতে বিবরণ সেট করুন Description 1
  3. তৈরি করুন ক্লিক করুন।

22EFDECFF4601417.png

অ্যাপটি নিম্নলিখিতগুলি করে:

  1. সংলাপ বন্ধ করে।
  2. একই শিরোনাম সহ সদ্য নির্মিত ইস্যুতে উত্সর্গীকৃত একটি স্থান তৈরি করে।
  3. সদ্য নির্মিত স্থানে যোগ দেয়।
  4. সদ্য নির্মিত স্পেসে ইস্যুটির বিবরণ সম্বলিত একটি বার্তা প্রেরণ করে।
  5. সদ্য নির্মিত স্থানের লিঙ্ক সহ আপনাকে সরাসরি বার্তা প্রেরণ করে।

3253cec2392e281f.png

  1. সদ্য নির্মিত স্পেসে, স্ল্যাশ কমান্ড /close এবং রেজোলিউশন যেমন Not reproducible সহ একটি বার্তা প্রেরণ করুন।

132cc4acfc10b98c.png

অ্যাপটি নিম্নলিখিতগুলি করে:

  1. গুগল ডক্সে একটি প্রতিবেদন নথি তৈরি করে।
  2. সদ্য নির্মিত প্রতিবেদন নথির লিঙ্ক সহ ইস্যুতে উত্সর্গীকৃত স্থানটিতে একটি বার্তা প্রেরণ করে।

2D127C63518673B2.png

  1. প্রতিবেদন নথি খুলুন। এটিতে প্রাথমিক তথ্য, ইতিহাস এবং একটি সংক্ষিপ্তসার রয়েছে।

9AEA694937F2F3ED.PNG

4. al চ্ছিক: অ্যাপ্লিকেশন 1: অ্যাপ হোম যুক্ত করুন

ধারণাগুলি পর্যালোচনা

অ্যাপ হোম একটি কাস্টমাইজযোগ্য কার্ড বার্তা যা একটি চ্যাট অ্যাপ কোনও ব্যবহারকারীকে প্রেরণ করে যখন ব্যবহারকারী চ্যাট অ্যাপের সাথে সরাসরি বার্তা থেকে হোম ট্যাবটি অ্যাক্সেস করে। এটি সাধারণত অ্যাপ ডকুমেন্টেশন বা একটি ওভারভিউ প্রদর্শন করতে ব্যবহৃত হয়। প্রযুক্তিগতভাবে, পরিচালনা করার জন্য একটি উত্সর্গীকৃত ইভেন্ট রয়েছে এবং এটি কার্ড বার্তাগুলির মতো একই মূল নীতিগুলির উপর ভিত্তি করে।

65F56F70F67A32E4.PNG

প্রবাহ পর্যালোচনা

সমস্যাগুলি পরিচালনা করুন

10663F5FC107FB3F.PNG

উত্স কোড পর্যালোচনা

অ্যাপ্লিকেশন স্ক্রিপ্ট প্রকল্পটি সম্পাদনা করা দরকার।

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
  }}]}};
}

গুগল ক্লাউড প্রকল্প আপডেট করুন

গুগল ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. ইন্টারেক্টিভ বৈশিষ্ট্য বিভাগের অধীনে, সমর্থন অ্যাপ হোম চেকবক্সটি নির্বাচন করুন।

97159c1c69ca8303.png

আপনার স্থানীয় পরিবেশে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার টার্মিনালের বর্তমান ডিরেক্টরিটি issue-management/2-app-home পরিবর্তন করুন। এটিতে উত্স কোড রয়েছে যা আপনাকে ব্যবহার করতে হবে।
  2. আপনার বর্তমান ডিরেক্টরিতে issue-management/1-baseline/.clasp.json ফাইলটি অনুলিপি করুন।
  3. আপনার বর্তমান ডিরেক্টরিতে issue-management/1-baseline/Configuration.js ফাইলটি অনুলিপি করুন যাতে এটি বিদ্যমানটি প্রতিস্থাপন করে।
  4. নিম্নলিখিত কমান্ড চালান:
clasp push

চেষ্টা করে দেখুন

গুগল চ্যাটে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. স্ল্যাশ কমান্ড /create অ্যাপ্লিকেশনটিতে সরাসরি বার্তা প্রেরণ করুন। অ্যাপটি একটি ডায়ালগ খোলে।
  2. Issue Title 2 শিরোনাম সেট করুন।
  3. Description 2 ইস্যু করতে বিবরণ সেট করুন।
  4. তৈরি করুন ক্লিক করুন।

3B2A8690E758F965.png

  1. গুগল চ্যাট অ্যাপ্লিকেশন সহ আপনার স্থান থেকে হোম ট্যাবটি নির্বাচন করুন। আপনি যে সমস্যাগুলি তৈরি করেছেন তার বিশদটি আপনি দেখতে পারেন।

ED8E32DA0E6F2AC6.PNG

5. al চ্ছিক: অ্যাপ্লিকেশন 1: স্থান পর্যবেক্ষণ যুক্ত করুন

ধারণাগুলি পর্যালোচনা

পাব/সাব

পাব/সাব হ'ল একটি অ্যাসিঙ্ক্রোনাস এবং স্কেলযোগ্য মেসেজিং পরিষেবা যা সেই বার্তাগুলি প্রক্রিয়াজাতকরণ পরিষেবাগুলি থেকে বার্তা উত্পাদনকারী পরিষেবাগুলি ডুবল করে। পাব/সাব আপনাকে ইভেন্ট প্রযোজক এবং ভোক্তাদের সিস্টেম তৈরি করতে দেয়, যাকে বলা হয় প্রকাশক এবং গ্রাহকরা । প্রকাশকরা সিঙ্ক্রোনাস রিমোট পদ্ধতি কল (আরপিসিএস) এর পরিবর্তে সম্প্রচারিত ইভেন্টগুলি সম্প্রচারের মাধ্যমে গ্রাহকদের সাথে যোগাযোগ করে।

প্রকাশকরা এই ইভেন্টগুলি কীভাবে বা কখন প্রক্রিয়া করা হবে তা বিবেচনা না করেই পাব/সাব পরিষেবাতে ইভেন্টগুলি প্রেরণ করে। পাব/সাব তারপরে তাদের প্রতিক্রিয়া দেখায় এমন সমস্ত পরিষেবাগুলিতে ইভেন্টগুলি সরবরাহ করে। আরপিসিগুলির মাধ্যমে যোগাযোগ করা সিস্টেমগুলিতে, প্রকাশকদের অবশ্যই গ্রাহকদের ডেটা পাওয়ার জন্য অপেক্ষা করতে হবে। যাইহোক, পাব/সাব এ অ্যাসিঙ্ক্রোনাস ইন্টিগ্রেশন সামগ্রিক সিস্টেমের নমনীয়তা এবং দৃ ust ়তা বৃদ্ধি করে।

বিষয় : একটি নামযুক্ত সংস্থান যা বার্তাগুলির একটি ফিড উপস্থাপন করে। আপনি এটি প্রকাশ বা সাবস্ক্রাইব করার আগে আপনাকে অবশ্যই একটি বিষয় তৈরি করতে হবে।

সাবস্ক্রিপশন : কোনও বিষয়ের কাছে প্রকাশিত বার্তাগুলি পেতে আপনাকে অবশ্যই সেই বিষয়টির সাবস্ক্রিপশন তৈরি করতে হবে। গ্রাহক ক্লায়েন্ট বিষয়টিতে প্রকাশিত বার্তাগুলি গ্রহণ এবং প্রক্রিয়া করে। একটি বিষয়ের একাধিক সাবস্ক্রিপশন থাকতে পারে তবে প্রদত্ত সাবস্ক্রিপশনটি একটি একক বিষয়ের অন্তর্গত।

গুগল ওয়ার্কস্পেস ইভেন্টগুলি

গুগল ওয়ার্কস্পেস ইভেন্টগুলি গুগল ওয়ার্কস্পেস রিসোর্সগুলিতে পরিবর্তনের প্রতিনিধিত্ব করে, যেমন যখন সংস্থানগুলি তৈরি করা হয়, আপডেট করা হয় বা মুছে ফেলা হয়। অ্যাপ্লিকেশনগুলি সংশ্লেষিতভাবে প্রাসঙ্গিক ইভেন্টগুলি গ্রহণ এবং প্রক্রিয়া করতে গুগল ওয়ার্কস্পেস রিসোর্সগুলিতে সাবস্ক্রাইব করতে পারে।

7816E477B112BFB6.PNG

গুগল ওয়ার্কস্পেস ইভেন্টগুলি এপিআই কীভাবে সাবস্ক্রিপশনের মাধ্যমে কোনও অ্যাপে ইভেন্টগুলি সরবরাহ করে তা এখানে:

  1. অ্যাপ্লিকেশনটি কোনও গুগল ওয়ার্কস্পেস অ্যাপ্লিকেশন যেমন কোনও স্থান হিসাবে একটি সংস্থানকে সাবস্ক্রাইব করে।
  2. অ্যাপ্লিকেশনটি সাবস্ক্রাইব করে এমন সংস্থানটি পরিবর্তন করে।
  3. গুগল ওয়ার্কস্পেস অ্যাপ্লিকেশনটি পাব/সাবের কোনও বিষয়ে একটি ইভেন্ট সরবরাহ করে, যা অ্যাপের গুগল ওয়ার্কস্পেস সাবস্ক্রিপশনের জন্য বিজ্ঞপ্তি শেষ পয়েন্ট হিসাবে কাজ করে। ইভেন্টটিতে সংস্থানটিতে কী পরিবর্তন হয়েছে সে সম্পর্কে ডেটা রয়েছে।
  4. অ্যাপ্লিকেশনটি পাব/সাব বার্তাটি প্রক্রিয়া করে যা ইভেন্টটি ধারণ করে এবং যদি প্রয়োজন হয় তবে পদক্ষেপ নেয়।

প্রবাহ পর্যালোচনা

সমস্যা তৈরি করুন (আপডেট)

6D7A9D7A686666A80.PNG

ডেডিকেটেড স্পেস (আপডেট) থেকে সমস্যা সমাধানের সমস্যা

17e60f052f222456.png

ডেডিকেটেড স্পেস (আপডেট) থেকে ইস্যু বন্ধ করুন

742D490EA0B6FE3A.PNG

প্রক্রিয়া সাবস্ক্রিপশন

DE3017100DEC6401.png

উত্স কোড পর্যালোচনা

অ্যাপ্লিকেশন স্ক্রিপ্ট প্রকল্পটি সম্পাদনা করা দরকার।

অ্যাপসস্ক্রিপ্ট.জসন

// Enables the Workspace Events service.

"enabledAdvancedServices": [
  ...
  {
    "userSymbol": "WorkspaceEvents",
    "version": "v1",
    "serviceId": "workspaceevents"
  }
  ...
]

কনফিগারেশন.জেএস

// 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);
  ...
}

স্টোরেজ.জেএস

// Edits the function to keep track of the subscription ID.

function saveCreatedIssue(..., spaceId, subscriptionId) {
  ...
  appProperties.setProperty(spaceId, JSON.stringify({
    ...
    subscriptionId: subscriptionId,
    ...
  }));
  ...
}

ওয়ার্কস্পেসিভেন্ট.জেএস

/**
 * 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);
}

গুগল ক্লাউড প্রকল্প আপডেট করুন

এপিআই সক্ষম করুন

  1. গুগল ক্লাউড কনসোলে, গুগল ওয়ার্কস্পেস ইভেন্ট এবং পাবসব সক্ষম করুন।

  1. মেনুতে ক্লিক করুন ☰> এপিআই এবং পরিষেবাদি > সক্ষম এপিআই এবং পরিষেবাদিগুলি এবং তারপরে উভয় সক্ষম রয়েছে তা নিশ্চিত করুন।

সাবস্ক্রিপশন শুরু করুন

সমস্ত ওয়ার্কস্পেস ইভেন্টগুলি পোস্ট করার জন্য আপনাকে একটি পাব/সাব বিষয় তৈরি করতে এবং সাবস্ক্রাইব করতে হবে।

গুগল ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনুতে যান Pub> পাব/সাব> বিষয়গুলি

  1. বিষয় তৈরি ক্লিক করুন।
  2. workspace-events টপিক আইডি সেট করুন।
  3. একটি ডিফল্ট সাবস্ক্রিপশন চেকবক্স যুক্ত করুন নির্বাচন করুন।
  4. তৈরি করুন ক্লিক করুন।

b39f9a0aec7c9939.png

গুগল চ্যাট থেকে আপনার সদ্য নির্মিত বিষয়টিতে পাব/সাব বার্তা প্রকাশের অ্যাক্সেস দেওয়ার জন্য, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. তালিকা থেকে বিষয় নির্বাচন করুন।
  2. অনুমতি ট্যাব নির্বাচন করুন।
  3. নতুন প্রিন্সিপালদের কাছে chat-api-push@system.gserviceaccount.com যুক্ত করুন।
  4. ভূমিকার জন্য পাব/সাব প্রকাশক নির্বাচন করুন।
  5. Save এ ক্লিক করুন।

8D4016C37532503.png

অ্যাপ্লিকেশন স্ক্রিপ্ট প্রকল্প আপডেট করুন

গুগল ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনুতে যান ☰> আইএএম ও অ্যাডমিন> সেটিংস

  1. প্রকল্প আইডি অনুলিপি করুন।

82592FA0BD113469.png

আপনার স্থানীয় পরিবেশে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার টার্মিনালের বর্তমান ডিরেক্টরিটি issue-management/3-message-monitoring পরিবর্তন করুন। এটিতে আপনার প্রয়োজনীয় উত্স কোড রয়েছে।
  2. অনুলিপিযুক্ত প্রকল্প আইডিতে Configuration.js ফাইলটিতে স্ট্রিং ধ্রুবক নামকরণ করা PROJECT_ID সেট করুন।
  3. আপনি আগে ডাউনলোড করা ব্যক্তিগত কী ফাইল সামগ্রীতে Configuration.js ফাইলটিতে JSON ধ্রুবক নামকরণ CHAT_CREDENTIALS সেট করুন।
  4. আপনার বর্তমান ডিরেক্টরিতে issue-management/2-app-home/.clasp.json ফাইলটি অনুলিপি করুন।
  5. নিম্নলিখিত কমান্ড চালান:
clasp push

চেষ্টা করে দেখুন

গুগল চ্যাটে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. স্ল্যাশ কমান্ড /create অ্যাপ্লিকেশনটিতে সরাসরি বার্তা প্রেরণ করুন। অ্যাপটি একটি ডায়ালগ খোলে।
  2. Issue Title 3 শিরোনাম সেট করুন।
  3. Description 3 ইস্যু করতে বিবরণ সেট করুন।
  4. তৈরি করুন ক্লিক করুন।
  5. সদ্য নির্মিত স্পেসে, কয়েকটি বার্তা প্রেরণ করুন যা বিষয়টি নিয়ে আলোচনা করে।
  6. স্ল্যাশ কমান্ড /close এবং রেজোলিউশন যেমন Fixed হিসাবে একটি বার্তা প্রেরণ করুন।

গুগল ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনুতে যান Pub> পাব/সাব> সাবস্ক্রিপশন

  1. সাবস্ক্রিপশন ওয়ার্কস্পেস-ইভেন্টস-সাব নির্বাচন করুন।
  2. বার্তা ট্যাব নির্বাচন করুন।
  3. টান ক্লিক করুন। টেবিলটি আপনি সদ্য নির্মিত স্থানটিতে যা প্রেরণ করেছেন তার সাথে সম্পর্কিত বার্তাগুলি প্রদর্শন করে।

82631c9792d83889.png

অ্যাপস স্ক্রিপ্ট কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার প্রকল্প নির্বাচন করুন.
  2. সম্পাদক নির্বাচন করুন।
  3. WorkspaceEvent.gs ফাইলটি নির্বাচন করুন।
  4. রান বিভাগে processSubscription নির্বাচন করুন।
  5. Run ক্লিক করুন You আপনি বার্তাগুলি প্রক্রিয়া করা হয়েছিল এমন এক্সিকিউশন লগ থেকে আপনি দেখতে পাবেন।

C612E8FA2BD0A163.png

গুগল ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনুতে যান Pub> পাব/সাব> সাবস্ক্রিপশন

  1. সাবস্ক্রিপশন ওয়ার্কস্পেস-ইভেন্টস-সাব নির্বাচন করুন।
  2. বার্তা ট্যাব নির্বাচন করুন।
  3. টান ক্লিক করুন। টেবিলটি আপনি সদ্য নির্মিত স্থানটিতে যা প্রেরণ করেছেন তার সাথে সম্পর্কিত বার্তাগুলি আর প্রদর্শন করে না।

E185454CAC862A7B.PNG

  • গুগল চ্যাটে , আপনি স্ল্যাশ কমান্ড /create করে তৈরি করা তৃতীয় ইস্যুতে উত্সর্গীকৃত স্পেসে, আরও কয়েকটি বার্তা প্রেরণ করুন যা বিষয়টি নিয়ে আলোচনা করে।

গুগল ক্লাউড কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনুতে যান Pub> পাব/সাব> সাবস্ক্রিপশন

  1. সাবস্ক্রিপশন ওয়ার্কস্পেস-ইভেন্টস-সাব নির্বাচন করুন।
  2. বার্তা ট্যাব নির্বাচন করুন।
  3. টান ক্লিক করুন। টেবিলটি আপনি সদ্য নির্মিত স্থানটিতে যা প্রেরণ করেছেন তার সাথে সম্পর্কিত বার্তাগুলি প্রদর্শন করে না।

6. al চ্ছিক: অ্যাপ্লিকেশন 1: অন্তর্ভুক্তি সহায়তা যুক্ত করুন

ধারণাগুলি পর্যালোচনা

জেনারেল এআই প্রম্পটিং হ'ল নির্দিষ্ট ধরণের কাঙ্ক্ষিত আউটপুটটির দিকে জেনারেটর এআই মডেলকে গাইড করার জন্য কারুকাজ করার নির্দেশাবলী বা প্রশ্নগুলির শিল্প। একটি সাধারণ অনুশীলন হ'ল প্রম্পটগুলিতে নিয়ম এবং শর্তাদি যুক্ত করে উত্তরগুলি গেট করা। এটি আউটপুটকে নিরাপদ, প্রাসঙ্গিক, ধারাবাহিক এবং প্রত্যাশার সাথে একত্রিত করতে সহায়তা করতে পারে।

প্রবাহ পর্যালোচনা

প্রক্রিয়া সাবস্ক্রিপশন (আপডেট)

780D0802F77DD180.png

উত্স কোড পর্যালোচনা

অ্যাপ্লিকেশন স্ক্রিপ্ট প্রকল্পটি সম্পাদনা করা দরকার।

ওয়ার্কস্পেসিভেন্ট.জেএস

// 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);
      }
      ...
    }
    ...
  }
  ...
}

ভার্টেক্সাই.জেএস

/**
 * 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;
}

অ্যাপ্লিকেশন স্ক্রিপ্ট প্রকল্প আপডেট করুন

আপনার স্থানীয় পরিবেশে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার টার্মিনালের বর্তমান ডিরেক্টরিটি issue-management/4-inclusivity-help পরিবর্তন করুন। এটিতে আপনার প্রয়োজনীয় উত্স কোড রয়েছে।
  2. আপনার বর্তমান ডিরেক্টরিতে issue-management/3-message-monitoring/.clasp.json ফাইলটি অনুলিপি করুন।
  3. আপনার বর্তমান ডিরেক্টরিতে issue-management/3-message-monitoring/Configuration.js ফাইলটি অনুলিপি করুন যাতে এটি বিদ্যমানটি প্রতিস্থাপন করে।
  4. নিম্নলিখিত কমান্ড চালান:
clasp push

চেষ্টা করে দেখুন

গুগল চ্যাটে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. স্ল্যাশ কমান্ড /create অ্যাপ্লিকেশনটিতে সরাসরি বার্তা প্রেরণ করুন। অ্যাপটি একটি ডায়ালগ খোলে।
  2. Issue Title 4 শিরোনাম সেট করুন।
  3. Description 4 ইস্যু করতে বিবরণ সেট করুন।
  4. তৈরি করুন ক্লিক করুন।
  5. সদ্য নির্মিত স্পেসে, It happened to me last week as well প্রেরণ করুন।

অ্যাপস স্ক্রিপ্ট কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার প্রকল্প নির্বাচন করুন.
  2. সম্পাদক নির্বাচন করুন।
  3. WorkspaceEvent.gs ফাইলটি নির্বাচন করুন।
  4. রান বিভাগে processSubscription নির্বাচন করুন।
  5. রান এ ক্লিক করুন। আপনি এক্সিকিউশন লগ থেকে দেখতে পারেন যে বার্তাগুলি প্রক্রিয়া করা হয়েছিল।

গুগল চ্যাটে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. লক্ষ্য করুন যে অ্যাপটি সদ্য নির্মিত স্থানটিতে কোনও অন্তর্ভুক্তি সহায়তা প্রেরণ করেনি।
  2. সদ্য নির্মিত স্পেসে, I had to add myself from the master to fix it বার্তাটি প্রেরণ করুন।

অ্যাপস স্ক্রিপ্ট কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার প্রকল্প নির্বাচন করুন.
  2. সম্পাদক নির্বাচন করুন।
  3. WorkspaceEvent.gs ফাইলটি নির্বাচন করুন।
  4. রান বিভাগে processSubscription নির্বাচন করুন।
  5. রান এ ক্লিক করুন। আপনি এক্সিকিউশন লগ থেকে দেখতে পারেন যে বার্তাগুলি প্রক্রিয়া করা হয়েছিল। গুগল চ্যাটে , অ্যাপটি সদ্য নির্মিত স্থানটিতে একটি অন্তর্ভুক্তি সহায়তা বার্তা প্রেরণ করেছে।

7936342847acbe2d.png

7. al চ্ছিক: অ্যাপ্লিকেশন 1: পছন্দগুলি যুক্ত করুন

.

ধারণাগুলি পর্যালোচনা

একটি অ্যাকসেসরিজ উইজেট একটি অ্যাপ্লিকেশন দ্বারা প্রেরিত কোনও বার্তার নীচে সংযুক্ত একটি সীমান্তহীন উইজেট। এটি সাধারণত বার্তাগুলির নির্দিষ্ট প্রসঙ্গে ব্যবহারকারীর কাছ থেকে দ্রুত প্রতিক্রিয়া সক্ষম করতে ব্যবহৃত হয়। প্রযুক্তিগতভাবে, এটি কার্ড বোতামগুলির মতো একই মূল নীতিগুলির উপর ভিত্তি করে।

EEBE88238F6B13F.PNG

প্রবাহ পর্যালোচনা

অন্তর্ভুক্তি সহায়তা অক্ষম করুন

1BB7A8592EE6221E.PNG

উত্স কোড পর্যালোচনা

অ্যাপ্লিকেশন স্ক্রিপ্ট প্রকল্পটি সম্পাদনা করা দরকার।

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);
  }
}

স্টোরেজ.জেএস

// 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;
}

ওয়ার্কস্পেসিভেন্ট.জেএস

// 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
              }]
            }}
          }]}}]
        }, ...);
        ...
      }
      ...
    }
    ...
  }
  ...
}

অ্যাপ্লিকেশন স্ক্রিপ্ট প্রকল্প আপডেট করুন

আপনার স্থানীয় পরিবেশে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার টার্মিনালের বর্তমান ডিরেক্টরিটি issue-management/5-disable-help পরিবর্তন করুন। এটিতে আপনার প্রয়োজনীয় উত্স কোড রয়েছে।
  2. আপনার বর্তমান ডিরেক্টরিতে issue-management/4-inclusivity-help/.clasp.json ফাইলটি অনুলিপি করুন।
  3. আপনার বর্তমান ডিরেক্টরিতে issue-management/4-inclusivity-help/Configuration.js ফাইলটি অনুলিপি করুন যাতে এটি বিদ্যমানটি প্রতিস্থাপন করে।
  4. নিম্নলিখিত কমান্ড চালান:
clasp push

চেষ্টা করে দেখুন

সহায়তা অক্ষম করুন

  • গুগল চ্যাটে , আপনি স্ল্যাশ কমান্ড /create করে তৈরি করা চতুর্থ ইস্যুতে উত্সর্গীকৃত স্পেসে, I had to add myself from the master to fix বার্তাটি প্রেরণ করুন।

অ্যাপস স্ক্রিপ্ট কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার প্রকল্প নির্বাচন করুন.
  2. সম্পাদক নির্বাচন করুন।
  3. WorkspaceEvent.gs ফাইলটি নির্বাচন করুন।
  4. রান বিভাগে processSubscription নির্বাচন করুন।
  5. রান এ ক্লিক করুন। আপনি এক্সিকিউশন লগ থেকে দেখতে পারেন যে বার্তাগুলি প্রক্রিয়া করা হয়েছিল।

গুগল চ্যাটে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. লক্ষ্য করুন যে অ্যাপ্লিকেশনটি আনুষঙ্গিক উইজেট দিয়ে ইস্যুতে উত্সর্গীকৃত স্থানটিতে অন্তর্ভুক্তি সহ একটি বার্তা প্রেরণ করেছে।
  2. অন্তর্ভুক্তি সহায়তা অক্ষম করতে অ্যাকসেসরিজ উইজেট ক্লিক করুন।

de722cff1928dec9.png

অক্ষম পরীক্ষা করুন

  • গুগল চ্যাটে , আপনি স্ল্যাশ কমান্ড /create করে তৈরি করা চতুর্থ ইস্যুতে উত্সর্গীকৃত স্পেসে, I had to add myself from the master to fix বার্তাটি প্রেরণ করুন।

অ্যাপস স্ক্রিপ্ট কনসোলে , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার প্রকল্প নির্বাচন করুন.
  2. সম্পাদক নির্বাচন করুন।
  3. WorkspaceEvent.gs ফাইলটি নির্বাচন করুন।
  4. রান বিভাগে processSubscription নির্বাচন করুন।
  5. রান এ ক্লিক করুন। আপনি এক্সিকিউশন লগ থেকে দেখতে পারেন যে বার্তাগুলি প্রক্রিয়া করা হয়েছিল। গুগল চ্যাটে , অ্যাপ্লিকেশনটি অক্ষম ছিল বলে অ্যাপটি ইস্যুতে উত্সর্গীকৃত স্থানটিতে অন্তর্ভুক্তি সহায়তা সহ কোনও বার্তা প্রেরণ করেনি।

347D659DB53B73E9.png

8. অ্যাপ্লিকেশন 2: বিল্ড

ধারণাগুলি পর্যালোচনা

জেনারেল এআই গ্রাউন্ডিং

এটি এআই মডেলগুলিকে জ্ঞানের যাচাইযোগ্য উত্সগুলির সাথে সংযুক্ত করে আরও সত্যবাদী এবং নির্ভরযোগ্য করার বিষয়ে। এই কৌশলটি এআইকে তথ্য আবিষ্কার থেকে রোধ করতে সহায়তা করে এবং প্রতিক্রিয়াগুলি প্রাসঙ্গিকভাবে প্রাসঙ্গিক এবং কম পক্ষপাতদুষ্ট করতে সহায়তা করতে পারে।

প্রাকৃতিক ভাষা

কৃত্রিম বা কম্পিউটার-ভিত্তিক ভাষার বিপরীতে দৈনন্দিন যোগাযোগের জন্য মানুষের দ্বারা কথিত বা লিখিত যে কোনও ভাষা।

ক্লাউড স্টোরেজ

ক্লাউড স্টোরেজ বিশ্বব্যাপী স্টোরেজ এবং যে কোনও সময় যে কোনও পরিমাণ ডেটা পুনরুদ্ধারের অনুমতি দেয়। এটি ওয়েবসাইট সামগ্রী পরিবেশন করা, সংরক্ষণাগার এবং দুর্যোগ পুনরুদ্ধারের জন্য ডেটা সংরক্ষণ করা, বা সরাসরি ডাউনলোডের মাধ্যমে ব্যবহারকারীদের কাছে বড় ডেটা অবজেক্ট বিতরণ সহ বিভিন্ন পরিস্থিতিতে ব্যবহার করা যেতে পারে।

ডায়ালগফ্লো সিএক্স ডেটা স্টোর

ডায়ালগফ্লো সিএক্স নির্দিষ্ট ডেটা থেকে শেষ ব্যবহারকারীর প্রশ্নের উত্তর খুঁজতে ডেটা স্টোর এজেন্টদের দ্বারা ব্যবহৃত ওয়েবসাইট এবং নথিগুলির সংগ্রহগুলি ডেটা স্টোরগুলির সাথে সংহত করে। প্রদত্ত প্রশ্নের জন্য, ডেটা স্টোর এজেন্ট প্রদত্ত উত্স সামগ্রী থেকে একটি উত্তর অনুসন্ধান করে এবং অনুসন্ধানগুলি একটি সুসংগত প্রতিক্রিয়াতে সংক্ষিপ্তসার করে। এটি শেষ ব্যবহারকারীকে আরও জানার জন্য প্রতিক্রিয়ার উত্সগুলিতে সহায়ক লিঙ্কগুলি সরবরাহ করে।

আর্কিটেকচার পর্যালোচনা

9D3342D12F3B4DDA.PNG

এই গুগল চ্যাট অ্যাপ্লিকেশনটি ডায়ালগফ্লো সিএক্স দিয়ে নির্মিত এবং নিম্নলিখিত হিসাবে কাজ করে:

  1. কোনও ব্যবহারকারী সরাসরি বার্তায় বা কোনও জায়গাতে অ্যাপটিতে একটি বার্তা প্রেরণ করে।
  2. The app, which is a Dialogflow CX agent and is associated with a Google Cloud project, processes the message.
  3. The app integrates with a data store located in Cloud Storage.
  4. The app sends a synchronous response, either in a direct message or in the original space.

Review flows

প্রশ্নের উত্তর দাও

aad9fb5a7ca48956.png

Review source code

The only source that you need isn't code, but rather data that you use for grounding.

google-chat-overview.pdf

Contains the unstructured information of Google Chat apps, a printed version of a page from the Google Workspace developers website.

e9b91c4587b1a3a0.png

Update Google Cloud project

In the Google Cloud console, follow these steps:

  1. Enable the Dialogflow and Cloud Storage APIs.

  1. Enable the Vertex AI Agent Builder API.

  1. Click Menu ☰ > APIs & services > Enabled APIs & services and then confirm that all APIS are enabled.

.

Create Dialogflow CX data store agent

Initiate knowledge data

In the Google Cloud console , follow these steps:

  1. Click to Menu ☰ > Cloud Storage > Buckets .

4f15978ae9f1b687.png

  1. তৈরি করুন ক্লিক করুন।
  2. Set name to gchat-knowledge .
  3. তৈরি করুন ক্লিক করুন।

6b38c6d4d2c41bba.png

  1. Select the gchat-knowledge bucket.
  2. ফাইল আপলোড ক্লিক করুন.
  3. Download and select the google-chat-overview.pdf file from your local environment.

df89acb22e1762af.png

অ্যাপ তৈরি করুন

In the Google Cloud console , follow these steps:

  1. Click Menu ☰ > Agent builder > Apps .

  1. Click New app .
  2. Select the Chat type.

44276003074bcf14.png

  1. Set Company name to your company name.
  2. Set Agent name to knowledge .
  3. অবিরত ক্লিক করুন.

c4fedfd7556f723b.png

  1. Click Create new data store .
  2. Select Cloud Storage as the data source.

6e2440ecf0f8f9bd.png

  1. ফাইল নির্বাচন করুন।
  2. ব্রাউজ ক্লিক করুন.
  3. Select the google-chat-overview.pdf file.
  4. অবিরত ক্লিক করুন.
  5. Set the data store name to gchat-knowledge-ds .
  6. তৈরি করুন ক্লিক করুন।

a675df7490b83900.png

  1. Select the gchat-knowledge-ds data store in the table.
  2. তৈরি করুন ক্লিক করুন।

f121d580771ed96.png

  1. After a couple of minutes, click Menu ☰ > Agent builder > Apps and notice that you can see the app.

d929a7431dd84968.png

  1. Click Menu ☰ > Agent builder > Data stores .

  1. Click the gchat-knowledge-ds data store. The number of documents is 1 , which indicates that it's ready.

558319790a0accf2.png

Complete and test app

In the Dialogflow CX console , follow these steps:

  1. Select your Google Cloud project.
  2. Select the knowledge agent.

ca9b2fb4be92e8e4.png

  1. Select Agent settings > Generative AI > Generative agent .
  2. Switch the model from Text Bison to Gemini Pro .
  3. Save এ ক্লিক করুন।

68cc4713ec9b25a0.png

  1. Click Test agent .
  2. Send What is Google Chat? . The agent responds with something meaningful.

8e3a2cb02469041a.png

Integrate Google Chat app

In the Dialogflow CX console , follow these steps:

  1. Select your Google Cloud project.
  2. In the row of the knowledge agent, click 1e7ede7abae4aa3c.png > Copy name .

e19f61185158110d.png

In the Google Cloud console , follow these steps:

  1. Go to Google Chat API configuration.

  1. Under Connection settings , select Dialogflow .
  2. Under Dialogflow settings , select Dialogflow CX .
  3. Set Agent or Environment resource name to the agent name that you copied.
  4. Remove the two slash commands.

505ff39a50880904.png

  1. In Google Chat , send What is Google Chat? in a direct message to the Google Chat app. The agent responds with something meaningful.

abda9e43b81fb0ea.png

9. Optional: App 2: Add sources

Review concepts

Dialogflow CX webhook

A service that hosts business logic or calls other services. During a Dialogflow CX session, webhooks can rely on the data extracted by natural language processing to generate dynamic responses, validate collected data, or trigger actions on the backend.

ক্লাউড ফাংশন

Cloud Functions are great for building serverless backends, doing real-time data processing, and creating intelligent apps. There are no servers to provision, manage, patch, or update. They automatically scale, and are highly available and fault-tolerant.

Review flows

Answer question (update)

92767c07c7b252aa.png

Review source code

The only source code that you need is the function to adapt agent responses to Google Chat messages. It's used as a webhook.

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
          }}]
        }]}
      }]
    }}]
  }});
});

Update Google Cloud project

In the Google Cloud console, follow these steps:

  1. Enable the Cloud Build, Cloud Functions, Cloud Logging, Artifact Registry, and Cloud Run APIs.

  1. Click Menu ☰ > APIs & services > Enabled APIs & services and then confirm that the APIs are enabled.

Update Dialogflow CX data store agent

You need to deploy a Cloud Function and update the Dialogflow CX webhook to trigger it with multiple sources when possible.

Return multiple sources

By default, a new data store agent only returns one source at maximum, but you can change for more.

In the Dialogflow CX console , follow these steps:

  1. Select your Google Cloud project.
  2. Select the knowledge agent.
  3. Select Start page .
  4. Select Edit data stores .
  5. Under the Agent responses section , set Data store response options to 5 .
  6. Save এ ক্লিক করুন।

f5932d03057df645.png

Initiate Cloud Function

In the Google Cloud console , follow these steps:

  1. Click Menu ☰ > Cloud Functions .

  1. Click on Create function .
  2. Under Basics , set name to function-1 .
  3. Under Authentication , select the Allow unauthenticated invocations radio button .
  4. Under Runtime, build, connections and security settings , set Maximum number of instances to 3 .
  5. পরবর্তী ক্লিক করুন.

bd3790a9285f9c07.png

  1. Set Entry point to agent-response-adapter .
  2. Replace the default content with the files package.json and index.js .
  3. ডিপ্লোয় ক্লিক করুন।

b379bb8ca0fc1079.png

  1. Copy the URL while you wait a couple minutes for the function to deploy.

eaae08cf048b9b1c.png

Initiate webhook

You need to configure the Dialogflow CX agent to use a webhook that triggers the newly deployed function.

In the Dialogflow CX console , follow these steps:

  1. Select your Google Cloud project.
  2. Select the knowledge agent.
  3. Select Manage > Webhooks > Create .
  4. Set Display name to Google Chat Response Adapter .
  5. Set Webhook URL to the URL that you copied previously.
  6. Save এ ক্লিক করুন।

5f3c6804d52b87c1.png

  1. বিল্ড এ ক্লিক করুন।
  2. Select Start page .
  3. Select Edit data stores .
  4. Under Webhook settings , click the Enable webhook toggle.
  5. Select Google Chat Response Adapter for Webhook .
  6. Set tag to arbitrary_tag .
  7. Save এ ক্লিক করুন।

442fcaaec9b8f2e3.png

Test app

  • In Google Chat , send What is Google Chat? in a direct message to the Google Chat app. The agent responds with something meaningful and a card with sources, if any.

9468866bfe848bb8.png

10. App 3: Build

Review concepts

Conversational interactions

They are the back-and-forth exchanges of information or ideas between two or more people through natural language. This contrasts to technical interfaces that often rely on stateless, highly structured, and intolerant exchanges.

OpenAPI স্পেসিফিকেশন

It provides a consistent means to carry information through each stage of the API lifecycle. এটি এইচটিটিপি এপিআই-এর জন্য একটি স্পেসিফিকেশন ল্যাঙ্গুয়েজ যা কাঠামো এবং সিনট্যাক্সকে এমনভাবে সংজ্ঞায়িত করে যা API তৈরি করা প্রোগ্রামিং ভাষার সাথে যুক্ত নয়। API স্পেসিফিকেশনগুলি সাধারণত YAML বা JSON-এ লেখা হয়, যা স্পেসিফিকেশন সহজে ভাগ করে নেওয়া এবং ব্যবহার করার অনুমতি দেয়।

Dialogflow CX agent

The basic building block of agent apps . An agent app typically has many agents , where each agent is defined to handle specific tasks. The agent data is provided to the LLM, so it has the information it needs to answer questions and execute tasks. Each agent can provide information, send queries to external services, or defer conversation handling to a Dialogflow CX flow or another agent to handle sub-tasks.

Dialogflow CX tool

Tools are used to connect agent apps to external systems. These systems can augment the knowledge of agent apps and empower them to execute complex tasks efficiently.

Review architecture

9d3342d12f3b4dda.png

This Google Chat app is built with Dialogflow CX and works as follows:

  1. A user sends a message to the app, either in a direct message or in a space.
  2. The app, which is a Dialogflow CX agent and is associated with a Google Cloud project, processes the message.
  3. The app integrates with an agent.
  4. The app sends a synchronous response, either in a direct message or in the original space.

Review flows

Collect review

a67a5b8b513bfc2c.png

Review source code

The only source code that you need is the function to mock the backend service that the agent uses as a tool.

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

Initiate backend service mock

You deploy a Cloud Function to simulate a backend service that the Dialogflow CX agent app needs to integrate and call as a tool.

In the Google Cloud console , follow these steps:

  1. Click Menu ☰ > Cloud Functions .

  1. Click Create function .
  2. Under Basics , set name to function-2 .
  3. Under Authentication , select the Allow unauthenticated invocations radio button.
  4. Under Runtime, build, connections and security settings , set Maximum number of instances to 3 .
  5. পরবর্তী ক্লিক করুন.

e8cf0ee7441bf634.png

  1. Set Entry point to feedback-app-backend .
  2. Replace the default content with the files package.json and index.js .
  3. ডিপ্লোয় ক্লিক করুন।

bdb5cf9f503aa7f6.png

  1. Copy the URL while you wait a couple minutes for the function to deploy.

Create Dialogflow CX agent app

অ্যাপ তৈরি করুন

In the Google Cloud console , follow these steps:

  1. Click Menu ☰ > Agent builder > Apps .

  1. Click New app .
  2. Select Agent .
  3. Set Display name to Feedback App .
  4. তৈরি করুন ক্লিক করুন।

7ef3dbacee96c5aa.png

Initiate tool

In the Google Cloud console , follow these steps:

  1. Click Menu ☰ > Agent builder > Apps .

  1. Select the Feedback App agent.
  2. Click Tools > + Create .
  3. Set Name to review .
  4. Select OpenAPI .
  5. Set description to the following value:
The tool takes the number of stars as a parameter of the store review method and saves it in a database for later use.
  1. Download and replace $URL in the file service-openapi.yaml with the URL that you copied previously.
  2. Set YAML Schema to the edited content of the service-openapi.yaml file.
  3. Save এ ক্লিক করুন।

58085d6d56b603f7.png

Initiate agent

In the Google Cloud console , follow these steps:

  1. Click Menu ☰ > Agent builder > Apps .

  1. Select the Feedback App agent.
  2. Select Agents > Default Generative Agent .
  3. Set Agent name to Feedback collector .
  4. Set goal to the following value:
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.
  1. Set instructions to the following value:
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.
  1. Save এ ক্লিক করুন।

ebee7fdfa826b487.png

Test app

In the Google Cloud console , follow these steps:

  1. Click Menu ☰ > Agent builder > Apps .

  1. Select the Feedback App agent.
  2. Go to Preview agent .
  3. Under Agent , select Feedback collector .
  4. Under Select generative model , select gemini-pro .
  5. Send the message Hello! শুরু করতে

90ca8cb7b2c1cb4b.png

In the Google Cloud console , follow these steps:

  1. Click Menu ☰ > Cloud Functions .

  1. Select function-2 > Logs . Some logs show Google-Dialogflow as caller.

48bfdf1788004d18.png

Integrate Google Chat app

In the Dialogflow CX console , follow these steps:

  1. Select your Google Cloud project.
  2. Click the action menu of the Feedback App agent.
  3. Click Copy name .

In the Google Cloud console , follow these steps:

  1. Go to the Google Chat API configuration.

  1. Set Agent or Environment resource name to the agent name that you copied previously.

df16619a1cb85cf8.png

  • In Google Chat , send Hello! in a direct message to the Google Chat app to start. The agent responds similarly to your test from the Dialogflow CX console.

99a7a0295f122f31.png

11. Clean up

Delete Google Cloud project

To avoid incurring charges to your Google Cloud Account for the resources used in this codelab, we recommend that you delete the Google Cloud project.

In the Google Cloud console , follow these steps:

  1. Click Menu ☰ > IAM & Admin > Settings .

  1. শাট ডাউন ক্লিক করুন।
  2. Enter the project ID.
  3. Click Shut down anyway .

407699a4e03afea6.png

Delete Apps Script project

We recommend that you delete your Apps Script project, too.

In the Apps Script console , follow these steps:

  1. আপনার প্রকল্প নির্বাচন করুন.
  2. Click the action menu.
  3. সরান ক্লিক করুন.

fa3a42d7d2201eb9.png

12. অভিনন্দন

অভিনন্দন! You built Google Chat apps with Gemini!

এরপর কি?

We only showcased simple use cases in this codelab, but there are plenty of expansion areas that you might want to consider in your Google Chat apps, such as the following:

  • Integrate with other Generative AI models, including customs.
  • Support other types of media, such as audio, image, and video.
  • Use multimodality.
  • Rely on longer context windows and feedback loops.
  • Publish production-ready Google Chat apps on the marketplace. There are plenty of resources available for developers such as YouTube videos, documentation websites, code samples, and tutorials.
  • Enable Google Chat for your organization. The import mode feature makes it easier to get started.

আরও জানুন