Q:

Teachable AI Chatbot

I'm starting on AI chatbots and don't know where to actually start.
what I've imagined is something like this:

Empty chat bot that doesn't know anything
Learns when user asks question and if the bot doesn't know the answer, it'd ask for it
Records all the data learned and parse synonymous questions

Example procedure:
User: what is the color of a ripped mango?
Bot: I don't know [to input answer add !@: at the start]
User: !@:yellow
User: do you know the color of ripped mango?
Bot: yellow

A:

Chatbots, or conversational dialogue systems in general, will have to be able to generate natural language and as you might expect, this is not something trivial. The state-of-the-art approaches usually mine conversations of human-human conversations (such as for example conversations on chat platforms like Facebook or Twitter, or even movie dialogs, basically things which are available in large quantities and resemble natural conversation). These conversations are then for example labelled as question-answer pairs, possibly using pretrained word embeddings. 
This is an active area of research in the field of NLP. An example category of used systems is that of "End-to-End Sequence-to-Sequence models" (seq2seq). However, basic seq2seq models have a tendency to produce repetitive and therefore dull responses. More recent papers try to address this using reinforcement learning, as well as techniques like adversarial networks, in order to learn to choose responses. Another technique that improves the system is to extend the context of the conversation by allowing the model to see (more) prior turns, for example by using a hierarchical model.
If you don't really know where to start, I think you will find all the basics you will need in this free chapter of "Speech and Language Processing." by Daniel Jurafsky & James H. Martin (August 2017). Good luck!

