Skip to content

marcelengelmann/Conversation-Engine

Repository files navigation

Contributors Forks Stargazers Issues MIT License


Logo

Conversation-Engine

A dialog management system framework

Report Bug · Request Feature

Table of Contents

  1. About The Project
  2. Getting Started
  3. Testing
  4. Usage
  5. Logging
  6. Documentation
  7. Roadmap
  8. License
  9. Used Dependencies
  10. Used Plugins
  11. Acknowledgements

About The Project

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.

Getting Started

To get a local copy up and running follow these steps.

Prerequisites

Java

To install Java you can choose one of the following options

Maven

Installation

  1. Clone the Conversation-Engine Project
    git clone https://github.com/death-truction/Conversation-Engine.git
  2. Change the directory to the project folder
    cd Conversation-Engine
  3. Install the package to your local maven repository (replace the version number with the latest release)
    mvn clean install

Testing

The project includes a playground to try the Conversation-Engine with some example skills.

  1. To start the playground simple run the following command in your cloned github repository:
    mvn exec:java
  2. These languages are currently supported for the playground:
    • German
    • English
  3. For a list of supported request checkout

Usage

  1. 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>
      ...
  2. Implement the interfaces found in the interfaces package at one of the following locations:
  3. 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
  4. 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);
  5. 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!");

Logging

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.

Documentation

Roadmap

See the open issues for a list of proposed features (and known issues).

License

Distributed under the MIT License. See License for more information.

Acknowledgements

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published