Because we're all tired of answering questions when people should clearly RTFM.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src/python
.gitignore
LICENSE
README.md
requirements.txt

README.md

rtfmbot

Disclaimer: This is way early stage. I don't recommend it for "production" just yet.

Introduction

We're all tired of answering questions when the person asking clearly hasn't bothered to RTFM or put in any effort. Perhaps that person is even you (I know I'm guilty of it, but dang, Slack makes it so easy to ask questions!) sometimes. Save your context switching for things that matter and deploy the RTFMbot to your Slack network. Slack is great for communication, but sometimes it is too good and people ask questions when answers are easily found on the web or in your knowledge base.

Building out on the Slack Python Client and ChatterBot, this little bot also can dynamically pull in answers from the Open Source community via SearchHub -- our community site built on Lucidworks Fusion. It can also be extended to pull in other sources with a little work.

Getting Started

You'll need:

  1. Python 2.7 (VirtualEnv recommended)
  2. NLTK Data. See http://www.nltk.org/data.html

Installing

  1. virtualenv venv
  2. source venv/bin/activate
  3. pip install -r requirements.txt

Configuring

  1. In src/python, copy sample-config.cfg to config.cfg and fill in the appropriate values

Running

  1. cd src/python
  2. python run.py

Training

Chatterbot trains itself off of the json files located in src/python/training. Add in training files per https://github.com/gunthercox/ChatterBot/tree/master/chatterbot/corpus as you see fit and Chatterbot will "learn" off of them, as well as learn as it goes. See example.json for an example. NOTE: example.json is ignored by the trainer.

TODO:

  1. Make the adapters configurable
  2. Fusion/Solr storage adapter implementation
  3. Do something interesting with new questions
  4. Better question parsing
  5. Normalize scoring somehow for the SearchHubLogicAdapter so it the others have a chance.
  6. Feedback from Slack reactions

Contributing

Pull requests welcome. Note, I don't always check on my personal projects every day, so you can expect some delay.