ساختن برنامه برای Google Chat با Gemini

۱. قبل‌از شروع

برنامه‌های Google Chat با Gemini چیست؟

برنامه‌های Google Chat با Gemini کارهای زیر را انجام می‌دهند:

  • سرویس‌ها و منابعتان را به Google Chat بیاورید تا کاربران بتوانند بدون ترک مکالمه اطلاعات دریافت کنند و اقدام انجام دهند.
  • با مدل هوش مصنوعی زایای Gemini ادغام می‌شوند تا بتوانند در زمان‌های خاصی داده‌هایی مانند نوشتار یا تصویر را ایجاد یا جستجو کنند و گردش کار شما را ساده‌تر کنند.

چرا برنامه‌های Google Chat را با Gemini ادغام کنیم؟

موارد استفاده معمول از مدل‌های «هوش مصنوعی زایا» مانند Gemini در دسته‌های زیر قرار می‌گیرند:

  • ایجاد و بهبود محتوا. نسخه بازاریابی تولید کنید، پست‌های رسانه‌های اجتماعی بسازید، تصاویر واقع‌گرایانه ایجاد کنید، موسیقی بسازید، یا در ایجاد محتوای ویدیویی کمک بگیرید.
  • جستجوی داده. اطلاعات آماری کلیدی را از پایگاه دانش بدون ساختار استخراج کنید، نوشتارهای طولانی را خلاصه کنید، محتواها را طبقه‌بندی کنید، یا زبان‌ها را با دقت و سرعت بهبودیافته ترجمه کنید.
  • مکالمه. مکالمه‌های طبیعی، آموزنده، و خلاقانه داشته باشید.

امکان ادغام این قابلیت‌ها مستقیماً در میانای آشنای Google Chat فرصت بزرگی برای هرکسی است که می‌خواهد تجربه و بهره‌وری کاربرانش را بهبود بخشد.

پیش‌نیازها

آنچه شما می‌سازید

در این codelab، سه برنامه Google Chat با Gemini می‌سازید تا سه مورد استفاده معرفی‌شده در بخش قبلی را پوشش دهید.

برنامه مدیریت مشکل (ایجاد و بهبود محتوا)

این برنامه کارهای زیر را انجام می‌دهد:

  • مشکلات را از زمان ایجاد تا بسته شدن با تعاملات پایه، صفحه اصلی برنامه، و اصالت‌سنجی برنامه مدیریت می‌کند.
  • پیام‌ها را پایش می‌کند و با رویدادها و ابزاره‌های جانبی به فراگیر بودن کمک می‌کند.

از Gemini برای انجام کارهای زیر استفاده می‌کنید:

  • گزارش‌های مشکل را براساس سابقه پیام و جزئیات مشکل تولید کنید.
  • کلمات غیرفراگیر را در پیام‌ها با پیام‌واره‌های محدودشده طبقه‌بندی کنید.

فناوری‌های اصلی مورداستفاده عبارتند از Vertex AI،‏ Gemini،‏ Apps Script، و میاناهای برنامه‌سازی کاربردی Google Workspace (سرپرست، Chat،‏ Docs،‏ Events).

22efdecff4601417.png2d127c63518673b2.png9aea694937f2f3ed.png

این برنامه برای درک و پاسخ به سؤالات به زبان طبیعی و برگرداندن مراجع منبع از داده‌های بدون ساختار به Gemini متکی است.

فناوری‌های اصلی مورداستفاده عبارت‌اند از عامل مخزن داده Dialogflow CX، وب‌قلاب Dialogflow CX،‏ Google Cloud Functions، و Gemini.

9468866bfe848bb8.png

برنامه بازخورد (مکالمه)

این برنامه برای جمع‌آوری و ذخیره مرورها با مکالمه به زبان طبیعی به Gemini متکی است.

فناوری‌های اصلی مورداستفاده عبارت‌اند از عامل Dialogflow CX، ابزار Dialogflow CX،‏ OpenAPI،‏ Google Cloud Functions، و Gemini.

99a7a0295f122f31.png

آنچه می‌آموزید

  • نحوه ادغام کردن برنامه‌های Google Chat با Gemini ازطریق Vertex AI.
  • نحوه ادغام کردن برنامه‌های Google Chat با عامل‌های Dialogflow CX.
  • نحوه استفاده از جدیدترین ویژگی‌های Google Chat: صفحه اصلی برنامه، «رویدادهای Google Chat»، و ابزاره‌های جانبی.

آنچه نیاز دارید

۲. راه‌اندازی کردن

مقداردهی اولیه منابع

در این بخش، از مرورگر وب ترجیحی‌تان به منابع زیر دسترسی پیدا می‌کنید و آن‌ها را پیکربندی می‌کنید.

پروژه Apps Script

در کنسول Apps Script، این مراحل را دنبال کنید:

  1. روی تنظیمات کلیک کنید و سپس Google Apps Script API را فعال کنید.

ea06c593b347b9d1.png

  1. پروژه‌تان را انتخاب کنید.
  2. روی تنظیمات پروژه کلیک کنید.
  3. چارگوش انتخاب نمایش فایل مانیفست «appsscript.json» در ویرایشگر را انتخاب کنید.
  4. نام پروژه به Chat Apps Gemini تغییر داده شد.

12c1485bd248b766.png

پروژه Google Cloud

در کنسول Google Cloud، این مراحل را دنبال کنید:

  1. پروژه‌تان را انتخاب کنید.
  2. روی منو ☰ > میاناهای برنامه‌سازی کاربردی و سرویس‌ها > صفحه رضایت OAuth > ویرایش برنامه کلیک کنید، سپس نام برنامه را روی Chat Apps Gemini تنظیم کنید.

  1. به پیکربندی Google Chat API بروید و سپس نام برنامه و شرح را روی Chat Apps Gemini تنظیم کنید.

a71f040755da3b8b.png

Google Chat

در Google Chat، این مراحل را دنبال کنید:

  1. درصورت لزوم، گپی را با برنامه Google Chat خود شروع کنید.
  2. پیامی مثل Hello ارسال کنید تا مطمئن شوید کار می‌کند.

9625418251528ae9.png

بارگیری کد منبع و منابع به‌صورت محلی

  1. این مخزن GitHub را بارگیری کنید.

  1. در محیط توسعه نرم‌افزار دلخواهتان، دایرکتوری apps-script را باز کنید و سپس به همان دایرکتوری در پایانه بروید.

da9478df97c99194.png

نصب و پیکربندی clasp

ما از clasp برای ویرایش و ارسال آسان نسخه‌های کد منبع از محیط محلی به پروژه Apps Script استفاده می‌کنیم.

  1. در محیط محلی‌تان، جدیدترین نسخه‌های node،‏ npm، و clasp را نصب کنید.
npm install -g @google/clasp
  1. با حسابتان وارد سیستم شوید:
clasp login

8bc2434e6dc6f22a.png

اگر موفقیت‌آمیز باشد، صفحه تأیید ساده‌ای در مرورگر وب می‌بینید و فایل .clasprc.json با اطلاعات کاربری مشتری به‌روز می‌شود. می‌توانید ببینید در کجای پایانه قرار دارد.

e1d833eb4d5b3a8f.png

۳. برنامه ۱: ساختن

مرور مفاهیم

Vertex AI

Vertex AI هرآنچه را که برای ساختن و استفاده از هوش مصنوعی زایا نیاز دارید ارائه می‌دهد، ازجمله راه‌حل‌های هوش مصنوعی، سازنده عامل، بیش‌از ۱۳۰ مدل پایه، و یک پلاتفرم هوش مصنوعی یکپارچه.

c9e9c7a1945b22ac.png

Gemini

‫Gemini یک مدل زبانی بزرگ چندوجهی از Google است که ازطریق Vertex AI قابل‌دسترسی است. این ابزار به افراد کمک می‌کند تا پتانسیل انسانی خود را شکوفا کنند تا بتوانند تخیل خود را تقویت کنند، کنجکاوی خود را گسترش دهند، و بهره‌وری خود را افزایش دهند.

سرویس Chat پیشرفته

سرویس Chat پیشرفته به شما امکان می‌دهد از Google Chat API در Apps Script استفاده کنید. این به اسکریپت‌ها اجازه می‌دهد فضاهای Chat را پیدا، ایجاد، و اصلاح کنند، اعضا را به فضاها اضافه یا از آن‌ها حذف کنند، و پیام‌های حاوی نوشتار، کارت، پیوست، و واکنش را بخوانند یا پست کنند.

