پاسخ دادن به سؤالات براساس مکالمات Chat با برنامه «مکالمه هوش مصنوعی Gemini»

این آموزش نشان می‌دهد چگونه برنامه Google Chat بسازید که به پرسش‌ها براساس مکالمه‌های موجود در فضاهای Chat با هوش مصنوعی زایا که با Vertex AI با Gemini ارائه می‌شود پاسخ دهد. برنامه Chat از «میانای برنامه‌سازی کاربردی رویدادهای Google Workspace» به‌علاوه Pub/Sub برای تشخیص و پاسخ دادن به سؤالات پست‌شده در فضاهای Chat در زمان واقعی استفاده می‌کند، حتی وقتی از آن نامبری نشده باشد.

برنامه Chat از همه پیام‌های ارسال‌شده در فضا به‌عنوان منبع داده و پایگاه دانش استفاده می‌کند: وقتی کسی سؤالی می‌پرسد، برنامه Chat پاسخ‌های قبلاً هم‌رسانی‌شده را بررسی می‌کند و سپس یکی از آن‌ها را هم‌رسانی می‌کند. اگر پاسخی پیدا نشود، می‌گوید نمی‌تواند پاسخ دهد. بااستفاده از هوش مصنوعی Gemini، برنامه Google Chat با آموزش مداوم ازطریق مکالمه‌های فضاهایی که به آن اضافه شده است، پایگاه دانش خود را تطبیق می‌دهد و گسترش می‌دهد.

در اینجا نحوه عملکرد برنامه Chat در فضای پشتیبانی و پذیرش کارمند جدید آمده است:

  • با نام بردن از برنامه دستیار هوش مصنوعی، آن را به فضا اضافه می‌کنید.
    شکل ۱. چارلی برنامه Chat دستیار هوش مصنوعی را به فضای Chat اضافه می‌کند.
  • دانا سؤالی می‌پرسد.
    شکل ۲. دانا می‌پرسد آیا شرکت آموزش سخنرانی عمومی ارائه می‌دهد.
  • برنامه Chat دستیار دانش هوش مصنوعی به این سؤال پاسخ می‌دهد.
    شکل ۳. برنامه Chat دستیار دانش هوش مصنوعی با پیام‌واره‌های Vertex AI با Gemini به سؤال دانا براساس سابقه مکالمه فضای Chat پاسخ می‌دهد و سپس پاسخ را هم‌رسانی می‌کند.

پیش‌نیازها

اهداف

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

معماری

نمودار زیر معماری Google Workspace و منابع Google Cloud را که توسط دستیار هوش مصنوعی برنامه Chat استفاده می‌شود نشان می‌دهد.

نمودار معماری برای برنامه Chat دستیار هوش مصنوعی

برنامه Chat دستیار دانش هوش مصنوعی به این صورت کار می‌کند:

  • کاربری برنامه Chat دستیار هوش مصنوعی را به فضای Chat اضافه می‌کند:

    1. برنامه Chat از کاربری که آن را به فضای Chat اضافه کرده است می‌خواهد تا اصالت‌سنجی و صدور مجوز را پیکربندی کند.

    2. برنامه Chat پیام‌های فضا را با فراخوانی روش spaces.messages.list در Chat API واکشی می‌کند و سپس پیام‌های واکشی‌شده را در پایگاه داده Firestore ذخیره می‌کند.

    3. برنامه Chat برای شروع گوش دادن به رویدادهایی مثل پیام‌های موجود در فضا، subscriptions.create روش را در «میانای برنامه‌سازی کاربردی رویدادهای Google Workspace» فرا می‌خواند. نقطه پایانی اعلان اشتراک موضوع Pub/Sub است که از Eventarc برای بازارسال رویداد به برنامه Chat استفاده می‌کند.

    4. برنامه Chat پیام معرفی را در فضا پست می‌کند.

  • کاربری در فضای Chat پیامی پست می‌کند:

    1. برنامه Chat پیام را به‌طور هم‌زمان از موضوع Pub/Sub دریافت می‌کند.

    2. برنامه Chat پیام را به پایگاه داده Firestore اضافه می‌کند.

      اگر کاربری بعداً پیام را ویرایش یا حذف کند، برنامه Chat رویداد به‌روزرسانی‌شده یا حذف‌شده را در زمان واقعی دریافت می‌کند و سپس پیام را در پایگاه داده Firestore به‌روزرسانی یا حذف می‌کند.

    3. برنامه Chat پیام را به Vertex AI با Gemini ارسال می‌کند:

      1. پیام‌واره به Vertex AI با Gemini دستور می‌دهد بررسی کند که آیا پیام شامل سؤال است یا نه. اگر این‌طور باشد، Gemini براساس سابقه پیام فضای Chat که در Firestore نگهداری می‌شود به سؤال پاسخ می‌دهد و سپس برنامه Google Chat پیام را به فضای Chat ارسال می‌کند. اگر این‌طور نیست، پاسخ ندهید.

      2. اگر Vertex AI با Gemini به سؤال پاسخ دهد، برنامه Chat با فراخوانی روش spaces.messages.create در Chat API بااستفاده از اصالت‌سنجی برنامه، پاسخ را پست می‌کند.

        اگر Vertex AI با Gemini نتواند به سؤال پاسخ دهد، برنامه Chat پیامی ارسال می‌کند که در آن گفته می‌شود نمی‌تواند پاسخی برای آن سؤال در سابقه فضای Chat پیدا کند.

  • برنامه Chat اعلانی از «میانای برنامه‌سازی کاربردی رویدادهای Google Workspace» دریافت می‌کند که اشتراک فضای Chat درحال منقضی شدن است:

    1. برنامه Chat با فراخوانی روش subscriptions.patch در Google Workspace Events API، درخواستی برای تمدید اشتراک ارسال می‌کند.
  • برنامه Chat از فضای Chat برداشته می‌شود:

    1. برنامه Chat با فراخوانی روش subscriptions.delete در Google Workspace Events API اشتراک را حذف می‌کند.

    2. برنامه Chat داده‌های فضای Chat را از Firestore حذف می‌کند.

