Code Monkey home page Code Monkey logo

conversation-engine's Introduction

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

conversation-engine's People

Contributors

marcelengelmann avatar

Watchers

Andreas-DAI avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.