Skip to content

Python framework for graph-based dialogue management

Notifications You must be signed in to change notification settings

NorskRegnesentral/GraphDial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GraphDial

GraphDial is a versatile software framework to develop (text or speech-based) dialogue systems, with a particular focus on dialogue management. The framework is fully domain-independent and can be employed to construct dialogue systems for various domains. External modules can be easily plugged in and out of the framework to provide additional functions related to speech recognition, natural language understanding, speech synthesis, situational awareness, etc.

GraphDial relies on graphs to represent the dialogue state. Dialogue state tracking and action selection are consequently viewed as graph operations. Such graph operations are encoded using the Cypher open graph query language.


This repo contains work in progress and currently has only a few example intents working.

/data/nlu.yml contains NLU examples/lookup.

To train the NLU model, first install Rasa. You can then use the rasa train nlu command to train a new model which will be saved to the /models folder. This only requires that you define the training data in the yml file. See the Rasa documentation for more information about the NLU training data format.

/domains/hri_example.yaml mainly specifies the Cypher query update rules as well as ip addresses for input and output to the dialog manager server.

/graphdial contains the source code for the dialog manager.

/models contains a trained Rasa NLU model and stores any new trained models.

/notebooks contains three Jupyter notebooks. step_by_step_graph_updates_code.ipynb shows the step by step execution of Cypher queries associated with Figure 2 in the paper. graphdial_test_send.ipynb and graphdial_test_receive.ipynb shows example code on how to send and receive requests from the dialog system. See the notebook for a concrete example of the format of the requests.


Before running the dialog system, an instance of Memgraph needs to be running. Follow the instructions on https://memgraph.com/download to set it up.

To implement your own query modules, see https://docs.memgraph.com/memgraph/database-functionalities/query-modules/implement-query-modules/

About

Python framework for graph-based dialogue management

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published