A dialog management system framework
Report Bug
·
Request Feature
Conversation-Engine is a framework that is supposed to be used as a dialog management system. It is designed to simplify the creation of chatbots by combining skills and a single NLP-Component} into an all in one system.
The system is based on a finite state machine to create an accessible testing
environment.
To get a local copy up and running follow these steps.
To install Java you can choose one of the following options
-
OpenJDK
Please visit https://openjdk.java.net/install/ for installation instructions
-
Oracle
Please visit https://docs.oracle.com/en/java/javase/13/install/overview-jdk-installation.html for installation instructions
- Please visit https://maven.apache.org/install.html for installation instructions
- Clone the Conversation-Engine Project
git clone https://github.com/death-truction/Conversation-Engine.git
- Change the directory to the project folder
cd Conversation-Engine
- Install the package to your local maven repository (replace the version number with the latest release)
mvn clean install
The project includes a playground to try the Conversation-Engine with some example skills.
- To start the playground simple run the following command in your cloned github repository:
mvn exec:java
- These languages are currently supported for the playground:
- German
- English
- For a list of supported request checkout
- To use the Conversation-Engine Framework simply include the installed dependency in your pom (replace the version number with the latest release)
... <dependencies> ... <dependency> <groupId>de.dai-labor</groupId> <artifactId>conversation-engine</artifactId> <version>1.0.0</version> </dependency> ... </dependencies> ...
- Implement the interfaces found in the interfaces package at one of the following locations:
- Create a valid state machine JSON-File
- by using the Dialog Modeling Tool inside the project
- You can run the tool by navigating inside the folder and running the following command AFTER installing the conversation engine:
mvn javafx:run
- Create your own JSON-File by following this JSON-Schema
- by using the Dialog Modeling Tool inside the project
- Create a new Conversation-Engine object and add your NLPComponent and your skills
NLPComponent nlp = new NLPComponent(); ConversationEngine conversationEngine = new ConversationEngine(nlp); MySkill mySkill = new MySkill(); String mySkillStateMachineJsonFile = loadJsonFileAsString("MySkill.json"); stateMachine.addSkill(mySkill, mySkillStateMachineJsonFile);
- Now you can simply send your inputs to the Conversation-Engine and get the answers in a List
List<String> answers = conversationEngine.userInput("Hello world!");
The project includes two Logging-Facades named "DeveloperLogger" and "ConversationLogger"
To use the output of the loggers you have to add your own logging framework to the project and configure the loggers.
Checkout the tests of the project, which are using the logging dependency logback with a simple configuration.
See the open issues for a list of proposed features (and known issues).
Distributed under the MIT License. See License
for more information.