بررسی معماری

8c9c7b7328a69ea6.png

این برنامه Google Chat با Apps Script ساخته شده است. به این صورت کار می‌کند:

  1. کاربری پیامی را در پیام مستقیم یا در فضا به برنامه ارسال می‌کند.
  2. برنامه، که در پروژه Apps Script پیاده‌سازی شده است و با پروژه Google Cloud مرتبط است، پیام را پردازش می‌کند.
  3. این برنامه با میاناهای برنامه‌سازی کاربردی «سندنگار Google» و Google Chat ادغام می‌شود.
  4. این برنامه از سرویس ویژگی‌ها برای حفظ داده‌ها در ویژگی‌های اسکریپت استفاده می‌کند.
  5. برنامه پاسخی همگام، در پیام مستقیم یا در فضای اصلی، ارسال می‌کند.

بازبینی جریان‌ها

ایجاد مشکل

7ca0e8ba3c8255bb.png

عیب‌یابی کردن مشکل از فضای اختصاصی

51b47714c378a24b.png

بستن مشکل از فضای اختصاصی

89e50228deeab0f9.png

بازبینی کد منبع

پروژه Apps Script حاوی اسکریپت‌های زیر است:

  • ‫Configuration: ثابت‌هایی که باید براساس محیط ویرایش شوند.
  • ChatApp: رویدادهای تعاملی Google Chat را مدیریت می‌کند، ازجمله پیام‌ها، کلیک‌های کارت، فرمان‌های خط مورب، و کادرهای گفتگو.
  • Storage: توابع سودمندی که به «سرویس‌های ویژگی‌ها» متکی هستند.
  • ChatAppAuth: توابع سودمندی که به اصالت‌سنجی برنامه Google Chat متکی هستند.
  • ‫Docs: توابع سودمندی که به «سندنگار Google» متکی هستند.
  • ‫VertexAi: توابع سودمندی که به Vertex AI متکی هستند.

و در اینجا بخش‌هایی که هنگام تولید اسناد گزارش با Gemini و سابقه‌های فضای گپ به‌طور فعال استفاده می‌شوند آورده شده است:

appsscript.json

// Enables the Admin SDK Directory and Chat services, which you need to retrieve
// messages and usernames.

"enabledAdvancedServices": [
  ...
  {
    "userSymbol": "AdminDirectory",
    "version": "directory_v1",
    "serviceId": "admin"
  },
  {
    "userSymbol": "Chat",
    "version": "v1",
    "serviceId": "chat"
  }
  ...
]
// Includes the OAuth scopes to request the Admin SDK Directory, Google Chat,
// Google Docs, and Vertex AI APIs.

"oauthScopes": [
  ...
  "https://www.googleapis.com/auth/admin.directory.user.readonly",
  "https://www.googleapis.com/auth/chat.messages.readonly",
  "https://www.googleapis.com/auth/documents",
  "https://www.googleapis.com/auth/cloud-platform",
  ...
]

Configuration.js

// Relies on two constants: the first one is the Google Cloud project ID and the
// second one is the Vertex AI location to be used.

...
const PROJECT_ID = 'replace-with-gcp-project-id';
const VERTEX_AI_LOCATION_ID = 'us-central1';
...

ChatApp.js

// The slash command process function retrieves history, generates content, and passes
// it to the report generator.

function processSlashCommand(event) {
  ...
  if (event.message.slashCommand.commandId == CLOSE_COMMAND_ID
    && event.message.space.type !== "DM") {
    ...
    const history = exportSpaceHistory(spaceId);
    const summary = summarizeSpace(history);
    const docUrl = createReport(
      issue.title, issue.description, resolution, history, summary
    );
    ...
  }
  ...
}
/**
 * Fetches and concatenates the 100 first space messages by using the Google Chat API.
 *
 * Messages with slash commands are filtered (app command invocations).
 *
 * @return {string} concatenate space messages in the format "Sender's name: Message"
 */
function exportSpaceHistory(spaceName) {
  const messages = Chat.Spaces.Messages.list(spaceName, { 'pageSize': 100 }).messages;
  // Returns results after fetching message sender display names.
  let users = new Map();
  return messages>
    .filter(message = message.slashCommand === undefin>ed)
    .map(message =
      `${getUserDisplayName(users, message.sender.name)}: ${message.text}`
    ).join('\n');
}
/**
 * Fetches a user's display name by using the Admin Directory API.
 *
 * A cache is used to only call the API once per user.
 *
 * @param {Map} cache the map containing users previously fetched
 * @param {string} userId the user ID to fetch
 * @return {string} the user's display name
 */
function getUserDisplayName(cache, userId) {
  if (cache.has(userId)) {
    return cache.get(userId);
  }
  let displayName = 'Unknown User';
  try {
    const user = AdminDirectory.Users.get(
      userId.replace("users/", ""),
      { projection: 'BASIC', viewType: 'domain_public' });
    displayName = user.name.displayName ? user.name.displayName : user.name.fullName;
  } catch (e) {
    // Ignores errors, uses 'Unknown User' by default.
  }
  cache.set(userId, displayName);
  return displayName;
}

VertexAi.js

/**
 * Summarizes a Google Chat space history with the Gemini Pro model using
 * Vertex AI API.
 *
 * @param {string} history the history
 * @return {string} the summary
 */
function summarizeSpace(history) {
  const url = `https://${VERTEX_AI_LOCATION_ID}-aiplatform.googleapis.com/v1`
    + `/projects/${PROJECT_ID}/locations/${VERTEX_AI_LOCATION_ID}`
    + "/publishers/google/models/gemini-1.0-pro:generateContent";
  const options = {
    method: "POST",
    headers: { Authorization: "Bearer " + ScriptApp.getOAuthToken() },
    contentType: "application/json",
    payload: JSON.stringify({
      contents: {
        role: "user",
        parts: {
          text: "Summarize the following conversation between engineers resolving"
              + " an issue in a few sentences.\n\n" + history
        }
      },
      safetySettings: {
        category: "HARM_CATEGORY_SEXUALLY_EXPLICIT",
        threshold: "BLOCK_LOW_AND_ABOVE"
      },
      generationConfig: {
        temperature: 0.2,
        topP: 0.8,
        topK: 40
      }
    })
  };

  return JSON.parse(UrlFetchApp.fetch(url, options).getContentText())
    .candidates[0].content.parts[0].text;
}

Docs.js

// The report generator function adds two sections: the first one is for the summary and the second one is for history.
function createReport(..., history, summary) {
  ...
  body.appendParagraph("Summary").setHeading(DocumentApp.ParagraphHeading.HEADING1);
  body.appendParagraph(summary);
  body.appendParagraph("History").setHeading(DocumentApp.ParagraphHeading.HEADING1);
  body.appendParagraph(history);
  ...
}

به‌روزرسانی پروژه Google Cloud

فعال کردن میاناهای برنامه‌سازی کاربردی

  1. در کنسول Google Cloud، میاناهای برنامه‌سازی کاربردی سندنگار Google، کیت توسعه نرم‌افزار Google Admin، و Vertex AI را فعال کنید:

  1. روی منو ☰ > میاناهای برنامه‌سازی کاربردی و سرویس‌ها > میاناهای برنامه‌سازی کاربردی و سرویس‌های فعال‌شده کلیک کنید و سپس تأیید کنید که میاناهای برنامه‌سازی کاربردی فعال شده‌اند.

راه‌اندازی حساب سرویس

در کنسول Google Cloud، این مراحل را دنبال کنید:

  1. روی منو ☰ > IAM و سرپرست > حساب‌های سرویس > + ایجاد حساب سرویس کلیک کنید.

74cf57426419f39.png

  1. نام حساب سرویس را روی chat-app تنظیم کنید.
  2. شرح حساب سرویس را روی Chat app auth تنظیم کنید.
  3. روی ایجاد و ادامه کلیک کنید.
  4. روی تمام کلیک کنید. به صفحه حساب‌های سرویس هدایت می‌شوید و می‌توانید حساب سرویسی را که ایجاد کرده‌اید ببینید.

