ساخت مدل های مکالمه

یک مدل مکالمه تعریف می‌کند که کاربران می‌توانند به Actions شما بگویند و Actions شما چگونه به کاربران پاسخ می‌دهند. بلوک های اصلی سازنده مدل مکالمه شما عبارتند از: مقاصد ، انواع ، صحنه ها و درخواست ها . پس از فراخوانی یکی از اقدامات شما، دستیار Google کاربر را به آن Action می‌دهد و Action مکالمه‌ای را با کاربر شروع می‌کند، بر اساس مدل مکالمه شما، که شامل موارد زیر است:

  • درخواست‌های کاربر معتبر - برای تعریف اینکه کاربران می‌توانند به Actions شما چه بگویند، مجموعه‌ای از مقاصد ایجاد می‌کنید که Assistant NLU را تقویت می‌کند تا بتواند درخواست‌هایی را که مختص Actions شما هستند درک کند. هر intent عبارات آموزشی را تعریف می کند که توصیف می کند کاربران چه چیزی می توانند برای مطابقت با آن هدف بگویند. Assistant NLU این عبارات آموزشی را گسترش می دهد تا عبارات مشابهی را در بر گیرد و تجمیع آن عبارات منجر به مدل زبان intent می شود.

  • منطق عمل و پاسخ‌ها - صحنه‌ها اهداف را پردازش می‌کنند، منطق مورد نیاز را انجام می‌دهند و درخواست‌هایی برای بازگشت به کاربر ایجاد می‌کنند.

شکل 1. یک مدل مکالمه شامل مقاصد، انواع، صحنه‌ها و اعلان‌هایی است که تجربه کاربری شما را تعریف می‌کنند. مقاصدی که برای فراخوانی واجد شرایط هستند برای مطابقت در مکالمات شما نیز معتبر هستند.

درخواست های معتبر کاربر را تعریف کنید

برای تعریف اینکه کاربران می‌توانند به Actions شما چه بگویند، از ترکیبی از intent و type استفاده می‌کنید. اهداف و انواع کاربر به شما امکان می دهد Assistant NLU را با مدل های زبان خود تقویت کنید. هدف‌ها و انواع سیستم به شما امکان می‌دهد از مدل‌های زبان داخلی و تشخیص رویداد استفاده کنید، مانند کاربرانی که می‌خواهند Action شما را ترک کنند یا دستیار هیچ ورودی را تشخیص نمی‌دهد.

اهداف کاربر را ایجاد کنید

مقاصد کاربر به شما امکان می دهد عبارات آموزشی خود را تعریف کنید که مشخص می کند کاربران ممکن است به Actions شما چه بگویند. Assistant NLU از این عبارات برای آموزش خود برای درک آنچه کاربران شما می گویند استفاده می کند. وقتی کاربران چیزی می گویند که با مدل زبان هدف کاربر مطابقت دارد، Assistant با هدف مطابقت دارد و Action شما را مطلع می کند، بنابراین می توانید منطق را انجام دهید و به کاربران پاسخ دهید.

شکل 1 . نمونه ای از قصد کاربر

برای ایجاد یک هدف کاربر:

  1. در برگه Develop ، روی User intents > ⊕ (New intent) کلیک کنید، نامی را مشخص کنید و Enter را فشار دهید تا هدف ایجاد شود.
  2. روی intent جدید ایجاد شده در منوی سمت چپ کلیک کنید. ویرایشگر Intent ظاهر می شود.
  3. عبارات آموزشی را به هدف اضافه کنید. برای آموزش Assistant NLU باید تا حد امکان عبارات آموزشی اضافه کنید.
  4. اختیاری : عبارات آموزشی را حاشیه نویسی کنید تا به Assistant NLU دستور دهید تا پارامترهای تایپ شده را از ورودی کاربر که با نوع مشخصی مطابقت دارد، تجزیه و استخراج کند:
    1. در قسمت افزودن پارامتر جدید یک نام برای پارامتر وارد کنید.
    2. یک نوع سیستم را از منوی کشویی انتخاب کنید یا یک نوع سفارشی ایجاد کنید .
    3. مشخص کنید که آیا پارامتر یک لیست است. این به پارامتر اجازه می دهد چندین مقدار از یک نوع را جمع آوری کند.
    4. در قسمت افزودن عبارات آموزشی ، متنی را که می خواهید تایپ روی آن اعمال کنید، برجسته کنید. این به Assistant NLU می گوید که متن برجسته شده را به عنوان یک پارامتر در نظر بگیرد. اگر کاربران چیزی را بگویند که با نوع مطابقت دارد، NLU آن مقدار را به عنوان یک پارامتر استخراج می کند.

