ساخت افزونه گوگل چت با Dialogflow ES

این صفحه نحوه ساخت یک برنامه Google Chat را به عنوان یک افزونه Google Workspace که از Dialogflow ES برای درک و پاسخ به زبان طبیعی استفاده می‌کند، توضیح می‌دهد. همچنین می‌توانید با دنبال کردن راهنمای Dialogflow CX Google Chat، از Dialogflow CX که مستقیماً با Google Chat ادغام شده است، برای ساخت یک برنامه Dialogflow CX Google Chat استفاده کنید.

اهداف

  • محیط خود را تنظیم کنید.
  • یک عامل Dialogflow ES ایجاد و مستقر کنید.
  • یک برنامه چت با استفاده از عامل Dialogflow ES ایجاد و مستقر کنید.
  • برنامه چت را آزمایش کنید.

پیش‌نیازها

معماری

نمودار زیر معماری یک برنامه چت ساخته شده با Dialogflow را نشان می‌دهد:

معماری یک برنامه چت که با Dialogflow پیاده‌سازی شده است.

در نمودار قبلی، کاربری که با یک برنامه چت Dialogflow تعامل دارد، جریان اطلاعات زیر را دارد:

  1. کاربر پیامی را در چت به یک برنامه چت، چه در پیام مستقیم و چه در فضای چت، ارسال می‌کند.
  2. یک عامل مجازی Dialogflow که در آن قرار دارد ، پیام را دریافت و پردازش می‌کند تا پاسخی تولید کند.
  3. به صورت اختیاری، با استفاده از یک وب‌هوک Dialogflow ، عامل Dialogflow می‌تواند با سرویس‌های شخص ثالث خارجی، مانند یک سیستم مدیریت پروژه یا یک ابزار تیکتینگ، تعامل داشته باشد.
  4. عامل Dialogflow پاسخی را به سرویس برنامه Chat در Chat ارسال می‌کند.
  5. پاسخ به فضای چت ارسال می‌شود.

محیط را تنظیم کنید

قبل از استفاده از APIهای گوگل، باید آنها را در یک پروژه گوگل کلود فعال کنید. می‌توانید یک یا چند API را در یک پروژه گوگل کلود فعال کنید.
  1. در کنسول API گوگل، Google Chat API و Dialogflow API را فعال کنید.

    فعال کردن APIها

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

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

یک عامل ES از نوع Dialogflow ایجاد کنید

اگر عامل ES مربوط به Dialogflow را ندارید:

  1. به کنسول Dialogflow ES بروید.
  2. روی ایجاد نماینده کلیک کنید.
  3. یک نام به آن بدهید، یک زبان پیش‌فرض و منطقه زمانی انتخاب کنید.
  4. آن را با پروژه ابری خود مرتبط کنید.
  5. روی ایجاد کلیک کنید.
  6. در صورت نیاز برای جریان مکالمه برنامه چت خود، اهداف و موجودیت‌های خود را بسازید. می‌توانید با یک هدف خوشامدگویی شروع کنید.
  7. شناسه پروژه خود را یادداشت کنید.

برای راهنمای دقیق، به ساخت یک عامل مراجعه کنید.

یک برنامه چت ایجاد کنید و آن را به عامل Dialogflow متصل کنید

پس از ایجاد یک عامل ES از نوع Dialogflow، این مراحل را برای تبدیل آن به یک برنامه چت دنبال کنید:

  1. در کنسول API گوگل، به Google Chat API بروید. عبارت "Google Chat API" را جستجو کنید و روی Google Chat API کلیک کنید، سپس روی مدیریت کلیک کنید.

    به API چت بروید

  2. روی پیکربندی کلیک کنید و برنامه چت را تنظیم کنید:

    1. در قسمت App name ، Dialogflow App را وارد کنید.
    2. در قسمت آدرس اینترنتی آواتار ، آدرس https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png را وارد کنید.
    3. در قسمت توضیحات ، Responds to real human conversation را وارد کنید.
    4. در بخش عملکرد ، گزینه «پیوستن به فضاها و مکالمات گروهی» را انتخاب کنید.
    5. در قسمت تنظیمات اتصال ، گزینه Dialogflow را انتخاب کنید.
    6. در تنظیمات Dialogflow ، گزینه Dialogflow ES را انتخاب کنید.
    7. این برنامه چت را برای افراد و گروه‌های خاص در دامنه خود در دسترس قرار دهید و آدرس ایمیل خود را وارد کنید.
    8. در قسمت گزارش‌ها ، گزینه ثبت خطاها را برای ثبت گزارش‌ها انتخاب کنید.
  3. روی ذخیره کلیک کنید.

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

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

برنامه Dialogflow ES Chat را با ارسال پیام در Google Chat آزمایش کنید.

  1. با استفاده از حساب Google Workspace که هنگام اضافه کردن خود به عنوان یک آزمایشگر مورد اعتماد ارائه دادید، Google Chat را باز کنید.

    به گوگل چت بروید

  2. روی گپ جدید کلیک کنید.
  3. در فیلد «افزودن ۱ یا چند نفر» ، نام برنامه چت خود را تایپ کنید.
  4. برنامه چت خود را از بین نتایج انتخاب کنید. یک پیام مستقیم باز می‌شود.

  5. در پیام مستقیم جدید با برنامه، عبارت Hello را تایپ کنید و enter را فشار دهید.

    برنامه چت Dialogflow با یک پیام خوشامدگویی پاسخ می‌دهد.

