Wilson
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.
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
Docker
Running withDownload 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.
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):
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.
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:
- Google Cloud Platforms terms of service
- Symptomas terms of service and privacy policy
- The WHOs privacy policy
- The Wikimedia terms of use and privacy policy