PyConf Hyderabad 2017

PyConf Hyderabad

Saikat Kumar Dey


General Talks: Build a chatbot from scratch using open-source tools

Submitted Aug 26, 2017

This talk will show you how you could use open-source tools to build a chatbot without handing your data over to third parties (Facebook/Microsoft/Google,etc.)

You will learn:

  • how a chatbot works behind the scene
  • how to transfer knowledge to a chatbot
  • how to build a production-ready bot which you would own completely
  • how to use Socket.IO to allow real-time communication with your chatbot.


  • Introduction: motivations for building your bot in-house
  • Chatbot architecture.
  • Understanding the components of chatbot -
    • Natural Language Understanding (NLU)
      • Intent Classification
      • Entity Extraction
    • contextual dialogue management using Finite State Machines (FSM)
    • Response Generation
    • Knowledge Base
  • How to use Open Source Tools to build your own chatbot:
    • Rasa.AI (having configurable backends like spacy/sklearn/mitie) - to build intent & entity extraction.
    • Transitions - to build a context manager using FSMs.
    • ChatterBot - to generate automated response based on historical conversation.
    • Socket.IO - to build a real-time communication system.
  • Demo


Basic knowledge of NLP and Machine Learning.
Basic understanding of Finite State Machines.
Familiarity with Python.

Speaker bio

Saikat Kumar Dey - I am a Data Scientist at Endurance International Group. I have been working on building a conversational assistant for Customer Support in my company. I have worked on customer segmentation & retention efforts in the past.

Parth Savjani - Associate Data Scientist at Endurance International Group India
More than 3 years of experience working with Data related field ranging from Data-warehouse to predictive modelling on transaction data, postgraduate from IIIT Bangalore with Data Science major.




{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}