/wilson

Wilson is a chatbot that can diagnose you based on your symptoms and give you information on illnesses.

Primary LanguageJavaScriptMIT LicenseMIT

Wilson

Run on Repl.it Discord License GitHub language count GitHub top language Size Lines Dependency Dependency GitHub contributors

Wilson is a chatbot that can diagnose you based on your symptoms and give you information on illnesses.

Wilson uses Dialogflow for natural language processing (NLP), Symptoma for the diagnosis and the WHOs International Classification of Diseases (ICD) and Wikipedia as sources. It is written in JavaScript and can be run online in Repl, locally with Node.js or in a Docker container. Wilson also has Discord integration.

This project was made for the 2020 #4GoodAI hackathon.

If you have any questions, problems or suggestions write us an email or open a GitHub issue.

Demo


Table of contents

Run

The bot can be run in a variety of environments with different frontends.

Running in Repl:

Go to https://repl.it/@OliverKovacs/wilson#README.md
Click Run

Running locally:

You need Node.js and npm installed for this.
Clone the repo with git

git clone https://github.com/hiubok/wilson.git

or download as a zip.

Open a terminal in the cloned repo and run the command

npm install

Start the bot with

npm start

Running with Docker

Download the repo as mentioned above, in the directory run:
On Windows: (also start Docker Desktop)

dockerrun.bat

On Linux:

sudo sh ./dockerrun.sh

This could take a few minutes if you run it for the first time.

Try it on Discord

Join the Wilson Discord server: https://discord.gg/nsBKy68NUV
See the #info channel for further info.

Details

Details on how the bot works.

General working principle

The diagram below demonstrates how the bot processes input and how it obtains relevant data. Diagram

Frontends

The bot itself is a separate module, which can have multiple frontends.
The command line interface for example is a frontend for the bot (see run on how to start it), but frontends can be built for any platform.
An example also provided in the repo is a Discord integration, which allows the bot to run as an Discord bot. It can be run with npm run dc (after putting a valid Discord token in ./dc/token.txt, see more information here).

Languages and technologies

The bot itself is written completely in JavaScript, plus some configuration in Dialogflow. We used these technologies to create the bot (click on an icon for more info):

JavaScript Dialogflow Google Cloud git GitHub Discord.js Node.js npm Repl npm Visual Studio Code Webstorm

 

Sources

Wilson uses Symptoma to give you a diagnosis based on symptoms.
It uses the World Health Organizations (WHO) International Classification of Diseases (ICD-11) and Wikipedia to give you information on illnesses.
These sources can be removed, changed or extended.

Symptoma WHO Wikipedia

     

Authors

Roadmap

  • Add further dialogues to Dialogflow
  • Create integrations for other platforms apart from Discord
  • Add further sources for researching info on illnesses
  • Create support for other languages than English

Disclaimer

The bot does not replace an actual diagnosis by a certified medical professional, and replies and diagnoses may be inaccurate.
Do NOT rely on the data provided by the bot for real world use, this is a work in progress, proof-of-concept project.

Legal Notice

By using this program you agree to: