Code Monkey home page Code Monkey logo

itsabot's Introduction

Abot

Getting Started | Contributing | Mailing List

GoDoc Travis CI

Note: This project is no longer supported, as I no longer have the time to maintain it.

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.

Installation

Dependencies: Abot requires that the following programs are installed:

Fetch Abot via go get

$ go get github.com/itsabot/abot

Then create a new project anywhere in your $GOPATH, passing in your Postgres credentials/host if needed. Projects should be named with camelCasing.

$ abot new yourproject [username[:password]@host[:port]]
Success! Created yourproject

If you don't pass anything to the command, the Postgres parameters will default to host = 127.0.0.1, port = 5432, and username = postgres. You may need to edit your pg_hba.conf file if you want to use this password-less default.

During setup, if the psql binary is unavailable, the script will skip the database setup. To setup the database on an different machine, you can run cmd/dbsetup.sh on the host that has Postgres / psql available. This script takes the same Postgres parameter as abot new.

Once the script completes, launch the server:

$ cd yourproject
$ abot server

Then visit Abot at localhost:4200.

Usage

First configure the plugins you want to import, such as weather. Add them to your plugins.json like so:

{
	"Version": 0.2,
	"Dependencies": {
		"github.com/itsabot/plugin_weather": "*"
	}
}

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

$ abot install
Fetching 1 plugin...
Installing plugin...
Success!

That will download the plugins into your $GOPATH and install them into your project. Once you've installed the plugins, boot the server again: abot server. You can then use the included Abot console to communicate with Abot locally:

$ abot console
> 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.

This project uses a Bayesian classifier library (github.com/jbrukh/bayesian), whose BSD-style license you can find in /core/training/LICENSE.md.

itsabot's People

Contributors

ankitbansal82 avatar awwalker avatar benmathes avatar egtann avatar eviltoylet avatar hhsnopek avatar jaredborner avatar njaremko avatar satyasrikantmantha avatar sharang-d avatar shawnps avatar waynegerard avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

itsabot's Issues

Deploying to Heroku Issues

Hi,

Super stoked to try abot. I've followed the guide closely and tried it multiple times in case I was mistaken, but each time I get the following error message when trying to deploy for the first time to heroku

remote: -----> Syncing plugin dependencies...
remote: /tmp/buildpack20160406-164-1x6e9x4/bin/compile: line 339: cd: /app/go/src/github.com/itsabot/abot/plugins: No such file or directory
remote: 
remote:  !     Push rejected, failed to compile Go app

any suggestions?

thanks

Dockerize

I tried to dockerize abot, but the postgres check on setup is by process(ps ax -o comm | grep -q '^postgres'). The postgres check should be a telnet on postgres port.

Step 15 : RUN ./cmd/setup.sh
---> Running in 63fd2e6a3688
[ok] checking for go binary
[ok] checking GOPATH
[ok] installing dependency manager
[ok] syncing dependencies
[ok] installing glock hook
[ok] installing abot
[err] checking for postgres

failed cmd:
ps ax -o comm | grep -q '^postgres'

Bot platform compatibility (Facebook, Slack, etc.)

It'd be great to build an interface that enables communication from Abot via Facebook's Bot platform or any other. Facebook bots, Slack bots, etc. built using Abot would be able to use our language tools, state management, and memory API. They'd also benefit from integrating with the other platforms through user discovery, and by having their users communicate with the bot on the platforms they use already (like Slack).

Whoever wants to tackle this would have to design an interface to communicate with arbitrary HTTP bot platforms (Kik, Facebook, Telegram, Slack, etc.), then implement that interface in a driver for at least one platform--ideally Facebook, but any are helpful.

To get started, take a look at one of the existing interfaces, such as the SMS interface. Then see how a driver integrates with it by implementing that SMS interface: Twilio driver.

Password resets fail

Current behavior

User profile has a "Change password" link, but that link doesn't work.

