با برنامه Gemini AI Chat به سؤالات بر اساس مکالمات چت پاسخ دهید

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

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

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

  • ذکر برنامه دستیار دانش هوش مصنوعی آن را به یک فضا اضافه می کند.
    شکل 1. چارلی برنامه چت دستیار دانش هوش مصنوعی را به فضای چت اضافه می کند.
  • دانا یه سوال میپرسه
    شکل 2. دانا می پرسد که آیا شرکت آموزش سخنرانی عمومی ارائه می دهد یا خیر.
  • برنامه چت دستیار دانش هوش مصنوعی به این سوال پاسخ می دهد.
    شکل 3. برنامه چت دستیار دانش هوش مصنوعی از Vertex AI با Gemini می خواهد تا بر اساس تاریخچه مکالمه فضای چت به سوال دانا پاسخ دهد و سپس پاسخ را به اشتراک بگذارد.

پیش نیازها

اهداف

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

معماری

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

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

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

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

    1. برنامه چت از کاربری که آن را به فضای چت اضافه کرده است می خواهد تا احراز هویت و مجوز را پیکربندی کند.

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

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

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

  • یک کاربر در فضای چت پیامی را ارسال می کند:

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

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

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

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

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

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

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

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

  • برنامه Chat یک اعلان چرخه حیات از Google Workspace Events API دریافت می‌کند مبنی بر اینکه اشتراک فضای گپ در شرف اتمام است:

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

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

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

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

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

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

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

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

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

کنسول Google Cloud

  1. در کنسول Google Cloud، به منو > IAM & Admin > ایجاد پروژه بروید.

    به Create a Project بروید

  2. در قسمت Project Name یک نام توصیفی برای پروژه خود وارد کنید.

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

  3. در قسمت Location ، روی Browse کلیک کنید تا مکان های احتمالی پروژه شما نمایش داده شود. سپس، روی انتخاب کلیک کنید.
  4. روی ایجاد کلیک کنید. کنسول Google Cloud به صفحه داشبورد می رود و پروژه شما در عرض چند دقیقه ایجاد می شود.

gcloud CLI

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

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

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

کنسول Google Cloud

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

    به Billing for My Projects بروید

  2. در انتخاب سازمان ، سازمان مرتبط با پروژه Google Cloud خود را انتخاب کنید.
  3. در ردیف پروژه، منوی Actions ( ) را باز کنید، روی Change billing کلیک کنید و حساب 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 است.

API ها را فعال کنید

کنسول Google Cloud

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

    API ها را فعال کنید

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

  3. تأیید کنید که API های صحیح را فعال می کنید، سپس روی فعال کردن کلیک کنید.

gcloud CLI

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

    gcloud config set project PROJECT_ID
    

    PROJECT_ID با Project ID پروژه Cloud که ایجاد کردید جایگزین کنید.

  2. Google Chat API، Vertex AI API، Cloud Functions API، Firestore API، Cloud Build API، Pub/Sub API، Google Workspace Events API، Eventarc API و Cloud Run Admin API را فعال کنید:

    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 Cloud، به منو > APIs & Services > صفحه رضایت OAuth بروید.

    به صفحه رضایت OAuth بروید

  2. در قسمت User type ، Internal را انتخاب کنید، سپس روی Create کلیک کنید.

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

  4. در ایمیل پشتیبانی کاربر ، آدرس ایمیل یا یک گروه Google مناسب را انتخاب کنید.

  5. در قسمت اطلاعات تماس برنامه‌نویس ، آدرس ایمیل خود را وارد کنید.

  6. روی ذخیره و ادامه کلیک کنید.

  7. روی Add or Remove Scopes کلیک کنید. یک پانل با لیستی از محدوده‌ها برای هر API که در پروژه Cloud خود فعال کرده‌اید ظاهر می‌شود.

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

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

  10. روی Update کلیک کنید.

  11. روی ذخیره و ادامه کلیک کنید.

  12. خلاصه ثبت برنامه را مرور کنید، سپس روی بازگشت به داشبورد کلیک کنید.

شناسه مشتری OAuth ایجاد کنید

  1. در کنسول Google Cloud، به منو > APIs & Services > Credentials بروید.

    به Credentials بروید

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

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

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

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

  6. در URIs 1 ، موارد زیر را تایپ کنید:

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

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

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

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

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

  10. روی OK کلیک کنید.

موضوع Pub/Sub را ایجاد کنید

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

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

کنسول Google Cloud

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

    به Pub/Sub بروید

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

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

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

  5. در بخش رمزگذاری ، کلید رمزگذاری مدیریت شده توسط Google را انتخاب کنید.

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

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

    1. در پانل event-api ، در زیر PERMISSIONS ، روی Add Principal کلیک کنید.

    2. در قسمت Add principals ، در New principals ، chat-api-push@system.gserviceaccount.com را تایپ کنید.

    3. در قسمت Assign roles ، در Select a role ، Pub/Sub > Pub/Sub Publisher را انتخاب کنید.

    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 باقی می ماند و داده ها را از فضاهای چت، مانند پیام ها، بازیابی می کند. شما مدل داده ای را که به طور ضمنی در کد نمونه توسط فایل های model/message.js و services/firestore-service.js تنظیم شده است، تعریف نمی کنید.

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

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

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

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

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

  2. users ، جایی که هر سند نشان دهنده کاربری است که برنامه چت را به فضای گپ اضافه کرده است.

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