محصولات مورداستفاده برنامه Chat دستیار هوش مصنوعی را مرور کنید

برنامه Chat دستیار هوش مصنوعی از محصولات زیر Google Workspace و Google Cloud استفاده می‌کند:

  • میانای برنامه‌سازی کاربردی Vertex AI با Gemini: پلاتفرم هوش مصنوعی زایا با بهره‌گیری از Gemini. دستیار دانش هوش مصنوعی برنامه گپ از Vertex AI API با Gemini برای تشخیص، درک، و پاسخ به سؤالات کارمندان استفاده می‌کند.
  • میانای برنامه‌سازی کاربردی Chat: میانای برنامه‌سازی کاربردی برای توسعه برنامه‌های Google Chat که رویدادهای تعامل Chat، مثل پیام‌ها، را دریافت و به آن‌ها پاسخ می‌دهند. دستیار هوش مصنوعی برنامه Chat از Chat API برای موارد زیر استفاده می‌کند:
    • رویدادهای تعاملی ارسال‌شده توسط Chat را دریافت و به آن‌ها پاسخ دهید.
    • پیام‌های ارسال‌شده در فضا را فهرست می‌کند.
    • پاسخ‌های سؤالات کاربر را در فضا پست کنید.
    • ویژگی‌هایی را که تعیین می‌کند چگونه در Chat نشان داده شود، مثل نام و تصویر چهرک، پیکربندی کنید.
  • Google Workspace Events API: این میانای برنامه‌سازی کاربردی به شما امکان می‌دهد در رویدادها مشترک شوید و اعلان‌های تغییر را در سراسر برنامه‌های Google Workspace مدیریت کنید. برنامه Chat دستیار هوش مصنوعی دانش از «میانای برنامه‌سازی کاربردی رویدادهای Google Workspace» برای شنیدن پیام‌های پست‌شده در فضای Chat استفاده می‌کند تا بتواند سؤالات را حتی زمانی که از آن نام برده نشده است تشخیص دهد و به آن‌ها پاسخ دهد.
  • Firestore: پایگاه داده سند بدون سرور. دستیار هوش مصنوعی برنامه Chat از Firestore برای ذخیره داده‌های مربوط به پیام‌های ارسال‌شده در فضای Chat استفاده می‌کند.
  • Pub/Sub: ‫Pub/Sub سرویس پیام‌رسانی ناهمزمان و مقیاس‌پذیری است که سرویس‌های تولیدکننده پیام را از سرویس‌های پردازش‌کننده آن پیام‌ها جدا می‌کند. برنامه Chat دستیار دانش هوش مصنوعی از Pub/Sub برای دریافت رویدادهای اشتراک از فضاهای Chat استفاده می‌کند.
  • Eventarc: ‫Eventarc به شما امکان می‌دهد معماری‌های رویدادمحور را بدون نیاز به پیاده‌سازی، سفارشی‌سازی، یا نگهداری زیرساخت زیربنایی بسازید. برنامه Chat دستیار دانش هوش مصنوعی از Eventarc برای مسیردهی رویدادها از Pub/Sub به فضای Chat و «تابع Cloud» که رویدادهای اشتراک را دریافت و پردازش می‌کند استفاده می‌کند.
  • توابع ابری: خدمات محاسباتی بدون سرور سبکی که به شما امکان می‌دهد توابع مستقل و تک‌منظوره‌ای ایجاد کنید که بتوانند بدون نیاز به مدیریت سرور یا محیط زمان اجرا، به رویدادهای تعامل و اشتراک Chat پاسخ دهند. برنامه Chat دستیار دانش هوش مصنوعی از دو «تابع ابری» با نام‌های زیر استفاده می‌کند:
    • app: نقطه پایانی HTTP را میزبانی کنید که Chat رویدادهای تعامل را به آن ارسال می‌کند و به‌عنوان پلاتفرم محاسباتی برای اجرای منطقی که این رویدادها را پردازش و به آن‌ها پاسخ می‌دهد.
    • ‫eventsApp: رویدادهای فضای Chat مثل پیام‌های اشتراک Pub/Sub را دریافت و پردازش می‌کند.
    ‫Cloud Functions از محصولات Google Cloud زیر برای ساختن و میزبانی منابع محاسباتی استفاده می‌کند:
    • Cloud Build: پلاتفرم کاملاً مدیریت‌شده‌ای برای یکپارچه‌سازی، ارائه، و استقرار پیوسته که ساخت‌های خودکارسازی‌شده را اجرا می‌کند.
    • Cloud Run: محیطی کاملاً مدیریت‌شده برای اجرای برنامه‌های محتوی‌سازی‌شده.

آماده کردن محیط

این بخش نحوه ایجاد و پیکربندی پروژه Google Cloud را برای برنامه Chat نشان می‌دهد.

ایجاد پروژه Google Cloud

Google API Console

  1. در «کنسول Google API»، به «منو» > IAM و سرپرست > ایجاد پروژه بروید.

    رفتن به «ایجاد پروژه»

  2. در فیلد نام پروژه، نامی توصیفی برای پروژه خود وارد کنید.

    اختیاری: برای ویرایش شناسه پروژه، روی ویرایش کلیک کنید. شناسه پروژه را نمی‌توان پس‌از ایجاد پروژه تغییر داد، بنابراین شناسه‌ای را انتخاب کنید که در طول عمر پروژه نیازهای شما را برآورده کند.

  3. در فیلد مکان، روی مرور کردن کلیک کنید تا مکان‌های بالقوه برای پروژه‌تان نمایش داده شود. سپس روی انتخاب کلیک کنید.
  4. روی ایجاد کردن کلیک کنید. «کنسول Google API» به صفحه «داشبورد» هدایت می‌شود و پروژه شما ظرف چند دقیقه ایجاد می‌شود.

