# About Plato RDS

Plato Research Dialogue System is a platform for building, training, and deploying conversational AI agents that allows us to conduct state of the art research in conversational AI, quickly create prototypes and demonstration systems, as well as facilitate conversational data collection. Read more

# How does it work?

### Install

Clone the following repository: `git@github.com:uber-research/
plato-research-dialogue-system.git`

For MacOS:
`brew install portaudio
brew install gmp
pip install pyaudio`

For Ubuntu/Debian:
`sudo apt-get install python3-pyaudio
`

For Windows:
Nothing needs to be pre-installed

After the steps above, install plato in editable mode: `pip install -e .`

### Running Single Agents

To run a simulation:
`plato run --config CamRest_user_simulator.yaml`

To run a text based interaction:
`plato run --config CamRest_text.yaml`

To run a speech based interaction:
`plato run --config CamRest_speech.yaml`

To run a gui based interaction:
`plato gui --config CamRest_GUI_speech.yaml`

### Training Multiple Agents

`plato run --config MultiAgent_train.yaml`

`plato run --config MultiAgent_test.yaml`

### Training with Ludwig

Ludwig is a toolbox that allows to train and test
deep learning models without the need to write code. Briefly, you need to do the following:

1. Prepare your data in csv format.
2. Train your model with Ludwig
3. Update your Plato configuration file to include the path to the ludwig model
4. Run a Plato agent. For a walk-through, look at the User Guide

# Team

Alexandros Papangelis, Mahdi Namazifar, Chandra Khatri, Yi-Chia Wang