spaces

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

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

messages

پیام های ارسال شده در فضای چت.

فیلدها
Document ID String
شناسه منحصر به فرد یک پیام خاص.
name String
نام منحصر به فرد یک پیام در Chat API. با نام منبع پیام در Chat API مطابقت دارد.
text String
متن پیام
time String ( Timestamp format)
زمانی که پیام ایجاد شد.

users

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

فیلدها
Document ID String
شناسه منحصر به فرد یک کاربر خاص.
accessToken String
رمز دسترسی اعطا شده در طول مجوز کاربر OAuth 2.0 برای فراخوانی APIهای Google Workspace استفاده می‌شود.
refreshToken String
رمز به‌روزرسانی در طول مجوز کاربر OAuth 2.0 اعطا شد.

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

کنسول Google Cloud

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

    به Firestore بروید

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

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

  4. روی Continue کلیک کنید.

  5. دیتابیس را پیکربندی کنید:

    1. در Name your database ، شناسه پایگاه داده را به عنوان (default) بگذارید.

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

    3. در Region ، یک منطقه برای پایگاه داده خود مشخص کنید، مانند us-central1 . برای بهترین عملکرد، مکان مشابه یا نزدیک را به عنوان عملکردهای ابری برنامه چت انتخاب کنید.

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

gcloud CLI

  • ایجاد یک پایگاه داده Firestore در حالت Native:

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

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

برنامه Chat را ایجاد و اجرا کنید

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

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

ایجاد و استقرار توابع ابری

در این بخش، شما دو تابع ابری به نام‌های زیر را ایجاد و اجرا می‌کنید:

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

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

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

در GitHub مشاهده کنید

ایجاد و استقرار app

کنسول Google Cloud

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

    فایل فشرده را دانلود کنید

  2. فایل فشرده دانلود شده را اکسترکت کنید.

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

  3. در پوشه استخراج شده، به فهرست google-chat-samples-main/node/ai-knowledge-assistant بروید.

  4. در فهرست راهنمای google-chat-samples/node/ai-knowledge-assistant ، فایل client_secrets.json را که هنگام ایجاد اعتبارنامه مشتری OAuth برای احراز هویت و مجوز دانلود کرده‌اید، اضافه کنید.

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

    دایرکتوری اصلی فایل فشرده باید حاوی فایل ها و پوشه های زیر باشد:

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

    به Cloud Functions بروید

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

  7. Create Function کلیک کنید.

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

    1. در Environment ، 2nd gen را انتخاب کنید.
    2. در نام تابع ، app تایپ کنید.
    3. در Region ، یک منطقه مانند us-central1 انتخاب کنید. این منطقه باید با منطقه ای که در URI تغییر مسیر مجاز تنظیم کرده اید، مطابقت داشته باشد، زمانی که اعتبار شناسه مشتری OAuth را برای احراز هویت و مجوز ایجاد کردید .
    4. در نوع ماشه ، HTTPS را انتخاب کنید.
    5. در زیر احراز هویت ، اجازه دادن به فراخوان های احراز هویت نشده را انتخاب کنید.
    6. روی Next کلیک کنید.
  9. در Runtime ، Node.js 20 را انتخاب کنید.

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

  11. در کد منبع ، آپلود فشرده را انتخاب کنید.

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

    1. روی Browse کلیک کنید.
    2. یک سطل انتخاب کنید.
    3. روی انتخاب کلیک کنید.

    Google Cloud فایل فشرده را در این سطل آپلود می کند و فایل های جزء را استخراج می کند. Cloud Functions سپس فایل های جزء را در Cloud Function کپی می کند.

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

    1. روی Browse کلیک کنید.
    2. به فایل فشرده بروید و آن را انتخاب کنید.
    3. روی Open کلیک کنید.
  14. روی Deploy کلیک کنید.

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

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

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

gcloud CLI

  1. کد را از GitHub کلون کنید:

    git clone https://github.com/googleworkspace/google-chat-samples.git
    
  2. به فهرستی بروید که کد این برنامه چت دستیار دانش هوش مصنوعی را در خود دارد:

    cd google-chat-samples/node/ai-knowledge-assistant
    
  3. در فهرست راهنمای google-chat-samples/node/ai-knowledge-assistant ، فایل client_secrets.json را که هنگام ایجاد اعتبارنامه مشتری OAuth برای احراز هویت و مجوز دانلود کرده‌اید، اضافه کنید.

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

    1. مقدار project را به ID پروژه Cloud خود تنظیم کنید.
    2. مقدار location مانند us-central1 روی ناحیه تابع Cloud تنظیم کنید.
  5. استقرار تابع Cloud در Google Cloud:

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

    REGION با مقدار ناحیه تابع Cloud جایگزین کنید تا با مجموعه موجود در فایل env.js مطابقت داشته باشد، مانند us-central1 .

