yowl

0.6.1 • Public • Published

Yowl

Fast, minimal, multi-platform chatbot framework for NodeJS

Example - A Simple Echo Bot

var yowl = require('yowl');
var bot = yowl();
 
bot.name = "Echo Bot";
 
var local = require('yowl-platform-cli');
bot.extend(local);
 
bot.use(function(context, event, callback) {
  var message = event.message;
  event.send(message, callback);
});
 
bot.run();
$ npm install yowl yowl-platform-cli
$ node bot.js --local

Complex Example - A Reminder Bot

Reminder Bot - Leverages a combination of yowl packages to create a bot that allows users to set reminders for themselves.

Installation

$ npm install yowl --save

About

Yowl is a chatbot framework that is structured in a similar way to express.

It is unopinionated and comes with very little out of the box. It allows you to chain together middleware that helps you do things like

  • connect to chat platforms
  • run classifiers on in-bound messages
  • add persistentence
  • structure and manage multi-message dialogs

Middleware

This is not necessarily an exhaustive list but rather a good starting point for tools you can use to build your bot.

Platforms

To talk to your users, bots need to integrate with outside platforms.

planned middleware: telegram platform, sms platform

Context Persistence

You will most likely want to maintain an on-going state for interactions your users have with your bot. These modules take care of that.

  • yowl-session-memory - in-memory session persistence. good for getting up and running with a development environment or for testing.
  • yowl-session-redis - good for bots that don't need to keep a lot of session information and need quick session access.
  • yowl-session-rethink - good for deployed bots that may benefit from rethinkdb's ease of operation/scaling

Interaction Locking

Often you'll wait your bot to perform an asynchronous call to an external API or send multiple messages in reply to a user query. Locking allows you to limit a user to one active request at a time.

planned middleware: in-memory locking

Interaction Management

Bots aren't useful if they can't handle multi-step interactions with your users.

  • yowl-dialog-manager - a structured approach for defining and chaining dialogs, making it easier to create complex workflows for your bot

Scheduled/Async Jobs

Often, you'll want to schedule some processing and messaging to take place asynchronously or at some point in the future.

Text Parsing

You're going to need to make sense of text.

Examples

Examples can be found at brianbrunner/yowl-examples.

People

The author of Yowl is Brian Brunner

License

MIT

Readme

Keywords

Package Sidebar

Install

npm i yowl

Weekly Downloads

1

Version

0.6.1

License

MIT

Last publish

Collaborators

  • brianbrunner