ca0468f1f93990f9.png

  1. حساب سرویس تازه ایجادشده را انتخاب کنید.
  2. برگه کلیدها را انتخاب کنید.
  3. روی افزودن کلید کلیک کنید.
  4. روی ایجاد کلید جدید کلیک کنید.
  5. JSON را انتخاب کنید.
  6. روی ایجاد کردن کلیک کنید.

9f7e6ea020978ab0.png

کادر گفتگو بسته می‌شود و جفت کلید عمومی/خصوصی جدیدی که ایجاد کرده‌اید به‌طور خودکار به‌عنوان فایل JSON در محیط محلی شما بارگیری می‌شود. بعداً هنگام ویرایش کد منبع پروژه Apps Script از محتوای آن استفاده می‌کنید.

به‌روزرسانی پیکربندی Google Chat API

در کنسول Google Cloud، این مراحل را دنبال کنید:

  1. فرمان خط مورب اضافه کنید.
  2. نام را روی /create تنظیم کنید.
  3. شناسه فرمان را روی 1 تنظیم کنید.
  4. شرح را روی Create a new issue تنظیم کنید.
  5. چارگوش انتخاب کادر گفتگویی را باز می‌کند را انتخاب کنید.
  6. فرمان خط مورب دیگری اضافه کنید.
  7. نام را روی /close تنظیم کنید.
  8. شناسه فرمان را روی 2 تنظیم کنید.
  9. شرح را روی Close an issue تنظیم کنید.
  10. روی ذخیره کلیک کنید.

bee2e7b63659ab33.png

به‌روزرسانی پروژه Apps Script

  • دایرکتوری فعلی را در پایانه محلی‌تان به issue-management/1-baseline تغییر دهید. حاوی کد منبع است. قبل‌از ارسال کد منبع به پروژه Apps Script، باید چند مورد را پیکربندی کنید.

پیکربندی کد منبع

  1. ثابت JSON با نام CHAT_CREDENTIALS را در فایل Configuration.js روی محتوای فایل کلید خصوصی که قبلاً بارگیری کرده‌اید تنظیم کنید.

d721f6bff73c5304.png

  1. در کنسول Google Cloud، روی منو ☰ > IAM و سرپرست > تنظیمات کلیک کنید.

  1. شناسه پروژه را کپی کنید.

82592fa0bd113469.png

  1. ثابت رشته‌ای با نام PROJECT_ID را در فایل Configuration.js روی شناسه پروژه تنظیم کنید.

383cee561130ceba.png

پیکربندی clasp تنظیمات

برای مقداردهی اولیه تنظیمات clasp جهت ارسال کد منبع به پروژه Apps Script صحیح، این مراحل را دنبال کنید:

  1. در کنسول Apps Script، پروژه خود را انتخاب کنید.
  2. تنظیمات پروژه را انتخاب کنید.
  3. در بخش شناسه‌ها، روی کپی کردن کلیک کنید.

20ea033b6de882c6.png

  1. در دایرکتوری فعلی، فایل .clasp.json ایجاد کنید.
  2. <your-script-id> را با شناسه کپی‌شده جایگزین کنید.
  3. نتیجه را در فایل .clasp.json کپی کنید.
  4. فایل .clasp.json را ذخیره کنید.
{
  "scriptI<d": ">;your-script-id"
}

کد منبع Push

  • فرمان زیر را اجرا کنید:
$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. در Google Chat،‏ Hello! را در پیام مستقیم به برنامه ارسال کنید. برنامه پاسخ نمی‌دهد، اما پیامی ظاهر می‌شود که پیکربندی را درخواست می‌کند.

4c1fc68121dcffed.png

  1. روی پیکربندی کلیک کنید.
  2. «حساب Google» خود را انتخاب کنید.
  3. اصالت‌سنجی کنید.
  4. دسترسی به برنامه را مرور و مجاز کنید.

4a2fd7ac5918bf1a.png

اگر موفقیت‌آمیز باشد، صفحه تأیید ساده‌ای در صفحه وب و پاسخ واقعی از برنامه به پیام اصلی‌تان خواهید دید.

acb9065568fe47d2.png2d6ef9c62f47e082.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

۴. اختیاری: برنامه ۱: افزودن صفحه اصلی برنامه

مرور مفاهیم

صفحه اصلی برنامه پیام کارتی سفارشی‌سازی‌پذیری است که وقتی کاربر ازطریق پیام مستقیم با برنامه Chat به برگه صفحه اصلی دسترسی پیدا می‌کند، برنامه Chat آن را برای کاربر ارسال می‌کند. این پیام معمولاً برای نمایش اسناد برنامه یا نمای کلی استفاده می‌شود. ازنظر فنی، رویداد اختصاصی‌ای برای رسیدگی وجود دارد و براساس همان اصول اصلی پیام‌های کارتی است.

65f56f70f67a32e4.png

بازبینی جریان‌ها

مدیریت مشکلات

10663f5fc107fb3f.png

بازبینی کد منبع

پروژه Apps Script باید ویرایش شود.

ChatApp.js

/**
 * Handles app home requests in Google Chat.
 * 
 * Displays the latest status of all issues.
 */
function onAppHome() {
  // Generates one card section per issue.
  var sections = [];
  for (var issueKey in appProperties.getProperties()) {
    const issue = JSON.parse(appProperties.getProperty(issueKey));
    if (issue.spaceId) {
      sections.push({
        header: `${issue.status} - ${issue.title}`,
        widgets: [{ textParagraph: {
            text: `Description: ${issue.description}`
          }}, { textParagraph: {
            text: `Resolution: ${issue.resolution}`
          }}, { buttonList: { buttons: [{
              text: "Open space",
              onClick: { openLink: {
                url: `https://mail.google.com/mail/u/0/#chat/space/${issue.spaceId}`
              }}
            }, {
              text: "Open report",
              onClick: { openLink: {
                url: issue.reportUrl !== "" ? issue.reportUrl : "docs.new"
              }},
              disabled: issue.reportUrl === ""
          }]}
        }]
      });
    }
  }

  return { action: { navigations: [{ push_card: {
    sections: sections
  }}]}};
}

به‌روزرسانی پروژه Google Cloud

در کنسول Google Cloud، این مراحل را دنبال کنید:

  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

۵. اختیاری: برنامه ۱: افزودن نظارت بر فضا

مرور مفاهیم

Pub/Sub

Pub/Sub یک سرویس پیام‌رسانی ناهمگام و مقیاس‌پذیر است که سرویس‌های تولیدکننده پیام را از سرویس‌های پردازش‌کننده آن پیام‌ها جدا می‌کند. ‫Pub/Sub به شما امکان می‌دهد سیستم‌هایی از تولیدکنندگان و مصرف‌کنندگان رویداد ایجاد کنید که ناشران و مشترکان نامیده می‌شوند. ناشران با پخش رویدادها به‌صورت ناهمگام با مشترکین ارتباط برقرار می‌کنند، نه ازطریق فراخوانی‌های رویه از راه دور (RPC) همگام.

ناشران رویدادها را بدون توجه به نحوه یا زمان پردازش این رویدادها به سرویس Pub/Sub ارسال می‌کنند. سپس 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. برنامه پیام Pub/Sub را که حاوی رویداد است پردازش می‌کند و درصورت لزوم اقدام می‌کند.

بازبینی جریان‌ها

ایجاد مشکل (به‌روزرسانی)

6d7a9d7a68666a80.png

عیب‌یابی مشکل از فضای اختصاصی (به‌روزرسانی)

17e60f052f222456.png

بستن مشکل از فضای اختصاصی (به‌روزرسانی)

742d490ea0b6fe3a.png

پردازش اشتراک‌ها

de3017100dec6401.png

بازبینی کد منبع

پروژه Apps Script باید ویرایش شود.

appsscript.json

// Enables the Workspace Events service.

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

Configuration.js

// Adds two constants: the first one is the Pub/Sub topic ID and the second one
// is the Pub/Sub subscription ID to be used to retrieve Google Workspace events.

...
const GWS_PUBSUB_TOPIC_ID = `projects/${PROJECT_ID}/topics/workspace-events`;
const GWS_PUBSUB_SUBSCRIPTION_ID =
  `projects/${PROJECT_ID}/subscriptions/workspace-events-sub`;
...

ChatApp.js

// Edits the function to delete the subscription at issue closure.

