Code Monkey home page Code Monkey logo

jarvis-on-messenger's Introduction

JARVIS on Messenger

Just A Rather Very Intelligent System, now on Messenger!

Build Status Python License Gitter

Messenger is now used by 900 million people every month. With the launch of Send / Receive API, bots are about to take over.

Why?

I created JARVIS with two goals in mind:

  1. It should have a lot of useful features (both fun and commonly used).
  2. Anyone can contribute to this project. (As this is module-based, anybody with a decent knowledge of Python can contribute.) One of the prime goals of this project is to lower the entry barrier in the world of open source.

Take a look at the contributing guidelines to see how easy it is to add your code. I'll be waiting for your pull request! ๐Ÿ˜‰

Demo (Vimeo)

JARVIS on Messenger Demo

TODO

There are a lot of features that I've planned for JARVIS. Feel free to add to this list by opening an issue / PR.

  • Book Rating (#11)
  • Movie Rating
  • Anime Rating (#41)
  • News (#48)
  • Weather
  • Currency Conversion (#18)
  • Random Quote (#21)
  • Random Fact (#45)
  • Random Joke
  • Dictionary (#1)
  • Wikipedia Summary (#9)
  • Lyrics Search
  • URL Shortener (#77)
  • Expand URL
  • Ping (#30)
  • Restaurant Rating (#31)
  • Calculator (#46)
  • Time (#64)
  • Music Search
  • Video Search

Some advanced features:

  • Add templates support (Structured Messages) (#7)
  • Integrate with Wit.ai to parse Natural Language
  • Retain context between queries

Structure

โ”œโ”€โ”€ modules/         # home for various features
โ”œโ”€โ”€ modules/src/     # code goes here
โ”œโ”€โ”€ modules/tests/   # tests go here
โ”œโ”€โ”€ data/            # home for shared data
โ”œโ”€โ”€ templates/       # for sending structured messages
โ”œโ”€โ”€ CONTRIBUTING.md  # contributing guidelines
โ””โ”€โ”€ jarvis.py        # the main bot

Usage

JARVIS is at your service here. Currently, it's pending approval before the public can engage. If you'd like to be a tester, post here.

Sample Queries

Hi, Jarvis!
Are you there?
tell me a joke
iron man movie
define comfort
wiki html
anything you want book
random quote
usd to eur rate
tell me a fact
death note anime
time in seattle
songs by linkin park
shorten google.com
expand http://goo.gl/7aqe
weather in london
videos of sia
More examples can be found here.

Local Development / Testing

  1. Clone this repo.
  2. Linux: sudo apt-get install python-dev libffi-dev libssl-dev
    Windows: These should already be pre-installed in your Python bundle.
    Mac/OS X:
    a) If you install Python using brew, the relevant headers are already installed for you. In other words, you don't need python-devel.
    b) brew install pkg-config libffi
    export PKG_CONFIG_PATH=/usr/local/Cellar/libffi/3.0.13/lib/pkgconfig/ # May change with libffi version
    pip install cffi
    c) brew install libtins
  3. pip install -r requirements.txt
  4. python jarvis.py
  5. Visit the following URLs to see results:
    http://localhost:5000/process/?q=<<YOUR_QUERY>> returns the intent of the query.
    http://localhost:5000/search/?q=<<YOUR_QUERY>> returns the search result of the query.

The process query returns what module the system classifies your query into, say a dictionary query or a song search, etc. Visit the following URLs to understand the output format:
http://localhost:5000/process/?q=tell%20me%20a%20joke
http://localhost:5000/process/?q=time%20in%20seattle
http://localhost:5000/process/?q=convert%2025%20usd%20to%20eur
The search query returns the actual bot output, that you get when you interact with the bot using that query.
Note that for the search query to work, you have to set your own key (of the module that you want to test) in config.py

History

I started out with rule-based model but it didn't scale well so now I've shifted to Natural Language Processing. Rest assured, I'll strive to keep it as simple as possible so that you, yes you, can contribute!

If you'd like to contribute to the old model, you are welcome to do so as well. I've created a new branch legacy for this purpose. I'll be accepting Pull Requests to this branch also. ๐Ÿ˜„

P.S. If you've come this far, you might as well contribute. Looking for a place to start? Take a look at some of the low-hanging fruits!

jarvis-on-messenger's People

Contributors

swapagarwal avatar achelikani avatar akarshhegde avatar havanagrawal avatar krizhan avatar nikhilgeo avatar camdroid avatar shnupta avatar matthiasrms avatar shanmukhateja avatar austincgomez avatar bhague1281 avatar huzaifafaruqui avatar akornor avatar shreyas95 avatar gitter-badger avatar ymittal avatar conormag94 avatar

Watchers

James Cloos avatar Akinbode Akinkunmi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.