Desired behavior

  • If there's an emailsender driver installed: change password should send an email to reset the user's password with visual confirmation
  • If there's no emailsender driver installed: Display instructions to the user on how to install an emailsender driver.

This is a mentor bug, meaning that if you'd like to contribute a fix but you're unsure how to complete the entire task or would like another set of eyes to review your work, please comment on the issue, and I'll help!

abot plugin install failing during install.

I get this error during the setup

failed cmd:
abot plugin install

When I just run abot plugin install on terminal, I get the following message:
2016/04/01 23:03:52 buildingpq: password authentication failed for user "postgres"

setup.sh failing when trying to install plugin

I am setting up 'abot' on my windows box. setup shell script fails at the very last step of installing the plugins. error is mentioned below. I am using the default plugins.json file (with no dependencies). Can some one please suggest whats going wrong?

output from a bash shell.

bash-3.1$ cd /c/working/src/github.com/itsabot/abot/
bash-3.1$ cmd/setup.sh

  • [starting] ***********************************************************

    [ok] checking for go binary
    [ok] checking GOPATH
    [ok] installing dependency manager
    [ok] syncing dependencies
    [ok] installing glock hook
    [ok] installing abot
    [ok] checking for psql binary
    [ok] checking postgres connection
    [ok] checking for abot database
    [ok] checking for abot_test database
    [warn] running abot migrations
    database migrations failed
    if the database has already been migrated, you can ignore this message
    [warn] running abot_test migrations
    database migrations failed
    if the database has already been migrated, you can ignore this message
    [ok] checking if abot database is seeded
    [ok] checking if abot_test database is seeded
    [err] installing abot plugins (this may take a minute)

    [cmd] abot plugin install

Fetching 0 plugins...

Failed to install plugins. exec: "/bin/sh": file does not exist
bash-3.1$

Can't Login

The server says: "failed http: named cookie not present", and the login page just resets.

I'm running the server on a Mac and I'm browsing through Safari.

Better install process

Part of the install process is to create an admin user, but that's hidden away as a Postgres flag users would almost never discover.

When there are no users in the DB, localhost:4200 should show a "Create an Admin" screen, requiring the user choose an email and password for admin logins. Only after there's an admin in the database should it allow you to use the Abot web interface. The cmd/setup.sh script (and potentially cmd/dbsetup.sh as well) should be modified to also mention creating an admin account as the next step.

failed to process text missing user

It's all setup. I started the server and registered a user.
but then when I try to communicate with abot

abot console +13105555555
> Hi
Something went wrong with my wiring... I'll get that fixed up soon.
> hi baby 
Something went wrong with my wiring... I'll get that fixed up soon.
> 

and on the server it says:

abot server
2016/03/31 23:45:39 started Abot
2016/03/31 23:45:43 failed to process text missing user
2016/03/31 23:46:39 failed to queue scheduled event missing destination name id
2016/03/31 23:47:02 failed to process text missing user

So a failed to process text missing user for every message I send to abot.

Voice support

It'd be great to build an interface that enables communication from Abot via voice.

Whoever wants to tackle this would have to design an interface to communicate with arbitrary voice recognition APIs (Google, Nuance, etc.), then implement that interface in a driver for at least one of those.

To get started, take a look at one of the existing interfaces, such as the SMS interface. Then see how a driver integrates with it by implementing that SMS interface: Twilio driver.

[err] syncing dependencies, failed cmd: glock sync 'github.com/itsabot/abot'

$ rpm -q golang-bin
golang-bin-1.5.3-1.fc23.x86_64
$ cd go
$ export GOPATH=$PWD
$ go get github.com/itsabot/abot
$ cd $GOPATH/src/github.com/itsabot/abot
$ cmd/setup.sh
    [ok] checking for go binary
    [ok] checking GOPATH
    [ok] installing dependency manager
   [err] syncing dependencies

failed cmd:
         glock sync 'github.com/itsabot/abot'

bash: glock: command not found

