/wikibot

A simple, fast and scalable solution for an interactive chatbot.

Primary LanguagePython

Wikibot

A simple, fast and scalable solution for an interactive chatbot.

Internal Working

How the bot thinks ?

The flow schema followed by the bot: main_chart

Scraping the information

The platform uses the following approach to extract useful information from text and provide the best fit response.

language-algo

Example : What are some Python projects I could work on ? extracted keywords are ['python', 'projects', 'work']

Types of Messages

The following commands are processes by the bot :

Messages without prefix

  • Can updated from dashboard (main category) example : Give me a list of Wikimedia's gsoc projects.

main

  • Casual Talk : The bot is pre-programmed to perform casual talk with the users on general topics, such as greetings, activities, likes/dislikes, etc.

Messages with prefix (+)

  • Alpha Command : Category names and messages can be created and managed through Alpha section on dashboard.
    • syntax : +<category_name > <query>
    • example : +lang python projects

alpha

  • Beta Command : Messages with +<name> only. Can be created and managed through beta section on dashboard.
    • syntax : +<name >
    • example : +timeline

beta

  • Standard Command : Inbuilt command in code for predefined actions.
    • example : + help for help, + task <task_id> for info about a phab task

task

Other Features:

  • Statistics Page : A statistics page on the dashboard to analyse the user-bot interaction.
  • Project Suggestion : suggesting project details (such as project location gerrit/github/phabricator, mentors, workboard etc.) from skills.
  • Find status of tasks assigned/created to/by the user.

Dashboard

A single page web app to create, update and manage the bot's knowledge base.

dashboard-main