function processSlashCommand(event) {
  ...
  if (event.message.slashCommand.commandId == CLOSE_COMMAND_ID
    && event.message.space.type !== "DM") {
    ...
    deleteSubscription(issue.subscriptionId);
    ...
  }
  ...
}
// Edits the function to create the subscription.

function createIssue(event) {
  ...
  const subscriptionId = createSpaceSubscription(spaceUrl);
  const createdIssue = saveCreatedIssue(..., subscriptionId);
  ...
}
// Edits the function to delete the subscription.

function onRemoveFromSpace(event) {
  ...
  deleteSubscription(issue.subscriptionId);
  ...
}

Storage.js

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

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

WorkspaceEvent.js

/**
 * Creates a new subscription to Google Workspace Events associated to a
 * Google Chat space.
 * 
 * The subscription scope includes message creation events and resources.
 * 
 * @param {string} spaceId the space ID to create a subscription for
 * @return the ID of the newly created subscription
 */
function createSpaceSubscription(spaceId) {
  const operation = WorkspaceEvents.Subscriptions.create({
    targetResource: `//chat.googleapis.com/${spaceId}`,
    eventTypes: ["google.workspace.chat.message.v1.created"],
    notificationEndpoint: { pubsubTopic: GWS_PUBSUB_TOPIC_ID },
    payloadOptions: { includeResource: true },
  });

  return operation.response.name;
}
/**
 * Processes events from subscription by using the Google Cloud PubSub API.
 * 
 * It pulls and acknowledges each event.
 */
function processSubscription() {
  const response = UrlFetchApp.fetch(
    `https://pubsub.googleapis.com/v1/${GWS_PUBSUB_SUBSCRIPTION_ID}:pull`,
    {
      method: "POST",
      contentType: "application/json",
      headers: { "Authorization": "Bearer " + ScriptApp.getOAuthToken() },
      payload: JSON.stringify({ maxMessages: 10 })
    }
  );

  const messages = JSON.parse(response.getContentText()).receivedMessages;
  for (var messageIndex in messages) {
    const message = messages[messageIndex];
    const ceType = message.message.attributes["ce-type"];
    const dataStr = Utilities.newBlob(Utilities.base64Decode(message.message.data))
      .getDataAsString();
    if (ceType === "google.workspace.events.subscription.v1.expirationReminder") {
      // Renews subscription.
      renewSubscription(JSON.parse(dataStr).subscription.name);
    } else if (ceType === "google.workspace.chat.message.v1.created") {
      // Processes the message text when it's sent in a space.
      const chatMessage = JSON.parse(dataStr).message;
      if (chatMessage.sender.type !== "BOT") {
        console.log("Message was processed.");
      }
    }
    // Acknowledges successful processing to avoid getting it again next time.
    ackSubscription(message.ackId);
  }
}
/**
 * Acknowledges a subscription event by using the Google Cloud PubSub API.
 * 
 * @param {string} ackId the ID of the event acknowledgment to send
 */
function ackSubscription(ackId) {
  UrlFetchApp.fetch(
    `https://pubsub.googleapis.com/v1/${GWS_PUBSUB_SUBSCRIPTION_ID}:acknowledge`,
    {
      method: "POST",
      contentType: "application/json",
      headers: { "Authorization": "Bearer " + ScriptApp.getOAuthToken() },
      payload: JSON.stringify({
        ackIds: [ackId]
      })
    }
  );
}
/**
 * Renews a subscription to Google Workspace Events.
 * 
 * The default time to live option is used.
 * 
 * @param {string} subscriptionId the ID of the subscription to renew
 */
function renewSubscription(subscriptionId) {
  WorkspaceEvents.Subscriptions.patch({ttl: '0s'}, subscriptionId);
}
/**
 * Deletes a subscription to Google Workspace Events.
 * 
 * @param {string} subscriptionId the ID of the subscription to delete
 */
function deleteSubscription(subscriptionId) {
  WorkspaceEvents.Subscriptions.remove(subscriptionId);
}

به‌روزرسانی پروژه Google Cloud

فعال کردن میاناهای برنامه‌سازی کاربردی

  1. در کنسول Google Cloud،‏ Google Workspace Events و PubSub را فعال کنید.

  1. روی منو ☰ > میاناهای برنامه‌سازی کاربردی و سرویس‌ها > میاناهای برنامه‌سازی کاربردی و سرویس‌های فعال‌شده کلیک کنید و سپس تأیید کنید که هر دو فعال شده‌اند.

شروع اشتراک

برای اینکه همه رویدادهای فضای کاری پست شوند، باید موضوع Pub/Sub ایجاد کنید و در آن مشترک شوید.

در کنسول Google Cloud، این مراحل را دنبال کنید:

  1. به منو ☰ > Pub/Sub > موضوعات بروید.

  1. روی ایجاد موضوع کلیک کنید.
  2. شناسه موضوع را روی workspace-events تنظیم کنید.
  3. چارگوش انتخاب افزودن اشتراک پیش‌فرض را انتخاب کنید.
  4. روی ایجاد کردن کلیک کنید.

b39f9a0aec7c9939.png

برای اعطای دسترسی به انتشار پیام‌های Pub/Sub در موضوع جدیدی که از Google Chat ایجاد کرده‌اید، این مراحل را دنبال کنید:

  1. موضوع را از فهرست انتخاب کنید.
  2. برگه اجازه‌ها را انتخاب کنید.
  3. chat-api-push@system.gserviceaccount.com را به مدیران جدید اضافه کنید.
  4. Pub/Sub Publisher را برای نقش انتخاب کنید.
  5. روی ذخیره کلیک کنید.

8d4016c37532503.png

به‌روزرسانی پروژه Apps Script

در کنسول Google Cloud، این مراحل را دنبال کنید:

  1. به منو ☰ > IAM و سرپرست > تنظیمات بروید.

  1. شناسه پروژه را کپی کنید.

82592fa0bd113469.png

در محیط محلی‌تان، این مراحل را دنبال کنید:

  1. دایرکتوری فعلی را در پایانه به issue-management/3-message-monitoring تغییر دهید. این فایل حاوی کد منبعی است که نیاز دارید.
  2. ثابت رشته‌ای با نام PROJECT_ID را در فایل Configuration.js روی شناسه پروژه کپی‌شده تنظیم کنید.
  3. ثابت JSON با نام CHAT_CREDENTIALS را در فایل Configuration.js روی محتوای فایل کلید خصوصی که قبلاً بارگیری کرده‌اید تنظیم کنید.
  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 Cloud، این مراحل را دنبال کنید:

  1. به منو ☰ > Pub/Sub > اشتراک‌ها بروید.

  1. اشتراک workspace-events-sub را انتخاب کنید.
  2. برگه پیام‌ها را انتخاب کنید.
  3. روی Pull کلیک کنید. جدول پیام‌های مربوط به آنچه را که به فضای جدیداً ایجادشده ارسال کرده‌اید نمایش می‌دهد.

82631c9792d83889.png

در کنسول Apps Script، این مراحل را دنبال کنید:

  1. پروژه‌تان را انتخاب کنید.
  2. ویرایشگر را انتخاب کنید.
  3. فایل WorkspaceEvent.gs را انتخاب کنید.
  4. processSubscription را در بخش اجرا انتخاب کنید.
  5. روی Run کلیک کنید. در گزارش اجرا می‌توانید ببینید که پیام‌ها پردازش شده‌اند.

c612e8fa2bd0a163.png

در کنسول Google Cloud، این مراحل را دنبال کنید:

  1. به منو ☰ > Pub/Sub > اشتراک‌ها بروید.

  1. اشتراک workspace-events-sub را انتخاب کنید.
  2. برگه پیام‌ها را انتخاب کنید.
  3. روی Pull کلیک کنید. جدول دیگر پیام‌های مربوط به آنچه را که به فضای جدیداً ایجادشده ارسال کرده‌اید نمایش نمی‌دهد.

e185454cac862a7b.png

  • در Google Chat، در فضایی که به مشکل سوم اختصاص داده شده است و با فرمان خط مورب /create ایجاد کرده‌اید، چند پیام دیگر ارسال کنید که درباره مشکل بحث می‌کنند.

