Violet v0.8: Conversation Engine Improvements

We focused on the core of Violet - the Conversation Engine in this release. As we have been using Violet we had collected a number of scenarios where it was hard to do the things that would be common in Conversations. In this release we therefore did a fairly significant refactor and clean-up of the engine and polished some of the rough edges.

This work has meant that the functionality that used to be in the Conversation Engine can now be found in four classes:

  • InputMgr - which helps process Inputs (data from from Alexa) and call the intents defined in the Violet Scripts.
  • OutputMgr - which helps build an output (back to Alexa) as provided by calls from Violet Scripts to the Response class.
  • ScriptParser - which provides a set methods to help the ConversationEngine parse the Violet Script.
  • ConversationEngine - the main class that users interact with.

Beyond this refactoring of the Violet core we also did a number of improvements:

  • Violet now saves users’ conversation state in a session variable. This allows much easier support for out-of-the-box support for multiple users when working with conversational goals.
  • Violet is now less insistent when it comes to filling goals. When a goal is added by a script, Violet checks if there are any prompts associated with the goal and presents the prompt to users. This presenting of the prompt to the user now happens only once per goal added, as opposed to previously when Violet would keep prompting for an answer from the user.