Few things you need to consider while making your Chatbot using ChatScript.
ChatScript is a scripting language designed to accept user text input and generate a text response. It is a system for manipulating natural language.
Building Your First
What is ChatScript?
• ChatScript is a scripting language and
engine for responding to meaning.
• ChatScript is really all about determining
what a user says in natural language and
making an appropriate response.
Few things you need to
know before building your
What are your goals?
• What is your Chatbot supposed to accomplish?
• Is it entertainment or enlightenment?
• Is it an agent to provide answers about
something or from the world?
• Where is your bot going to reside, mobile app,
• Is it a stand-alone effort or is it going to
contribute toward a greater whole?
Who is your audience?
• Who is going to use your bot?
• According to your audience, build a character
• Include topics in which they are interested
• Avoid irrelevant topics
• Use precise topics
• Take special care of vocabulary and structure of
sentences as per your audience
Crafting a personality
• Think of a character
• Define a consistent personality
• Age, gender, attitude, likes and dislikes
• STRENTGHS and WEAKNESSES – It shouldn’t
be perfect in EVERYTHING
• Choose any personality profile and proceed
• First write proto script then convert it into
• Creative writing
• Include all the possible related keywords for
• Write a series of expected questions and
responses then convert it into rejoinders
• Testing – It will reveal new things that should be
added as responders and rejoinders
How to think about
Interactive Chat Topic
• Sharing of opinions - There must be interaction
between user and Chatbot
• Ask their opinions first then volunteer yours
• Prepare a lot of easily scripted rejoinders
• Don’t include much of yes or no questions
• Offering choice questions is better option
• Gambits – This forms the backbone of bot's
control over the flow of conversation
• Collection of interesting topics
Issues of length
• Is this mobile app or web app?
• Mobile will want really short answers (tweets)
due to limited screen space
• The web can be longer, but will your audience
want to read a lot at once?
• Too much material at once may stifle interactivity,
if your goal is a conversation
• If your goal is an info dump on something, then
size is less of an issue.
• People are less into reading – Try to keep all
output to 140 characters or less
• Personal stories
• Conversations often deflect and wander around
but stories don't
• It must be focused on its completion
• Users might ask during the story – have
responders for questions they might naturally
• Have an answer for “WHY”
• Issues one-liner reactions to things
• Movies, pets, diseases, celebrities, food, drink,
countries, art etc.
• If student is our target then courses, syllabus,
attendance, exams will be reactor topics
• Reactor topics have no depth, they have a
A special topic for holding responders is one that
has no keywords and is directly invoked by the
control script when normal topics fail to match. It is
basically just a grab bag of responders that have
no current topic home but are specific to the
• A quibble is a small argument or fight. As a verb,
it means to pick a mini-fight over something that
doesn't really matter
• It's very important to have these quibbles
because user's like to think they were heard
• Ignoring the user just makes them mad
• Have an extensive set of quibbles
• Avoid repetition for conversational bot
• Information bot can be repetitive
• Gambits should be random
• Emotion is an interesting problem because it's
extremely difficult to put text emotion into
prerecorded output text
• Control Avatar with gestures
• If Chatbot is insulted, avatar can be told to be
Your goal is to create the illusion that your chatbot
understands the user. This means trying to
minimize those awkward moments where your bot
says something completely unrelated to what the
user said and maximize the rewarding moments
when the bot responds completely appropriately.