Prompts

Detailed description of the concept of Prompts

Prompts/Statements

Prompts and statements comprise the other system to user direction of the conversational system. These are the replies that Slang can make depending on the context or state of the app. Broadly speaking, prompts are replies that expect an answer or reply from the user again, while statements are replies that don't expect an answer and more often than not represent the end of the conversation.

Another way to classify the prompts/statements is:

  • App prompts/statements: App prompts and statements are system wide prompts and

    statements which as opposed to other prompts and statements are not dependent

    on any of the intent or entities.

  • Intent prompts/statments: These are prompts and statements that are spoken

    after a successful intent recognition. In case, there are required entities

    to be prompted for and collected then this reply will be made after all the

    required entities have been collected.

  • Entity prompts/statements: In case an intent needs some entities marked as

    required, meaning for the fulfillment of the app functionality that this

    intent triggers, these entities have to mandatorily be filled in. In case the

    user does not mention the required entity in the first statement, then Slang

    will prompt for it. The entity prompts are the replies that will be used to

    by the app to urge the user to mention these entities.

Pool of prompts/statements: Each app, intent, or entity prompt or statement is actually an array of prompts or statements. This allows one to define multiple prompts/statements that mean the same thing. By cycling through these apps and prompts, Slang can sound less monotonous and introduce variety to the responses it gives.

Other language prompts: Slang does not perform translation automatically from English to another language on the prompts/statements that are supplied to it in English. Instead, for the other language prompts, you would have to supply the prompts. To do so use the the language tabs that are available. For best practices, try to maintain one is to one translations among the prompts in terms of order in the list for each language.

App Prompts/Statements

Greeting Statement

This is the statement that is made when the Slang is first triggered each time. You can use statements that introduce your product, or introduce Slang, or the usage of VAX on your app, or even make promotions using the statement. Examples:

  • Hi, how may I help you?

  • Hi, welcome to RingTel, do you want to recharge your account?

  • Hi, now use voice to recharge your account.

  • Hi use discount VOICE20 to 20 percent off of your purchase if you use voice to order.

Clarification Prompt

This is the prompt use by Slang to ask the user to repeat themselves if their utterance was not recognizable. Keep it simple and make it clear that the user was not understood and would have to repeat the question. Examples:

  • Sorry, we were not able to understand what you were saying please try again.

  • Can you repeat that?

Intent Prompts/Statements

Intent Completion Statement

At the end of the intent, after all the required entities have been provided, (either it was included in the initial utterance or they were provided as replies to entity prompts), the intent completion statement will be spoken. This can be used to inform the user that 1. The request has been registered and processing has started, for example,

  • Looking for flights from Mumbai to Delhi where the flights list is not

    ready. You could accompany this with processing iconography.

    1. The request has been registered and executed and you are returning with the

      results. This is preferred over the previous if your process is very fast and

      the results will be available quickly. Examples:

  • Here are you flights from Mumbai to Delhi. This is accompanied by the

    list of flights, since they are ready.

Entity Prompts/Statements

As explained above, entity prompts are used to collect entities, in case they are required and haven't already been provided by the user. To explain with an example: assume a flight booking app. The intent that can be triggered is 'flight_search', with which a user can search for the list of available flights. To trigger this functionality, the app will require from the user, information about where the source is, where the destination is, which day the user wants to fly. There can be other information like is the user planning a round trip flight, if yes, when do they expect to fly back, or how many adults and children are to be included into the itinerary. But for simplicity we will assume that for the intent to be fulfilled we need only the entities, source city, destination city and start date. The corresponding entities for these will be source_city, destination_city and start_date, which are of std.geo.city, std.geo.city, and std.date type respectively and marked as required.

Assume the user says 'I want a flight from Mumbai' when he first presses the trigger. The intent will be recognized as 'flight_search' as intent and 'source_city' as 'Mumbai'. However, say your app is designed in such a way that without the destination city and date you cannot show (or you do not want to show) the flights. At that point depending on the priority order of the entities, they will be prompted for one after the other. The prompts that will be used will be the entity prompts that were provided for each entity. Examples of prompts in this case would be: When destination_city is missing: Where do you want to fly to? When date is not filled in: On which day you want to fly?

Entity Prompting Priority Ordering

In the console the order in which the entities are provided in the entities section, will be the order in which they will be prompted for, provided a value for that entity is not known as of now.

Long Prompts Versus Short Prompts

Under construction

Introducing Personality with Voice Prompts

Under construction

Using the Client API to Manually Raise a Prompt or Statement

See Android Deep Dive for details on how to achieve this on Android