این صفحه نحوه ساخت یک برنامه Google Chat را توضیح میدهد که میتواند زبان طبیعی را هم درک کند و هم با استفاده از Dialogflow پاسخ دهد. این راهنما از Dialogflow CX استفاده میکند که مستقیماً با Google Chat ادغام میشود. همچنین میتوانید با دنبال کردن راهنمای Dialogflow ES Google Chat، از Dialogflow ES برای ساخت یک برنامه Dialogflow ES Google Chat استفاده کنید.
برای مثال، یک برنامه چت را در نظر بگیرید که به افراد در اجاره خودرو کمک میکند. یک کاربر ممکن است بنویسد: «میخواهم یک ماشین اجاره کنم». برنامه چت ممکن است با سوالی مانند «کجا میخواهید وسیله نقلیه را تحویل بگیرید؟» پاسخ دهد که مکالمهای شبیه به انسان را با کاربر آغاز میکند که در آن برنامه چت هنگام رزرو اجاره خودرو، هم گفتار انسان را میفهمد و هم با آن پاسخ میدهد.
این فقط یک مثال است. برنامههای چت Dialogflow در انواع تعاملات مفید هستند. اگر به گفتار طبیعی انسان نیاز باشد، به یک برنامه چت Dialogflow نیاز است. عوامل از پیش ساخته شده به شما کمک میکنند تا سریع شروع کنید و آنچه Dialogflow میتواند انجام دهد را نشان میدهند، مانند:
- رزرو پرواز
- تعیین وقت ملاقات با پزشک
- سفارش تحویل غذا
- پاسخ به سوالاتی در مورد کاتالوگ محصولات خرده فروشی، مانند اینکه آیا اقلام در رنگ های دیگر موجود است یا خیر