در کنسول Google Cloud، این مراحل را دنبال کنید:

  1. به منو ☰ > Pub/Sub > اشتراک‌ها بروید.

  1. اشتراک workspace-events-sub را انتخاب کنید.
  2. برگه پیام‌ها را انتخاب کنید.
  3. روی Pull کلیک کنید. جدول پیام‌های مربوط به آنچه را که به فضای تازه ایجادشده ارسال کرده‌اید نمایش نمی‌دهد.

‫۶. اختیاری: برنامه ۱: افزودن راهنمای فراگیری

مرور مفاهیم

پیام‌واره هوش مصنوعی زایا هنر ساختن دستورالعمل‌ها یا سؤالات برای هدایت مدل هوش مصنوعی زایا به‌سمت نوع خاصی از برونداد مطلوب است. یک روش معمول این است که با افزودن قوانین و شرایط در پیام‌واره‌ها، پاسخ‌ها را محدود کنید. این کار می‌تواند به ایمن، مرتبط، سازگار، و مطابق با انتظارات بودن برونداد کمک کند.

بازبینی جریان‌ها

پردازش اشتراک‌ها (به‌روزرسانی)

780d0802f77dd180.png

بازبینی کد منبع

پروژه Apps Script باید ویرایش شود.

WorkspaceEvent.js

// Edits the function to replace logging by an actual card message.

function processSubscription() {
  ...
  for (var messageIndex in messages) {
    ...
    } else if (ceType === "google.workspace.chat.message.v1.created") {
      ...
      const inclusivityCheck = getInclusivityFeedback(chatMessage.text);
      if (inclusivityCheck !== "It's inclusive!") {
        createAppMessageUsingChatService({
          cardsV2: [{ cardId: "1", card: { header: {
              title: "Inclusivity",
              subtitle: `The following words are not inclusive: ${inclusivityCheck}`
          }}}]
        },
        chatMessage.space.name);
      }
      ...
    }
    ...
  }
  ...
}

VertexAi.js

/**
 * Gets feedback on inclusivity for a text with the Gemini Pro model using
 * Vertex AI API.
 * 
 * Returns "It's inclusive!" when it is otherwise a list of word(s) that might not
 * be optimal.
 *
 * @param {string} text the text
 * @return {string} the feedback
 */
function getInclusivityFeedback(text) {
  const url = `https://${VERTEX_AI_LOCATION_ID}-aiplatform.googleapis.com/v1`
    + `/projects/${PROJECT_ID}/locations/${VERTEX_AI_LOCATION_ID}`
    + "/publishers/google/models/gemini-1.0-pro:generateContent";
  const options =  {
    method: "POST",
    headers: { Authorization: "Bearer " + ScriptApp.getOAuthToken() },
    contentType: "application/json",
    payload: JSON.stringify({
      contents: {
        role: "user",
        parts: {
          text: "Are there any words that obviously go against inclusivity "
            + "in this text:"
            + `\n\n----------\n${text}\n----------\n\n`
            + "If there are not, answer \"It's inclusive!\" "
            + "otherwise answer by listing them separated by commas. "
            + "Do not answer with any explanation."
        }
      },
      safetySettings: {
        category: "HARM_CATEGORY_SEXUALLY_EXPLICIT",
        threshold: "BLOCK_LOW_AND_ABOVE"
      },
      generationConfig: {
        temperature: 0.2,
        topP: 0.8,
        topK: 40
      }
    })
  };

  return JSON.parse(UrlFetchApp.fetch(url, options).getContentText())
    .candidates[0].content.parts[0].text;
}

به‌روزرسانی پروژه Apps Script

در محیط محلی‌تان، این مراحل را دنبال کنید:

  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 Script، این مراحل را دنبال کنید:

  1. پروژه‌تان را انتخاب کنید.
  2. ویرایشگر را انتخاب کنید.
  3. فایل WorkspaceEvent.gs را انتخاب کنید.
  4. processSubscription را در بخش اجرا انتخاب کنید.
  5. روی اجرا کلیک کنید. در گزارش اجرا می‌توانید ببینید که پیام‌ها پردازش شده‌اند.

در Google Chat، این مراحل را دنبال کنید:

  1. توجه کنید که برنامه هیچ راهنمایی‌ای درباره فراگیری در فضای جدیداً ایجادشده ارسال نکرده است.
  2. در فضای جدیداً ایجادشده، پیام I had to add myself from the master to fix it را ارسال کنید.

در کنسول Apps Script، این مراحل را دنبال کنید:

  1. پروژه‌تان را انتخاب کنید.
  2. ویرایشگر را انتخاب کنید.
  3. فایل WorkspaceEvent.gs را انتخاب کنید.
  4. processSubscription را در بخش اجرا انتخاب کنید.
  5. روی اجرا کلیک کنید. در گزارش اجرا می‌توانید ببینید که پیام‌ها پردازش شده‌اند. در Google Chat، برنامه پیام راهنمای فراگیری را در فضای جدیداً ایجادشده ارسال کرد.

7936342847acbe2d.png

‫۷. اختیاری: برنامه ۱: افزودن اولویت‌ها

.

مرور مفاهیم

ابزاره جانبی ابزاره‌ای بدون حاشیه است که به پایین پیام ارسال‌شده توسط برنامه پیوست می‌شود. این ابزاره معمولاً برای فعال کردن واکنش‌های سریع کاربر در بافت خاص پیام‌ها استفاده می‌شود. ازنظر فنی، این دکمه‌ها براساس همان اصول اصلی دکمه‌های کارت هستند.

eebe88238f6b13f.png

بازبینی جریان‌ها

غیرفعال کردن راهنمای فراگیر

1bb7a8592ee6221e.png

بازبینی کد منبع

پروژه Apps Script باید ویرایش شود.

ChatApp.js

// Edits the function to handle the inclusivity help disablement action for a
// given space.

function onCardClick(event) {
  ...
  if (event.action.actionMethodName === "disableInclusivityHelp") {
    disableInclusivityHelp(event.common.parameters.spaceId);
  }
}

Storage.js

// Edits the function to keep track of the inclusivity help setting.

function saveCreatedIssue(title, description, spaceId, subscriptionId) {
  appProperties.setProperty(spaceId, JSON.stringify({
    ...
    inclusivityHelp: true,
    ...
  }));
  ...
}
/**
 * Disables inclusivity help in a space.
 * 
 * @param {string} spaceId the ID of dedicated space of the issue
 */
function disableInclusivityHelp(spaceId) {
  var issue = JSON.parse(appProperties.getProperty(spaceId));
  issue.inclusivityHelp = false;
  appProperties.setProperty(spaceId, JSON.stringify(issue));
}
/**
 * Checks whether the app should help with inclusivity in a given space.
 * 
 * @param {string} spaceId the ID of dedicated space of the issue
 * @return whether the app should help with inclusivity
 */
function shouldHelpWithInclusivity(spaceId) {
  return JSON.parse(appProperties.getProperty(spaceId)).inclusivityHelp;
}

WorkspaceEvent.js

// Edits the function to display the accessory widget to the existing card message.

function processSubscription() {
  ...
  for (var messageIndex in messages) {
    ...
    } else if (ceType === "google.workspace.chat.message.v1.created") {
      ...
    &&  if (...  shouldHelpWithInclusivity(chatMessage.space.name)) {
        createAppMessageUsingChatService({
          ...
          accessoryWidgets: [{ buttonList: { buttons: [{
            altText: "Disable inclusivity help",
            icon: {
              iconUrl: "https://upload.wikimedia.org/.../Stop_hand_rugen.png"
            },
            onClick: { action: {
              function: "disableInclusivityHelp",
              parameters: [{
                key: "spaceId",
                value: chatMessage.space.name
              }]
            }}
          }]}}]
        }, ...);
        ...
      }
      ...
    }
    ...
  }
  ...
}

به‌روزرسانی پروژه Apps Script

در محیط محلی‌تان، این مراحل را دنبال کنید:

  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 Chat، در فضایی که به مشکل چهارم اختصاص داده شده است و با فرمان خط مورب /create ایجاد کرده‌اید، پیام I had to add myself from the master to fix را ارسال کنید.

در کنسول Apps Script، این مراحل را دنبال کنید:

  1. پروژه‌تان را انتخاب کنید.
  2. ویرایشگر را انتخاب کنید.
  3. فایل WorkspaceEvent.gs را انتخاب کنید.
  4. processSubscription را در بخش اجرا انتخاب کنید.
  5. روی اجرا کلیک کنید. در گزارش اجرا می‌توانید ببینید که پیام‌ها پردازش شده‌اند.

