Goal Oriented Chatbot implemented using Deep Reinforcement Learning in Python. This chatbot uses deep q networks to build a chatbot that is able to interact with users and get data about restaurant reservations.
This chatbot does not use natural language, instead focusing on the goal-oriented reinforcement learning aspect of the agent.
The data used for this model is a selection of 15 random restaurants from New York. The user requests are generated randomly from this dataset and the number of open slots are also generated randomly. All data generation can be seen in the file gen_data_for_chatbot.ipynb
.
- Python >= 3.5
- Keras >= 2
- numpy
There are a number of constants that can be changed in the file constants.json
. Some of which include num_ep_run
and load_weights_file_path
.
To train the agent you'll need to run python train.py
.
Additionally, you can test the trained model by setting load_weights_file_path
and running python test.py
.
Base code taken from Goal-Oriented Chatbot DRL Example and the paired medium article. The license file reflects this usage.