In recent days, we are seeing several companies employing chatbots for ordering food, retrieving your confidential financial details & for customer support. Even to use those chatbots, user need to first login into their account. Chabots are employed to make the conversations more human like & having a tradinational login system will deter the users in using it. For Example once I login into my banking account I don't need a chatbot to answer the questions about the account, the info will be all there. Similarly for customer support/Food ordering as well, user can simply raise support tickets/order food with few clicks of buttons. I feel this is hampering the user experience a bit but at same time, if we remove the sign in system, we won't be able to differentiate b/w real & fake users making the system less secure.
The Idea here is make user authentication with only a userid/email in chatbot while they converse. Will they converse with bot it will try to authenticate/revoke the user access based on typing patterns.
A simple flow:
- Users signup with email/username & records their typing patterns.
- User account will be activated only after email verifications. (this feature is still not yet implemented)
- After the activation, they you can use bot with their registered userId/email to order/request-info.
This way we make sure only registered user is using the bot & also improve user experience by making conversations password less as well as secure.
What it does:
A conversational Bank chat bot which can answer simple questions about the confidential user's account details in a secure way using TypingDNA only after making sure that the right person is requesting the information.
Although my POC is related to banking, This use case can be applied to various conversational bot systems like Food-ordering, Customer Support, etc.
How I built it
Backend : Python & Flask Frontend: react.js Chatbot backend : rasa (experimental), the code for this rasa-core is not present in the codesandbox due to its limitations but included in the zip file of this submission. If you are trying this app, you can generate rasa code template aftering installing rasa & running a command (It needs separate environment & has dependencies like c++, spacy, tensorflow & manymore).
Challenges I ran into
This is the first time I am building with react.js previously I am used to jquery, so most my time ended in making frontend & unable to complete the backend part completely (like setting up a database to store user details, conversations & rasa-core)
Accomplishments that I'm proud of:
- My first end-to-end chatbot & 2nd hackathon on Devpost.
- Learning & getting started with react.js in a short time.
What I learned
react.js, react-dom, react-router-dom, rasa-core.
What's next for Finto:
Improving backend & training the rasa-core NLU/NLP models with relevant data