در Google Chat، این مراحل را دنبال کنید:

  1. توجه داشته باشید که برنامه پیامی با راهنمایی درباره فراگیر بودن به فضای اختصاص‌داده‌شده به مشکل با ابزاره جانبی ارسال کرده است.
  2. برای غیرفعال کردن راهنمای فراگیر، روی ابزاره لوازم جانبی کلیک کنید.

de722cff1928dec9.png

بررسی غیرفعال‌سازی

  • در Google Chat، در فضایی که به مشکل چهارم اختصاص داده شده و با فرمان خط مورب /create ایجاد کرده‌اید، پیام I had to add myself from the master to fix را ارسال کنید.

در کنسول Apps Script، این مراحل را دنبال کنید:

  1. پروژه‌تان را انتخاب کنید.
  2. ویرایشگر را انتخاب کنید.
  3. فایل WorkspaceEvent.gs را انتخاب کنید.
  4. processSubscription را در بخش اجرا انتخاب کنید.
  5. روی اجرا کلیک کنید. در گزارش اجرا می‌توانید ببینید که پیام‌ها پردازش شده‌اند. در Google Chat، برنامه پیامی با راهنمایی فراگیر به فضای اختصاص‌داده‌شده به مشکل ارسال نکرد زیرا غیرفعال شده بود.

347d659db53b73e9.png

‫۸. برنامه ۲: ساختن

مرور مفاهیم

زمینه‌سازی هوش مصنوعی زایا

هدف از این کار، واقعی‌تر و قابل‌اعتمادتر کردن مدل‌های هوش مصنوعی ازطریق متصل کردن آن‌ها به منابع دانش قابل‌تأیید است. این تکنیک به جلوگیری از تولید اطلاعات ساختگی توسط هوش مصنوعی کمک می‌کند و می‌تواند پاسخ‌ها را ازنظر بافتار مرتبط‌تر و کمتر سوگیرانه کند.

زبان طبیعی

هر زبانی که انسان‌ها برای ارتباطات روزمره به‌صورت گفتاری یا نوشتاری استفاده می‌کنند، برخلاف زبان‌های مصنوعی یا رایانه‌ای.

فضای ذخیره‌سازی ابری

‫Cloud Storage امکان ذخیره‌سازی و بازیابی هر مقدار داده را در هر زمان در سراسر جهان فراهم می‌کند. می‌توان از آن برای طیف وسیعی از سناریوها استفاده کرد، ازجمله ارائه محتوای وب‌سایت، ذخیره داده‌ها برای بایگانی و بازیابی پس‌از فاجعه، یا توزیع اشیاء داده بزرگ به کاربران ازطریق بارگیری مستقیم.

مخزن داده Dialogflow CX

Dialogflow CX با مخازن داده ادغام می‌شود که مجموعه‌ای از وب‌سایت‌ها و اسناد هستند که توسط عوامل مخزن داده برای یافتن پاسخ سؤالات کاربر نهایی از داده‌های خاص استفاده می‌شوند. برای یک سؤال مشخص، عامل ذخیره‌سازی داده پاسخی را از محتوای منبع داده‌شده جستجو می‌کند و یافته‌ها را در یک پاسخ منسجم خلاصه می‌کند. همچنین پیوندهای پشتیبانی به منابع پاسخ ارائه می‌دهد تا کاربر نهایی بتواند اطلاعات بیشتری کسب کند.

بررسی معماری

9d3342d12f3b4dda.png

این برنامه Google Chat با Dialogflow CX ساخته شده است و به‌صورت زیر کار می‌کند:

  1. کاربری پیامی را در پیام مستقیم یا در فضا به برنامه ارسال می‌کند.
  2. برنامه، که یک عامل Dialogflow CX است و با پروژه Google Cloud مرتبط است، پیام را پردازش می‌کند.
  3. برنامه با یک ذخیره‌سازی داده واقع در Cloud Storage ادغام می‌شود.
  4. برنامه پاسخی همگام، در پیام مستقیم یا در فضای اصلی، ارسال می‌کند.

مرور جریان‌ها

پاسخ به سؤال

aad9fb5a7ca48956.png

بازبینی کد منبع

تنها منبعی که نیاز دارید کد نیست، بلکه داده‌هایی است که برای زمینه‌سازی استفاده می‌کنید.

google-chat-overview.pdf

حاوی اطلاعات ساختارنیافته برنامه‌های Google Chat، نسخه چاپی صفحه‌ای از وب‌سایت توسعه‌دهندگان Google Workspace.

e9b91c4587b1a3a0.png

به‌روزرسانی پروژه Google Cloud

در کنسول Google Cloud، این مراحل را دنبال کنید:

  1. فعال کردن Dialogflow و Cloud Storage API.

  1. Vertex AI Agent Builder API را فعال کنید.

  1. روی منو ☰ > میاناهای برنامه‌سازی کاربردی و سرویس‌ها > میاناهای برنامه‌سازی کاربردی و سرویس‌های فعال‌شده کلیک کنید و سپس تأیید کنید که همه میاناهای برنامه‌سازی کاربردی فعال شده‌اند.

.

ایجاد عامل مخزن داده Dialogflow CX

راه‌اندازی داده‌های دانش

در کنسول Google Cloud، این مراحل را دنبال کنید:

  1. روی منو ☰ > فضای ذخیره‌سازی ابری > دسته‌ها کلیک کنید.

4f15978ae9f1b687.png

  1. روی ایجاد کردن کلیک کنید.
  2. نام را روی gchat-knowledge تنظیم کن.
  3. روی ایجاد کردن کلیک کنید.

6b38c6d4d2c41bba.png

  1. سبد gchat-knowledge را انتخاب کنید.
  2. روی بارگذاری فایل‌ها کلیک کنید.
  3. فایل google-chat-overview.pdf را از محیط محلی‌تان بارگیری و انتخاب کنید.

df89acb22e1762af.png

ایجاد برنامه

در کنسول Google Cloud، این مراحل را دنبال کنید:

  1. روی منو ☰ > Agent builder > برنامه‌ها کلیک کنید.

  1. روی برنامه جدید کلیک کنید.
  2. نوع گپ را انتخاب کنید.

44276003074bcf14.png

  1. Company name را روی نام شرکتتان تنظیم کنید.
  2. Agent name را روی knowledge تنظیم کنید.
  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 Cloud خود را انتخاب کنید.
  2. عامل دانش را انتخاب کنید.

ca9b2fb4be92e8e4.png

  1. تنظیمات نماینده > هوش مصنوعی زایا > نماینده زایا را انتخاب کنید.
  2. مدل را از Text Bison به Gemini Pro تغییر دهید.
  3. روی ذخیره کلیک کنید.

68cc4713ec9b25a0.png

  1. روی آزمایش کردن نماینده کلیک کنید.
  2. What is Google Chat? را ارسال کنید. عامل با چیزی معنادار پاسخ می‌دهد.

8e3a2cb02469041a.png

ادغام برنامه Google Chat

در کنسول Dialogflow CX، این مراحل را دنبال کنید:

  1. پروژه Google Cloud خود را انتخاب کنید.
  2. در ردیف عامل دانش، روی 1e7ede7abae4aa3c.png > کپی کردن نام کلیک کنید.

e19f61185158110d.png

در کنسول Google Cloud، این مراحل را دنبال کنید:

  1. به پیکربندی Google Chat API بروید.

  1. در بخش تنظیمات اتصال، Dialogflow را انتخاب کنید.
  2. در بخش تنظیمات Dialogflow، Dialogflow CX را انتخاب کنید.
  3. نام منبع «عامل» یا «محیط» را روی نام عاملی که کپی کردید تنظیم کنید.
  4. دو فرمان خط مورب را بردارید.

505ff39a50880904.png

  1. در Google Chat، What is Google Chat? را در پیام مستقیم به برنامه Google Chat ارسال کنید. نماینده با چیزی معنی‌دار پاسخ می‌دهد.

abda9e43b81fb0ea.png

‫۹. اختیاری: برنامه ۲: افزودن منابع

مرور مفاهیم

وب‌قلاب Dialogflow CX