Add PreProcessing Plugin Event

This will allow plugins to, for example, translate text back and forth to multiple languages on the fly, remembering which language each user is speaking.

Function signature: func(cmd *string, u *dt.User)

glock missing

hello,

i am having trouble setting up abot,

the command glock is missing from my system and i cannot find what its from. Help?
i am running Debian Jessie

Better rollbacks when `abot plugin install` fails

Installing plugins can fail for any number of reasons (lack of internet connection, other site isn't up, a typo in your dependencies, etc.), but right now we just error out immediately. If you have an incomplete plugins.go file as a result, compiling will fail.

We should handle errors in installPlugins() like so:

if err := installPlugins(); err != nil { ... }

and delete the plugins.go file we created.

Issue with adding custom plugin

I've just tried to add a simple Hello World plugin, I got the below error

Fetching 1 plugins...
# cd .; git clone https://github.com/itsabot/shared /home/sam/work/go_workspace/src/github.com/itsabot/shared
Cloning into '/home/sam/work/go_workspace/src/github.com/itsabot/shared'...
ERROR: Repository not found.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
package github.com/itsabot/shared/plugin: exit status 128

exit status 1

Is it trying to fetch https://github.com/itsabot/shared? I don't see such a repository.

Here is the content of my plugins.json

{
        "Name": "Abot",
        "Description": "Digital assistant framework",
        "Version": "0.2.0-alpha",
        "ImportPath": "github.com/itsabot/abot",
        "Dependencies": {
                "github.com/samuel-pt/sample_sf": "*"
        }
}

Is it possible to add plugin from other repository?

Handle binaries like images

Do you see a chance to also process binary files like images? They might get send to the bot e.g. via Slack and I'd love to handle them as well.

Plugins of other users can be published

I can publish a plugin on behalf of another user. This is not a desirable behavior.

To combat this, we'll add a required "Maintainer" key on plugin.json which must have the itsabot.org registered email you intend to publish plugins under. It's similar to how some services require DNS changes to demonstrate proof-of-ownership over a domain. Just like that, we'll require you to set a verifiable value in something that only you (or people to whom you give access) can control. Instead of DNS, it's your plugin.json.

This is susceptible to another attack, though, where I register on itsabot.org with an email that's not mine, but one that matches a known Maintainer email, so it'll allow falsely publishing a plugin under that email. To solve that, we'll have to implement email verification from itsabot.org to prove ownership over the email.

With these two steps, we can verify that you own the plugin you're publishing!

Database migrations failed

When running cmd/setup.sh database seems like not migrating,

    [ok] checking for go binary
    [ok] checking GOPATH
    [ok] installing dependency manager
    [ok] syncing dependencies
    [ok] installing glock hook
    [ok] installing abot
    [ok] checking for postgres
    [ok] checking for psql binary
    [ok] checking for postgres user
    [--] checking for abot database
         abot database missing. creating it
    [ok] creating abot database
    [--] checking for abot_test database
         abot_test database missing. creating it
    [ok] creating abot_test database
  [warn] running abot migrations
database migrations failed
if the database has already been migrated, you can ignore this message

  [warn] running abot_test migrations
database migrations failed
if the database has already been migrated, you can ignore this message

    [ok] checking if abot database is seeded
    [ok] checking if abot_test database is seeded
    [ok] generating environment file
    [ok] installing abot plugins

In the browser I can't register. I'm getting pq: relation 'userflexids' does not exist

DB Error

Hi there,

I have installed abot but when I run the console or on we page I get this error message :

could not set memory at __state_entered to %!!(MISSING)s(bool=true). pq: syntax error at or near "ON

I use Postgres 9.5

Thank you
Arash

Parsing form values doesn't seem to be working correctly in the request handlers

I've been playing around with this but haven't quite gotten a patch together yet.

It seems like there's an issue with decoding the form values from a JSON post request - namely, it doesn't see the payload as form values and so values (e.g. name, email, fid) are all blank when going to read them.

Entirely possible this is an OS issue: I haven't tried on any other OS (running OS X 10.11.3).

I suspect it might be more robust to treat the payload as JSON and use a JSON decoder instead, but I'm mostly curious if other people are having the same issue.

Sign up not working

Hi! Great project but I can't currently create any user, I always get this error message back

    {"Msg":"pq: syntax error at or near 'ON'"}

Any idea?
Also, why the US number limitation?

Cheers,
Davide

How do I handle asking for information only when needed?

The current implementation of the state machine requires that StateMachine.Next() be called twice. Once so that the code in OnEntry() is run and then on the subsequent call, OnInput() and OnComplete(). I noticed that there is a SkipIfComplete, but using it seems wrong.

For example, I want to support the following homogeneously:

  • What's the weather in Seattle?
    • bot: The weather is 55 degrees and cloudy.
  • What's the weather?
    • bot: What city do you want the weather for?
    • me: Seattle
    • bot: The weather is 55 degrees and cloudy.

What I'm inclined to do is just to use SkipIfComplete and do all the logic within Complete(). What's the approach that you would suggest?

How can I help?

I'm interested in helping move this project forward, as I think it could be a significant part of my company's offering in the future. I haven't used Go before, but I am a fast learner.

How can I help?

Communicate with HTTP or WS?

Currently I'm trying to build my own bot. However, following the guide it seems that you can either communicate with the the console or SMS but the website states there an HTTP API is exposed.

So is there a way to communicatie with the bot using HTTP/WS? Any pointers (example or code) how I could utilize this?

Thanks :)

