Skip to content
Tiny chat bot engine for Unity
C# Other
  1. C# 99.5%
  2. Other 0.5%
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Assets
Packages
ProjectSettings
.gitignore
LICENSE.txt
Makefile
README.md
build_dll.sh
guide-sample.png

README.md

DialogueFirm

DialogFirm is a simple chat bot engine for the Unity platform. Given input sentences, DialogFirm detects the intent and then returns the the sentence for reply. DialogueFirm provides an Amazon Alexa styled JSON configuration. In addition, functions for practical applications such as state transitions or slot type matching are provided.

The following image shows the an image of the state transitions. In the image, we can see the state of guide changed by input sentence from users.

state transition

Features

  • Simple configuration with JSON (AWS Alexa style)
  • Support state transistions

demo

Basic Configuration

This section starts from the simple DialogFirm configuration. DialogFirm has a JSON formatted configuration file. The following is a tiny example.

{
  "intents": [
    {
      "name": "repeat",
      "match": {
        "type": "verbatim",
        "expressions": [ "repeat", "pardon me?" ]
      }
    }
  ],
  "responders":
  {
    "repeat": [
      {
        "responds": [ "Go straight." ],
      }
    ],
    "default": [{
      "target": "default",
      "responds": [ "Sorry I do not understand what you mean." ]
    }]
  }
}

For more details, see the DialoguFirm docuement.

Basic Usage

DialogFirm has BotEngine which manages the dialogue with the user following specified configuration file. We can create a BotEngine specifying a configuration file. The following is a sample of creating a BotEngine object.

void CreateBot()
{
    string settingFilePath = Application.dataPath + "/DialogFirm/Scenes/simple-bot-conf.json";
    string setting = File.ReadAllText(settingFilePath);
    this.bot = new BotEngine(setting);
}

This example reads configuration stored in file Application.dataPath + "/DialogFirm/Scenes/simple-bot-conf.json" and then load the settings to a string setting. Then it creates the BotEngine object.

NOTE: configuration files of BotEngine are stored as Streaming Assets. Details of Streaming Assets, please see the document.

After we create a BotEngine instance, the instance is ready to get input sentence. Adding input sentence (string type), BotEngine returns the reply sentence following the given setting file.

public void RespondToInput(string input)
{
    var reply = this.bot.ReplySentence(input);
    text.text = reply;
    inputField.text = "";
}

In the following sections, we learn the configurations and practical usage of the DialogFirm framework.

License

GNU GENERAL PUBLIC LICENSE Version 3

You can’t perform that action at this time.