ایجاد و استقرار eventsApp

کنسول Google Cloud

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

    به Cloud Functions بروید

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

  2. Create Function کلیک کنید.

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

    1. در Environment ، 2nd gen را انتخاب کنید.
    2. در نام تابع ، eventsApp تایپ کنید.
    3. در Region ، یک منطقه مانند us-central1 انتخاب کنید. این منطقه باید با منطقه ای که در URI تغییر مسیر مجاز تنظیم کرده اید، مطابقت داشته باشد، زمانی که اعتبار شناسه مشتری OAuth را برای احراز هویت و مجوز ایجاد کردید .
    4. در نوع Trigger ، 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. ، روی Grant All کلیک کنید.
    7. روی Next کلیک کنید.
  4. در Runtime ، Node.js 20 را انتخاب کنید.

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

  6. در کد منبع ، Zip from Cloud Storage را انتخاب کنید.

  7. در مکان ذخیره‌سازی ابری ، روی Browse کلیک کنید.

  8. وقتی app Cloud Function را ایجاد کردید، سطلی را که فایل فشرده را در آن آپلود کردید انتخاب کنید.

  9. روی فایل فشرده ای که آپلود کرده اید کلیک کنید.

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

  11. روی Deploy کلیک کنید.

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

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

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

gcloud CLI

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

    cd google-chat-samples/node/ai-knowledge-assistant
    
  2. در فهرست راهنمای google-chat-samples/node/ai-knowledge-assistant ، فایل client_secrets.json را که هنگام ایجاد اعتبارنامه مشتری OAuth برای احراز هویت و مجوز دانلود کرده‌اید، اضافه کنید.

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

    1. مقدار project را به ID پروژه Cloud خود تنظیم کنید.
    2. مقدار location مانند us-central1 روی ناحیه تابع Cloud تنظیم کنید.
  4. استقرار تابع Cloud در Google Cloud:

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

    REGION با مقدار ناحیه تابع Cloud جایگزین کنید تا با مجموعه موجود در فایل env.js مطابقت داشته باشد، مانند us-central1 .

URL ماشه app Cloud Function را کپی کنید

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

کنسول Google Cloud

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

    به Cloud Functions بروید

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

  3. روی Trigger کلیک کنید.

  4. URL را کپی کنید.

gcloud CLI

  1. عملکرد Cloud app را توضیح دهید:

    gcloud functions describe app
    
  2. ویژگی url کپی کنید.

برنامه چت را در کنسول Google Cloud پیکربندی کنید

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

  1. در کنسول Google Cloud، > محصولات بیشتر > Google Workspace > کتابخانه محصول > Google Chat API > مدیریت > پیکربندی کلیک کنید.

    به تنظیمات Chat API بروید

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

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

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

  5. روی گزینه فعال کردن ویژگی های تعاملی در موقعیت روشن کلیک کنید.

  6. در بخش Functionality ، Join spaces and group را انتخاب کنید.

  7. در قسمت تنظیمات اتصال ، URL برنامه را انتخاب کنید.

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

  9. در قسمت Visibility ، این برنامه چت را برای افراد و گروه‌های خاصی در دامنه Workspace در دسترس قرار دهید را انتخاب کنید و آدرس ایمیل خود را وارد کنید.

  10. به صورت اختیاری، در زیر Logs ، Log errors to Logging را انتخاب کنید.

  11. روی ذخیره کلیک کنید. یک پیام ذخیره شده پیکربندی ظاهر می شود، به این معنی که برنامه Chat برای آزمایش آماده است.

برنامه چت را تست کنید

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

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

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

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

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

    به Google Chat بروید

  2. ایجاد فضای چت:

    1. گپ جدید > ایجاد فاصله کلیک کنید.

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

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

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

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

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

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

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

  4. برنامه چت دستیار دانش هوش مصنوعی را اضافه کنید:

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

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

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

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

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

    2. برنامه چت دستیار دانش هوش مصنوعی پاسخ می دهد.

    3. در صورت تمایل، اگر پاسخ دقیق یا کافی نیست، برای کمک به بهبود سابقه مکالمه هوش مصنوعی، روی دریافت کمک کلیک کنید. برنامه چت دستیار دانش هوش مصنوعی از یک مدیر فضایی نام می برد و از آنها می خواهد که به این سوال پاسخ دهند. دفعه بعد، برنامه چت دستیار دانش هوش مصنوعی پاسخ را خواهد فهمید!

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

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

Firestore، Cloud Storage، یا لیست پیام‌های تماس در Chat API

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

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

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

عیب یابی

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

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

پاک کن

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

  1. در کنسول Google Cloud، به صفحه مدیریت منابع بروید. منو > IAM & Admin > Manage Resources کلیک کنید.

    به Resource Manager بروید

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