سرویسی که منطق کسب‌وکار را میزبانی می‌کند یا سرویس‌های دیگر را فراخوانی می‌کند. درطول جلسه Dialogflow CX، وب‌قلاب‌ها می‌توانند به داده‌های استخراج‌شده توسط پردازش زبان طبیعی تکیه کنند تا پاسخ‌های پویا تولید کنند، داده‌های جمع‌آوری‌شده را اعتبارسنجی کنند، یا کنش‌هایی را در پس‌بک فعال کنند.

توابع ابری

Cloud Functions برای ساختن پس‌اندهای بدون سرور، پردازش هم‌زمان داده‌ها، و ایجاد برنامه‌های هوشمند عالی است. هیچ سروری برای تأمین، مدیریت، وصله، یا به‌روزرسانی وجود ندارد. این پایگاه‌های داده به‌طور خودکار مقیاس‌بندی می‌شوند، بسیار دردسترس هستند، و تحمل‌پذیری خطا دارند.

مرور جریان‌ها

پاسخ به سؤال (به‌روزرسانی)

92767c07c7b252aa.png

بازبینی کد منبع

تنها کد منبعی که نیاز دارید تابع تطبیق پاسخ‌های نماینده با پیام‌های Google Chat است. به‌عنوان وب‌قلاب استفاده می‌شود.

package.json

// The function relies on the Cloud Functions framework to run.

{
  "name": "agent-response-adapter",
  "version": "0.0.1",
  "dependencies": {
    "@google-cloud/functions-framework": "^3.0.0"
  },
  ...
}

index.js

/** 
 * Handles all incoming requests.
 *
 * It takes a Dialogflow CX agent response as input and returns a
 * valid Google Chat card message with both the text and source links
 */