اهداف سیستم را ایجاد کنید

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

  1. در تب Develop ، روی System intents کلیک کنید. مجموعه‌ای از مقاصد سیستم مانند NO_MATCH ، NO_INPUT و CANCEL در دسترس هستند.
  2. هر هدف سیستم شامل کنترلرهای مخصوص به خود است که می توانید آنها را برای هر نوع هدف سیستم شخصی سازی کنید. برای مثال، مقاصد سیستم به شما امکان می‌دهد رویدادهای webhook را راه‌اندازی کنید و هنگام وقوع رویداد، درخواست‌های ثابت ارسال کنید.

انواع سفارشی ایجاد کنید

انواع سفارشی به شما امکان می دهد مشخصات نوع خود را ایجاد کنید تا NLU را برای درک مجموعه ای از مقادیری که باید به یک کلید نگاشت می شوند آموزش دهید.

شکل 2 . نمونه ای از نوع سفارشی

برای ایجاد یک نوع سفارشی:

  1. در تب Develop ، روی Types > ⊕ (نوع جدید) کلیک کنید.
  2. نحوه ارائه مقادیر نوع در چه نوع مقادیر با این نوع پشتیبانی را انتخاب کنید؟ بخش:

    • کلمات و مترادف ها به شما امکان می دهند چندین مقدار را به یک کلید نگاشت کنید که به آنها ورودی می گویند. نوع شما می تواند شامل یک یا چند ورودی باشد. اگر این گزینه را انتخاب کنید، می توانید تنظیمات NLU زیر را نیز فعال کنید:
      • فعال کردن تطابق فازی - این اجازه می دهد تا ورودی های دارای بیش از یک کلمه مطابقت داشته باشند، حتی زمانی که کلمات به ترتیب متفاوت گفته می شوند.
      • مقادیر ناشناخته را بپذیرید - وقتی نمی‌توانید همه مقادیر ممکن را مشخص کنید، کلمات یا عبارات ناشناخته را بر اساس ورودی‌های اطراف و داده‌های آموزشی قصد، مانند مواردی که ممکن است به فهرست مواد غذایی اضافه شوند، می‌پذیرد.
    • عبارات منظم اجازه می دهد تا نوع با الگوهای عبارت منظم بر اساس استاندارد RE2 گوگل مطابقت داشته باشد.
    • متن فرم آزاد اجازه می دهد تا نوع با هر چیزی که کاربر می گوید مطابقت داشته باشد.
  3. مقادیر نوع را در قسمت افزودن ورودی ها مشخص کنید. اگر متن فرم رایگان را انتخاب کردید، نوع شما با هر متنی مطابقت دارد، بنابراین نیازی به ارائه هیچ ورودی ندارید.

منطق عمل و پاسخ ها را بسازید

Assistant NLU درخواست‌های کاربر را با هدف‌ها مطابقت می‌دهد تا Action شما بتواند آنها را در صحنه‌ها پردازش کند. صحنه ها مجریان منطق قدرتمندی هستند که به شما امکان می دهند رویدادها را در طول مکالمه پردازش کنید.

شکل 3 . نمونه ای از یک صحنه سفارشی

یک صحنه ایجاد کنید

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

