Couple month ago I discovered a wonderful piece of software - QNAMaker.AI. It allows to build a chatbot based on “Questions and Answers” - a table that has 2 columns - one column contains question and second - corresponding answer. This table is often referenced as Knowledge Base (KB). Service provides a web-based editor for Knowledge Base, test page for playing with “QnA” chatbot produced from KB, import/export between Knowledge Base and Excel spreadsheet and ability to start engine with the customer knowledge base as a separate Azure web application.
After deploying QNA Maker .AI I looked how it is deployed and what is going under the hood.
What I found was a Windows machine with combination of .NET and Python NLP applications. Wandering in command shell I stumble upon the configuration file claiming that return value is a weighted sum of 3 similarity scores TF-IDF (0.1), Wordnet (0.5) and AzureSearch (0.4).
Then I run a simple test from my machine to QNA Maker.
First - I was shocked to find out that domain name “qnamaker.net” is free to grab - and I grabbed it for this little project. When I will build a UI - it will be deployed there.
Second - I decided to write a service using Go programming language - it got wonderful NLP and http libraries - comparable with Python and Julia.
Algorithms For TF-IDF similarity score I used LSA - Latent Semantic Analysis with TF-IDF scoring and the library mentioned there.
Basic NLP engine (API with Endpoint keys, training, persistance) compatible with qnamaker.ai with significant acceleration. Import from TSV KB format - compatible with qnamaker.ai
So far there are:
No homepage No KB editor No Azure deployment interface No Test chatbot No automatic chatbot generation No advanced QnA features - multi-turn, prompts, context dependent questions etc. No scientific testing utility - with parallel requests, different word substitution / permutation scenarios, comparison of precision and recall between qnamaker.AI and qnamaker.NET
Some of these features (a minimalistic set) I am planning to implement in this MVP, others I will leave till paying customers or interest from other companies …