Bot States

Las etapas de la construcción de un bot

Hay 5 fases en la vida de tu bot, todas ellas representadas en nuestra plataforma a través del uso de 5 pestañas:

  1. Entrenamiento: Enseña a tu bot lo que necesita entender.

As with web apps, a bot is inherently stateless; a different instance of your bot may handle any given turn of the conversation. For some bots, this simplicity is preferred – the bot can either operate without additional information, or the information required is guaranteed to be within the incoming message. For others, state (such as wherein the conversation we are or previously received data about the user) is necessary for the bot to have a useful conversation.

As with web apps, a bot is inherently stateless; a different instance of your bot may handle any given turn of the conversation. For some bots, this simplicity is preferred – the bot can either operate without additional information, or the information required is guaranteed to be within the incoming message. For others, state (such as wherein the conversation we are or previously received data about the user) is necessary for the bot to have a useful conversation.

The context and the conscience

 Why do I need state?
Maintaining state allows your bot to have more meaningful conversations by remembering certain things about a user or conversation. For example, if you've talked to a user previously, you can save previous information about them, so that you don't have to ask for it again. State also keeps data for longer than the current turn, so that your bot keeps information over the course of a multi-turn conversation. 
 Storage layer
Starting at the backend, where the state information is actually stored, is our storage layer. This can be thought of as our physical storage, such as in-memory, Azure, or a third party server.
The Bot Framework SDK includes some implementations for the storage layer:
Memory storage implements in-memory storage for testing purposes. In-memory data storage is intended for local testing only as this storage is volatile and temporary. The data is cleared each time the bot is restarted.
Azure Blob Storage connects to an Azure Blob Storage object database.
Azure Cosmos DB storage connects to a Cosmos DB NoSQL database.
For instructions on how to connect to other storage options, see write directly to storage. 

Interaction model
Now that you know what the components of a skill are, it is easier to understand what an interaction model is. An interaction model is simply a combination of utterances, intents, and slots that you identify for your skill. 

 Voice Design Concepts: Utterances, Intents, and Slots
To create a voice user interface for your skill, you need to understand key voice design concepts.
Wake word: The wake word tells Alexa to start listening to your commands.
Launch word: A launch word is a transitional action word that signals Alexa that a skill invocation will likely follow. Sample launch words include tell, ask, open, launch, and use.
Invocation name: To begin interacting with a skill, a user says the skill's invocation name. For example, to use the Daily Horoscope skill, the user could say, "Alexa, read my daily horoscope."
Utterance: Simply put, an utterance is a user's spoken request. These spoken requests can invoke a skill, provide inputs for a skill, confirm an action for Alexa, and so on. Consider the many ways a user could form their request.
Prompt: A string of text that should be spoken to the customer to ask for information. You include the prompt text in your response to a customer's request. 
Intent: An intent represents an action that fulfills a user's spoken request. Intents can optionally have arguments called slots.
Slot value: Slots are input values provided in a user's spoken request. These values help Alexa figure out the user's intent.
In the example below, the user gives input information, the travel date of Friday. This value is a slot of intent, which Alexa will pass on to Lambda for skill code processing.
Slots can be defined with different types. The travel date slot in the above example uses Amazon's built-in AMAZON.DATE type to convert words that indicate dates (such as "today" and "next Friday") into a date format, while both from City and to City use the built-in AMAZON.US_CITY slot.
If you extended this skill to ask the user what activities they plan to do on the trip, you might add a custom LIST_OF_ACTIVITIES slot type to reference a list of activities such as hiking, shopping, skiing, and so on. 
Source:
 https://docs.microsoft.com/es-es/azure/bot-service/bot-builder-concept-state?view=azure-bot-service-4.0 

Entities are keywords detected in expressions that are important to you in order to automate a task