Skip to content
This repository has been archived by the owner on Feb 9, 2021. It is now read-only.
/ arXie-Bot Public archive

arXie is a Slack bot that browses and filters the arXiv repository for you

License

Notifications You must be signed in to change notification settings

thundergolfer/arXie-Bot

Repository files navigation

arXie Slack Bot Build Status Code Climate

arXiv {pronounced archive}, arXie {pronounced... archie}


Add to Slack

arXie is a Slack bot that browses and filters the arXiv repository for you. You're kept informed on what's happening in Machine Learning and AI with minimal effort.

This production of this bot was motivated by this question in Google Brain's r/machinelearning AMA

How do you keep up with the vast amount of work being done on deep learning? Do each of you just focus on one thing or is everyone reading many papers daily? I'm a second year AI master student and I find it overwhelming.

I've taken all feedback from that thread and the hacker news thread to make the process on ingesting the massive amount of Machine Learning research relatively pain free.

Set-Up

Disclaimer:

ArXie-Bot uses arxiv-sanity.com as an interface to the ArXiv papers repository.
As arxiv-sanity has a _username_, _password_ login system, Arxie-Bot is required
to either receive some existing login details from you, or ask you
to message it some fresh ones to use.

As you have probably figured, this requires messaging through Slack a password,
which is god-awful security. Though an arxiv-sanity.com account is a pretty low
value target, it is still something that needs to be fixed.

The first step will probably involve moving to a process whereby Arxie-Bot
creates an password for you on the back-end and emails you that password to a
secure email so that you may use the arxiv-sanity.com account outside of Slack.

It will be harder to facilitate the secure  passing of an existing password to
the bot, but that is a desired feature.

Coming soon once I've implemented what's necessary for the "Add to Slack" button process

How To Basics

The following commands are available to you:

1. Get Library

The "Library" is those papers that are stored for your account at arxiv-sanity.com, and a summary will be presented by saying things like this:

@arxie-bot Get my library, @arxie-bot get library, @arxie-bot Fetch my library, @arxie-bot Get my papers library

2. Get Paper

Get a paper's summary:

@arxie-bot Show <paper title>

3. Get Recommended

Given papers you've saved, pull a few recent papers arxiv-sanity.com thinks you'd like.

@arxie-bot Get recommended papers, @arxie-bot I want my recommended papers, @arxie-bot recommended

4. Clear Library

The "Library" is those papers that are stored for you at arxiv-sanity.com, and they all be deleted by saying things like this:

@arxie-bot delete library, @arxie-bot delete all in library, @arxie-bot wipe library, @arxie-bot clear library

5. Search

Supply a query and search against the papers in arxiv-sanity.com.

@arxie-bot search for <search query>, @arxie-bot search <query>

Development

Installation

You can use virtualenv arxie-env to create a virtual environment called "arxie-env". Running pip install -r requirements.txt.

You will require an API AI token and a Slack API Token for the ArXie-Bot, which is accessible once the bot has been adding to your team (details here for Slack). Add these tokens as environment variables and the ArXie bot will pick them up.

Running Locally

The following environment variables must be populated:

APIAI_TOKEN=<GET FROM https://api.ai/>
SLACK_TOKEN=<GET A 'Bot user OAuth access token'>

ARXIE_DB_TOKEN=<ANY HIGH-ENTROPY STRING>
ENV="DEV"

Run python -m bot.app

Deployment and Running in 'Prod'

Arxie-bot can be deployed to the Google Cloud by following and adapting Build a Slack Bot with Node.js on Kubernetes. The kubernetes/ folder has the config and more info.

The following environment variables must be populated:

APIAI_TOKEN=<GET FROM https://api.ai/>
SLACK_TOKEN=<GET A 'Bot user OAuth access token'>

ARXIE_DB_TOKEN=<ANY HIGH-ENTROPY STRING>
DEV="PROD"
PROJECT_ID=<YOUR GCLOUD PROJECT ID>

When in production, Arxie-bot uses Google Datastore to store arxiv-sanity.com account details for Slack users.

License

This project is under the MIT License.


Made With

Imgur Imgur Imgur Imgur