شکل ۱. انتخاب یک عامل از پیش ساخته شده برای برنامه چت Dialogflow. 
شکل ۲. آزمایش عامل در Dialogflow CX برای اطمینان از اینکه منطق و پیکربندی عامل طبق برنامه کار میکند. نمودار مجموعهای متوالی از صفحات موضوعی را نشان میدهد که مربوط به مراحل خاصی در مکالمه هستند، مانند تعیین محل تحویل و بازگشت برای یک ماشین کرایهای، و منطقی را که آنها را به هم متصل میکند پیکربندی میکند. مکالمه در یک شبیهساز آزمایش میشود. 
شکل ۳. پیکربندی یک برنامه چت برای پردازش پاسخها با استفاده از عامل Dialogflow CX در صفحه پیکربندی Chat API در کنسول Google Cloud. 
شکل ۴. مکالمهای در مورد رزرو ماشین کرایهای با برنامه Dialogflow Chat در Google Chat.
اهداف
- محیط خود را تنظیم کنید.
- یک عامل Dialogflow CX ایجاد و مستقر کنید.
- یک برنامه چت با پشتیبانی عامل Dialogflow CX ایجاد و مستقر کنید.
- برنامه چت را آزمایش کنید.
پیشنیازها
- یک حساب کاربری تجاری یا سازمانی Google Workspace با دسترسی به Google Chat .
- یک پروژه Google Cloud با قابلیت پرداخت فعال. برای بررسی اینکه آیا پرداخت در یک پروژه موجود فعال است یا خیر، به تأیید وضعیت پرداخت پروژههای خود مراجعه کنید. برای ایجاد یک پروژه و تنظیم پرداخت، به ایجاد یک پروژه Google Cloud مراجعه کنید.
معماری
نمودار زیر معماری یک برنامه چت ساخته شده با Dialogflow را نشان میدهد:
در نمودار قبلی، کاربری که با یک برنامه چت Dialogflow تعامل دارد، جریان اطلاعات زیر را دارد:
- کاربر پیامی را در چت به یک برنامه چت، چه در پیام مستقیم و چه در فضای چت، ارسال میکند.
- یک عامل مجازی Dialogflow که در Google Cloud قرار دارد، پیام را دریافت و پردازش میکند تا پاسخی تولید کند.
- به صورت اختیاری، با استفاده از یک وبهوک Dialogflow ، عامل Dialogflow میتواند با سرویسهای شخص ثالث خارجی، مانند یک سیستم مدیریت پروژه یا یک ابزار تیکتینگ، تعامل داشته باشد.
- عامل Dialogflow پاسخی را به سرویس برنامه Chat در Chat ارسال میکند.
- پاسخ به فضای چت ارسال میشود.
محیط را تنظیم کنید
قبل از استفاده از APIهای گوگل، باید آنها را در یک پروژه گوگل کلود فعال کنید. میتوانید یک یا چند API را در یک پروژه گوگل کلود فعال کنید.در کنسول گوگل کلود، Google Chat API و Dialogflow API را فعال کنید.
تأیید کنید که APIها را در پروژه Cloud صحیح فعال میکنید، سپس روی Next کلیک کنید.
تأیید کنید که API های صحیح را فعال میکنید، سپس روی فعال کردن کلیک کنید.
یک عامل تجربه مشتری (CX) از Dialogflow ایجاد کنید
یک عامل Dialogflow CX یک عامل مجازی است که مکالمات همزمان با کاربران نهایی شما را مدیریت میکند. این یک ماژول درک زبان طبیعی است که ظرافتهای زبان انسان را درک میکند. Dialogflow متن کاربر نهایی را در طول مکالمه به دادههای ساختاریافتهای تبدیل میکند که برنامهها و سرویسهای شما میتوانند آن را درک کنند. شما یک عامل Dialogflow را طراحی و میسازید تا انواع مکالمات مورد نیاز سیستم خود را مدیریت کند.
یک عامل Dialogflow مانند یک عامل انسانی مرکز تماس است. شما هر دو را برای مدیریت سناریوهای مکالمه مورد انتظار آموزش میدهید و آموزش شما نیازی به صراحت بیش از حد ندارد.
در اینجا نحوه ایجاد عامل Dialogflow CX آورده شده است:
در کنسول Dialogflow CX، کنسول Dialogflow CX را باز کنید. روی > Dialogflow CX کلیک کنید.
یک پروژه Google Cloud انتخاب کنید. برای یافتن پروژه خود، ممکن است لازم باشد روی همه کلیک کنید و سپس آن را جستجو کنید.
حالا میتوانید یک عامل از پیش ساخته شده انتخاب کنید یا عامل خودتان را بسازید. اگر ترجیح میدهید بعداً سفارشیسازی عامل را با جزئیات بررسی کنید، یکی از عاملهای از پیش ساخته شده را انتخاب کنید، که برای یادگیری در مورد کارهایی که عاملها میتوانند انجام دهند نیز مفید هستند.
برای انتخاب یک عامل از پیش ساخته شده، این مراحل را دنبال کنید:
- روی استفاده از عوامل از پیش ساخته شده کلیک کنید.
یک نماینده از پیش ساخته شده انتخاب کنید. برای این راهنما، سفر: کرایه خودرو را انتخاب کنید.
عاملها بر اساس تعداد ویژگیهایی که عامل استفاده میکند و پیچیدگی منطق مکالمه آن، به عنوان مبتدی، متوسط یا پیشرفته رتبهبندی میشوند. انتخاب یک عامل متوسط یا پیشرفته ممکن است نیاز به سفارشیسازیها و تنظیمات خاص عامل، از جمله فعال کردن ویژگیها و APIها در کنسول Google Cloud داشته باشد.
روی «وارد کردن به عنوان نماینده» کلیک کنید.
برای ایجاد نماینده خود، مراحل زیر را دنبال کنید:
- روی ایجاد عامل کلیک کنید.
- برای ایجاد یک عامل ذخیرهسازی داده، گزینه «تولید خودکار» را انتخاب کنید یا برای ایجاد انواع دیگر عاملها، گزینه «ساختن عامل خودتان» را انتخاب کنید.
برای مشاهده جزئیات بیشتر در مورد فرآیند ساخت نماینده، به بخش «ایجاد یک نماینده Dialogflow CX» مراجعه کنید.
تنظیمات اولیه عامل را پیکربندی کنید:
- در قسمت نام نمایشی ، یک نام نمایشی وارد کنید.
- مکان مورد نظر خود را انتخاب کنید. اگر میخواهید تنظیمات پیشرفته مکان را تغییر دهید، روی ویرایش کلیک کنید.
- منطقه زمانی دلخواه خود را انتخاب کنید.
- زبان پیشفرض را برای نماینده خود انتخاب کنید. شما نمیتوانید زبان پیشفرض یک نماینده را پس از ایجاد تغییر دهید.
روی ایجاد کلیک کنید. Dialogflow CX شروع به ایجاد عامل میکند و سپس جریان شروع پیشفرض عامل را نمایش میدهد.
در صورت تمایل، میتوانید عامل را سفارشی کنید. برای مشاهده جزئیات فرآیند سفارشیسازی عامل، به «ایجاد یک عامل Dialogflow CX» مراجعه کنید.
به عنوان بهترین روش، عامل را آزمایش کنید:
- روی عامل تست کلیک کنید.
- عامل تست را در محیط انتخاب کنید.
- در محیط، پیشنویس را انتخاب کنید.
- در بخش Flow، گزینه Default Start Flow را انتخاب کنید.
- در صفحه، صفحه شروع را انتخاب کنید.
- در نوار نوشتن گفتگو با عامل ،
Helloرا تایپ کنید و Enter را فشار دهید. عامل با معرفی خود پاسخ میدهد. - آزمون را با انجام مکالمه آزمایشی نمونه تکمیل کنید.
عامل Dialogflow CX ایجاد شده است. به کنسول Dialogflow CX برگردید. روی menu > Dialogflow CX کلیک کنید.
در قسمت Agents ، روی > Copy name کلیک کنید. این نام را ذخیره کنید، زیرا هنگام پیکربندی برنامه چت از آن استفاده میکنید.
یک برنامه چت ایجاد کنید و آن را به عامل Dialogflow متصل کنید
پس از ایجاد یک عامل Dialogflow CX، این مراحل را برای تبدیل آن به یک برنامه چت دنبال کنید:
در کنسول گوگل کلود، به Google Chat API بروید. عبارت "Google Chat API" را جستجو کنید و روی Google Chat API کلیک کنید، سپس روی مدیریت کلیک کنید.
روی پیکربندی کلیک کنید و برنامه چت را تنظیم کنید:
- در قسمت App name ،
Dialogflow Appوارد کنید. - در قسمت آدرس اینترنتی آواتار ،
https://developers.google.com/workspace/chat/images/quickstart-app-avatar.pngرا وارد کنید. - در قسمت توضیحات ،
Responds to real human conversationوارد کنید. - در بخش عملکرد ، گزینه «پیوستن به فضاها و مکالمات گروهی» را انتخاب کنید.
- در قسمت تنظیمات اتصال ، گزینه Dialogflow را انتخاب کنید.
- در تنظیمات Dialogflow ، گزینه Dialogflow CX را انتخاب کنید.
- در قسمت Agent or Environment resource name ، نام عامل Dialogflow CX را که در انتهای Create a Dialogflow CX agent کپی کردهاید، جایگذاری کنید.
- این برنامه چت را برای افراد و گروههای خاص در دامنه خود در دسترس قرار دهید و آدرس ایمیل خود را وارد کنید.
- در قسمت گزارشها ، گزینه ثبت خطاها را برای ثبت گزارشها انتخاب کنید.
- در قسمت App name ،
روی ذخیره کلیک کنید.
برنامه چت آماده دریافت و پاسخ به پیامها در چت است.
برنامه چت را آزمایش کنید
برنامه چت Dialogflow CX را با ارسال پیام به آن در Google Chat آزمایش کنید.
با استفاده از حساب Google Workspace که هنگام اضافه کردن خود به عنوان یک آزمایشگر مورد اعتماد ارائه دادید، Google Chat را باز کنید.
- روی گپ جدید کلیک کنید.
- در فیلد «افزودن ۱ یا چند نفر» ، نام برنامه چت خود را تایپ کنید.
برنامه چت خود را از بین نتایج انتخاب کنید. یک پیام مستقیم باز میشود.
در پیام مستقیم جدید با برنامه،
Helloرا تایپ کنید وenterفشار دهید.برنامه چت Dialogflow با معرفی خود پاسخ میدهد.
- آزمون را با انجام مکالمه آزمایشی نمونه تکمیل کنید.
نمونه مکالمه آزمایشی
برای آزمایش برنامه چت Dialogflow CX در کنسول Dialogflow CX یا در Google Chat، مکالمه زیر را انجام دهید. این توضیح به شما کمک میکند تا بفهمید که چگونه عامل Dialogflow CX زبان طبیعی کاربر را تفسیر میکند و در هر مرحله از مکالمه، پاسخ زبان طبیعی خود را تولید میکند. این مکالمه نمونه بر اساس عامل از پیش ساخته شده به نام Travel: car rental است.
| گفتگو | توضیح |
|---|---|
| کاربر نهایی: سلام نماینده: سلام! من نماینده مجازی اجاره خودرو هستم. میتوانم به شما در شروع رزرو جدید اجاره خودرو کمک کنم. امروز چطور میتوانم به شما کمک کنم؟ |
|
| کاربر نهایی: من میخواهم یک ماشین کرایه کنم. مامور: از کجا میخواهید وسیله نقلیه را تحویل بگیرید؟ |
|
| کاربر نهایی: لاس وگاس مامور: بسیار خب، تحویل شما در لاس وگاس خواهد بود. نماینده: آیا محل تحویل شما با محل تحویل گرفتن شما متفاوت است؟ |
|
| کاربر نهایی: بله. ماشین را در لسآنجلس تحویل میدهم. مامور: بسیار خب، محل تحویل شما در لسآنجلس خواهد بود. نماینده: چه تاریخ و ساعتی مایلید وسیله نقلیه را تحویل بگیرید؟ |
|
| کاربر نهایی: من میخواهم ماشین را ظهر ۵ مارس تحویل بگیرم. نماینده: چه تاریخ و ساعتی مایلید وسیله نقلیه را تحویل دهید؟ |
|
| کاربر نهایی: ظهر ۱۵ مارس. نماینده: بنابراین برای تأیید: شما وسیله نقلیه را در لاس وگاس در تاریخ 2024-03-05 ساعت 12:00:00 تحویل خواهید گرفت و در تاریخ 2024-03-15 ساعت 12:00:00 آن را در لس آنجلس تحویل خواهید داد. آیا این درست به نظر میرسد؟ |
|
| کاربر نهایی: بله، متشکرم. مامور: عالیه! حالا بیایید یک وسیله نقلیه انتخاب کنیم. نماینده: آیا یک وسیله نقلیه اقتصادی یا لوکس میخواهید؟ |
|
| کاربر نهایی: لطفا کمی اقتصادی صحبت کنید. مامور: ماشین سیمبال رو میخوای یا کامیون سیمبال رو؟ |
|
| کاربر نهایی: کامیون سیمبال. نماینده: هزینه کامیون سیمبال روزانه ۵۰.۳۳ دلار است. ظرفیت ۴ نفر را دارد و دارای رادیو AM/FM است. آیا مایل به پرداخت هستید؟ کاربر نهایی: بله، بفرمایید. |
|
| نماینده: از چه نوع کارتی استفاده خواهید کرد؟ کاربر نهایی: آلتوسترات متصدی: لطفا شماره کارت را وارد کنید. کاربر نهایی: ۱۲۳۴ ۱۲۳۴ ۱۲۳۴ ۱۲۳۴ مامور: اسم روی کارت چیه؟ کاربر نهایی: چارلی نماینده: آدرس خیابان صادرکننده صورتحساب چیست؟ کاربر نهایی: بلوار آمفیبیوس ۱۸۰۰، مانتین ویو، کالیفرنیا نماینده: کد پستی محل صدور صورتحساب چیست؟ کاربر نهایی: ۹۴۰۴۵ نماینده: شما در تاریخ 2024-03-05 ساعت 12:00:00 سیمبال کار را در لاس وگاس تحویل خواهید گرفت و در تاریخ 2024-03-15 ساعت 12:00:00 آن را تحویل خواهید داد. جمع کل هزینه این سفر 175.38 دلار خواهد بود. نماینده: از اینکه با ما اجاره کردید متشکریم و روز خوبی داشته باشید! |
|
ارسال پیامهای کارت از Dialogflow
Dialogflow میتواند با پیامهای متنی یا کارتی پاسخ دهد. برای پاسخ دادن با پیام کارتی، آن را به عنوان یک payload سفارشی در بخش completion مشخص کنید.
JSON زیر نحوه ارسال پیام کارت به عنوان یک payload سفارشی در حین انجام کار را نشان میدهد:
جیسون
{
'cardsV2': [{
'cardId': 'createCardMessage',
'card': {
'header': {
'title': 'A card message!',
'subtitle': 'Sent from Dialogflow',
'imageUrl': 'https://developers.google.com/chat/images/chat-product-icon.png',
'imageType': 'CIRCLE'
},
'sections': [
{
'widgets': [
{
'buttonList': {
'buttons': [
{
'text': 'Read the docs!',
'onClick': {
'openLink': {
'url': 'https://developers.google.com/workspace/chat'
}
}
}
]
}
}
]
}
]
}
}]
}
محدودیتها و ملاحظات
- رویدادهای تعامل چت پشتیبانی محدودی دارند و برخی ملاحظات را باید در نظر گرفت:
- انواع رویدادهای تعاملی زیر پشتیبانی میشوند:
-
MESSAGE -
ADDED_TO_SPACE -
CARD_CLICKED
-
- برای رویدادهای
MESSAGEیاADDED_TO_SPACE، ورودی پرسوجوی ارسالشده به عامل Dialogflow با مقدار فیلدargumentTextدر پیام Chat مطابقت دارد. اگر پیام شامل دستور اسلش باشد، به جای آن از مقدار فیلدtextاستفاده میشود. - برای رویدادهای
CARD_CLICKED، ورودی کوئری ارسال شده به عامل Dialogflow به صورتCARD_CLICKED.functionNameقالببندی میشود، که در آنfunctionNameمعادل مقدارfunctionتابع شیء Action متصل به عنصر کارت تعاملی (مانند یک دکمه) است. - بار داده کامل JSON مربوط به هر رویداد تعامل چت به عنوان یک بار داده سفارشی در پارامتر پرس و جو به Dialogflow ارسال میشود و با پرس و جو از مقدار فیلد
WebhookRequest.payloadمیتوان با یک وبهوک Dialogflow به آن دسترسی پیدا کرد.
- انواع رویدادهای تعاملی زیر پشتیبانی میشوند:
- ملاحظات مربوط به پاسخ به دستورات اسلش و دریافت داده از کارتها یا دیالوگها :
- وقتی برنامههای چت Dialogflow پیامی با دستور اسلش دریافت میکنند، ورودی پرسوجو فقط شامل مقدار فیلد
textاست. فیلدtextبا نام دستور اسلش (برای مثال،/command) شروع میشود، که میتوانید از آن برای پیکربندی قصد عامل Dialogflow برای تشخیص دستور اسلش استفاده کنید. - اگر عامل Dialogflow نیاز به پردازش رویداد تعامل چت (Chat interaction event) با محتوای JSON داشته باشد ، میتواند این کار را با استفاده از یک وبهوک Dialogflow برای بررسی محتوای سفارشی در پارامتر پرسوجو انجام دهد.
- برای نمایش یک دیالوگ از Dialogflow Agent، با یک JSON payload سفارشی واحد که شامل پیامی حاوی پاسخ اکشن
DIALOGاست، پاسخ دهید. - برای پردازش دادههای ورودی از کارتها، عامل Dialogflow میتواند intentهایی را که با متن
CARD_CLICKEDشروع میشوند، شناسایی کند و با یک payload سفارشی JSON که حاوی action مناسب است، پاسخ دهد.
- وقتی برنامههای چت Dialogflow پیامی با دستور اسلش دریافت میکنند، ورودی پرسوجو فقط شامل مقدار فیلد
- پیشنمایش لینکها پشتیبانی نمیشود.
- اگر عامل Dialogflow فقط با یک پیام پاسخ دهد، آن پیام به صورت همزمان به Google Chat ارسال میشود. اگر عامل Dialogflow با چندین پیام پاسخ دهد، تمام پیامها به صورت غیرهمزمان با فراخوانی متد
createاز منبعspaces.messagesدر Chat API برای هر پیام، به Chat ارسال میشوند. - هنگام استفاده از ادغام Dialogflow CX با Chat، عامل Dialogflow و برنامه Chat باید در یک پروژه Google Cloud یکسان تنظیم شوند. اگر نیاز به تنظیم Dialogflow و Chat در پروژههای Cloud مختلف دارید، میتوانید یک سرور واسط برای تسهیل اتصال راهاندازی کنید. برای یادگیری نحوه انجام این کار، به این مثال ادغام Chat برای Dialogflow CX در GitHub مراجعه کنید.
عیبیابی
وقتی یک برنامه یا کارت چت گوگل خطایی را برمیگرداند، رابط چت پیامی با عنوان «مشکلی پیش آمده است» یا «درخواست شما قابل پردازش نیست» نمایش میدهد. گاهی اوقات رابط کاربری چت هیچ پیام خطایی را نمایش نمیدهد، اما برنامه یا کارت چت نتیجه غیرمنتظرهای را ایجاد میکند؛ برای مثال، ممکن است پیام کارت ظاهر نشود.
اگرچه ممکن است پیام خطا در رابط کاربری چت نمایش داده نشود، پیامهای خطای توصیفی و دادههای گزارش برای کمک به شما در رفع خطاها هنگام فعال بودن ثبت خطا برای برنامههای چت در دسترس هستند. برای کمک به مشاهده، اشکالزدایی و رفع خطاها، به عیبیابی و رفع خطاهای گوگل چت مراجعه کنید.
تمیز کردن
برای جلوگیری از تحمیل هزینه به حساب Google Cloud خود برای منابع استفاده شده در این آموزش، توصیه میکنیم پروژه Cloud را حذف کنید.
- در کنسول گوگل کلود، به صفحه مدیریت منابع بروید. روی منو > مدیریت و دسترسی به منابع (IAM & Admin) > مدیریت منابع (Manage Resources) کلیک کنید.
- در لیست پروژهها، پروژهای را که میخواهید حذف کنید انتخاب کنید و سپس روی «حذف کلیک کنید.
- در کادر محاورهای، شناسه پروژه را تایپ کنید و سپس برای حذف پروژه، روی خاموش کردن (Shut down) کلیک کنید.
مباحث مرتبط
- Dialogflow CX از رویکرد ماشین حالت (state machine) برای طراحی عامل Dialogflow استفاده میکند که به شما کنترل واضح و صریحی بر مکالمه، تجربه کاربری بهتر و گردش کار توسعه بهتری میدهد. هنگام ساخت یک برنامه چت Dialogflow، توصیه میکنیم از Dialogflow CX استفاده کنید.
- برای کسب اطلاعات بیشتر در مورد ساخت و پیکربندی عاملها، به Dialogflow CX Agents مراجعه کنید.
- برای یک راهنمای جامع که نحوه ساخت و پیکربندی عاملها را به شما آموزش میدهد، به بخش «ایجاد یک عامل Dialogflow CX» مراجعه کنید.
- Codelab: برای مثالی از نحوه ساخت یک عامل ذخیره داده Dialogflow CX، به برنامه Knowledge Chat از codelab Build apps for Google Chat with Gemini مراجعه کنید.
- Codelab: برای مثالی از نحوه ساخت یک عامل مکالمهای Dialogflow CX، به بازخورد برنامه چت از codelab Build apps for Google Chat with Gemini مراجعه کنید.
- Dialogflow ES روش دیگری برای استفاده از Dialogflow با یک برنامه چت است.