Skip to content

solyarisoftware/naifjs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NaifJs, a simple state-machine based dialog manager

NaifJs is a simple state-machine based (task-oriented) dialog manager micro-framework for nodejs developers.

The project consists in:

  • A run-time dialog manager, as a module to be embedded as part of a container dialog system
  • A micro-framework development environment (naif command line program) to create and quickly test dialogues.

Naifjs is based on a specific conceptual model and a domain specific language (DSL) I conceived, implementing multi-turn contextual dialogues as "state machines", graphs of internal states.

Following paragraph introduces main concepts and naming conventions. I define what is a dialog system, a dialog manager, a single dialog unit, the end multi-dialog application:

Documentation

The full documentation is available here.

Installation

The package contains command line interface program naif, so you must install the npm package as global:

  • use npm package manager repo

    $ npm install -g naifjs
    
  • or download this github repo:

    $ git clone https://github.com/solyarisoftware/naifjs
    $ cd naifjs && npm link
    

Application Programming interface and command line tools

NaifJs act as an API library of functions to be called by a main nodejs program. See:

The NaifJs API are foundation for a micro-framework development environment (the naif command line program) to create the end application, generate dialog units skeleton code and quickly test dialogues:

  • naif is the main command line program
  • naif init initializes project directory
  • naif generate generate the code skeleton of a dialog unit
  • naif show for a given project, lists all dialog units and relative states
  • naif shell test a dialog unit using the command line interface
  • naif telegram test a dialog unit, setting up on the fly a telegram bot for the purpose

Discussion / How to contribute

Status

Currently the project is just a proof of concept, not ready for production. The software made is just a prototype, in alpha stage.

License

MIT (c) Giorgio Robino


top | index