برای ایجاد یک صحنه:

  1. در تب Develop ، روی Scenes > ⊕ (صحنه جدید) کلیک کنید، نامی را مشخص کنید و Enter را فشار دهید تا یک صحنه ایجاد شود.
  2. روی صحنه جدید ایجاد شده در منوی سمت چپ کلیک کنید. ویرایشگر صحنه ظاهر می شود.

تنظیم یکباره را تعریف کنید

هنگامی که یک صحنه برای اولین بار فعال می شود، می توانید وظایف یکباره را در مرحله On enter انجام دهید. مرحله On enter فقط یک بار اجرا می شود و تنها مرحله ای است که در حلقه اجرای صحنه اجرا نمی شود.

  1. در یک صحنه، روی مرحله On enter کلیک کنید تا عملکرد آن مشخص شود. در این مرحله می توانید عملکرد زیر را مشخص کنید:

    • با وب هوک خود تماس بگیرید - یک وب هوک را راه اندازی می کند. برای اطلاعات بیشتر در مورد webhooks به مستندات webhooks مراجعه کنید.
    • ارسال درخواست - اعلان های ایستا را برای کاربر مشخص کنید تا بدانند چگونه به مکالمه ادامه دهند. برای اطلاعات بیشتر در مورد تعیین دستورات، به مستندات درخواست ها مراجعه کنید.
    شکل 4 . نمونه ای از صحنه های روی صحنه

شرایط را بررسی کنید

شرایط به شما امکان می‌دهد پارامترهای پر کردن اسلات، ذخیره‌سازی جلسه، فضای ذخیره‌سازی کاربر و ذخیره‌سازی خانگی را برای کنترل جریان اجرای صحنه بررسی کنید.

  1. در یک صحنه، روی نماد + برای مرحله Condition کلیک کنید. ویرایشگر Condition در سمت راست ظاهر می شود. در این مرحله می توانید عملکرد زیر را مشخص کنید:

    • شرط - عبارت شرطی واقعی را برای پایه منطقی مشخص کنید. برای اطلاعات نحوی به مستندات شرایط مراجعه کنید.
    • با وب هوک خود تماس بگیرید - یک وب هوک را راه اندازی می کند. برای اطلاعات بیشتر در مورد webhooks به مستندات webhooks مراجعه کنید.
    • درخواست‌های ارسال - اعلان‌های ثابت را برای ارسال به کاربر مشخص می‌کند تا بدانند چگونه به مکالمه ادامه دهند. برای اطلاعات بیشتر در مورد تعیین دستورات، به مستندات درخواست ها مراجعه کنید.
    • Transition - صحنه انتقال را مشخص می کند که عبارت شرطی درست باشد.
شکل 5 . نمونه ای از مرحله شرایط یک صحنه

پر کردن اسلات را تعریف کنید

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

در ویرایشگر صحنه، روی نماد + برای مرحله پر کردن اسلات کلیک کنید. ویرایشگر اسلات در سمت راست ظاهر می شود. شما می توانید ویژگی های زیر یک اسلات را مشخص کنید:

  • Slot name: نام اسلات را مشخص می کند. اگر می‌خواهید از نگاشت مقدار اسلات استفاده کنید، از همان نام پارامتر intent مربوطه استفاده کنید.
  • نوع اسلات: نوع اسلات را با نوع سیستم یا نوع سفارشی مشخص می کند.
  • این شکاف الزامی است: این شکاف را به عنوان مورد نیاز علامت گذاری می کند. اگر فعال باشد، تا زمانی که این شکاف پر نشود، پر کردن شکاف کامل نمی شود.
  • اختصاص مقدار پیش‌فرض به این شکاف: یک مقدار پیش‌فرض را برای شکافی که از پارامتر جلسه مشخص‌شده خوانده می‌شود، مشخص می‌کند.
  • Customize Slot Value Writback: یک پارامتر جلسه را مشخص می کند تا پس از تکمیل شکاف، مقدار اسلات باقی بماند.
  • اعتبارسنجی اسلات: هنگامی که یک شکاف پر می شود، یک هوک را راه اندازی کنید. این تنظیم برای همه اسلات ها اعمال می شود.
  • با وب هوک خود تماس بگیرید (هنگامی که شکاف مورد نیاز است فعال می شود): یک وب هوک را راه اندازی می کند. برای اطلاعات بیشتر در مورد webhooks به مستندات webhooks مراجعه کنید.
  • درخواست‌های ارسال (فعال در زمانی که شکاف مورد نیاز است): اعلان‌های ثابت را برای ارسال به کاربر مشخص می‌کند تا بدانند چگونه به مکالمه ادامه دهند. برای اطلاعات بیشتر در مورد تعیین دستورات، به مستندات درخواست ها مراجعه کنید.

