Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Investigate the basic use and logic of a chatbot script and make modifications to demonstrate initial understanding.
Before we get into the details of designing chatbot conversations, we want to practice how you will technically build them with code. Understand that machines and their programs are still rather "dumb" compared to humans and cannot interpret complex human ideas easily. So your challenge will be to connect a person's complex intentions to a rather simplistic computer program.
Let's get started with some chatbot code.
Go to the Getting Started and copy the template code for each file and ensure that it works.
Take a look at the bot.rive
file while you message with the chatbot. Notice how the script file controls how the bot responds to you.
Change the start
response, which introduces your chatbot to the user. Include a name for your chatbot. You can change it again later.
Change the *
response as well, where the bot responds to unknown user requests.
Add the following Rivescript lines below to respond to "hello" and "bye". Change the response as you like.
Demonstrate a working Chatbot.
Let's take our first dive into conversational interactions with a warm-up project that you will do individually. We will do some reading and research, as well as create an interaction script for a chatbot. This will provide a foundation for tackling your team project.
Develop a chatbot script that demonstrates several useful features and patterns in programming a conversation.
Any direct links to headings within the Rivescript documentation no longer work. Therefore, you will want to do a search for a keyword in the browser to find the content. We will update this page if we find a better way to link directly to the desired location in the Rivescript documentation.
Let's get familiar with the syntax of RiveScript and how it will provide the logic of your chatbot. For each item below carefully look at the documentation for RiveScript to understand the options available to you as you determine what is possible with your chatbot.
Read first section of The Code, Explained in the Rivescript documentation. Pay close attention to the "Important Note" in the reading that describes the importance of using lowercase with triggers.
Create four random replies to "hello" for your chatbot.
Define a single trigger (a trigger is the user input that starts with a "+" in the script) that will respond to these two user questions - "What do you do?" or "What can you do?" with a bot answer that you choose. For example, you could respond to the user with "I do very little at the moment." Hint: use the "alternatives and optionals" in RiveScript.
Use a redirection to your "hello" trigger when the user inputs "Hey". Basically, make your bot respond the same way to hello or hey.
Create a reply to "My name is Sue" (or any name). In your chatbot response, use the person's name---like, "Nice to meet you Sue, my name is ChattyBot." Hint: Use an open-ended trigger with a wildcard.
Have your bot kick-off the conversation with a question when it starts so the visitor knows how to continue the conversation. Also, add the needed script to listen for a response to that question and respond. Take a look at this example on short discussions.
Finally, choose two other features of RiveScript syntax to implement in your bot.
Have your chatbot working with the features described above and be prepared to demonstrate and explain how it works.
Implement changes to your chatbot based on the previous evaluation and reflect on the key principles of chatbot design.
1. Incorporate Improvements in your Chatbot Based on your feedback in the previous activity, update your chatbot script and test it to ensure it works as expected.
2. Reflect on Key Learning Now that you have completed your first basic chatbot, reflect on the key aspects of building a successful chatbot. Create a document and write what you have learned in the following three areas of chatbot design, as if you were advising people on how to develop their own chatbot.
Chatbot Purpose: What are important ideas to keep in mind when developing the chatbot's purpose and the problem to be solved?
Chatbot Personality: What are key things to consider when determining a chatbot personality and why are they important? Provide some example dialogue between the user and chatbot to help explain your ideas.
Chatbot Scripting and Code: What did you find challenging, but very important, when creating the actual script/code for the chatbot? How do you think these challenges will affect a larger chatbot project that will have more complexity and features?
Submit your document (about one page in length). Make your document easy to follow and ensure the three items above are clearly covered.
Evaluate your chatbot with three participants.
Review the questions in the evaluation template and adjust the language if needed.
Record feedback from at least 3 classmates.
Reflect on the the responses and consider how you could incorporate changes to your bot.
Submit your feedback document.
Design and develop a basic chatbot that solves a particular problem.
Ok, let's design a bot that actually does something useful. Each of you will define a simple problem for your bot to solve for somebody, then map out how your bot will function.
Define the Problem. Define what you want your bot to achieve for people. Keep it simple, but specific. For example, provide some background information about the August 2017 solar eclipse and link them to information about specific times to view the eclipse from their location.
Mini-Personas for the users and bot. Describe the people you want to serve with your bot. Also, describe the personality of your bot. Will it be formal or informal? Fun or serious? Etc.
Create a Conversation Flow. Use this linked image (from this article) as an example. Here is another example. Remember, keep the ultimate goal of your bot very simple, but think about the potential paths a user may take to get there.
Edit Your Bot Script to Match. Finally edit your script (RiveScript) to match your bot flow and test it in the message app.
Use this template for your Design Document in steps 1 - 3.
Submit your design document in class
A Checklist for Chatbot Usability
Is the name compatible with the purpose of the bot?
Does the initial chatbot message provide an indication of what the user should do next?
Does the bot recover well if the user get's lost in the conversation or provides unusable information?
Are the triggers (what the user can say) flexible enough to handle the different ways users may say something.
Is it generally helpful? Does it provide a sense of closure to the user even if the user thought your bot would provide something different?
Read about design aspects of conversational interactions with bots and synthesize your understanding in writing and discussion.
Read Why Bots are the next Big Bang in UX by Sophie Riwaters
What advantages/disadvantages do bots have over mobile apps?
What do you think the best uses of bots are or will be?
Read How can you create a simple working Chatbot in 2 hours from scratch by Sophie Riwaters
How does the process of designing an app compare to the process of designing a bot?
Read A Guide to Developing Bot Personalities by Jess Thoms
Why is a bot personality important?
What factors influence the design of a bot personality?
Document your answers to the questions above for each reading and be prepared to discuss in class.