eaglewarrior / MapBot

A chatbot developed in Python

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MapBot Build Status

Hey! I'm your friendly navigator bot! Try me out, not to brag but I'm FUN!

What I do?

I aim to give users a new way to interact with Google Maps through engaging text-based conversational interfaces.

How old am I?

I'm only a baby bot right now, I need you to feed me with logic, data and inspiration.

What is the motivation behind building me?

The primary motivation of the developers of MapBot is to provide a playground to tech enthusiasts, both beginners and advanced to try algorithms, approaches and ideas while contributing to a real-life project.

What I aspire to be one day?

  • I want to help users in the most comprehensive way.
  • I want to give 'geeks' a platform to try out all things 'cool'.

Are you here for GSSoC 2020?

Check out all related information here


What are some pre-requisites?

  • MySQL
    • Install the community version of mySQL from the official mySQL documentation page.
    • Create root user credentials during installation.
    • Verify the installation, running the command mysql -uroot -p -hlocalhost should open the mySQL monitor. (Enter the root password when prompted)
  • StanfordCoreNLP
    • StanfordCoreNLP has a dependency on Java 8. java -version should complete successfully with version 1.8 or higher.
    • Windows- Download as a .zip file from here.
    • Linux and MacOS- Follow the instructions to download the file from here.

How to set me up?

  • Clone the repository
  • Create the mapbot database in mySQL
    • mysql -uroot -p -hlocalhost
    • Enter root password when prompted
    • create database mapbot;
    • Verify creation of the database show databases;
  • Unzip the StanfordCoreNLP package in the repository and keep the file paths stanford-corenlp-x.x.x.jar and stanford-corenlp-x.x.x-models.jar handy.
  • Run git update-index --assume-unchanged ENV/.env
  • Fill the existing template in ENV/.env with the corresponding values following the KEY=VALUE format
  • Install dependencies from requirements.txt file. Run pip install -r requirements.txt
  • You're all set up, run the init.py file. python init.py
  • It is recommended that you set this project up in a virtual environment to keep the dependencies separated and for easier debugging. Here's how you can do that -
    1. Python
    2. Conda

What are some pre-requisites? (with Docker)

  • Docker
    • Take a look at this for detailed installation instructions for Docker on Windows, Linux and Mac systems.
    • Verify the installations by docker --version and docker-compose --version

How to set me up Docker style?

  • Download the start.sh and modify it appropriately:
    • git clone <GITHUB_LINK_OF_REPO_TO_CLONE> -b <BRANCH_NAME_TO_CHECKOUT>
    • export GCLOUD_API_KEY=<YOUR_API_KEY_HERE>
  • You're all set up, kick off with start.sh file by running bash start.sh.

What are some pre-requisites? (with Telegram Bot)

  • MySQL
    • Install the community version of mySQL from the official mySQL documentation page.
    • Create root user credentials during installation.
    • Verify the installation, running the command mysql -uroot -p -hlocalhost should open the mySQL monitor. (Enter the root password when prompted)
  • StanfordCoreNLP
    • StanfordCoreNLP has a dependency on Java 8. java -version should complete successfully with version 1.8 or higher.
    • Windows- Download as a .zip file from here.
    • Linux and MacOS- Follow the instructions to download the file from here.
  • Telegram
    • Download the Telegram for your chosen platform.

How to set me up on Telegram?

  • Clone the repository
  • Create the mapbot database in mySQL
    • mysql -uroot -p -hlocalhost
    • Enter root password when prompted
    • create database mapbot;
    • Verify creation of the database show databases;
  • Unzip the StanfordCoreNLP package in the repository and keep the file paths stanford-corenlp-x.x.x.jar and stanford-corenlp-x.x.x-models.jar handy.
  • Run git update-index --assume-unchanged ENV/.env
  • Fill the existing template in ENV/.env with the corresponding values following the KEY=VALUE format
  • For TELEGRAM_BOT_TOKEN=<YOUR_API_KEY_HERE>, open your Telegram app and follow this tutorial on how to create a new bot on Telegram and get your own bot token. Once your token is generated, update the .env file in /ENV with it.
  • Find your bot on Telegram using @bot_username that you chose, and send the first text to your new bot. Nothing is supposed to happen for now. No worries.
  • Install dependencies from requirements.txt file. Run pip install -r requirements.txt
  • You're all set up, run the telegram.py file. python telegram.py and converse with your bot in real time.
  • It is recommended that you set this project up in a virtual environment to keep the dependencies separated and for easier debugging. Here's how you can do that -
    1. Python
    2. Conda

How do I work?

The /analysis folder contains data files for the project. The sentences.csv contains the base training dataset which is used to classify the user's input into three classes - Statement, Question, and Chat. Going through some examples would clarify the difference between statement and chat. The featuresDump.csv is the result of text pre-processing done using the code in features.py and featuresDump.py.


Want to see me in action?

Here's a Medium article with the some superficial explanations, there are some video links too!

About

A chatbot developed in Python


Languages

Language:Python 98.2%Language:Shell 1.0%Language:Dockerfile 0.6%Language:TSQL 0.1%