Setup stuck on glock hook

I am installing abot on windows using cygwin. The setup is stuck on installing glock hook for past 30 mins. I tried it twice and network also seems to be fine.
Any suggestions?
Including the output below.

 cmd/setup.sh
    [ok] checking for go binary
    [ok] checking GOPATH
    [ok] installing dependency manager
    [ok] syncing dependencies
     [?] installing glock hook

Plugin Install issue around github.com/itsabot/abot/shared/pkg

Hi ,

I am getting some cannot find package "github.com/itsabot/abot/shared/pkg" errors on abot plugin install , I can see from looking a bit in the code that the stripe plugin is using this I guess deleted package in their go file , it must be depended on elsewhere in other plugins also. I have not found where it has been renamed to or moved to for updating the plugin files though.

Can someone advise?

Thanks
Barry

Plugin Installing Issues

I've been getting 500 on the fetching those plugins.

Fetching 3 plugins...
WARN: 500 - 500 Internal Server Error
WARN: 500 - 500 Internal Server Error
WARN: 500 - 500 Internal Server Error
Installing plugins...
Success!

This is the config, JSON file:


{
    "Name": "Abot",
    "Description": "Digital assistant framework",
    "Version": "0.2.0-alpha",
    "ImportPath": "github.com/itsabot/abot",
    "Dependencies": {
        "github.com/itsabot/plugin_onboard": "*",
        "github.com/itsabot/plugin_weather": "*",
        "github.com/itsabot/plugin_hello": "*"
    }
}

Is this is an issue on my end or?

err while checking for postgres

