Task-oriented dialogue system for calendar management in Czech language based on Dialmonkey framework, MorphoDiTa is used for lemmatization.
First make sure all requirements are satisfied, this can be accomplished by running (prefereably in venv or something similar):
pip install -r requirements.txt
Then don't forget installing dialmonkey
running
pip install -e .
in the dialogue-planner
directory.
The best way to try Planner out is to run python3 webserver/server.py
and then access localhost:8122
in the web browser, all the instructions are provided there.
Another option is to try it out in console, run python3 run_dialmonkey.py --conf conf/planner.yaml
. Then input czech text with diacritics, e.g.: „co mám v plánu zítra?“ The casing of letters does not matter.
Since the Planner uses Google Calendar API to communicate with the calendar, authentication to the google account is necessary. The app is in the test mode, so only accounts listed as testers can authenticate. You can either contact me or use dialogue.planner.testing@gmail.com with password being the first heading of this README (without the emoji and using -
instead of space).
The Planner has 4 units cooperating:
- NLU (natural language understanding) takes the user input and tries to extract the meaning in triples intent-slot-value from the natural language.
- DST (dialogue state tracker) remembers the slot-values from previous utterances, possibly updates them.
- DP (dialogue policy) decides what action to take based on the state and current output of NLU.
- NLG (natural language generation) is template-driven - it uses output of DP and slot-values from state to fill in a template with sentences in natural language, possibly combining more templates. Then it fills in the system response.
More documentation (in Czech only) together with specification can be found under documentation:
Examples of behaviour of each unit can be found in examples-testing.