functions.http('agent-response-adapter', (request, res>ponse) = {
  // 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.fo>rEach((citation) = {
      // Avoid duplications.
      if (linkTitles.indexO<f(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 (linkTitl<es.indexOf(grounding.title)  0) {
      linkButtons.push({
        text: grounding.title,
        onClick: { openLink: {
          url: grounding.actionLink
        }}
      });
      linkTitles.push(grounding.title);
    }
  }

  // Sends the Dialogflow CX fulfillment response to replace the agent response
  // with the Chat message with text and source buttons.
  response.send({ fulfillment_response: {
    merge_behavior: "REPLACE",
    messages: [{ payload: {
      // Reuses the original data store agent response text.
      text: request.body.messages[0].text.text[0],
      cardsV2: [{
        cardId: "sourcesCard",
        card: { sections: [{
          header: "Sources",
          widgets: [{ buttonList: {
            buttons: linkButtons
          }}]
        }]}
      }]
    }}]
  }});
});

به‌روزرسانی پروژه Google Cloud

در کنسول Google Cloud، این مراحل را دنبال کنید:

  1. میاناهای برنامه‌سازی کاربردی Cloud Build،‏ Cloud Functions،‏ Cloud Logging،‏ Artifact Registry، و Cloud Run را فعال کنید.

  1. روی منو ☰ > میاناهای برنامه‌سازی کاربردی و سرویس‌ها > میاناهای برنامه‌سازی کاربردی و سرویس‌های فعال‌شده کلیک کنید و سپس تأیید کنید که میاناهای برنامه‌سازی کاربردی فعال شده‌اند.

به‌روزرسانی عامل مخزن داده Dialogflow CX

باید یک Cloud Function را مستقر کنید و وب‌قلاب Dialogflow CX را به‌روز کنید تا درصورت امکان با چندین منبع راه‌اندازی شود.

برگرداندن چند منبع

به‌طور پیش‌فرض، عامل ذخیره‌سازی داده جدید حداکثر یک منبع را برمی‌گرداند، اما می‌توانید آن را تغییر دهید تا منابع بیشتری برگرداند.

در کنسول Dialogflow CX، این مراحل را دنبال کنید:

  1. پروژه Google Cloud خود را انتخاب کنید.
  2. عامل دانش را انتخاب کنید.
  3. صفحه شروع را انتخاب کنید.
  4. ویرایش ذخیره‌سازی داده‌ها را انتخاب کنید.
  5. در بخش پاسخ‌های نماینده، گزینه‌های پاسخ ذخیره‌سازی داده را روی 5 تنظیم کنید.
  6. روی ذخیره کلیک کنید.

f5932d03057df645.png

راه‌اندازی تابع ابری

در کنسول Google Cloud، این مراحل را دنبال کنید:

  1. روی منو ☰ > Cloud Functions کلیک کنید.

  1. روی ایجاد تابع کلیک کنید.
  2. در بخش موارد پایه‌ای، نام را روی function-1 تنظیم کنید.
  3. در بخش اصالت‌سنجی، دکمه رادیویی «اجازه دادن به فراخوانی‌های اصالت‌سنجی‌نشده» را انتخاب کنید.
  4. در بخش تنظیمات زمان اجرا، ساخت، اتصال‌ها، و امنیت، حداکثر تعداد نمونه‌ها را روی 3 تنظیم کنید.
  5. روی بعدی کلیک کنید.

bd3790a9285f9c07.png

  1. نقطه ورودی را روی agent-response-adapter تنظیم کنید.
  2. محتوای پیش‌فرض را با فایل‌های package.json و index.js جایگزین کنید.
  3. روی استقرار کلیک کنید.

b379bb8ca0fc1079.png

  1. نشانی وب را کپی کنید و چند دقیقه منتظر بمانید تا تابع مستقر شود.

eaae08cf048b9b1c.png

راه‌اندازی وب‌قلاب

باید عامل Dialogflow CX را پیکربندی کنید تا از وب‌قلابی استفاده کند که تابع جدیداً مستقرشده را راه‌اندازی می‌کند.

در کنسول Dialogflow CX، این مراحل را دنبال کنید:

  1. پروژه Google Cloud خود را انتخاب کنید.
  2. عامل دانش را انتخاب کنید.
  3. مدیریت > وب‌قلاب‌ها > ایجاد را انتخاب کنید.
  4. نام نمایشی را روی Google Chat Response Adapter تنظیم کنید.
  5. نشانی وب وب‌قلاب را روی نشانی وبی که قبلاً کپی کرده‌اید تنظیم کنید.
  6. روی ذخیره کلیک کنید.

5f3c6804d52b87c1.png

  1. روی ساختن کلیک کنید.
  2. صفحه شروع را انتخاب کنید.
  3. ویرایش ذخیره‌سازی داده‌ها را انتخاب کنید.
  4. در بخش تنظیمات Webhook، روی کلید فعال کردن Webhook کلیک کنید.
  5. Google Chat Response Adapter for Webhook (آداپتور پاسخ Google Chat برای وب‌قلاب) را انتخاب کنید.
  6. برچسب را روی arbitrary_tag تنظیم کنید.
  7. روی ذخیره کلیک کنید.

442fcaaec9b8f2e3.png

برنامه آزمایشی

  • در Google Chat،‏ What is Google Chat? را در پیام مستقیم به برنامه Google Chat ارسال کنید. نماینده با پاسخی معنادار و کارتی حاوی منابع (درصورت وجود) پاسخ می‌دهد.

9468866bfe848bb8.png

‫۱۰. برنامه ۳: ساختن

مرور مفاهیم

تعامل‌های مکالمه‌ای

این تعامل‌ها شامل تبادل اطلاعات یا ایده‌ها بین دو یا چند نفر ازطریق زبان طبیعی است. این امر با میاناهای فنی که اغلب به تبادل‌های بدون حالت، بسیار ساختاریافته، و غیرقابل‌تحمل متکی هستند در تضاد است.

مشخصات OpenAPI

این ابزار روشی هماهنگ برای انتقال اطلاعات در هر مرحله از چرخه حیات API ارائه می‌دهد. این زبان مشخصات برای میاناهای برنامه‌سازی کاربردی HTTP است که ساختار و نحو را به‌گونه‌ای تعریف می‌کند که به زبان برنامه‌نویسی‌ای که میانای برنامه‌سازی کاربردی در آن ایجاد شده است وابسته نباشد. مشخصات میانای برنامه‌سازی کاربردی معمولاً در YAML یا JSON نوشته می‌شود که امکان هم‌رسانی و مصرف آسان مشخصات را فراهم می‌کند.

عامل Dialogflow CX

واحد سازنده پایه برنامه‌های عامل. یک برنامه عامل معمولاً دارای چندین عامل است که هر عامل برای انجام وظایف خاصی تعریف شده است. داده‌های نماینده به مدل زبانی بزرگ ارائه می‌شود تا اطلاعات لازم برای پاسخ دادن به سؤالات و اجرای تکالیف را داشته باشد. هر نماینده می‌تواند اطلاعات ارائه دهد، پُرسمان‌ها را به سرویس‌های خارجی ارسال کند، یا رسیدگی به مکالمه را به جریان Dialogflow CX یا نماینده دیگری واگذار کند تا به کارهای فرعی رسیدگی کند.

ابزار Dialogflow CX

از ابزارها برای متصل کردن برنامه‌های نماینده به سیستم‌های خارجی استفاده می‌شود. این سیستم‌ها می‌توانند دانش برنامه‌های عامل را تقویت کنند و آن‌ها را قادر سازند تا تکالیف پیچیده را به‌طور مؤثر اجرا کنند.

بررسی معماری

9d3342d12f3b4dda.png

این برنامه Google Chat با Dialogflow CX ساخته شده است و به‌صورت زیر کار می‌کند:

  1. کاربری پیامی را در پیام مستقیم یا در فضا به برنامه ارسال می‌کند.
  2. برنامه، که یک عامل Dialogflow CX است و با پروژه Google Cloud مرتبط است، پیام را پردازش می‌کند.
  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, res>ponse) = {
    response.send(9;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

یک Cloud Function را مستقر می‌کنید تا سرویس زیرینه‌ای را شبیه‌سازی کنید که برنامه عامل Dialogflow CX باید به‌عنوان ابزار با آن ادغام شود و آن را فراخوانی کند.

در کنسول Google Cloud، این مراحل را دنبال کنید:

  1. روی منو ☰ > Cloud Functions کلیک کنید.

  1. روی ایجاد تابع کلیک کنید.
  2. در بخش موارد پایه‌ای، نام را روی function-2 تنظیم کنید.
  3. در بخش اصالت‌سنجی، دکمه رادیویی اجازه دادن به فراخوانی‌های اصالت‌سنجی‌نشده را انتخاب کنید.
  4. در بخش تنظیمات زمان اجرا، ساخت، اتصال‌ها، و امنیت، حداکثر تعداد نمونه‌ها را روی 3 تنظیم کنید.
  5. روی بعدی کلیک کنید.

e8cf0ee7441bf634.png

  1. نقطه ورودی را روی feedback-app-backend تنظیم کنید.
  2. محتوای پیش‌فرض را با فایل‌های package.json و index.js جایگزین کنید.
  3. روی استقرار کلیک کنید.

bdb5cf9f503aa7f6.png

  1. نشانی وب را کپی کنید و چند دقیقه منتظر بمانید تا تابع مستقر شود.

ایجاد برنامه عامل Dialogflow CX

ایجاد برنامه

در کنسول Google Cloud، این مراحل را دنبال کنید:

  1. روی منو ☰ > Agent builder > برنامه‌ها کلیک کنید.

  1. روی برنامه جدید کلیک کنید.
  2. نماینده را انتخاب کنید.
  3. نام نمایشی را روی Feedback App تنظیم کنید.
  4. روی ایجاد کردن کلیک کنید.

7ef3dbacee96c5aa.png

راه‌اندازی ابزار

در کنسول Google Cloud، این مراحل را دنبال کنید:

  1. روی منو ☰ > Agent builder > برنامه‌ها کلیک کنید.

  1. عامل برنامه بازخورد را انتخاب کنید.
  2. روی ابزارها > + ایجاد کردن کلیک کنید.
  3. نام را روی review تنظیم کنید.
  4. OpenAPI را انتخاب کنید.
  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 را در فایل service-openapi.yaml بارگیری و با نشانی وبی که قبلاً کپی کرده‌اید جایگزین کنید.
  2. YAML Schema را روی محتوای ویرایش‌شده فایل service-openapi.yaml تنظیم کنید.
  3. روی ذخیره کلیک کنید.

58085d6d56b603f7.png

راه‌اندازی عامل

در کنسول Google Cloud، این مراحل را دنبال کنید:

  1. روی منو ☰ > Agent builder > برنامه‌ها کلیک کنید.

  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. روی ذخیره کلیک کنید.

ebee7fdfa826b487.png

برنامه آزمایشی

در کنسول Google Cloud، این مراحل را دنبال کنید:

  1. روی منو ☰ > Agent builder > برنامه‌ها کلیک کنید.

  1. عامل برنامه بازخورد را انتخاب کنید.
  2. به پیش‌نمایش نماینده بروید.
  3. در بخش نماینده، جمع‌آوری‌کننده بازخورد را انتخاب کنید.
  4. در بخش انتخاب مدل زایا، gemini-pro را انتخاب کنید.
  5. برای شروع، پیام Hello! را ارسال کنید.

90ca8cb7b2c1cb4b.png

در کنسول Google Cloud، این مراحل را دنبال کنید:

  1. روی منو ☰ > Cloud Functions کلیک کنید.

  1. تابع-۲ > گزارش‌ها را انتخاب کنید. برخی‌از گزارش‌ها Google-Dialogflow را به‌عنوان تماس‌گیرنده نشان می‌دهند.

48bfdf1788004d18.png

ادغام کردن برنامه Google Chat

در کنسول Dialogflow CX، این مراحل را دنبال کنید:

  1. پروژه Google Cloud خودتان را انتخاب کنید.
  2. روی منوِ کنش‌های نماینده Feedback App کلیک کنید.
  3. روی کپی کردن نام کلیک کنید.

در کنسول Google Cloud، این مراحل را دنبال کنید:

  1. به پیکربندی Google Chat API بروید.

  1. نام منبع عامل یا محیط را روی نام عاملی که قبلاً کپی کرده‌اید تنظیم کنید.

df16619a1cb85cf8.png

  • در Google Chat، برای شروع، Hello! را در پیام مستقیم به برنامه Google Chat ارسال کنید. عامل به‌طور مشابهی به آزمایش شما از کنسول Dialogflow CX پاسخ می‌دهد.

99a7a0295f122f31.png

‫۱۱. مرتب‌سازی

حذف پروژه Google Cloud

برای جلوگیری از تحمیل هزینه به «حساب Google Cloud» شما بابت منابع استفاده‌شده در این codelab، توصیه می‌کنیم پروژه Google Cloud را حذف کنید.

در کنسول Google Cloud، این مراحل را دنبال کنید:

  1. روی منو ☰ > IAM و سرپرست > تنظیمات کلیک کنید.

  1. روی خاموش کردن کلیک کنید.
  2. شناسه پروژه را وارد کنید.
  3. روی درهرصورت خاموش شود کلیک کنید.

407699a4e03afea6.png

حذف پروژه Apps Script

توصیه می‌کنیم پروژه Apps Script خود را نیز حذف کنید.

در کنسول Apps Script، این مراحل را دنبال کنید:

  1. پروژه‌تان را انتخاب کنید.
  2. روی منوِ کنش‌ها کلیک کنید.
  3. روی برداشتن کلیک کنید.

fa3a42d7d2201eb9.png

‫۱۲. تبریک می‌گوییم

تبریک! با Gemini برنامه Google Chat ساختید!

بعد چه باید کرد؟

در این codelab فقط موارد استفاده ساده را نشان دادیم، اما حوزه‌های توسعه زیادی وجود دارد که ممکن است بخواهید در برنامه‌های Google Chat خود درنظر بگیرید، مانند موارد زیر:

  • با مدل‌های دیگر «هوش مصنوعی زایا»، ازجمله مدل‌های سفارشی، ادغام می‌شود.
  • از انواع دیگر رسانه، مانند صدا، تصویر، و ویدیو پشتیبانی می‌کند.
  • از چندحالته بودن استفاده کنید.
  • به پنجره‌های زمینه طولانی‌تر و حلقه‌های بازخورد تکیه کنید.
  • برنامه‌های Google Chat آماده تولید را در بازارگان منتشر کنید. منابع زیادی برای توسعه‌دهندگان دردسترس است، ازجمله ویدیوهای YouTube، وب‌سایت‌های اسناد، نمونه‌های کد، و آموزش‌های گام‌به‌گام.
  • Google Chat را برای سازمانتان فعال کنید. ویژگی حالت وارد کردن شروع به کار را آسان‌تر می‌کند.

بیشتر بدانید