alice

A spirited and game-loving Slack bot featuring a functional pipeline architecture and natural language processing capabilities.

53
13
Ruby

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)