Snips platform includes support for conversations with back and forth communication between the Dialogue Manager and the client code. This conversation is wrapped into the same session. The client decides when the session should continue or end according to the intent(s) and slot(s) it received from the platform. Figure 3 shows an example of conversation about booking a flight:
The user invokes the platform with the hotword, and starts to express its intention to book a flight
The client code gets the intent and needs to disambiguate the starting airport of the flight, thus it will ask the Dialogue Manager to continue the session, and provide the question to ask to the user, with the kind of answer it expects (the name of the intent(s) also called an intent filter). In our case it is only one intent that knows about airport names.
Without having to invoke the platform again with the hotword, the user gave his answer and the client code can verify the airport name is part of the expected ones (Roissy or Orly). It can follow up and ask for more informations like time, date etc.
Once the client code has all the necessary information, it can end the session with the
endSession message, with an optional feedback text message.
You can find a great example of a multi-turn dialog app on the Time Tables Quiz Demo App