curtisalleynesr / bishop-ai

Voice and text virtual assistant

Home Page:http://bishop-ai.github.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bishop AI

Build Status GitQ

JS based Virtual Assistant using natural language processing.

Inspired by Siri, the Google Assistant and Alexa, Bishop AI is a conversational, contextual virtual assistant that can perform defined tasks on command. It is built to handle Q/A style conversation as well as following a conversation. Rather than trying to build a chatbot solely based on neural networks that can handle contextual conversations (the holy grail of NLP AI), Bishop AI uses a template based input/output system that is easy to understand. While the server expects natural language commands in the form of text and provides responses as text, each client can be set up to enable Speech-to-Text and Text-to-Speech. The key difference from the mainstream virtual assistants is that the functionality is broken into plugins. This allows building a customized virtual assistant that can do what the other popular assistants can do (if not more) or building a virtual assistant that is very good at a limited domain.

Demo

For a demo of Bishop AI, visit http://bishop-ai.github.io

Features

  • Use simple API to receive text, determine intent, trigger a command and return a response
  • Intent is determined by a pattern matching syntax
  • Responses use a template to generate multiple alternate responses
  • Trigger intents are defined in plugins and can integrate with any system that can integrate with JS

Versioning

This project and its plugins follow the NPM version guidlines. Until a few more contributors build plugins, the project won't move to a 1.0.0 version. This is to ensure that the plugin structure is well defined and tested before moving to a "stable" version. Until then, assume all minor revisions also break plugin functionality.

Setup

Until the project is at the point where it is hosted on NPM, follow the contribution steps below.

Plugins

Bishop AI uses a plugin based system for commands allowing anyone to write their own custom plugin for handling specific commands. The goal is to eventually have a large ecosystem of plugins that allow integrations across many different systems. See the Bishop AI organization page for examples of some existing plugins.

Contribution

Found a bug? Have a suggestion?

Please submit issues/pull requests if you have feedback or would like to contribute. If you're interested in joining the team as a contributor, feel free to message @bishop-ai/leads.

Before you start, check out the Contribution Guide and Code of Conduct

There are two ways to contribute:

  1. Create your own plugin for everyone to use.
  2. Help on an existing plugin or the core project.

Contribute to plugin or core development

  • Check out the source code for the core project
  • Run npm install
  • The core functionality can be run within a NodeJS server or in a browser. See the demo app for an example of working with the core API from a browser.

Plugin Development

All installed NPM packages with the keyword bishop-ai-plugin are assumed to be plugins for Bishop AI and can be enabled. Plugins that follow the guidelines and are submitted as NPM packages should be usable with the core platform.

For developing a new plugin or making changes to an existing plugin, add the checked-out plugin as an optional dependency to your package.json file using the file path instead of the NPM package name. This will create a link to the plugin source and load it in Bishop AI.

package.json Example:

"optionalDependencies": {
    "bishop-ai-coinflip": "file:../../bishop-ai-coinflip"
}

About

Voice and text virtual assistant

http://bishop-ai.github.io

License:MIT License


Languages

Language:JavaScript 100.0%