abot

command module
Version: v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 15, 2016 License: MIT Imports: 37 Imported by: 0

README

Abot GoDoc Travis CI

Website | Getting Started | Contributing | Mailing List

Abot (pronounced Eh-Bot, like the Canadians) is a digital assistant framework that enables anyone to easily build a digital assistant similar to Apple's Siri, Microsoft's Cortana, Google Now, or Amazon Alexa. Further, Abot supports a human-aided training backend enabling anyone to build services like Facebook M.

Unlike those proprietary systems, Abot is open-sourced and extensible. By providing an extensible platform onto which anyone can easily add functionality, Abot is the first A.I. framework that aims to be available everywhere and— ultimately—to do everything.

Note: This is pre-alpha software and shouldn't yet be considered for production use. Follow our progress on the Roadmap.

Installation

Dependencies: Abot requires that the following programs are installed:

You can install Abot via git:

$ git clone git@github.com:itsabot/abot.git && cd abot && chmod +x cmd/*.sh
$ cmd/setup.sh
$ abot server

Then visit Abot at localhost:4200.

Usage

First configure the plugins you want to import, such as restaurants or mechanic. Add them to your plugin.json like so:

{
	"Name": "abot",
	"Version": "0.1.0",
	"Dependencies": {
		"github.com/itsabot/plugin_onboard": "*",
		"github.com/itsabot/plugin_restaurants": "*",
		"github.com/itsabot/plugin_weather": "*"
	}
}

Then run the following in your terminal to download the plugins:

$ abot plugin install
Fetching 3 plugins...
Success!

That will download the plugins to the /plugins directory. Once you've integrated the plugins, recompile and run Abot again: abot server. You can use the included Abot console to communicate with Abot locally:

$ abot console +13105555555
> Hi
Hello there!

You can learn more in our Getting Started guide.

Goals

We believe that A.I. will impact every business worldwide and dramatically change our lives. While Apple, Google and others rush to build proprietary digital assistants, there's a great need for an open approach that can be made to run anywhere and be customized to do anything you need.

Abot enables any person or business to build digital assistants like Siri using plugins that are as easy to install and run as WordPress. Soon it'll be as easy to leverage A.I. in your business as it is to start a blog or an online store. Imagine setting up an AI assistant to answer your phones, schedule meetings, and book travel for your company in 30 seconds or less. The future's almost here, and Abot's going to lead the way.

We have a long road ahead of us, but "nothing ever comes to one that is worth having except as a result of hard work." -- Booker T. Washington

Follow our progress on our Roadmap or learn how you can get involved with our Contributor's Guide.

License

MIT, a copy of which you can find in the repo.

The Abot logo is courtesy of Edward Boatman via TheNounProject and licensed via Creative Commons Attribution v3.

The default plugin icon (puzzle piece) is courtesy of Arthur Shlain via TheNounProject and licensed via Creative Commons Attribution v3.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package core handles the internal logic of Abot.
Package core handles the internal logic of Abot.
template
Package template builds commonly used emails filled in with custom information.
Package template builds commonly used emails filled in with custom information.
websocket
Package websocket manages websocket connections and notifications for Abot clients.
Package websocket manages websocket connections and notifications for Abot clients.
data
ner
shared
auth
Package auth ensures that a user has sufficient permissions to access content.
Package auth ensures that a user has sufficient permissions to access content.
datatypes
Package dt offers a collection of commonly used datatypes.
Package dt offers a collection of commonly used datatypes.
helpers/address
Package address provides address extraction and validation tools.
Package address provides address extraction and validation tools.
helpers/timeparse
Package timeparse parses times in strings in a wide variety of formats to corresponding time.Times.
Package timeparse parses times in strings in a wide variety of formats to corresponding time.Times.
interface/cal
Package cal enables control over arbitrary 3rd party calendars.
Package cal enables control over arbitrary 3rd party calendars.
interface/cal/driver
Package driver defines interfaces to be implemented by calendar drivers as used by package cal.
Package driver defines interfaces to be implemented by calendar drivers as used by package cal.
interface/emailsender
Package emailsender enables Abot to send email through any external service.
Package emailsender enables Abot to send email through any external service.
interface/emailsender/driver
Package driver defines interfaces to be implemented by email_sender drivers as used by package emailsender.
Package driver defines interfaces to be implemented by email_sender drivers as used by package emailsender.
interface/payment
Package payment enables interaction with arbitrary payment providers.
Package payment enables interaction with arbitrary payment providers.
interface/payment/driver
Package driver defines interfaces to be implemented by payment drivers as used by package payment.
Package driver defines interfaces to be implemented by payment drivers as used by package payment.
interface/sms
Package sms enables interaction with arbitrary SMS providers.
Package sms enables interaction with arbitrary SMS providers.
interface/sms/driver
Package driver defines interfaces to be implemented by SMS drivers as used by package sms.
Package driver defines interfaces to be implemented by SMS drivers as used by package sms.
knowledge
Package knowledge provides known and commonly required information about the user.
Package knowledge provides known and commonly required information about the user.
language
Package language makes it easier to build plugins and natural-sounding responses.
Package language makes it easier to build plugins and natural-sounding responses.
log
Package log is a logger used by Abot core and plugins.
Package log is a logger used by Abot core and plugins.
nlp
Package nlp enables natural language processing through functions around tokenization and stemming.
Package nlp enables natural language processing through functions around tokenization and stemming.
plugin
Package plugin enables plugins to register with Abot and connect to the database.
Package plugin enables plugins to register with Abot and connect to the database.
task
Package task defines commonly used tasks across plugins.
Package task defines commonly used tasks across plugins.
util
Package util provides utility functions for Abot's core and shared packages.
Package util provides utility functions for Abot's core and shared packages.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to