صحنه ها در ترکیب با مقاصد ، بلوک اصلی دیگر مدل مکالمه شما هستند. صحنه ها حالت های تک تک مکالمه شما را نشان می دهند و هدف اصلی آنها سازماندهی مکالمه شما به تکه های منطقی، اجرای وظایف و بازگرداندن درخواست ها به کاربران است.
برخی از ویژگی های صحنه عبارتند از:
- اجرای حلقه ای - صحنه ها در یک حلقه اجرا می شوند تا زمانی که معیارهای انتقالی را که شما تعریف کرده اید برآورده کند. این به شما امکان میدهد جریانهای منطقی کنترلی را بسیار کارآمدتر در یک صحنه واحد ایجاد کنید.
- جداسازی دیالوگ - در ترکیب با Intent ها، صحنه ها به شما امکان می دهند گفتگوها را در تکه های منطقی گروه بندی کنید و راه های آسانی را برای ایجاد جفت درخواست کاربر و پاسخ Action به شما ارائه می دهد.
- محدوده تطبیق هدف - از آنجایی که فقط یک صحنه میتواند در هر زمان فعال باشد، میتوانید تطبیق هدف را با صحنههای انتخابی خود محدود کنید و فقط زمانی که آن صحنهها فعال هستند، مطابقت داشته باشند.
- پر کردن اسلات - می توانید از پر کردن شکاف در یک صحنه برای جمع آوری چندین قطعه ورودی کاربر تایپ شده، بدون نیاز به ایجاد چندین هدف استفاده کنید.
- شرایط درون صحنه - میتوانید اسلاتها، جلسه، کاربر و فضای ذخیرهسازی خانه را بررسی کنید تا منطق ساده و شرطی را بدون راهاندازی وبکهوک انجام دهید.
می توانید صحنه ها را به عنوان بخشی از مدل مکالمه خود به عنوان یک صحنه سفارشی تعریف کنید. منطق مکالمه Assistant شامل صحنه های سیستمی نیز می شود که عملکرد استانداردی را برای مکالمه شما فراهم می کند.
صحنه های سفارشی
یک صحنه سفارشی یک بلوک ساختمانی از منطق مکالمه است که بخشی از مدل مکالمه Action شما را تشکیل می دهد. صحنههای سفارشی دارای مراحلی هستند که نحوه و زمان شروع آن را تعریف میکنند که فعالسازی نامیده میشود، پردازش مکالمهای که انجام میدهد به نام چرخه حیات اجرا و نحوه پایان صحنه به نام Transition :
- فعال سازی - قبل از اجرای صحنه، باید آن را از طریق تطبیق هدف کلی یا انتقال صحنه فعال کنید.
- اجرا - هنگامی که یک صحنه فعال است، در یک چرخه زندگی کاملاً تعریف شده اجرا می شود که به شما امکان می دهد وظایف مختلفی مانند پر کردن اسلات، بررسی شرطی، تولید سریع و راه اندازی رویدادهای وب هوک را انجام دهید.
- انتقال - هنگامی که یک صحنه با معیارهایی مطابقت دارد که شما تعریف می کنید، مانند مطابقت با یک هدف یا تکمیل پر کردن شکاف، می توانید برای اجرای منطق بیشتر به صحنه دیگری منتقل شوید. از طرف دیگر، میتوانید به صحنه سیستم مکالمه پایانی بروید، که مکالمه با کاربر را پایان میدهد.
فعال سازی
قبل از اجرای یک صحنه، باید فعال باشد. فقط یک صحنه می تواند در هر زمان فعال باشد. شما می توانید صحنه ها را به روش های زیر فعال کنید:
- فراخوان - وقتی ورودی کاربر با مدل زبان یک هدف کلی مطابقت دارد، میتوانید صحنهای را برای پردازش فراخوان فعال کنید.
- انتقال صحنه ایستا - هنگامی که یک صحنه معیارهای انتقال را برآورده می کند، می توانید انتقال به صحنه دیگر را تعریف کنید.
- انتقال صحنه پویا - در یک کنترل کننده وب هوک، می توانید به صورت برنامه ریزی شده به صحنه دیگری منتقل شوید .
چرخه عمر اجرا
هنگامی که یک صحنه فعال است، در یک چرخه حیات کاملاً تعریف شده اجرا می شود که تا زمانی که صحنه با معیارهای انتقالی که شما تعیین کرده اید مطابقت کند، حلقه می شود. چرخه حیات اجرای یک صحنه به مراحل اختیاری تقسیم می شود که به ترتیب زیر اجرا می شوند:
On enter - این مرحله فقط یک بار زمانی که یک صحنه فعال می شود اجرا می شود. میتوانید یک هوک را راهاندازی کنید یا از کاربر بخواهید صحنه شما را یکبار تنظیم کند.
شرایط - شرایط به شما امکان می دهد معیارهای خاصی را قبل از پیشبرد مراحل چرخه حیات، راه اندازی یک وب هوک یا ارسال درخواست ارزیابی کنید. این مرحله می تواند معیارهای انتقال را برای خروج از حلقه اجرا تعریف کند.
پر کردن اسلات - یک صحنه می تواند به طور خودکار از کاربران درخواست کند تا زمانی که تمام اسلات های مورد نیاز (داده های تایپ شده) را جمع آوری کند. یک صحنه هر بار از طریق حلقه اجرای خود یک اسلات را درخواست می کند. اگر هر شکافی وجود نداشته باشد، چرخه حیات صحنه در نهایت به مرحله پر کردن شکاف باز می گردد و اسلات مورد نیاز بعدی را درخواست می کند. این مرحله می تواند معیارهای انتقال را برای خروج از حلقه اجرا تعریف کند.
Prompts - Assistant صف اعلان را به کاربر تحویل می دهد و صف را پاک می کند. صف اعلان مجموعه ادغام شده ای از دستورات است که از آخرین باری که این مرحله صف را پاک کرده است جمع آوری شده است.
ورودی - دستیار ورودی کاربر را مصرف میکند و به صحنه شما برمیگرداند، بنابراین میتوانید آن را پردازش کنید، که ممکن است شامل تطبیق هدف (هدف جهانی یا مقاصد کاربر در یک صحنه)، ادامه پر کردن شکاف (اگر کامل نباشد) یا عدم تطابق باشد. یا بدون خطای ورودی این مرحله می تواند معیارهای انتقال را برای خروج از حلقه اجرا تعریف کند. در صورت عدم انتقال، حلقه اجرا به مرحله شرایط باز می گردد.
بخش های زیر هر مرحله چرخه زندگی را با جزئیات بیشتری شرح می دهد.
در ورود
On enter تنها مرحله ای است که در حلقه اجرای صحنه اجرا نمی شود. یک بار مقدار دهی اولیه صحنه شما را به ترتیب زیر انجام می دهد:
- اگر زمان اجرا Assistant بتواند هر شکافی را از یک هدف قبلی پر کند، اکنون این کار را انجام می دهد تا صحنه را برای مرحله پر کردن اسلات آماده کند. به عنوان مثال، برخی از ورودی های کاربر ممکن است با یک intent مطابقت داشته باشد و یک اسلات ارائه دهد. این تطابق قصد یک صحنه را فعال میکند و اگر نامهای شکاف مطابقت داشته باشند، میتواند یک شکاف در یک صحنه را پر کند.
- اگر وب هوک فعال باشد، رویدادی را به صورت همزمان راهاندازی میکند و منتظر میماند تا سرویس وب شما پاسخی بدهد.
- هنگامی که زمان اجرا یک پاسخ وب هوک دریافت می کند، هر مرجع پارامتر را در دستورات حل می کند و یک نامزد اعلان را بر اساس سطح کاربر انتخاب می کند و سپس یک نوع را برای کاندید انتخاب می کند تا بعداً برای کاربر ارسال شود.
- اگر پاسخ webhook حاوی یک درخواست باشد، آن را به صف اعلان اضافه می کند. اگر یک اعلان ایستا نیز وجود داشته باشد، اعلان webhook ابتدا در صف اعلان ادغام می شود و به دنبال آن اعلان ایستا قرار می گیرد.
- اگر پاسخ webhook حاوی یک انتقال باشد، اکنون این کار را انجام می دهد. اگر نه، صحنه تا مرحله پر کردن شکاف ادامه مییابد.
شرایط
Conditions به شما امکان می دهد داده های جلسه، کاربر یا اسلات را برای صحت یک شرط بررسی کنید. به عنوان مثال، میتوانید بررسی کنید که آیا همه شکافها پر شدهاند یا خیر و آن را به عنوان معیاری برای انتقال به صحنه دیگری برای پردازش شکافها تنظیم کنید.
- زمان اجرا Assistant هر شرایط را به ترتیبی که مشخص شده است ارزیابی می کند. اولین شرطی که به
true
ارزیابی می شود، کنترل کننده مرتبط را اجرا می کند و ارزیابی شرایط را متوقف می کند. - یک شرط
else if scene.slots.status = "FINAL"
به طور خودکار به لیست شرایط اضافه می شود اگر شکاف را پر کنید. این شرط اختیاری کامل بودن پر شدن اسلات را بررسی میکند و میتواند یک وب هوک را راهاندازی کند یا درخواستهایی را به صف درخواست اضافه کند.
پس از ارزیابی شرایط، اگر صحنه یک انتقال را تعریف نکرد، به پر کردن شکاف ادامه میدهد.
پر کردن اسلات
این مرحله یک اسلات را برای یک اسلات تک، پر نشده و مورد نیاز اضافه می کند. اگر هیچ اسلاتی در صحنه تعریف نکنید، این مرحله هیچ کاری انجام نمی دهد.
- زمان اجرا Assistant اولین شکاف پر نشده را انتخاب می کند و دستور مربوطه را به صف درخواست اضافه می کند. از آنجایی که حلقههای اجرای صحنه، اسلاتهای پر نشده اضافی بعداً زمانی که حلقه اجرا به این مرحله بازمیگردد، مدیریت میشوند.
- شکاف فعلی و فعال میتواند دارای اعلانهای رسیدگی به خطا باشد که موارد تعریفشده در مرحله ورودی صحنه را لغو میکند.
- هنگامی که کاربر یک اسلات را پر می کند، می توانید آن را در یک وب سرویس با فعال کردن یک هوک تأیید کنید.
درخواست می کند
زمان اجرا Assistant صف اعلان را به کاربر تحویل می دهد، صف را پاک می کند و ورودی کاربر را مصرف می کند.
ورودی
زمان اجرا Assistant سعی می کند ورودی را با یک intent یا یک شکاف مطابقت دهد:
- در مورد تطبیق هدف کاربر، صحنه کنترل کننده هدف مرتبط (نیت کاربر یا سیستم) را اجرا می کند. کنترل کننده هدف یک صحنه بر هر هدف کلی اولویت دارد. اگر انتقالی را تعریف نکرده باشید، اجرای صحنه به مرحله شرایط بازمی گردد.
- در مورد مسابقه اسلات، صحنه به مرحله پر شدن اسلات باز می گردد.
در مورد تطبیق هدف سیستم (مثلاً بدون ورودی یا عدم تطابق)، میتوانید درخواستهایی را به صف درخواست اضافه کنید، یک هوک وب یا انتقال را راهاندازی کنید. در صورت تعریف چندین درخواست عدم تطابق، زمان اجرا Assistant مرتبطترین مورد را به ترتیب زیر انتخاب میکند: پر کردن اسلات، صحنه، سپس درخواستهای جهانی عدم تطابق. هیچ تطابقی متوالی یک رویداد مربوطه ایجاد نمی کند:
-
no_match_1
-
no_match_2
-
no_match_final
هر سطح بدون تطابق (پر کردن اسلات، صحنه و سراسری) می تواند رویدادهای وب هوک را ایجاد کند. بهطور پیشفرض، سومین و آخرین بدون مسابقه مکالمه را پایان میدهد.
-
انتقال
انتقال می تواند در مراحل زیر اتفاق بیفتد:
- شرایط - می توانید بر اساس شرایطی که تعریف می کنید به صحنه دیگری منتقل شوید. یک شرط رایج که باید بررسی شود کامل بودن پر کردن شکاف است.
- ورودی (تطبیق هدف کاربر) - اگر یک هدف مطابقت داشته باشد، می تواند انتقال به صحنه دیگری را آغاز کند.
- ورودی (تطبیق هدف سیستم) - میتوانید در طول هر رویداد تطبیق هدف سیستم، وب هوکها را فعال کنید. برای عدم تطابق و هیچ رویداد ورودی، صحنه، به طور پیشفرض، پس از سه بار تکرار به صحنه پایان مکالمه منتقل میشود.
صحنه های سیستم
صحنه های سیستم به شما امکان می دهد از منطق مکالمه داخلی ارائه شده توسط Assistant استفاده کنید، که به شما امکان می دهد جریان های مکالمه استاندارد را به تجربه کاربری خود اضافه کنید. برای مثال، صحنه سیستم پیوند دادن حساب به دستیار اجازه می دهد تا به طور لحظه ای جریان پیوند حساب را انجام دهد و اطلاعاتی را که برای پیوند دادن حساب های کاربر نیاز دارید، بازگرداند. صحنه های سیستم از چرخه عمر صحنه استاندارد پیروی نمی کنند.
لیست زیر صحنه های سیستم پشتیبانی شده و نحوه استفاده از آنها را توضیح می دهد:
- پایان مکالمه - میکروفون را می بندد و مکالمه با کاربر را پایان می دهد. پس از اجرای این صحنه، دستیار کنترل تجربه کاربر را پس می گیرد.
- پیوند دادن حساب - کاربر را از طریق جریان پیوند حساب راهنمایی می کند و اطلاعات مورد نیاز را برای پیوند دادن حساب کاربر در سرورهای پشتیبان خود با حساب Google کاربر به Actions شما ارائه می دهد. برای اطلاعات بیشتر در مورد نحوه استفاده از این صحنه، به اسناد پیوند حساب مراجعه کنید.
- به روز رسانی روزانه - کاربر را از طریق یک جریان تأیید راهنمایی می کند تا اقدامات شما را به به روز رسانی های روزانه کاربر اضافه کند. برای اطلاعات بیشتر در مورد نحوه استفاده از این صحنه، اسناد به روز رسانی روزانه را ببینید.
- اعلانها - کاربر را از طریق یک جریان تأیید راهنمایی میکند تا اعلانهایی را از اقدامات شما دریافت کند. برای اطلاعات بیشتر در مورد نحوه استفاده از این صحنه، به مستندات اعلانهای فشار مراجعه کنید.