gcloud CLI

در یکی از محیط‌های توسعه زیر، به Google Cloud CLI (gcloud) دسترسی پیدا کنید:

  • Cloud Shell: برای استفاده از ترمینال آنلاین با gcloud CLI که ازقبل راه‌اندازی شده است، Cloud Shell را فعال کنید.
    فعال کردن Cloud Shell
  • صدف محلی: برای استفاده از محیط توسعه محلی، «رابط خط فرمان gcloud» را نصب و مقداردهی اولیه کنید.
    برای ایجاد پروژه Cloud، از دستور gcloud projects create استفاده کنید:
    gcloud projects create PROJECT_ID
    با تنظیم شناسه برای پروژه‌ای که می‌خواهید ایجاد کنید، PROJECT_ID را جایگزین کنید.

فعال کردن صورت‌حساب برای پروژه Cloud

Google API Console

  1. در «کنسول Google API»، به صورت‌حساب بروید. روی منو > صورت‌حساب > پروژه‌های من کلیک کنید.

    رفتن به «صورت‌حساب برای پروژه‌های من»

  2. در انتخاب سازمان، سازمانی را که با پروژه Google Cloud شما منسوب است انتخاب کنید.
  3. در ردیف پروژه، منو کنش‌ها () را باز کنید، روی تغییر صورت‌حساب کلیک کنید، و حساب Cloud Billing را انتخاب کنید.
  4. روی تنظیم حساب کلیک کنید.

gcloud CLI

  1. برای فهرست کردن حساب‌های صورت‌حساب دردسترس، این دستور را اجرا کنید:
    gcloud billing accounts list
  2. پیوند دادن حساب صورت‌حساب با پروژه Google Cloud:
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    جایگزین کردن موارد زیر:

    • ‫PROJECT_ID شناسه پروژه برای پروژه Cloud است که می‌خواهید صورت‌حساب را برای آن فعال کنید.
    • ‫BILLING_ACCOUNT_ID شناسه حساب صورت‌حساب برای پیوند دادن با پروژه Google Cloud است.

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

Google API Console

  1. در «کنسول Google API»، «میانای برنامه‌سازی کاربردی Google Chat»، «میانای برنامه‌سازی کاربردی Vertex AI»، «میانای برنامه‌سازی کاربردی Cloud Functions»، «میانای برنامه‌سازی کاربردی Firestore»، «میانای برنامه‌سازی کاربردی Cloud Build»، «میانای برنامه‌سازی کاربردی Pub/Sub»، «میانای برنامه‌سازی کاربردی Google Workspace Events»، «میانای برنامه‌سازی کاربردی Eventarc»، و «میانای برنامه‌سازی کاربردی Cloud Run Admin» را فعال کنید.

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

  2. تأیید کنید که میاناهای برنامه‌سازی کاربردی را در پروژه Cloud صحیح فعال می‌کنید، سپس روی بعدی کلیک کنید.

  3. تأیید کنید که درحال فعال کردن «میاناهای برنامه‌سازی کاربردی» صحیح هستید، سپس روی فعال کردن کلیک کنید.

gcloud CLI

  1. درصورت لزوم، پروژه Cloud فعلی را روی پروژه‌ای که ایجاد کرده‌اید تنظیم کنید:

    gcloud config set project PROJECT_ID

    PROJECT_ID را با شناسه پروژه پروژه Cloud که ایجاد کرده‌اید جایگزین کنید.

  2. میانای برنامه‌سازی کاربردی Google Chat، میانای برنامه‌سازی کاربردی Vertex AI، میانای برنامه‌سازی کاربردی Cloud Functions، میانای برنامه‌سازی کاربردی Firestore، میانای برنامه‌سازی کاربردی Cloud Build، میانای برنامه‌سازی کاربردی Pub/Sub، میانای برنامه‌سازی کاربردی رویدادهای Google Workspace، میانای برنامه‌سازی کاربردی Eventarc، و میانای برنامه‌سازی کاربردی Cloud Run Admin را فعال کنید:

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

راه‌اندازی اصالت‌سنجی و مجوز

اصالت‌سنجی و صدور مجوز به برنامه Chat اجازه می‌دهد به منابع در Google Workspace و Google Cloud دسترسی داشته باشد.

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

  1. در «کنسول Google API»، به «منو» > پلاتفرم Google Auth > نمانام‌سازی بروید.

    رفتن به نمانام‌سازی

  2. اگر قبلاً پلاتفرم Google Auth را پیکربندی کرده‌اید، می‌توانید تنظیمات «صفحه رضایت OAuth» زیر را در نمانام‌سازی، مخاطب، و دسترسی به داده‌ها پیکربندی کنید. اگر پیامی با این مضمون دیدید: پلاتفرم «احراز هویت Google» هنوز پیکربندی نشده است، روی شروع به کار کلیک کنید:

    1. در بخش اطلاعات برنامه، در نام برنامه، AI knowledge assistant را تایپ کنید.
    2. در ایمیل پشتیبانی کاربر، نشانی ایمیل خودتان یا گروه Google مناسبی را انتخاب کنید.
    3. روی بعدی کلیک کنید.
    4. در بخش مخاطبان، داخلی را انتخاب کنید. اگر نمی‌توانید داخلی را انتخاب کنید، خارجی را انتخاب کنید.
    5. روی بعدی کلیک کنید.
    6. در بخش اطلاعات تماس، نشانی ایمیلی وارد کنید که ازطریق آن بتوانید از هرگونه تغییر در پروژه‌تان مطلع شوید.
    7. روی بعدی کلیک کنید.
    8. در بخش تکمیل، خط‌مشی داده‌های کاربر سرویس‌های Google API را مرور کنید و درصورت موافقت، با «خط‌مشی داده‌های کاربر سرویس‌های Google API» موافقم را انتخاب کنید.
    9. روی ادامه کلیک کنید.
    10. روی ایجاد کردن کلیک کنید.
    11. اگر خارجی را برای نوع کاربر انتخاب کردید، کاربران آزمایش را اضافه کنید:
      1. روی مخاطبان کلیک کنید.
      2. در بخش کاربران آزمایش، روی افزودن کاربران کلیک کنید.
      3. نشانی ایمیل خود و سایر کاربران آزمایش مجاز را وارد کنید، سپس روی ذخیره کلیک کنید.
  3. روی دسترسی به داده‌ها > افزودن یا برداشتن محدوده‌ها کلیک کنید. پانلی با فهرستی از محدوده‌ها برای هر API که در پروژه Google Cloud فعال کرده‌اید ظاهر می‌شود.

    1. در بخش افزودن دستی دامنه‌ها، دامنه زیر را جای‌گذاری کنید:

      • https://www.googleapis.com/auth/chat.messages
    2. روی افزودن به جدول کلیک کنید.

    3. روی به‌روزرسانی کلیک کنید.

    4. پس‌از انتخاب محدوده‌های موردنیاز برنامه‌تان، در صفحه دسترسی به داده‌ها، روی ذخیره کلیک کنید.

ایجاد اعتبارنامه‌های شناسه کارخواه OAuth

  1. در «کنسول Google API»، به منو > APIs و سرویس‌ها > اطلاعات اعتباری بروید.

    رفتن به «اطلاعات اعتباری»

  2. روی ایجاد اعتبارنامه‌ها > شناسه کارخواه OAuth کلیک کنید.

  3. روی نوع برنامه > برنامه وب کلیک کنید.

  4. در فیلد نام، نامی برای اطلاعات اعتباری تایپ کنید. این نام فقط در «کنسول Google API» نشان داده می‌شود.

  5. در بخش شناسه‌های وب هدایت مجاز، روی افزودن شناسه وب کلیک کنید.

  6. در شناسه‌های URI 1، موارد زیر را تایپ کنید:

    https://REGION-PROJECT_ID.cloudfunctions.net/app/oauth2
    

    جایگزین کردن موارد زیر:

    • ‫REGION: منطقه «عملکرد ابری»، مثل us-central1. بعداً، وقتی دو «تابع ابری» را ایجاد می‌کنید، باید منطقه آن‌ها را روی این مقدار تنظیم کنید.
    • ‫PROJECT_ID: شناسه پروژه پروژه Cloud که ایجاد کرده‌اید.
  7. روی ایجاد کردن کلیک کنید.

  8. از پنجره کارخواه OAuth ایجاد شد، روی بارگیری JSON کلیک کنید.

  9. فایل بارگیری‌شده را به‌عنوان credentials.json ذخیره کنید. بعداً، وقتی دو «کارکرد ابری» را ایجاد می‌کنید، فایل credentials.json را در هر استقرار اضافه می‌کنید.

  10. روی تأیید کلیک کنید.

ایجاد موضوع Pub/Sub

موضوع Pub/Sub با میانای برنامه‌سازی کاربردی رویدادهای Google Workspace کار می‌کند تا در رویدادهای فضای Chat مانند پیام‌ها مشترک شود و برنامه Chat را به‌طور هم‌زمان مطلع کند.

نحوه ایجاد موضوع Pub/Sub در اینجا آمده است:

Google API Console

  1. در «کنسول Google API»، به منو > Pub/Sub بروید.

    رفتن به Pub/Sub

  2. روی ایجاد موضوع کلیک کنید.

  3. در شناسه موضوع، events-api را تایپ کنید.

  4. افزودن اشتراک پیش‌فرض را لغو انتخاب کنید.

  5. در بخش رمزگذاری، کلید رمزگذاری تحت مدیریت Google را انتخاب کنید.

  6. روی ایجاد کردن کلیک کنید. موضوع Pub/Sub ظاهر می‌شود.

  7. برای اینکه این موضوع Pub/Sub و «میانای برنامه‌سازی کاربردی رویدادهای Google Workspace» با هم کار کنند، به کاربر Chat IAM اجازه دهید در موضوع Pub/Sub پست کند:

    1. در پانل events-api، در بخش اجازه‌ها، روی افزودن اصلی کلیک کنید.

    2. در بخش افزودن مدیران، در مدیران جدید، chat-api-push@system.gserviceaccount.com را تایپ کنید.

    3. در بخش اختصاص نقش‌ها، در انتخاب نقش، Pub/Sub > ناشر Pub/Sub را انتخاب کنید.

    4. روی ذخیره کلیک کنید.

gcloud CLI

  1. موضوع Pub/Sub را با شناسه موضوع events-api ایجاد کنید:

    gcloud pubsub topics create events-api
  2. به کاربر Chat IAM اجازه دهید در موضوع Pub/Sub پست کند:

    gcloud pubsub topics add-iam-policy-binding events-api \
    --member='serviceAccount:chat-api-push@system.gserviceaccount.com' \
    --role='roles/pubsub.publisher'

ایجاد پایگاه داده Firestore

پایگاه داده Firestore داده‌ها را از فضاهای Chat، مثل پیام‌ها، حفظ و بازیابی می‌کند. مدل داده را تعریف نمی‌کنید، که به‌طور ضمنی در کد نمونه توسط فایل‌های model/message.js و services/firestore-service.js تنظیم می‌شود.

پایگاه داده برنامه «دستیار هوشواره‌ای Chat» از مدل داده NoSQL مبتنی بر سند سازمان‌دهی‌شده در مجموعه استفاده می‌کند. برای کسب اطلاعات بیشتر، به مدل داده Firestore مراجعه کنید.

نمودار زیر نمای کلی مدل داده برنامه Chat دستیار دانش هوش مصنوعی است:

مدل داده پایگاه داده Firestore.

ریشه شامل دو مجموعه است:

  1. ‫spaces، که در آن هر سند نشان‌دهنده فضای Chat است که برنامه Chat به آن اضافه شده است. هر پیام با سندی در زیرمجموعه messages نشان داده می‌شود.

  2. ‫users، که در آن هر سند نشان‌دهنده کاربری است که برنامه Chat را به فضای Chat اضافه کرده است.

