The HyperTension Bot is a Telegram bot that helps the user to keep track of his blood pressure and heart rate. It also provides the user with general medical information about hypertension and how to measure blood pressure. Instead, it will not answer questions not related to hypertension or general health.
This project is provided under the Apache 2.0 license. See the LICENSE file for more information.
Contributors: see the file CONTRIBUTING.md.
Contributors (code only): see the github contributors page
Sara Montagna, Gianluca Aguzzi, Stefano Ferretti, Martino Francesco Pengo, Lorenz Cuno Klopfenstein, Michelangelo Ungolo, Matteo Magnini. "LLM-based Solutions for Healthcare Chatbots: a Comparative Analysis", in: Proceedings of 2024 IEEE International Conference on Pervasive Computing and Communications Workshops and other Affiliated Events (PerCom Workshops).
Bibtex:
@inproceedings{llmbasedhealthcarechatbots-telmed2024,
author={Montagna, Sara and Aguzzi, Gianluca and Ferretti, Stefano and Pengo, Martino Francesco and Klopfenstein, Lorenz Cuno and Ungolo, Michelangelo and Magnini, Matteo},
booktitle={2024 IEEE International Conference on Pervasive Computing and Communications Workshops and other Affiliated Events (PerCom Workshops)},
keywords = {large language model, medical chatbot, chronic disease management},
title={LLM-based Solutions for Healthcare Chatbots: a Comparative Analysis},
year={2024},
volume={},
number={},
pages={346-351},
keywords={Pervasive computing;Privacy;Filtering;Conferences;Computational modeling;Medical services;Chatbots;Large Language Model;Medical Chatbot;Chronic Disease Management},
doi={10.1109/PerComWorkshops59983.2024.10503257}}
✨✨ Try the bot ✨✨
- The user can send their measures to the bot. The bot will safely store the data in a database.
- When asked, the bot is able to provide statistic information (e.g., mean, maximum, minimum) and display historical the data witt plots.
- The bot also sends reminders to the user to measure his blood pressure and heart rate.
Note: Telegram is required to use the bot.
- The project uses the Gitflow workflow.
- The project uses conventional commits.
- Technical discussions should be done via issues.
Clone the repository and open the solution in your preferred IDE. Configure the following environment variables:
SECRET_TELEGRAM_TOKEN
: The token of the Telegram bot. You may want to create a new bot using the BotFather.SECRET_KEY_OPENAI
: The key of the OpenAI API if you want to use their models.
You may also change:
- the connection to mongoDB.
- the connection to our models (you need to be pre authenticated and authorized to access them).
- Start the bot by sending the command
/start
to the bot. - The bot will ask you to provide your name and surname. Send your name to the bot.
- The bot will ask you to provide your birthday. Send your birthday to the bot in the format
dd/mm/yyyy
.
- The user can send his measures to the bot by writing them with the following format:
systolic pressure diastolic pressure heart rate
. For example,120 80 60
. In the future the user may be able to use less strict formats. - The user can ask the bot to display his measures (e.g., last measures, all measures, measures in a specific time interval).
- The user can also ask general medical information to the bot (e.g., what is hypertension, how to measure blood pressure).
- If the user does not send his measures for a certain amount of time, the bot will send him a reminder to measure his blood pressure and heart rate.
The system is composed of three main components (plus the user):
- Telegram bot
- Database
- Large Language Model
The Telegram bot is the main component of the system. It is responsible for interacting with the user and for sending him reminders.
The database is responsible for storing the user's data. It is also responsible for providing the data to the Telegram bot when requested.
It is responsible for interpreting the user's messages and for generating possible answers.