 Okay, so I'm going to talk about Susie AI webbots. So all of you must be familiar with chatbots So let's start with an introduction of myself. So my name is the Ganshu and Singh. Okay. I'm a full-stack web developer I have worked in front-end web developing using ReactJS and in back-end web developing using NodeJS and PHP Okay I'm also an IS developer and I was student developer at Google Summer of Code 2018 with Fosatia Okay, so and I'm And Jack is basically the computer science club of my college. I am a cyber security sub-coordinator in that I'm pursuing computer science and engineering at IIT Bhatna in India This is my email my website my github and my Twitter in case you want to contact me. So let's start So we're gonna start with discussing what is a chatbots because that needs to be clear So according to Oxford it says that a chatbot is a computer program Designed to simulate conversation with human users, especially over the internet So there are two special keywords over here first is it is designed to simulate conversation with human users Okay, so basically chatbot is a program with which you can talk this is basically what it means and especially over the internet because Like if it if you're talking with it offline, then it's a robot. It's not a chatbot So chatting is done online. So that is why over the internet now Most of you must have seen Facebook bots right Facebook bots are kick bots or Twitter bots now How do that those both work they work using an API's so that that is what I've written here So let's let's talk about love. Now. What does that API thing work? So you have your Bot and what happens like if you say how are you to do that bot? You ask the question that question goes to the servers of the service Let's say the bot is on Facebook so it goes to the servers of Facebook and then that Responses first for the for your query and then it's it sent back to you. So all of this is done using API's the request and the response So with Facebook the most famous type of bots are the singers So like let's say I'm a singer. I have my songs then I can create a chatbot Which the users will use to listen to my songs They can say that I want to hear the latest songs of your that you released in 2019 so that's what they can do also games games Game chatbot can also be created using Facebook API. So with that what happens is that it their role-playing game like a Situation will be given you'll make a decision in the next situation. So all of this is done using chatbots You can also use kick API to create kick chatbots and twitch twitches and online video streaming gaming platform Okay, let's move on. Okay. So now types of chatbots. They are basically three types of chatbots So the first one is a support bot support bot is built to master single domain So support what as the name suggests it is there to provide you support So if I'm providing you support, you don't need support for everything right? You need support for some specific thing like if the chatbot is on my website on my website So you need support for that website So the chatbot the chatbot should basically know everything about that website. So that is it It should be master of a single domain example knowledge about a company Second thing it needs to have a personality and context awareness Now this basically means that the way in which the chatbot talks or means the chatbot replies Needs to be similar to the way that the that the company means let's say that the company is really professional It's a very big company so the chatbot cannot talk in a very frank way It's me it needs to be professional That is what it means. The third thing is it should be able to answer wide range of FAQ type question So if I'm going to if I'm talking to a support chatbot, it means that I want It I want help with something so I'm either confused or I'm really frustrated So that is what this is for so I will ask really difficult or really weird question in a really weird way So it should be able to answer FAQs of a wide range. Okay And the final thing is yeah, this is the final thing is really important because I have given two examples First is I want to sell XYZ. How do I add my account number and the second query? I sold XYZ two days ago and I cannot see money in my account So there are two keywords here sell and sold chatbot should be able to differentiate between these two keyboard That is really important so that it can know best which type of response to show to which type of query So this is the first type of chatbot. The second is skills chatbot. This is completely different form support chatbot So skills chatbots are basically they're master at some particular skills So they don't need to be like a very broader case like the support chatbot They just need like it says perform specific tasks on specific commands. So self-explanatory Second is speech functionality is preferred by the users. Okay. So the examples makes makes it clear It says turn off the lights of my bedroom. I don't necessarily want to type this to a chatbot So that's why a speech is usually preferred in this one and it needs the hot word to start listening If there is a speech functionality, it means that I want the chatbot to start listening at something at some word that I say Like the Apple uses a Siri. So that is a hot word Assistant chatbot. So these are the these come Somewhere in the middle between the skills chatbot and the support chatbot. They provide both type of things So Apple Siri Google Home Amazon Alexa Cortana all of these are assistant chatbots Okay, so these were the three kinds of chatbots moving on Now before we add start chatbots to our website Something needs to be clear that why is there a need for the for this? Okay So I found this fact on the internet that by 2020 over 85% of consumer interactions will be handled without a human It's already 2019 and this fact was around four years old. So they're pretty close to that now Okay, so second thing is simultaneous processing of multiple requests from users Let's say that I have a chatbot over the web and at a particular time 50,000 customers are there on my website which needs some kind of help So if I want to provide help to all of them and I'm and I'm thinking about providing help using a chat window So I would so for that I need 50,000 People in my call center who would be there on the computer and they will help all the customers So that is a lot of investment I can easily escape all of that using a chatbot because it can simultaneously Handle request from all those users. Okay, and the third point is also that only remove the need for humans to live chat with the users Finally it provides a better experience than FAQ and contact from FAQ and contact from are usually boring We don't read everything in detail. We just skipped or just see the key words A much more interesting thing is to talk with the chatbot. So they provide assistance Quickly and efficiently. Okay, the chatbot can be programmed to be entertaining Okay, FAQs can't be programmed to be entertaining but chatbots can be they can be small jogs around They can be small jogs with the answers. Okay Third thing is they gave users to they give users talk to it They gives they give us or give users chance to talk without being judged So this is something that most of the people who are who feel complex in in talking to phone on talking on phone. They This is what they face like they would think that The person I'm talking to you will think that I am not like let's say I'm on a website I'm not able to use that website and if I contact a person and I tell him that I'm not able to use His website he would probably think that he's stupid. He cannot use his website But chatbot will not think that so this is one thing and chatbot sparks curiosity of people. They'd love to explore its ability. So important thing Finally, let's move to Susie a now that the basic things are covered So the session before me was also in Susie as I think that most of you now already know what Susie a is all About it's a personal assistant and open source personal assistant. Okay, so it has a lot of Functions that is this music playback making to do list setting the arm staining Podcasts playing audio books, etc. It also provide there in traffic information and other information all of this information is provided using APIs Okay Now so I built this Susie a web bot during my GSOC period So when the that time started we didn't have this chat box on the Susie So we had this idea that they want chatbots and we want them that the chatbot should use Susie as the Person who will reply to the user queries. So we need some idea like how do we start with this like how Susie Works is basically like there are skills. Okay, so if I have if I have a query So the response for that query will be written in the skill So the response is fetched from the skill and then it is displayed to the user. This is how basically Susie works Okay, so and all the skills are public So I needed some way for those skills to be private because I think already this way all the skills are public So you can see all the skill like if if if the response for hi is hello I'm Susie so everyone will be able to know that response for hi is hello I'm Susie, but let's say that I am the owner of a company and I want the Reply it to hi to be hello how you're doing welcome to my website I want this response and I don't want anyone else to know about it because it is of my own chatbot So we need that type of thing that the skills should be private. That was our first main challenge Okay, so Susie replies to user query on the basis of Susie skills That's a just what I told a skill defines how a particular query or a type of query should be answered Okay, so I said a particular query because you can just Type in the query you can just hard-code the responses for the query and also type of query because you can also Do API calls with the queries whatever the queries of the users are you can do API call like If they are whether if you're trying to fetch weather information then we cannot hard-code weather information So it will be using an API call for chatbot We need these three things a skill to define how user query should be an answer So there would be a skill which will define the user queries Which would define the responses to the user queries and the skill should be private just like I said I don't want the other people to know how my chatbots are How my chatbots are functioning and the final thing is that it should apply only to this particular chatbot Okay, so this is also really important currently if there is any skill like if there is any skill on Susie That skill is applied to the whole city like if I add a new skill It will be applied to the whole Susie platform like on the web client the Android the iOS It will be applied everywhere But I don't want that with my chatbot because if there is a skill from my own chatbot Then it should be applied to only my own chatbot not the rest of the Susie so that will also mean challenge and Final point we cannot do this with the previous implementation. So we needed something here. So that new thing was Private skills. So this is a table that basically shows the difference between private skills and public public skills So public skills it applies to Susie Just like I said public skills applied to all of applies to all of the Susie and the private skill They own that only replies that only applies to your particular chatbot. It doesn't apply to all of the Susie Okay, second thing is that public skill can be viewed or editing edited by anyone But that is not the case with private skill only the owner of the chatbot or the creator of the chatbot can edit or delete those private skills final thing public skills contain responses of user queries Public skill contains responses of user query, but that is not but private skill contains way more than that In case of public skill, we just we just needed the responses for user queries We don't need anything else because all the theme setting or all the other things They are all already hard-coded or they're already in the settings of the web client or the Android client But in the case of chatbots, we needed Way more settings like we needed the theme of the chatbot. Let's say that I want my chatbot to be green I don't want it to be plain white. So where should I store that green color? I need to store that green color somewhere, right? So that is in the skill only and also let's say that I want my chatbot to Use only the skills that I created. I don't want it to use the rest of the Susie skills How do I save that setting? Where do I save that setting? That is also done in the private skill Okay, so now that the private skills is now that this is the private skill that it will apply to a particular chatbot Only the bot creator can view at it and finally there are a lot of settings So this is private skill and this is the chatbot. The private skill is basically the chatbot So now the concept was ready. Now we need to create it. So let me show you what we created okay, so This is a video that I Screencasted this during the final evaluation of my GSOC period. I will just show it to you Okay, so this is the main page of skills Susie These are all the public skills that are displayed here. These are the skill categories now, let's Move forward and okay, so if we click on this But on the right-hand side, you see all this option and you see the option of bot builder So I created this bot builder which is used to create chatbots. Okay So if we go to bot builders, you see this screen in this screen You either you have an option to either choose your own template You choose the pre-coded template the template already has some basic functionality some basic queries and responses written in it And let or you can also create your chatbot from scratch. So let's say that you want to create your chatbot from scratch So these are the templates. These are the These are the boards that are already saved These are the boards that are already saved and this button you used to create new chat chatbots This is a pre Okay, so I have this bot that a name of the bot is Jim website bot Let's say that I want to edit this bot so I can simply just click on this bot and the Skill this is the skill code skill code of the bot so the skill code will open I can just edit it and then edit it and then save it This is the preview of the chatbot like I said now that there are there are theme setting of the chatbot So in this I have a wallpaper. I have a wallpaper. So where should I save this wallpaper? Where should I save the URL of the wallpaper? So that is done in the skill in the private skill Okay, so the the last option that you see is draft. So draft is basically Like let's say that you don't want to deploy your chatbot. You just want to leave it in the midway So just save it as a draft and continue later on Currently, I don't have any draft. So nothing is displayed over there Okay, you can also delete a chatbot. That's a delete button. You click on that and the chatbot will be deleted You