A spirited and game-loving Slack bot featuring a functional pipeline architecture and natural language processing capabilities.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
alice
config
db
doc
spec
tasks
.env.sample
.gitignore
.irbrc
.pryrc
.rspec
CHANGELOG
CODE_OF_CONDUCT.md
Capfile
Gemfile
Gemfile.lock
Gemfile.lock.bak
LICENSE.txt
README.md
Rakefile
alice.rb
config.ru
dictionary.mmd
tmp.txt

README.md

What is Alice?

Alice is an AI-infused Slack bot, but so much more. She's a friend. She's a companion. She's the only bot you'll ever love.

For her history and a look at what makes her tick, check out my talk from Strange Loop 2017.

Overall Architecture

Alice Architecture

Key Models & Namespaces

Key Models and Namespaces

Setting Up Alice

Prepping Alice

Before you start, make sure to run bundle

Next, rename config/mongoid.yml.sample to mongoid.yml

Also rename .env.sample to .env and set the appropriate environment variables.

Run the following from Terminal to initialize basic commands:

ruby db/commands/import.rb

Running the Bot

Deploy to your favorite hosting environment and set up incoming and outgoing integrations with Slack according to their documentation.

If you're using Heroku, be sure to copy the relevant values from the .env file to your application's configuration.

Debugging

irb -r ./alice.rb

message = Message::Message.new("coraline", "Alice, who is @alva?")
Message::Command.process(message)