پاسخ‌های متنی

پاسخ‌های متنی به صورت پیام‌های متنی به گوگل چت ارسال می‌شوند. با این قالب‌بندی می‌توانید با قرار دادن متن در نمادهای خاص (علامت‌گذاری روشن) متن را پررنگ یا کج کنید.

پاسخ پیام متنی، از نظر بصری مشابه پاسخ متنی پیش‌فرض در کنسول Dialogflow به نظر می‌رسد. با این حال، پاسخ خام API کمی متفاوت خواهد بود. همچنین پیکربندی پلتفرم را روی GOOGLE_HANGOUTS تنظیم می‌کند، که می‌تواند هنگام ساخت عامل‌ها برای ادغام‌های متعدد جالب باشد.

"fulfillmentMessages": [
{
   "text": {
   "text": [
        "This is a test."
   ]
},
  "platform": "GOOGLE_HANGOUTS"
},

کارت‌ها

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

تصاویر

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

بار سفارشی

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

قابلیت بارگذاری سفارشی گوگل چت به شما امکان می‌دهد کارت‌های پیشرفته‌تری ایجاد کنید. یک کارت می‌تواند یک یا چند بخش داشته باشد. هر بخش می‌تواند یک سربرگ داشته باشد. می‌توانید برای مشاهده برخی از ترکیب‌هایی که می‌توانید با این قابلیت ایجاد کنید، به راهنمای مرجع کارت‌های چت افزونه گوگل ورک اسپیس مراجعه کنید. با این حال، استفاده از بارگذاری‌های سفارشی به این معنی است که باید فرمت JSON را ارائه دهید.

در اینجا مثالی از یک payload سفارشی برای ایجاد پیام با کارت آورده شده است:

{ "hangouts": { "hostAppDataAction": { "chatDataAction": {
  "createMessageAction": { "message": { "cardsV2": [{
    "cardId": "pizza",
    "card": {
      "header": {
        "title": "Pizza Delivery Customer Support",
        "subtitle": "pizzadelivery@example.com",
        "imageUrl": "https://goo.gl/aeDtrS"
      },
      "sections": [{ "widgets": [{ "textParagraph": {
        "text": " Your pizza is here!"
      }}]}]
    }
  }]}}
}}}}

محدودیت‌ها و ملاحظات

  • هنگام استفاده از افزونه‌های Google Workspace با Dialogflow، اشیاء رویداد Chat محدودیت‌ها و ملاحظات زیر را دارند:
    • رویدادهای صفحه اصلی برنامه: پشتیبانی از رویدادهای APP_HOME هنوز در دسترس نیست.
    • ورودی کوئری Dialogflow: متنی که به عنوان ورودی کوئری به عامل Dialogflow ارسال می‌شود، به نوع رویداد بستگی دارد:
      • MESSAGE : مقدار فیلد argumentText از پیام چت.
      • APP_COMMAND : رشته "APP_COMMAND_PAYLOAD" .
      • ADDED_TO_SPACE : یک رویداد خوشامدگویی پیش‌فرض ارسال می‌شود.
      • REMOVED_FROM_SPACE : رشته "REMOVED_FROM_SPACE_PAYLOAD" .
      • CARD_CLICKED : رشته "BUTTON_CLICKED_PAYLOAD" .
      • WIDGET_UPDATED : رشته "WIDGET_UPDATED_PAYLOAD" (برای تکمیل خودکار استفاده می‌شود).
    • بار کامل رویداد: بار کامل JSON رویداد تعامل چت در فیلد WebhookRequest.payload به Dialogflow ارسال می‌شود. می‌توانید به این مورد در وب‌هوک Dialogflow خود دسترسی داشته باشید. برای اطلاعات بیشتر، به مستندات درخواست وب‌هوک Dialogflow ES مراجعه کنید.
  • ملاحظات مربوط به پاسخ به دستورات و دریافت داده از کارت‌ها یا دیالوگ‌ها :
  • پیش‌نمایش لینک‌ها پشتیبانی نمی‌شود.
  • اگر عامل Dialogflow فقط با یک پیام پاسخ دهد، آن پیام به صورت همزمان به Google Chat ارسال می‌شود. اگر عامل Dialogflow با چندین پیام پاسخ دهد، تمام پیام‌ها به صورت غیرهمزمان با فراخوانی متد create از منبع spaces.messages در Chat API برای هر پیام، به Chat ارسال می‌شوند.
  • هنگام استفاده از ادغام Dialogflow ES با Chat، عامل Dialogflow و برنامه Chat باید در همان پروژه Google Cloud تنظیم شوند.

عیب‌یابی

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

تمیز کردن

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

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

    به مدیریت منابع بروید

  2. در لیست پروژه‌ها، پروژه‌ای را که می‌خواهید حذف کنید انتخاب کنید و سپس روی «حذف کلیک کنید.
  3. در کادر محاوره‌ای، شناسه پروژه را تایپ کنید و سپس برای حذف پروژه، روی خاموش کردن (Shut down) کلیک کنید.
  • Dialogflow CX روش دیگری برای استفاده از Dialogflow با یک برنامه چت است.