مشاهده تعریف‌های مجموعه، سند، و فیلد

spaces

فضای Chat که شامل برنامه Chat دستیار هوش مصنوعی است.

فیلدها
Document IDString
شناسه یکتای فضای خاص. بخشی از نام منبع فضا در Chat API.
messagesSubcollection of Documents (messages)
پیام‌های ارسال‌شده در فضای Chat. با Document ID یک message در Firebase مطابقت دارد.
spaceNameString
نام منحصربه‌فرد فضا در Chat API. با نام منبع فضا در Chat API مطابقت دارد.

messages

پیام‌های ارسال‌شده در فضای Chat.

فیلدها
Document IDString
شناسه یکتای یک پیام خاص.
nameString
نام منحصربه‌فرد پیام در Chat API. با نام منبع پیام در Chat API مطابقت دارد.
textString
متن اصلی پیام.
timeString (Timestamp format)
زمانی که پیام ایجاد شده است.

users

کاربرانی که برنامه Chat دستیار هوش مصنوعی را به فضای Chat اضافه کرده‌اند.

فیلدها
Document IDString
شناسه یکتای کاربر خاص.
accessTokenString
از کد دسترسی اعطاشده درطول مجوز کاربر OAuth 2.0 برای فراخوانی میاناهای برنامه‌سازی کاربردی Google Workspace استفاده می‌شود.
refreshTokenString
ژتون بازآوری که درطول مجوز کاربر OAuth 2.0 اعطا شده است.

در اینجا نحوه ایجاد پایگاه داده Firestore آمده است:

Google API Console

  1. در «کنسول Google API»، به منو > Firestore بروید.

    رفتن به Firestore

  2. روی ایجاد پایگاه داده کلیک کنید.

  3. از انتخاب حالت Firestore، روی حالت بومی کلیک کنید.

  4. روی ادامه کلیک کنید.

  5. پیکربندی پایگاه داده:

    1. در نام‌گذاری پایگاه داده، شناسه پایگاه داده را روی (default) بگذارید.

    2. در بخش نوع مکان، منطقه را انتخاب کنید.

    3. در منطقه، منطقه‌ای را برای پایگاه داده‌تان مشخص کنید، مثلاً us-central1. برای بهترین عملکرد، مکان یکسان یا نزدیکی را با «توابع ابری» برنامه Chat انتخاب کنید.

  6. روی ایجاد پایگاه داده کلیک کنید.

gcloud CLI

  • ایجاد پایگاه داده Firestore در حالت «بومی»:

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

    LOCATION را با نام منطقه Firestore، مانند us-central1، جایگزین کنید. برای بهترین عملکرد، مکان یکسان یا نزدیکی را با «توابع ابری» برنامه Chat انتخاب کنید.

ایجاد و استقرار برنامه Chat

اکنون که پروژه Google Cloud شما ایجاد و پیکربندی شده است، آماده‌اید تا برنامه Chat را بسازید و مستقر کنید. در این بخش، کارهای زیر را انجام می‌دهید:

  1. دو Cloud Functions ایجاد و مستقر کنید. یکی برای پاسخ دادن به رویدادهای تعامل Chat و یکی برای پاسخ دادن به رویدادهای Pub/Sub.
  2. برنامه Chat را در صفحه پیکربندی Google Chat API ایجاد و پیاده‌سازی کنید.

ایجاد و مستقر کردن Cloud Functions

در این بخش، دو Cloud Functions با نام‌های زیر ایجاد و مستقر می‌کنید:

  • app: کد برنامه Chat را که به رویدادهای دریافتی از Chat به‌عنوان درخواست‌های HTTP پاسخ می‌دهد میزبانی و اجرا می‌کند.
  • ‫eventsApp: رویدادهای فضای Chat مثل پیام‌های Pub/Sub را دریافت و پردازش می‌کند.

این Cloud Functions در مجموع منطق برنامه Chat دستیار هوش مصنوعی را تشکیل می‌دهند.

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

مشاهده در GitHub

ایجاد و مستقر کردن app

