Intent ها وظیفه ای را نشان می دهند که Assistant به Action شما نیاز دارد تا انجام دهد، مانند برخی از ورودی های کاربر که نیاز به پردازش دارد یا یک رویداد سیستمی که شما باید آن را مدیریت کنید. شما از intent ها برای کمک به ساخت مدل های فراخوانی و مکالمه خود استفاده می کنید. هنگامی که این رویدادها رخ می دهند، زمان اجرا Assistant آن را با هدف مربوطه مطابقت می دهد و هدف را به Action شما برای پردازش ارسال می کند. دو نوع اصلی از intent وجود دارد که در لیست زیر توضیح داده شده است:
اهداف کاربر به شما امکان میدهد توانایی دستیار را برای درک درخواستهای کاربر که مختص برند و خدمات شما هستند گسترش دهید. شما عبارات آموزشی سفارشی را در یک intent تعریف می کنید، که به نوبه خود مدل زبان یک intent را ایجاد می کند. آن مدل زبان Assistant NLU را تقویت میکند و توانایی آن را برای درک بیشتر افزایش میدهد.
مقاصد سیستم دارای داده های آموزشی یا سایر سیگنال های ورودی غیرمکالمه ای هستند که توسط Assistant تعریف شده اند. این بدان معناست که شما نیازی به تعریف عبارات آموزشی برای این مقاصد ندارید. Assistant این مقاصد را به روشی استاندارد مطابقت می دهد، در طول رویدادهای شناخته شده سیستم مانند فراخوانی اصلی یا زمانی که کاربران هیچ ورودی ارائه نمی دهند.
اهداف کاربر
وقتی Actions را میسازید، اهداف کاربر را ایجاد میکنید که حاوی عبارات آموزشی است، که توانایی دستیار را برای درک بیشتر افزایش میدهد. Assistant از عبارات آموزشی شما برای تقویت NLU خود استفاده می کند زمانی که درخواست های کاربر را به Actions شما واگذار می کند.
هنگامی که این اتفاق میافتد، Assistant ارتباط بین کاربر و Actions شما را کارگزاری میکند و ورودی کاربر را به قصدی که دارای یک مدل زبان منطبق است نگاشت میکند. سپس Assistant به Actions شما از هدف منطبق اطلاع می دهد، بنابراین می توانید آن را در یک صحنه پردازش کنید.
هنگام ساختن اهداف کاربر، عناصر زیر را مشخص می کنید:
تعیین هدف جهانی مشخص می کند که آیا زمان اجرای دستیار می تواند با هدف مشخص شده کاربر در زمان فراخوانی و همچنین در طول مکالمه مطابقت داشته باشد یا خیر. بهطور پیشفرض، «دستیار» میتواند تنها در طول مکالمه با هدف کاربر مطابقت داشته باشد. فقط اهدافی که بهعنوان جهانی علامتگذاری میکنید برای فراخوانی پیوند عمیق واجد شرایط هستند.
عبارات آموزشی نمونه هایی از آنچه کاربر ممکن است بگوید تا با هدف مطابقت داشته باشد. موتور Assistant NLU (درک زبان طبیعی) به طور طبیعی این عبارات آموزشی را گسترش می دهد تا عبارات مشابه دیگر را نیز شامل شود. ارائه مجموعه بزرگی از نمونههای با کیفیت بالا، کیفیت هدف و دقت تطابق را افزایش میدهد.
پارامترها داده های تایپ شده ای هستند که می خواهید از ورودی کاربر استخراج کنید. برای ایجاد یک پارامتر، عبارات آموزشی را با انواع حاشیهنویسی میکنید تا به موتور NLU اطلاع دهید که میخواهید بخشهایی از ورودی کاربر استخراج شود. می توانید از انواع سیستم استفاده کنید یا انواع سفارشی خود را برای پارامترها ایجاد کنید.
وقتی موتور NLU یک تطابق پارامتر را در ورودی کاربر تشخیص میدهد، مقدار را به عنوان یک پارامتر تایپ شده استخراج میکند، بنابراین میتوانید منطق را با آن در یک صحنه انجام دهید. اگر پارامتر intent هم نام یک اسلات صحنه باشد، Assistant runtime به طور خودکار شکاف صحنه را با مقدار پارامتر intent پر می کند. برای اطلاعات بیشتر به اسناد نگاشت ارزش اسلات مراجعه کنید.
پارامترهای Intent نیز از منطبقات "جزئی" پشتیبانی می کنند. به عنوان مثال، اگر یک نوع DateTime
را مشخص کنید و کاربر فقط یک تاریخ ارائه دهد، NLU همچنان مقدار جزئی را به عنوان یک پارامتر استخراج می کند.
ممکن است بخواهید از NLU خود برای مدیریت تمام ورودی های کاربر برای یک Action استفاده کنید. به عنوان مثال، ممکن است بخواهید که Action شما در طول یک مکالمه به همه سناریوهای بدون تطابق پاسخ دهد. برای اطمینان از اینکه تمام ورودی های کاربر را می گیرید، یک intent با نوع متن فرم رایگان ایجاد کنید. با این حال، باید از استفاده از مقاصد سفارشی برای نادیده گرفتن رفتار پیشفرض بدون تطابق دستیار اجتناب کنید، زیرا ممکن است بر توانایی کاربران برای جابهجایی بین Actions تأثیر منفی بگذارد.
وقتی یک هدف سفارشی در کنسول Actions ایجاد میکنید، Actions Builder اهداف سیستمی را پیشنهاد میکند که ممکن است همان نقشی را داشته باشند که قصد کاربر شما را داشته باشد. برای اطلاعات بیشتر در مورد اهداف سیستم، به بخش زیر مراجعه کنید.
مقاصد سیستم
دستیار اهداف سیستم را بر اساس رویدادهای استاندارد سیستم مطابقت می دهد. این رویدادها ممکن است یک مدل زبانی تعریفشده توسط سیستم داشته باشند، مانند کاربرانی که میگویند «مکث» برای توقف پخشکننده رسانه، یا ممکن است مدل زبانی نداشته باشند مانند اینکه کاربران اصلاً ورودی ارائه نمیدهند. از آنجایی که این هدفها توسط Assistant ارائه میشوند، لازم نیست نگران نحوه تطبیق آنها باشید، بلکه فقط باید نگران نحوه مدیریت آنها در هنگام مطابقت باشید.
مقاصد سیستم همچنین جایگزین نیاز به ایجاد مقاصد کاربر برای اقداماتی که اغلب مورد نیاز است، مانند YES
و NO
می شود. مقاصد سیستم برای همه زبانها آموزش داده میشود و به شما امکان میدهد تا به راحتی یک تجربه ثابت را برای کاربران خود در چندین زبان پیادهسازی کنید. مقاصد سیستم همچنین می تواند به عنوان مقاصد جهانی تنظیم شود.
مقاصد سیستم نسخه شده است. تا زمانی که آن نسخه توسط Assistant پشتیبانی میشود، میتوانید از نسخه خاصی از سیستم هدف استفاده کنید. اگر یک Action از یک نسخه پشتیبانی نشده از یک هدف سیستم استفاده کند، آن هدف سیستم به طور خودکار به نسخه پشتیبانی شده به روز می شود.
فهرست مقاصد
قصد | شرح |
---|---|
actions.intent.MAIN | هر پروژه Actions باید حاوی این فراخوانی اصلی پیشفرض باشد که با نام نمایشی شما مرتبط است. کاربران عباراتی مانند "Ok Google, talk to <display name>" را برای فراخوانی Action می گویند. |
| این مقاصد زمانی مطابقت داده میشوند که کاربر چیزی میگوید که نمیتواند با هدفی در Action شما مطابقت داشته باشد. میتوانید درخواستهای فردی و پیام خروج را در هدف نهایی تنظیم کنید. |
| این مقاصد زمانی مطابقت دارند که پس از 8 ثانیه هیچ ورودی از طرف کاربر وجود نداشته باشد. میتوانید برای هر هدف بازپرداختهای جداگانه و در هدف نهایی یک پیام خروج تنظیم کنید. |
actions.intent.CANCEL | این هدف زمانی مطابقت دارد که کاربر بخواهد از Actions شما در حین مکالمه خارج شود، مثلاً کاربر بگوید «میخواهم ترک کنم». |
actions.intent.MEDIA_STATUS_FINISHED | زمانی که کاربر پخش رسانه را کامل میکند یا به قطعه بعدی رسانه میپرد، این هدف مطابقت داده میشود و به Action شما ارسال میشود. |
actions.intent.MEDIA_STATUS_PAUSED | هنگامی که کاربر پخش رسانه را در یک پاسخ رسانه ای متوقف می کند، این هدف مطابقت دارد و به Action شما ارسال می شود. |
actions.intent.MEDIA_STATUS_STOPPED | هنگامی که کاربر پخش رسانه را از یک پاسخ رسانه ای متوقف می کند یا از آن خارج می شود، این هدف مطابقت دارد و به Action شما ارسال می شود. |
actions.intent.MEDIA_STATUS_FAILED | هنگامی که پخش کننده پاسخ رسانه ای پخش نمی شود، این هدف مطابقت دارد و به Action شما ارسال می شود. |
actions.intent.YES | زمانی که کاربر به Action شما پاسخ مثبت بدهد، این هدف مطابقت دارد. |
actions.intent.NO | این هدف زمانی مطابقت دارد که کاربر به Action شما پاسخ منفی بدهد. |
actions.intent.REPEAT | این هدف زمانی مطابقت دارد که کاربر از Action بخواهد آخرین پاسخ را تکرار کند. اگر هدف سیستم در عامل فعال نباشد ، درخواستهای تکرار بهطور خودکار توسط دستیار رسیدگی میشود. فعال کردن این هدف سیستم به شما امکان میدهد نحوه رسیدگی به درخواستهای تکراری و همچنین پاسخها را تغییر دهید. |
actions.intent.PLAY_GAME | این هدف زمانی مطابقت داده می شود که کاربر درخواست انجام یک بازی را می دهد. این هدف به شما امکان میدهد در یک فراخوان ضمنی (دعوت بدون استفاده از نام نمایشی خود) که توسط Actions on Google ارائه میشود، شرکت کنید. |
پشتیبانی از زبان های دیگر را اضافه کنید
مقاصد خاص سیستم، مانند YES
، NO
، و NO_MATCH
، فقط به زبان انگلیسی پشتیبانی می شوند. برای افزودن پشتیبانی از زبانهای دیگر، باید مقاصد کاربر را ایجاد کنید که با اهداف سیستم مطابقت داشته باشد. مقاصد جدید شما باید در کد شما همانند اهداف سیستمی که پیادهسازی کردهاید، استفاده شود.
به عنوان مثال، فرض کنید در حال توسعه یک اقدام جدید هستید و قصد سیستم YES
را اجرا کرده اید. هدف سیستم YES
فقط به زبان انگلیسی پشتیبانی میشود، اما میخواهید برنامه شما از تعاملات به زبان آلمانی و ژاپنی نیز پشتیبانی کند. برای پشتیبانی از زبانهای اضافی، یک intent ایجاد میکنید که شامل عبارات آموزشی برای آلمانی و ژاپنی است، و سپس مدیریتی را که برای سیستم YES
استفاده کردهاید، پیادهسازی میکنید.
درباره ایجاد اهداف کاربر بیشتر بیاموزید.
درباره بومی سازی اهداف کاربر خود بیشتر بیاموزید.
بازده بدون مسابقه
وقتی پاسخ کاربر با یکی از مقاصد شما مطابقت ندارد، دستیار تلاش میکند تا ورودی را مدیریت کند. این رفتار باعث میشود تا کاربران در وسط مکالمه، اقدامها را تغییر دهند. به عنوان مثال، کاربر می پرسد "این هفته چه فیلم هایی پخش می شود؟" و سپس متن را در میانه مکالمه تغییر می دهد: "آب و هوا فردا چیست؟" در این مثال، به دلیل "آب و هوا فردا چیست؟" پاسخ معتبری به مکالمه ای نیست که با درخواست اولیه راه اندازی شده است، دستیار به طور خودکار تلاش می کند تا مطابقت را مدیریت کند و کاربر را به یک مکالمه مناسب منتقل کند.
اگر «دستیار» نتواند اقدام مناسبی را پیدا کند که با ورودی کاربر مطابقت داشته باشد، کاربر در چارچوب Action شما ادامه میدهد.
از آنجایی که Assistant ممکن است Action شما را برای پاسخ به یک سناریوی معتبر بدون تطابق قطع کند، از قصد سیستم NO_MATCH
برای پاسخگویی به درخواستهای کاربر استفاده نکنید. شما فقط باید از قصد NO_MATCH
برای درخواست مجدد کاربر استفاده کنید.