Chatbots have been around for decades, but they’ve recently garnered more attention as they become better and used even more. When Facebook opened up their Messenger API in 2016, it led to hundreds of thousands of bots over the next two years. Early chatbots were (and many still are) quite generic and impersonal. Yet the option exists to create a relationship between the chatbot and the user, one that provides individualised, personal experiences.
Requirements for personal chatbots
Personal chatbots require certain elements to make them useful. Here’s a quick rundown of the major requirements for a truly personal chatbot. Other factors are involved, but these are the big ones that must be present for a chatbot to truly be personal.
- Identity Knowledge – To make a chatbot personal, it’s crucial for it to have knowledge of the person interacting with the software. A method for the chatbot to “know” who they are talking to is essential for authentication and making sure the chatbot is secure and doesn’t leak information to third parties unless explicitly given permission.
- Short Term Memory – Keeping a conversation alive (and natural) requires a chatbot to have a short-term memory that can be used to keep track of what has already been discussed in a conversation and avoid repeating itself.
- Long Term Memory – In addition to short term memory, a system for practical long term memory is also essential. A personal chatbot needs to get better over time. One way to do this is by having access to all interactions a person has with the chatbot over time. A persistent user profile allows the chatbot to more easily remember what a user favorably responds to over time and implement those preferences.
- Sense of Time – Additionally, a personal chatbot should have a sense of time. For example, if a user requests to have the same information every Monday afternoon, the chatbot should have an easy means for the user to schedule this or similar events. While this could be handled with old technology like a calendar, a chatbot being intelligent enough to recognize and replicate a pattern over time is an improvement.
Overall, customization and configuration is imperative for truly personal chatbots. At the same time, methods should be put into place to ensure the security of the user’s information. In general, personal chatbots are less of a technical problem and more of a methodological problem in that they need customization to be truly personal.
Personal chatbot development
Putting together the pieces to create a personal chatbot that works well for an individual, we can make a list of the fundamental requirements for developing a personal chatbot.
- Programming Language – The first question to answer is whether a standard (generic) programming language or something created to make chatbots should be used. Both methods have pros and cons, but in most cases, using a specialized programming language will result in a more powerful chatbot without having to recreate the wheel.
- Configurability – Another thing to keep in mind during chatbot development is making it easy to configure and personalize the chatbot. This must be done in a way that’s easy for end-users to make the chatbot their own via natural language adjustments – ie a person telling the chatbot what they expect from it.
- Chatbot Platforms – Numerous chatbot platforms exist currently, and many more will likely be created in the future. Before developing a personal chatbot, it’s a good idea to research all the various chatbot platforms before getting to work on building the bot.
- Headless Browser – Giving the chatbot the ability to browse the web and search for relevant information is another factor to consider. A “headless browser” that requests and retrieves information from the web without the need for a visual representation of the process is also important. This gives the chatbot a way to effectively answer a wide array of questions, including but not limited to when the next bus or train will be stopping or even what the weather will be like for the day.
- interpret natural language – Natural Language Processing is another requirement for chatbots. Basically, this phrase refers to the ability of chatbots to understand what a user wants even if they ask in different ways. For example, the chatbot should understand that both “What’s it like outside today?” and “Will I need an umbrella today?”
Challenges with personal chatbots
As evident from the information provided above, creating truly personal chatbots comes with several challenges that must be overcome. The main difficulty is ensuring that the personalization of the chatbot is easy for the end-user. By using advanced Natural Language Processing techniques, this is achievable by chatbot programmers. It’s important to keep things as simple as possible for the people who will be using the chatbot.
Another potential problem is concentrating on a textual rather than visual data exploration. While it might seem that conversing with the chatbot with natural language is easier, but this isn’t always the case. It can be tricky to convey large amounts of information with text while keeping the application easy to use. One way to help is by making use of simple questions and answers within the personal chatbot.
Oisin is a software engineer based in Galway, Ireland with a special interest in chatbots. He is the author of Chatbots: An Introduction And Easy Guide To Making Your Own.