برای انواع خاص اسلات (مانند موارد مربوط به تراکنش ها یا تعامل کاربر)، بخش دیگری ظاهر می شود که در آن می توانید اسلات را پیکربندی کنید. پیکربندی‌های اسلات می‌توانند تجربه مکالمه را برای کاربران بر اساس ویژگی‌هایی که ارائه می‌دهید تغییر دهند.

برای پیکربندی یک شکاف، ویژگی‌هایی را در یک شی JSON یا در اجرای خود (که به عنوان پارامتر جلسه ارجاع می‌شود) یا در ویرایشگر JSON درون خطی ارائه کنید. می‌توانید ویژگی‌های موجود برای هر نوع شکاف را در مرجع Action Builder JSON بیابید. برای مثال، نوع اسلات actions.type.DeliveryAddressValue با محتوای مرجع شکاف DeliveryAddressValue مطابقت دارد.

شکل 6 . نمونه ای از تنظیمات پر کردن شکاف صحنه

نقشه برداری ارزش اسلات

در بسیاری از موارد، تطبیق قصد قبلی می تواند شامل پارامترهایی باشد که به طور جزئی یا کامل مقادیر شکاف صحنه مربوطه را پر می کند. در این موارد، اگر نام شکاف با نام پارامتر intent مطابقت داشته باشد، تمام شکاف‌های پر شده توسط پارامترهای intent به پر کردن شکاف صحنه نگاشت می‌شوند.

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

ورودی فرآیند

در طول این مرحله، می‌توانید ورودی کاربر NLU را با Intent مطابقت دهد. شما می توانید با افزودن مقاصد مورد نظر به صحنه، تطبیق هدف با یک صحنه خاص را محدود کنید. این به شما امکان می‌دهد جریان مکالمه را کنترل کنید و به «دستیار» می‌گویید وقتی صحنه‌های خاصی فعال هستند، اهداف خاصی را مطابقت دهد.

  1. در یک صحنه، روی نماد + برای مرحله مدیریت قصد کاربر یا سیستم مدیریت قصد کلیک کنید. ویرایشگر کنترل کننده قصد در سمت راست ظاهر می شود. شما می توانید عملکرد زیر را برای کنترل کننده قصد مشخص کنید:

    • Intent - هدفی را که می خواهید در این صحنه مطابقت دهید را مشخص می کند.
    • با وب هوک خود تماس بگیرید - یک وب هوک را راه اندازی می کند. برای اطلاعات بیشتر در مورد نحوه رسیدگی به درخواست وب هوک، به مستندات webhooks مراجعه کنید.
    • ارسال اعلان - اعلان های ثابت را برای کاربر مشخص کنید تا بدانند چگونه پاسخ دهند. برای اطلاعات بیشتر در مورد تعیین دستورات، به مستندات درخواست ها مراجعه کنید.
    • انتقال (در صورت وجود) - صحنه ای را برای انتقال به زمانی که هدف مشخص شده مطابقت دارد، مشخص می کند.
شکل 7 . نمونه ای از کنترل کننده قصد کاربر یک صحنه
شکل 8 . نمونه ای از کنترل کننده هدف سیستم یک صحنه