Google API Console

  1. کد را از GitHub به‌صورت فایل zip بارگیری کنید.

    بارگیری فایل فشرده

  2. فایل zip بارگیری‌شده را استخراج کنید.

    پوشه استخراج‌شده حاوی کل مخزن نمونه‌های Google Workspace است.

  3. در پوشه استخراج‌شده، به add-ons-samples-main/node/chat/ai-knowledge-assistant فهرست راهنما پیمایش کنید.

  4. در دایرکتوری add-ons-samples/node/chat/ai-knowledge-assistant، فایل credentials.json را که هنگام ایجاد کردن اطلاعات اعتباری شناسه کارخواه OAuth برای اصالت‌سنجی و صدور مجوز بارگیری کردید اضافه کنید.

  5. محتوای پوشه ai-knowledge-assistant را در فایل zip فشرده کن.

    فایل zip باید حاوی فایل‌ها و پوشه‌های زیر باشد:

    • .gcloudignore
    • .gitignore
    • README.md
    • deploy.sh
    • env.js
    • events_index.js
    • http_index.js
    • index.js
    • credentials.json
    • package-lock.json
    • package.json
    • controllers/
    • model/
    • services/
    • test/
  6. در «کنسول Google API»، به منو > توابع Cloud بروید.

    رفتن به Cloud Functions

    مطمئن شوید که پروژه Google Cloud برای برنامه Chat شما انتخاب شده باشد.

  7. روی ایجاد تابع کلیک کنید.

  8. در صفحه ایجاد تابع، تابع خود را راه‌اندازی کنید:

    1. در محیط، تابع Cloud Run را انتخاب کنید.
    2. در نام تابع، app را تایپ کنید.
    3. در منطقه، منطقه‌ای مثل us-central1 را انتخاب کنید. این منطقه باید با منطقه‌ای که در نشانی وب هدایت مجاز هنگام ایجاد اعتبارنامه‌های شناسه کارخواه OAuth برای اصالت‌سنجی و صدور مجوز تنظیم کرده‌اید مطابقت داشته باشد.
    4. در نوع راه‌انداز، HTTPS را انتخاب کنید.
    5. در بخش اصالت‌سنجی، اجازه دادن به فراخوانی‌های اصالت‌سنجی‌نشده را انتخاب کنید.
    6. روی بعدی کلیک کنید.
  9. در زمان اجرا، Node.js 20 را انتخاب کنید.

  10. در نقطه ورودی، نوشتار پیش‌فرض را حذف کنید و app را وارد کنید.

  11. در کد منبع، بارگذاری فشرده را انتخاب کنید.

  12. در مخزن مقصد، مخزنی را ایجاد کنید یا انتخاب کنید:

    1. روی مرور کردن کلیک کنید.
    2. یک مخزن انتخاب کنید.
    3. روی انتخاب کلیک کنید.

    ‫Google Cloud فایل zip را در این باکت بارگذاری می‌کند و فایل‌های مؤلفه را استخراج می‌کند. سپس Cloud Functions فایل‌های عنصر را در Cloud Function کپی می‌کند.

  13. در فایل Zip، فایل zip را که از GitHub بارگیری کرده‌اید، استخراج کرده‌اید، و دوباره فشرده کرده‌اید بارگذاری کنید:

    1. روی مرور کردن کلیک کنید.
    2. به فایل zip پیمایش کنید و آن را انتخاب کنید.
    3. روی باز کردن کلیک کنید.
  14. روی استقرار کلیک کنید.

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

  15. کد نمونه را ویرایش کنید تا ثابت‌ها را تنظیم کنید:

    1. در صفحه جزئیات «کارکرد ابری»، روی ویرایش کلیک کنید.
    2. روی بعدی کلیک کنید.
    3. در کد منبع، ویرایشگر به‌خط را انتخاب کنید.
    4. در ویرایشگر مستقیم، فایل env.js را باز و ویرایش کنید:
      1. مقدار project را روی شناسه پروژه Cloud خود تنظیم کنید.
      2. مقدار location را روی منطقه «تابع ابری» ، مثل us-central1، تنظیم کنید.
  16. روی استقرار کلیک کنید.

gcloud CLI

  1. کد را از GitHub شبیه‌سازی کنید:

    git clone https://github.com/googleworkspace/add-ons-samples.git
  2. به دایرکتوری که کد این «برنامه Chat» دستیار هوش مصنوعی در آن قرار دارد بروید:

    cd add-ons-samples/node/chat/ai-knowledge-assistant
  3. در دایرکتوری add-ons-samples/node/chat/ai-knowledge-assistant، فایل credentials.json را که هنگام ایجاد کردن اطلاعات اعتباری شناسه کارخواه OAuth برای اصالت‌سنجی و صدور مجوز بارگیری کردید اضافه کنید.

  4. برای تنظیم متغیرهای محیطی، فایل env.js را ویرایش کنید:

    1. مقدار project را روی شناسه پروژه Cloud خود تنظیم کنید.
    2. مقدار location را روی منطقه Cloud Function تنظیم کنید، مثلاً us-central1.
  5. «تابع ابری» را در Google Cloud مستقر کنید:

    gcloud functions deploy app \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=app \
    --trigger-http \
    --allow-unauthenticated

    REGION را با مقدار منطقه «تابع ابری» جایگزین کنید تا با مقدار تنظیم‌شده در فایل env.js، مثل us-central1، مطابقت داشته باشد.

ایجاد و مستقر کردن eventsApp

Google API Console

  1. در «کنسول Google API»، به منو > توابع Cloud بروید.

    رفتن به Cloud Functions

    مطمئن شوید که پروژه Google Cloud برای برنامه Chat شما انتخاب شده باشد.

  2. روی ایجاد تابع کلیک کنید.

  3. در صفحه ایجاد تابع، تابع خود را راه‌اندازی کنید:

    1. در محیط، تابع Cloud Run را انتخاب کنید.
    2. در نام تابع، eventsApp را تایپ کنید.
    3. در منطقه، منطقه‌ای مثل us-central1 را انتخاب کنید. این منطقه باید با منطقه‌ای که در نشانی وب هدایت مجاز هنگام ایجاد اعتبارنامه‌های شناسه کارخواه OAuth برای اصالت‌سنجی و صدور مجوز تنظیم کرده‌اید مطابقت داشته باشد.
    4. در نوع راه‌انداز، Cloud Pub/Sub را انتخاب کنید.
    5. در موضوع Cloud Pub/Sub، نام موضوع Pub/Sub را که ایجاد کرده‌اید انتخاب کنید. این نام قالب projects/PROJECT/topics/events-api را دارد که در آن PROJECT شناسه پروژه Cloud شما است.
    6. اگر پیامی را دیدید که با Service account(s) might not have enough permissions to deploy the function with the selected trigger. شروع می‌شود، روی اعطای همه کلیک کنید.
    7. روی بعدی کلیک کنید.
  4. در زمان اجرا، Node.js 20 را انتخاب کنید.

  5. در نقطه ورودی، نوشتار پیش‌فرض را حذف کنید و eventsApp را وارد کنید.

  6. در کد منبع، فشرده‌سازی از Cloud Storage را انتخاب کنید.

  7. در مکان Cloud Storage، روی مرور کردن کلیک کنید.

  8. هنگام ایجاد app Cloud Function، سطلی را که فایل zip را در آن بارگذاری کردید انتخاب کنید.

  9. روی فایل zip که بارگذاری کرده‌اید کلیک کنید.

  10. روی انتخاب کلیک کنید.

  11. روی استقرار کلیک کنید.

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

  12. کد نمونه را ویرایش کنید تا ثابت‌ها را تنظیم کنید:

    1. در صفحه جزئیات «کارکرد ابری»، روی ویرایش کلیک کنید.
    2. روی بعدی کلیک کنید.
    3. در کد منبع، ویرایشگر به‌خط را انتخاب کنید.
    4. در ویرایشگر مستقیم، فایل env.js را باز و ویرایش کنید:
      1. مقدار project را روی شناسه پروژه Cloud خود تنظیم کنید.
      2. مقدار location را روی منطقه «تابع ابری» تنظیم کنید، مثلاً us-central1.
  13. روی استقرار کلیک کنید.

