1 / 20100%
The Chatbot Implementation:
Use IBM Watson Assistant Service in IBM Cloud for Chatbot
Implementation
Introduction:
“It is quiet early for your case but just eat right, exercise often, and take your medication,
you will be fine.” The above was a medical advice given to me by the Doctor, sometime in
February of this year. It was like a fight, trying to stay healthy, to bring sugar level to a
normal range. I am just 42 years old with signs and symptoms of diabetes. This is no
different from the cases of many people in America, and the whole world. According to the
Center for Disease Control and Prevention (CDC), over hundred million people in America
are, already, diagnosed with diabetes or prediabetes while some are still undiagnosed. This is
gradual, but increasingly becoming prevalence. Most people are not aware of their health
condition when it comes to diabetes and sugar level monitoring. While many do not have the
time or resources to properly take care of their health. The immediate need for a poor person
is to satisfy hunger with any available food. Unfortunately, majority of the affordable meals
are not healthy, they are either filled with calories or fat. Continuous consumption of food
with high calories (rich in sugar) will result in high sugar level, which leads to diabetes. The
process of digestion involves breaking down of food into sugar (also called glucose).
Eventually, these glucoses are released into your bloodstream, thereby, leaving the sugar
level in the blood either low, normal, high, or in some extreme cases, ketoacidosis. The
pancreas helps in regulating the sugar level, by releasing them to used as energy, when they
are high. “If you have diabetes, your body either doesn’t make enough insulin or can’t use
the insulin it makes as well as it should” (CDC). Early detection and awareness will help
anyone to manage the sugar in-take and practice healthy living like exercising more. This is
where Mr. Bot Diabetes (Chatbot) comes in to play. Figure 1 shows clearly that diabetes
diagnoses are on the rise, having compared the county-level distribution of diagnosed
diabetes prevalence among US adults aged 20 years or older, 2004, 2008, and 2016.
Figure 1: County-Level Distribution of Diagnosed Diabetes Prevalence Among US Adults
Aged 20 Years or Older, 2004, 2008, and 2016
Hence, the chatbot is an expert on sugar level, an assistant, who will welcome the user
(anyone) with the intention to advise its user on blood sugar level monitoring. It will start off
with an introduction, saying
its name (Mr. Bot Diabetes), explaining to the user what it can do, and inquire for a name
from its user, so that it can address user by name. Moving forward, the chatbot will find out if
the user want have concerns about sugar level or just want some information of sugar level
management. If the user indicates interest in talking about sugar level, the chatbot will find
out if its user already knows the reading (sugar level number) and the time when the
number was gotten. The time will be either before meal, during meal, 2 hours after meal, or
at bedtime. If the user knows the number and time, the chatbot will advise its user according
to the number of the reading and the time it was gotten. On the other hand, if the user does
not know the blood sugar reading, the chatbot will ask its user the symptoms noticed.
Different symptoms associated with different sugar level, low, high, or normal. However, the
chatbot will advise based on the signs and symptoms mentioned by its user. Similarly, if the
user declines interest in talking about sugar level, the chatbot will find out if user wants some
information on blood sugar monitoring. The flowchart below is the dialog flow diagram.
Figure 2: The Dialog Flow Diagram
Dialog Implementation:
Having completed the flowchart above, Watson Assistant service was used to build the
chatbot. The dialog implementation utilizes the user entities and 3 of the system entities,
intents, handlers, context variable and slots, the dialog nodes and flow. The purpose of the
chatbot is to chat with users and provide advice and/or information to them. The
developmental steps begin by creating the skill, using the dialog
skill template. The skill contains the training that will respond to the user intent. Provide the
name of the skill. In this case, the name of my skill is Mr. Bot Diabetes link: https://web-
chat.global.assistant.watson.cloud.ibm.com/preview.html?region=us-
south&integrationID=3781c303- 9c60-4a43-8c4e-
2e66894507d5&serviceInstanceID=d8e91774-4245-4873-91bc-e6a97c10c379 Then, followed
by the creation of the intents, entities, and the dialog nodes and child nodes.
An intent is a collection of user’s possible statement. This will help the assistant to easily
understand what the user has in mind. While on the other hand, entities are like keywords with
their synonyms. Within my skill, I created symptoms entity to collect information on the
sugar level signs and symptoms. The dialog nodes (or child nodes) are used to guide the
discussion. By default, assistant starts with “Welcome” and “Anything_Else” nodes. Different
nodes and child nodes are added based on the channels of the discussion. The higher-level
topics are treated at node level, while details are taken care of at the child node level. The
dialog uses intents, entities, and context variables to decide the interactions. The slots are used
when multiple entries are expected. Slots will receive user’s response and create context
variable to store it. Within a slot, assistant will have variety responses in case the user is not
responding as expected. Having said that, context variable is a placeholder within a slot.
Context variables are called in a dialog.
In the development of Mr. Bot, I created $name to hole a place for the name user will supply.
Dialog Scenarios:
The following scenarios will be discussed
User has concern about blood sugar level = YES, and knows the reading of
sugar level = YES:
In this dialog scenario, once the assistant is lunched, Mr. Bot will welcome its user,
explain to the user its mission, and find out user’s name, then wait for reply. For
example, “Hello, my name is Mr. Bot Diabetes. I will talk with you about blood
sugar levels. May I know your name?” or “Greetings, I am an expert on blood
sugar. I will chat with you on the topic. What is your name?” After the user
supplies a name for the chat, the assistant will address the user by name and asks to
know if the user has concern about blood sugar. If the user selects yes from the
options available, then assistant will ask to know if the user already knows the sugar
level. If yes is selected again, from the options, the assistant will prompt the user to
enter the number of the sugar level reading. At this time, the @Sys-number entity will
be used to check if number value is entered, and the number will be saved in the
$sugar_level_reading context variable. Assistant will move to find out when the
number was gotten e.g., before meal, during meal, after meal, 2 hours after meal, at
bedtime etc. These intents have their synonyms to accommodate different varieties of
answers for different users. When a valid blood sugar reading and the time it was
gotten are received, assistant will check through the eight conditions that were to be
met before offering its findings and recommendations. For example, a normal blood
sugar range before meal is between 80 and 130. So, if user’s input is withing 80 and
130, and the time is in the morning before meal, assistant response (advice) will be
“Your blood sugar level is NORMAL. Keep eating healthy and exercise more to
maintain a normal blood sugar level.” Other conditions will check for different
blood sugar levels and time to decide whether to categorize the level as “LOW” or
we
“HIGH”, with corresponding recommendations. Figure 3 below shows the Try-it
(testing) screen page.
Figure 3: Try-it Page for Concern = Yes and Know Blood Sugar Level = Yes
User has concern about blood sugar level = YES, and knows the reading of
sugar level = NO:
Similarly, if the user selects yes to the question, “Hi $name, do you have concerns
about blood sugar levels?”, but selects no to “So, $name, do you know your blood
sugar level (number)?”, the assistant will prompt the user a different question to find
out what symptoms the user has noticed. Again, different symptoms associated with
different sugar levels. With the symptoms the
user supplies, assistant will match it with the corresponding advice. See the figure
below for the Try-it screen page.
Figure 4: Try-it Page for Concern = Yes and Know Blood Sugar Level = No
User has concern about blood sugar level = YES, and knows the reading of
sugar level = EXIT:
While in this scenario, having asked about the sugar level reading, the user may
opt out of the conversation. The assistant will jump to goodbye node, thank the user
with response like,
Thanks $name for using this service. Have a nice day. Eat right and stay
healthy” and return to the main menu. The figure below shows the scenario in a Try-
it screen page.
Figure 5: Try-it Page for Concern = Yes and Know Blood Sugar Level = Exit
User has concern about blood sugar level = NO:
However, if user does not have concern about blood sugar, that is the user shows no
interest at the beginning of the dialog, assistant will want to know if the user is
interested in more information about diabetes and prompt the user with options to
select from “Information on Diabetes” or “Exit”. If the user chooses to exit, the
assistant will jump to goodbye node and appreciate the
user for using the services. But if user goes for information on diabetes, the assistant
will prompt the user CDC link to redirect the user to read for more information on
diabetes and jump to the main menu. See the Try-it screen page below.
Figure 6: Try-it Page for Concern = No
User has concern about blood sugar level = EXIT:
Finally, if the user gives name but decides to quit, the assistant will jump to goodbye
node to end the discussion. See the Try-it screen page below.
Figure 7: Try-it Page for Concern = Exit
Integration with Watson Discovery Service:
Watson Discovery services will serve as a repository. The purpose of the repository is to
house all the documents collected from different users. The Web Crawl connector was
used to build the repository. CDC website was provided to synchronize with my search
skill.
Figure 8: The Assistant Created
Figure 9: The Overview of the Assistant
After deployment, the preview was tested. The figure below shows the preview page.
Figure 10: The Preview Page
Conversation Data Analysis (2-days experiment):
The link was shared with 5 friends and 2 days conversation was captured. Total of 29
conversations were captured and analyzed. The figure below shows the dashboard and log of
the conversation.
Figure 11: The Dashboard of the Conversation
Figure 12: The Conversation Log
From the analysis, total active users are 29, between 4/4/2022 and 4/5/2022. See the figure
below. Based on the name provided to the chatbot, an average of 7 names were part of the
conversation. There are 111
messages which gives an average of 3.96 messages per conversation, and an average of 4
conversation per user.
Figure 13: The Analysis of the Conversations
The last part of the analysis page shows the top intents and entities used.
Figure 14: The Top Intents and Entities
Chatbot Enhancement:
Speech-to-Text, Text-to-Speech, Language Translator, and Tone Analyzer can be integrated
to in the assistant to enhance user experience. For a user who is blind, Speech-to-Text can
help such visual- impaired person to dialog with the assistant, thereby, giving opportunity to
anyone who cannot write for any reason. Also, if Speech-to-Text is integrated, there will be
need to bring in the Text-to-Speech. For the case of a visually impaired, reading assistant’s
greetings and instruction will pose as another challenge. Therefore, Text-to-Speech will be
necessary to come onboard. Since Mr. Bot was developed using English language,
Language Translator will be integrated to be able to serve other languages not English. It
will be a good thing to monitor and analyze the tone of users. Therefore, Tone Analyzer will
be good to integrate to the assistant. This will help to encourage users if the problem of
sugar level is taking a toll on the user.
Diabetes diagnoses is trending high within and outside the United States, and has cut
across all age groups and race, therefore, I would consider using all messaging platforms
available, to reach out to as many as possible.
Conclusion:
The experience worth the time and exercise. Mr. Bot Diabetes was successfully executed
different user’s intent and provide advice and recommendations accordingly. In fact, I did not
prepare my sister beforehand, and when she got recommendation from Mr. Bot, she became
worried and reached out to me. See the screenshot of my WhatsApp chat with my sister.
Figure 15: The WhatsApp Chat Between My Sister and I
It was that good. So, for different dialog scenarios when the user completes the conversation
with Mr. Bot, talking about blood sugar level and monitoring, the assistant will respond
with one of the following recommendations.
“Your blood sugar level is LOW. I recommend you taking 4oz of orange juice or any
regular cola drink”
“Your blood sugar level is NORMAL. Keep eating healthy and exercise more to maintain a
normal blood sugar level.”
“Your blood sugar level is HIGH. I recommend you talk to your doctor about how to keep
your blood sugar levels within the normal range. Consider using an over-the-counter
ketone test kit to check your urine for ketones and call your doctor if your ketones are
high. Quit eating or drinking any food that can affect blood sugar levels.”
“This number may be inaccurate due to the sugar content in the food since you check it
during meal. Best time to get an accurate reading will be 2 hours or more after meal or
before meal.”
However, the chatbot implementation comes with few challenges that I can classify as
personal. The development is more of software development that data analysis. Therefore,
experience in coding and most logic behind coding are required. Again, my instructor
already pointed out the number type. It will be perfect if one can program the assistant to
receive any number but do the necessary conversions internally. For example, inches to feet,
Celsius to Fahrenheit, as so on. Finally, Mr. Bot Diabetes has come to assist human being
with sugar level management and refer to the user to a live person, physicians. In fact, it
will save the user the cost for frequenting the doctor’s office just the get advice on blood
sugar monitoring.
Reference
Center for Disease Control and Prevention (CDC).
Retrieved from:
https://www.cdc.gov/diabetes/basics/diabetes.html
Mr. Bot image source: https://www.seekpng.com/png/full/96-966871_ai-new-diabetes-
technology- 2018.png
Students also viewed