$ cmd/setup.sh
[ok] checking for go binary
[ok] checking GOPATH
[ok] installing dependency manager
[ok] syncing dependencies
[ok] installing glock hook
[ok] installing abot
[?] checking for postgresps: unknown option -- o
Try `ps --help' for more information.
[err] checking for postgres

failed cmd:
ps ax -o comm | grep -q '^postgres'

please start postgres to continue

Database errors

Hi, when attempting to set abot up and running in a vagrant instance (Ubuntu 14.04) (with Go 1.6 and Postgres 9.5) it falls apart at database migrations. At the very start during sign-up, it says that the userflexids table is missing. After manually creating the table (from the first file in db/migrations) it goes on to a 'syntax error near 'ON'' error.

Error on 'abot server' command

When i execute the abot server command i get an error as

/home/xxx/go/src/github.com/itsabot/plugin_hello/plugin.json: no such file or directory

my plugins.json looks like this:

{
        "Name": "Abot",
        "Description": "Digital assistant framework",
        "Version": "0.2.0-alpha",
        "ImportPath": "github.com/itsabot/abot",
        "Dependencies": {
                "github.com/itsabot/plugin_onboard": "*"
        }
}

Can you suggest why I get this error. This was working fine sometime back though.
I am working on Ubuntu Virtual Box.

Thanks,

ImportPath doesn't affect every path

There are a number of places in the codebase where filepath.Join(..., "github.com", "itsabot", "abot", ...) is called, rather than using the conf.ImportPath defined in plugins.json.

This isn't a straightforward fix, since the plugins themselves need access to that variable on init() and we can't control when they boot. This seems like a great use for blocking channels, then. We can hide the channel's complexity within the existing plugin.New API, having the plugin wait until it receives the OK from core that the ImportPath variable is set and ready to use.

`abot plugin install` fails: GLOCKFILE not found

I'm getting an error while running abot plugin install, whether manually or through cmd/setup.sh:

$ abot plugin install
Fetching 1 plugins...
WARN: 500 - 500 Internal Server Error
Installing plugins...
error creating %!!(MISSING)s(func(string) string=0x410d00): open /home/yuri/projects/src/home/yuri/projects/src/github.com/itsabot/abot/GLOCKFILE: no such file or directory

exit status 1
$ cmd/setup.sh
    [ok] checking for go binary
    [ok] checking GOPATH
    [ok] installing dependency manager
    [ok] syncing dependencies
    [ok] installing glock hook
    [ok] installing abot
    [ok] checking for postgres
    [ok] checking for psql binary
    [ok] checking for postgres user
    [ok] checking for abot database
    [ok] checking for abot_test database
  [warn] running abot migrations
database migrations failed
if the database has already been migrated, you can ignore this message

  [warn] running abot_test migrations
database migrations failed
if the database has already been migrated, you can ignore this message

    [ok] checking if abot database is seeded
    [ok] checking if abot_test database is seeded
    [ok] generating environment file
   [err] installing abot plugins

failed cmd:
         abot plugin install

Fetching 1 plugins...
WARN: 500 - 500 Internal Server Error
Installing plugins...
error creating %!!(MISSING)s(func(string) string=0x410d00): open /home/yuri/projects/src/home/yuri/projects/src/github.com/itsabot/abot/GLOCKFILE: no such file or directory

exit status 1

As you can see, the problem is that GLOCKFILE couldn't be found, because it's supposed to be at location which is constructed incorrectly: /home/yuri/projects/src/home/yuri/projects/src/github.com/itsabot/abot/GLOCKFILE should be /home/yuri/projects/src/github.com/itsabot/abot/GLOCKFILE, which exists.

Notice that $GOPATH/src (/home/yuri/projects/src) is added to the glockfile location - is it possible to remove it? Thanks

running abot migrationsPassword

I'm fairly new to GO and Postgresql but I am excited to work with this. I'm having a slight problem installing however:

[ok] checking for go binary
[ok] checking GOPATH
[ok] installing dependency manager
[ok] syncing dependencies
[ok] installing glock hook
[ok] installing abot
[ok] checking for postgres
[ok] checking for psql binary
[?] checking for postgres userPassword for user postgres:
[ok] checking for postgres user
[?] checking for abot databasePassword for user postgres:
[ok] checking for abot database
[?] checking for abot_test databasePassword for user postgres:
[ok] checking for abot_test database
[?] running abot migrationsPassword for user postgres:
Password for user postgres:
Password for user postgres:
Password for user postgres:

it continues to print Password for user postgres: even after I input the password. It will continue to do so until it reaches the end and prints: psql: fe_sendauth: no password supplied warnings and fails.

This could be a small problem I'm overlooking, sorry in advance.

Install 'go get github.com/itsabot/abot' results in "abot.go:234: syntax error: Unexpected range,'

Hi All,

I was following the installation instructions by doing go get github.com/itsabot/abot

I got the following error messages:
[cmd] go install 'github.com/itsabot/abot'

github.com/itsabot/abot

./abot.go:234: syntax error: unexpected range, expecting {
./abot.go:237: syntax error: argument to go/defer must be function call
./abot.go:247: non-declaration statement outside function body
./abot.go:248: non-declaration statement outside function body
./abot.go:251: non-declaration statement outside function body
./abot.go:252: non-declaration statement outside function body
./abot.go:253: non-declaration statement outside function body
./abot.go:256: non-declaration statement outside function body
./abot.go:259: non-declaration statement outside function body
./abot.go:260: non-declaration statement outside function body
./abot.go:260: too many errors

System Details
go version go1.2.1 linux/amd64
psql (PostgreSQL) 9.3.12

Operating System Details:
Distributor ID: LinuxMint
Description: Linux Mint 17.2 Rafaela
Release: 17.2
Codename: rafaela

Can anyone help me with these errors?

Remove vendor/cookie.js

Cookie.js (assets/vendor/js/cookie.js) is using an incompatible GPLv3 license. Rewrite it from scratch under MIT ensuring that no code breaks in the front-end. The API may change (it may have to), but any JavaScript that calls it should reflect that change.

This is a good first issue for new contributors.

Plugins can interrupt each other

If you're in a plugin, and just happen to give a follow-up message that matches the trigger for another plugin, you'll be switched over to that plugin.

This is extremely unintuitive and not desired. The expectation is I continue to interact with the current plugin until it finishes or I abort.

Protocol Buffers

I propose we switch our data serialization format from JSON to Protocol Buffers.

They:

  • are simpler
    
  • are 3 to 10 times smaller
    
  • are 20 to 100 times faster
    
  • are less ambiguous
    
  • generate data access classes that are easier to use programmatically
    

They require you to write a schema for your storage stuct, but that's trivial.

Link to more info

Training Interface Mockup

Training Interface Mockup

Here's my thinking for the first version of the training interface, which will enable you to train your Abot:

  • Plugins should be trained individually. That is, I train the alarm and restaurants plugins separately.
  • Training data of published plugins must be shared to enable those plugins to work. I'm thinking of supporting two models simultaneously:
    1. Encode training data into a text file and save it with the plugin (open-source trained model)
    2. Make it available via an external HTTP request (closed-source trained model). This will enable developers to charge money or protect particularly complex trained models.
  • The Intent mentioned here would be available to plugins via StructuredInput.
  • Over time we can expand this design with:
    • In-line testing, so you can quickly iterate without jumping back to the console, perhaps via a keyboard shortcut.
    • The ability to add additional, custom fields beyond Intent.
    • Auto-completion on the field (set_alarm, disable_alarm, etc.) with past values.
    • Display real user requests to that plugin, with requests that the plugin couldn't handle sorted to the top.

Would love feedback!

HasMemory is broken

StateMachine.HasMemory() doesn't work as advertised. It's doing a check on a length of the byte buffer, which is not empty for a JSON marshaled string. It needs to be marshaled to a string before this check is done.

Unable to connect to Abot on any port

I have the abot server running - at least so it says - but whenever I go into Chrome to connect, it refuses to connect. I have tried different ports, changing the port in various places (ie abot.env, .zshrc, and made an env named PORT), all to no avail. I used the abot c[onsole] command, and whenever I try to interact with it, I get:

$ abot server
2016/04/02 22:50:43 started Abot
2016/04/02 22:51:43 failed to queue scheduled event missing destination name id
2016/04/02 22:51:46 failed to process text missing user

I have Abot running in a Trusty 64-bit Vagrant box, PostgreSQL 9.5.2, and Go 1.6, if that helps any.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.