gcloud CLI

  1. در gcloud CLI، اگر در این دایرکتوری نیستید، به دایرکتوری که کد این دستیار هوش مصنوعی برنامه Chat را دربرمی‌گیرد بروید. این برنامه را قبلاً از GitHub شبیه‌سازی کرده‌اید:

    cd add-ons-samples/node/chat/ai-knowledge-assistant
  2. در دایرکتوری add-ons-samples/node/chat/ai-knowledge-assistant، فایل credentials.json را که هنگام ایجاد کردن اطلاعات اعتباری شناسه کارخواه OAuth برای اصالت‌سنجی و صدور مجوز بارگیری کردید اضافه کنید.

  3. برای تنظیم متغیرهای محیطی، فایل env.js را ویرایش کنید:

    1. مقدار project را روی شناسه پروژه Cloud خود تنظیم کنید.
    2. مقدار location را روی منطقه «تابع ابری» تنظیم کنید، مثلاً us-central1.
  4. «تابع ابری» را در Google Cloud مستقر کنید:

    gcloud functions deploy eventsApp \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=eventsApp \
    --trigger-topic=events-api

    REGION را با مقدار منطقه «تابع ابری» جایگزین کنید تا با مقدار تنظیم‌شده در فایل env.js، مثل us-central1، مطابقت داشته باشد.

نشانی وب راه‌انداز app Cloud Function را کپی کنید

وقتی برنامه Chat را در «کنسول Google API» پیکربندی می‌کنید، نشانی وب راه‌انداز app Cloud Function در بخش بعدی جای‌گذاری می‌کنید.

Google API Console

  1. در «کنسول Google API»، به منو > توابع Cloud بروید.

    رفتن به Cloud Functions

  2. در ستون نام فهرست «توابع ابری»، روی app کلیک کنید.

  3. روی راه‌انداز کلیک کنید.

  4. نشانی وب را کپی کنید.

gcloud CLI

  1. «تابع ابری» app را توصیف کنید:

    gcloud functions describe app
  2. دارایی url را کپی کنید.

پیکربندی برنامه Chat در «کنسول Google API»

این بخش نحوه پیکربندی Chat API در «کنسول Google API» را با اطلاعات مربوط به برنامه Chat شما نشان می‌دهد، ازجمله نام برنامه Chat و نشانی وب راه‌انداز «عملکرد ابری» برنامه Chat که رویدادهای تعامل Chat را به آن ارسال می‌کند.

  1. در «کنسول Google API»، روی منو > APIs و سرویس‌ها > APIs و سرویس‌های فعال > Google Chat API > پیکربندی کلیک کنید.

    رفتن به پیکربندی Chat API

  2. در نام برنامه، AI knowledge assistant را تایپ کنید.

  3. در نشانی وب چهرک، https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg را تایپ کنید.

  4. در شرح، Answers questions with AI را تایپ کنید.

  5. کلید فعال کردن ویژگی‌های تعاملی را به حالت روشن تغییر دهید.

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

  7. در بخش تنظیمات اتصال، نشانی وب نقطه پایان HTTP را انتخاب کنید.

  8. ایمیل حساب سرویس را کپی کنید. وقتی برنامه Google Chat خود را برای فراخواندن تابع مجاز می‌کنید، به این ایمیل نیاز دارید.

  9. در بخش محرک‌ها، گزینه استفاده از نشانی وب نقطه پایان HTTP مشترک برای همه محرک‌ها را انتخاب کنید.

  10. در نشانی وب نقطه پایان HTTP، نشانی وب را برای راه‌انداز «تابع ابری» app با قالب https://REGION-PROJECT_ID.cloudfunctions.net/app جایی‌که REGION منطقه «تابع ابری» است، مثل us-central1 و PROJECT_ID شناسه پروژه پروژه ابری است که ایجاد کرده‌اید، جای‌گذاری کنید.

  11. در بخش رؤیت‌پذیری، این برنامه Google Chat را برای افراد و گروه‌های خاصی در دامنه‌تان دردسترس قرار دهید و نشانی ایمیلتان را وارد کنید.

  12. درصورت تمایل، در بخش گزارش‌ها، گزینه خطاهای گزارش به «گزارش‌گیری» را انتخاب کنید.

  13. روی ذخیره کلیک کنید. پیام ذخیره شدن پیکربندی نشان داده می‌شود.

برنامه Chat آماده دریافت و پاسخ دادن به پیام‌ها در Chat است.

آزمایش کردن برنامه Chat

برنامه Chat دستیار دانش هوش مصنوعی را در فضای Chat با پیام‌ها با پرسیدن سؤالاتی که برنامه Chat دستیار دانش هوش مصنوعی می‌تواند پاسخ دهد آزمایش کنید.

در اینجا چند روش برای آزمایش دستیار هوش مصنوعی برنامه Chat ارائه شده است:

  • برنامه Chat دستیار هوش مصنوعی را به فضای Chat موجود اضافه کنید و سؤالاتی بپرسید که مربوط به آن فضا باشد.
  • فضای Chat بسازید و چند پیام پست کنید تا به‌عنوان منبع داده استفاده شود. پیام‌ها می‌توانند از Gemini با پیام‌واره‌ای مثل Answer 20 common onboarding questions employees ask their teams. یا چند پاراگراف از راهنمای توسعه با نمای کلی Chat منبع‌یابی شوند و سپس درباره آن سؤال بپرسید.

