Dialogflow از سرویس‌های گوگل است که قبلاً به نام API.ai شناخته می‌شد و پلتفرمی عالی برای توسعه چت‌بات‌ها برای پلتفرم‌های مختلف است. راهنماها و مستندات زیادی برای افرادی که به تازگی شروع به یادگیری و استفاده از این پلتفرم برای ساخت چت‌بات نموده‌اند وجود دارند. با این وجود، پشتیبانی از اندروید و iOS به خوبی مستندسازی نشده است.

تا پیش از این که Dialogflow به نام API.ai نامیده می‌شد، کتابخانه کلاینت اندروید و iOS برای ادغام چت‌بات در اپلیکیشن‌های موبایل ارائه شده بود؛ اما پس از ادغام آن در گوگل، کتابخانه موجود دیگر به‌روزرسانی نشد و شاهد اضافه شدن Dialogflow به پلتفرم کلاود گوگل بودیم که API کلاینت جدیدی مبتنی بر جاوا در حال توسعه است.

در این مقاله، شیوه یکپارچه‌سازی چت‌بات توسعه‌یافته در Dialogflow با استفاده از کتابخانه API.ai قدیمی و API کلاینت جاوای جدید را توضیح می‌دهیم. بنابراین برای نمایش این موضوع یک چت‌بات ساده ایجاد می‌کنیم که اطلاعاتی در مورد دوره‌های مختلف فستیوال توسعه‌دهندگان دهلی‌نو که از سوی GDG برگزار می‌شود ارائه می‌کند.

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

سپس یک Agent برای Dialogflow می‌سازیم که Test_agent نام دارد.

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

برای API کلاینت جاوا باید روی حساب سرویس کلیک کرده و کلید JSON تولید شده از سوی کنسول IAM را به دست آوریم.

اینک اینتِنت (Intent) ها و نهادهایی را برای آموزش دادن ایجنت ایجاد می‌کنیم.

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

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

اکنون ایجنت ما آماده ادغام با اپلیکیشن اندروید است. در build.gradle (در سطح app) وابستگی‌هایی برای کتابخانه کلاینت اندروید و API کلاینت جاوا اضافه می‌کنیم چون این چت‌بات را برای هر دو مورد توسعه می‌دهیم.

این چت‌بات در متد onCreate اکتیویتی اندروید آغاز می‌شود. ابتدا به پیکربندی ایجنت Dialogflow با استفاده از توکن دسترسی کلاینت با یا استفاده از کلید JSON می‌کنیم. سپس یک نشست (session) جدید با استفاده از ID یکتا ایجاد می‌کنیم و در نهایت بات آماده تعامل با کاربر خواهد بود.

کتابخانه کلاینت اندروید

API کلاینت جاوا

ما ارتباط چت‌بات با کاربر را به روش ناهمگام (Asynchronous) مدیریت می‌کنیم. این کار در متد AsyncTask صورت می‌گیرد که در آن کوئری درخواستی از کاربر به صورت یک درخواست به چت‌بات ارسال شده و پاسخ دریافت می‌شود.

مدیریت AsyncTask در فراخوانی‌های کتابخانه کلاینت اندروید

مدیریت AsyncTask برای فراخوانی‌های API کلاینت جاوا

کاربر می‌تواند کوئری را از اپلیکیشن اندروید با استفاده از EditText ارسال کند و پاسخ در یک TextView نمایش می‌یابد.

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

مدیریت درخواست و پاسخ در API کلاینت جاوا

ااینک ادغام چت‌بات ما پایان یافته است. پس از افزودن تغییرات مورد نیاز در UI برای گرفتن کوئری کاربر و نمایش پاسخ بات، می‌توانید نمونه چت‌بات نهایی را در ویدئوی زیر مشاهده کنید.

اگر این مطلب برایتان مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

میثم لطفی (+)

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

بر اساس رای 1 نفر

آیا این مطلب برای شما مفید بود؟

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *