A spirited and game-loving Slack bot featuring a functional pipeline architecture and natural language processing capabilities.
Ruby
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
alice
config
db
doc
spec
tasks Pronouns are pronouns Jul 31, 2017
.env.sample
.gitignore
.irbrc
.pryrc
.rspec
CHANGELOG
CODE_OF_CONDUCT.md
Capfile
Gemfile
Gemfile.lock
Gemfile.lock.bak
LICENSE.txt License, CoC Apr 10, 2014
README.md
Rakefile
alice.rb Look up users by display name Oct 7, 2017
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)