Interview About ChatBot Development with a Dedicated Full Stack Developer
Artificial intelligence is something we are used to seeing in movies about the future but it has changed all our lives already. Did you ever have a chat with a machine (chatbot)? Well, in any case, chatbots are very popular and we know why exactly. Today, we have a little talk and a session of QAs with our dedicated full stack developer Yurii, who works on a “Zenchef” projects and builds a chatbot for a restaurant.
The Interview with a ChatBot Developer Yurii
What are the most popular companies using chatbots already and why it’s such a HYIP?
Top brands in IT industry, a set of financial leaders already using chatbots for customers support and automation of routine processes.
Microsoft, NASA, Wall Street Journal, CNN, Hubspot, Skyscanner and a lot of others are on this list.
According to Fortune, banks, other financial institutions and healthcare providers, in particular, will benefit from the use of chatbots, which are getting smarter thanks to advances in artificial intelligence, according to U.K.-based Juniper Research. Juniper forecasts that this technology could save businesses $8 billion annually worldwide by 2022, up from $20 million this year.
Many famous persons have their own bots: ’50 Cent’ and Justin Bieber have bots, so do Obama and Elon Musk. Even Pope Francis has a pretty funny Facebook Messenger bot. Also, we became witnesses of specialized solutions like Marriott International’s chatbot designed for purposes of hotel business, Woebot chatbot that is trained in cognitive-behavioral therapy (CBT), one of the most widely known methods of treating depression.
Knowing that you are a full stack developer, what languages and technologies are essential in building a chatbot? Does a developer should be indeed hands-on in backend and frontend tasks?
Developing chatbots is based on backend technologies and hard analytical skills. The most popular languages used for development are Python, NodeJS, Java and C#. For creating smart bots, able to answer arbitrary questions, you should be advanced in NLU (Natural Language Understanding), machine learning and AI (Artificial Intelligence). Google Cloud Natural Language API (Application Programming Interface) from Google may become a great playground for a better understanding of NLU and chatbot nature.
Have you already done some interesting integrations into your chatbot?
Yea, we have several important integrations with the chatbot. The first one was to implement Translate API from Google to make the bot be able to understand languages other than English. Currently, it supports French and in near future, we plan to add support of the Spanish.
The Second important integration is integration with messaging channel API (FB/Slack) to receive more info about a customer. His name, gender, location, etc. It makes the bot more friendly in communication. In the future, it will allow to personalize offers for customers using visits history, make reminders and collect reviews about the restaurant.
Tell us how your chatbot works, what are the main tasks it solves?
The project I am currently developing has two big parts: first, the first part is informational. Bot provides information about the restaurant, its location, contacts, menu. Basically this list could be extended according to the client’s requirements. And the second part is the system of online reservation. No need to call anyone, you just go step by step through prompts and input data required to book a table. That’s it!
In your opinion, would chatbots replace mobile apps in the future?
In my opinion, AI-powered bots that work with voice and texts may become commonly used in the everyday activity of all humanity. In several years, AI would become so regular thing as 3G internet and 3D printing are today. They will become personalized assistants for major part of routine tasks, like ordering goods and food, paying bills, looking for a place for your vocation, etc. All we need is to learn the way of effective communication with bots and make right requests. Like the way, we formulate a search query on Google these days. Communicating with chatbots in closest future will become more human-like, so you will be able to ask a bot to make something and it will do it for you if it’s possible. Otherwise, using mobile apps is enforced with learning app UI, its features, behavior and constraints. But the user needs to make something done, and if the bot will give more friendly experience, mobile apps may lose that battle and become past.
What are the challenges of chatbot implementation?
When you are developing a bot, you need to be prepared for everything.
At the very beginning of the conversation, we do not know the language of the visitor. In solutions for NLU, the main language was English and it still is.
Therefore, the bot is set up and operates well in English. But what happens if someone is talking to him in the language that is unknown for the bot? In most cases, it simply does not understand what is being said and ends the conversation (the so-called give-up phrase).
We were shocked when we discovered that the promising and very convenient, in many senses, service Amazon Lex (on the basis of which we made our decision), does not understand other languages except English. And although a number of languages are in the plans of Amazon, waiting was not tempting for us. Fortunately, other services came to help. Let’s talk about them:
Google Translate API
This was the first spontaneous decision. The advantages are obvious – the bot can determine the language, translates in the process, in many cases, even the context is taken into account. For a specific location, we could set the language we wanted (for example French) and forcefully translate the text from the desired language.
A layer was created in the communication between FB Messenger and Lex, in which the text of the message was corrected. With this step, the common interlanguage barrier was destroyed. But what about typos and unfamiliar words?
Various Spelling APIs (for example Bing Spell Check API)
They are designed to help in the definition of typos and even try to automatically correct them. Unfortunately, the quality of the fixes is not sufficient. In most cases, words are taken out of the context and don’t make sense. Therefore, we can consider another approach, the cumulative base in which incorrectly written phrases were put in correspondence with their correct values in English. This work is still going, so it’s too early to talk about the results. But, at this stage, it should be enough to work with non-English-speaking users of the bot. At least until the full appearance of the necessary languages in the Lex service.
Differences in date/time/number formats
For example, Amazon Lex is a typical American :)
It loves ‘7 pm’ instead of ’19:00′
‘1,000.00’ instead of the European ‘1000,00’
‘Month-Day-Year’ instead of ‘Day-Month-Year’
You should consider these features and determine and transform data in the process for better quality of their recognition.
Non-standard situations with multiple API requests
To create a flexible bot, it is important to “feed” it with fresh data from the API. During the implementation, it became necessary to make another request by adding data from another API to the database received on the first request. We were waiting for an unpleasant surprise: the second request was made, and the void returned while the API fixed the successful data delivery. What was surprising, is that the data somehow magically came on with the next request to the bot, incomprehensibly wedging into the process.
We had to rewrite both the bot and part of the API to provide a linear API request (one request at one request), ensuring the stable operation of the solution.
Save Your Time and Money and Build Your Own ChatBot
Well, now we know what is a chatbot and why this future technology is so promising. After all, who wants to spend the precious time when you can have a “talking bot” doing all the work and saving money for your business or simply for you. After all, people are tend to use messengers, like Facebook Messenger, very often and you can have a chatbot that will let them use your services right from there. Sounds nice?