Up until recently, a Power Virtual Agents chatbot would ask a user a series of questions to complete a task. The response of each question would be stored in a variable until all the questions were completed. Asking a user multiple questions to complete a simple task made the conversation slightly cumbersome and unnatural.
Support for entities and slot filling has improved the NLP, Natural Language Processing, capabilities of Power Virtual Agents making conversations more natural. Entities are objects that are relevant to your chat. For example if the chat topic relates to making a reservation you might have the following entities date and time, location and no of people. The conversation needs to populate these entities with values to complete the task of making a reservation. You would need to add questions to your topic to gather the required information. When you add a question node to a topic you need identify the entity type you are trying to fill and the name of the variable where it will be stored.
Virtual Agents comes with common prebuild entities such as country and date that you can use in your topics. You can also create your own custom entities with a list of item values and synonyms. Unfortunately this is not data driven and the values have to be entered manually. It would be nice if we could populate these from CDS using a Power Automate flow.
You can also configure a question to display a subset of the values as options to the client. This does not prevent the user entering any of the other values in the list. It is typically used to highlight the most popular options or those most appropriate for the user.
Proactive slot filling is where the NLP engine interprets the users input to populate entities that are required by the topic. For the reservation example I created a topic with three questions that ask for the reservation date/time, location and no of people. If the NLP engine determines the value of a required entity from the user chat then that entity’s question will be skipped. For example if the users enters “this Thursday at 8pm at blue ridge” then the natural language process will identify that the location has already been supplied and the location questions will be skipped
Entities and slot filling are common patterns across most conversational platforms and are a welcome addition to Power Virtual Agents. A user can now complete a task in a more natural conversational manner and a single response can be used to complete a task.
Something to note with regard to the slot filling of dates. The NLP engine will interpret a variety of dates such as Wed, Wednesday, 8 Jan , 08/01 however if you enter the day of the week it will prompt you to select between the next and previous dates for this day. There so way to configure this off however if the user enters “this Wednesday” it will default to the coming Wednesday and not prompt.