برای این آموزش گام‌به‌گام، بیایید فضای Chat ایجاد کنیم و چند پاراگراف از راهنمای توسعه با نمای کلی Chat را جای‌گذاری کنیم.

  1. ‫Google Chat را باز کنید.

    رفتن به Google Chat

  2. ایجاد فضای Chat:

    1. روی گپ جدید > ایجاد فضا کلیک کنید.

    2. در نام فضا، Testing AI knowledge assistant app را تایپ کنید.

    3. در بخش هدف این فضا چیست؟، همکاری را انتخاب کنید.

    4. در بخش تنظیمات دسترسی، انتخاب کنید چه کسانی می‌توانند به فضا دسترسی داشته باشند.

    5. روی ایجاد کردن کلیک کنید.

  3. پیام‌هایی را اضافه کنید تا به‌عنوان منبع داده استفاده شود:

    1. در مرورگر وب، به راهنمای توسعه با نمای کلی Chat بروید.

    2. محتوای راهنما را کپی کنید و در فضای Chat ایجادشده جای‌گذاری کنید.

  4. برنامه Chat دستیار هوشواره‌ای دانش را اضافه کنید:

    1. در نوار نوشتن پیام، @AI knowledge assistant را تایپ کنید و در منو پیشنهاد که ظاهر می‌شود، برنامه Chat دستیار هوش مصنوعی دانش را انتخاب کنید و enter را فشار دهید.

    2. پیامی ظاهر می‌شود که می‌پرسد آیا می‌خواهید دستیار هوش مصنوعی برنامه Chat را به فضا اضافه کنید. روی افزودن به فضا کلیک کنید.

    3. اگر اولین‌بار است که برنامه Chat را به فضایی اضافه می‌کنید، باید اصالت‌سنجی و مجوز را برای برنامه Chat پیکربندی کنید:

      1. روی پیکربندی کلیک کنید.
      2. پنجره یا برگه مرورگر جدیدی باز می‌شود و از شما می‌خواهد «حساب Google» انتخاب کنید. حسابی را که با آن آزمایش می‌کنید انتخاب کنید.
      3. اجازه‌هایی را که برنامه Chat دستیار هوش مصنوعی دانش درخواست می‌کند مرور کنید. برای اعطای این اجازه، روی اجازه دادن کلیک کنید.
      4. پیامی با عنوان You may close this page now. نشان داده می‌شود. پنجره یا برگه مرورگر را ببندید و به فضای Chat برگردید.
  5. یک سؤال بپرسید:

    1. در نوار نوشتن پیام، سؤالی مانند What are Google Chat apps? تایپ کنید

    2. برنامه Chat دستیار هوش مصنوعی به سؤالات پاسخ می‌دهد.

ملاحظات، انتخاب‌های معماری جایگزین، و مراحل بعدی

این بخش روش‌های دیگری را که می‌توان برنامه Chat دستیار هوش مصنوعی را ساخت مرور می‌کند.

‫Firestore،‏ Cloud Storage، یا فراخوانی «فهرست پیام‌ها» در Chat API

این آموزش توصیه می‌کند داده‌های فضای Chat مثل پیام‌ها را در پایگاه داده Firestore ذخیره کنید زیرا عملکرد را در مقایسه با فراخوانی روش list در منبع Message با Chat API هر بار که برنامه Chat به سؤالی پاسخ می‌دهد بهبود می‌بخشد. علاوه‌براین، تماس مکرر با list messages می‌تواند باعث شود برنامه Chat به محدودیت‌های سهمیه میانای برنامه‌سازی کاربردی برسد.

بااین‌حال، اگر سابقه مکالمه فضای Chat خیلی طولانی شود، استفاده از Firestore می‌تواند پرهزینه شود.

Cloud Storage جایگزینی برای Firestore است. هر فضایی که برنامه Chat دستیار هوش مصنوعی در آن فعال است شیء مخصوص به خود را دارد و هر شیء فایل نوشتاری است که حاوی همه پیام‌های فضا است. مزیت این رویکرد این است که محتوای کامل فایل نوشتاری را می‌توان به‌طور هم‌زمان به Vertex AI با Gemini ارائه داد، اما عیب آن این است که به‌روزرسانی سابقه مکالمه کار بیشتری می‌برد زیرا نمی‌توانید به شیء در «فضای ذخیره‌سازی ابری» پیوست کنید، فقط می‌توانید آن را جایگزین کنید. اگر به‌طور منظم سابقه پیام را به‌روز می‌کنید، این رویکرد منطقی نیست، اما اگر سابقه پیام را به‌صورت دسته‌ای و دوره‌ای، مثلاً یک بار در هفته، به‌روز می‌کنید، انتخاب خوبی خواهد بود.

عیب‌یابی

وقتی برنامه یا کارت Google Chat خطایی برمی‌گرداند، میانای Chat پیامی را نشان می‌دهد که می‌گوید «مشکلی پیش آمد». یا «نمی‌توانیم درخواستتان را پردازش کنیم.» گاهی‌اوقات «میانای کاربری Chat» هیچ پیام خطایی نمایش نمی‌دهد، اما برنامه Chat یا کارت نتیجه غیرمنتظره‌ای تولید می‌کند؛ برای مثال، ممکن است پیام کارت ظاهر نشود.

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

مرتب‌سازی

برای اینکه هزینه منابع استفاده‌شده در این آموزش به حساب Google Cloud شما اضافه نشود، توصیه می‌کنیم پروژه Cloud را حذف کنید.

  1. در «کنسول Google API»، به صفحه مدیریت منابع بروید. روی منو > IAM و سرپرست > مدیریت منابع کلیک کنید.

    به «مدیر منابع» بروید

  2. در فهرست پروژه، پروژه‌ای را که می‌خواهید حذف کنید انتخاب کنید و سپس روی حذف کلیک کنید.
  3. در چارگوش گفتگو، شناسه پروژه را تایپ کنید و سپس روی خاموش کردن کلیک کنید تا پروژه حذف شود.