We wanted to give bots a new life so that they can have richer conversational experiences, the value proposition to potential customers is that they can have access to this model to enhance their customer interactions with the bot. Ultimately, we wish to create more human, memorable experiences for the customer interaction so that people keep coming back to your brand.
What it does
Takes user input via the familiar Facebook messenger interface performing sentiment analysis on the incoming text and feeds the text also to a pre-trained conversation model (Seq2Seq and LSTM cells with 2 layers) to generate a response. It then performs the sentiment and intent (thanks Nuance!! ) analysis on that to compare between the result on the input text and the response text and picks the right tone of message to send back. Finally, a style transfer is applied on the response generation before sending it out to the user to make the conversation richer than existing conversational models.
How we built it
We've used pre-trained models from Nuance for intent recognition and IBM Watson for sentiment analysis, the other conversational model that uses Seq2Seq 2 layered with LSTM cells for response generation. We've hosted two models on two different AWS instances and have the Facebook messenger bots hosted on a Flask server on Heroku to act as the interface. Additionally, we've exposed all the models via REST interfaces using the Flask server.
Challenges we ran into
Initially, we had imagined a more complex architecture that would use memory components that would be paired with intent to give back more relevant responses but it turned out to be infeasible in the duration of the hackathon. Additionally, model training was taking very long on the CPUs that we had access to.
Accomplishments that we're proud of
That we have a working prototype running end-to-end which seemed infeasible at first due to the massive number of interacting components.
What we learned
Some new concepts around how to use LSTM cells and picking better tone of response based on the intent of the incoming text
What's next for ToastMaster
Enhancing the model with memory to create more relevant responses and adding in some of the other architectural pieces to complete the vision towards having richer responses.