ElixirConf US 2018 – Beyond Command and Response Chatbot – Fahad Almusharraf
The talk discusses an attempt at building a chatbot framework to deliver a rich conversation that is not just responses to commands. It is motivated by my master’s research on using chatbots and natural language understanding to increase cigarettes smokers motivation to quit. This research is a collaborative project between engineering, psychology, and psychiatry, and it is powered by Elixir.
Speaker here. The title of talk is not the best representative of its content. It is more about helping smokers quit using chatbots and elixir. Anyway, I’m happy to discuss it here if anyone has questions.
In another talk about a bot framework the speaker mentioned three different models for bots.
Command and response
Finite-state (tree of behavior)
Frame-based (list of information for goal)
I assume you didn’t use 1, based off the title and the demo. I think based on your description, you used finite-state, is that correct?
For NLU, what did you use to train your model? I mean both the training set, the tool that did the training, and the tool that does the evaluation of the model in your chatbot if that’s different.
@blatyo Yes I’m using state machines to build the conversation (not to be confused with behaviour trees which was also talked about in the conference). More specifically, my approach is what I’ve explained briefly when I talked about BotKit. The code for BotKit, which is a WIP library that enables you to build chatbots using the state machine approach is available here.
Unfortunately the NLU training/inference was not done in Elixir. I’ve used two NLP/NLU backends to train the models required for the chatbot. Namely Wit.AI and Stanford CoreNLP. I used Wit.AI through their http api and CoreNLP using Erlang’s JInterface on a dedicated Erlang node.
I’m planning on open sourcing the chatbot code once I’m done with the project.