 Yeah. First, I'm Surya Abewalder. This is my Twitter handle, GitHub, and LinkedIn username. Sourav. Yeah. All right. Good afternoon, everyone. So I am Sourav Jain. I am a CS undergrad at Republic of India. So I've been contributing to Sushi AI since March 17. So I was a part of GSOC's Google Summercode 17 in the Sushi AI team. I've been also part of GCI, Mentor, and Koji Mentor. So these are my handles. You see, we need to connect them. So Sushi AI is an artificial intelligence platform. It stands for Social Universe Superintelligence. So it is founded by Michael Christian. It is over here. The real power of Sushi is its open source. The whole source code is available on GitHub, Apple Street. So it's not just a single person who is making it. It's the whole community contributing to it. So that's what she can do. So she can do a lot of things. So if you are lost, it can search location for you. Just say, where am I? You can search for locations like where is London? It will give you an open suite map with a link. It can search for the towns. You will get the required information. And if you are feeling hungry, so Sushi won't food for you. But yeah, surely it will give you the recipe how to cook that delicious food. And if you are feeling lazy, you can always use speech-to-speech and speech-to-text feature of Sushi AI. And you can chat with Sushi using voice commands. So it is available on many platforms like Android, iOS devices, on Google Assistant, or browser. You can access on web browser. It is chat.sushi.ai on desktop and many messaging services like GitHub, Line, and Slack. The AI server. So Sushi AI server, it holds the intelligence and personality of Sushi AI. It follows an APS-centric approach where Sushi AI server act as the server which communicates through the web and Android clients using APIs. This is the workflow. The user first gives the query through one of the clients. It acts as a chat interface. It may be Android, iOS, or web chat. So it passes to the server using APIs where it actually computes which skill needs to be mapped. The skills are developed by the community, the learning part of Sushi. The skill CMS, it's available on skill.sushi.ai. It's a content management system for Sushi. It's an editor where anyone can easily write or edit the skills. So we can create skills. And the language of Sushi is very easy. The storage part of Sushi is based on GitHub.plashSushiSkillData. When the content of the skills gets in to the Sushi server, it computes the rules based on the patterns. If it is matched, the condition is set and the answer is returned back as a JSON response. Here is an example. The query was, what is the temperature in Singapore? It takes account of the client ID which is used for authentication and the query dates. Based on that, it formats the query and the answer is returned. It's not just the answer. It can be of various actions like of map, RSS, web search, query, etc. And the skill refers to which skill it has been matched. Sushi also stores all the settings and personalizations of the users, which is for the accounting purposes. So Sushi writes on the Sushi skills which are stored in skill data repository following this hierarchy where we have models which are general, tutorial, or personas. There are many groups like business, games, trivia, other groups. And then languages, it is available on all the languages. And then skills are the intents which are clubbed together, which belongs to the scene. These are also stored in Sushi skill data repository. And creating skills, it is very easy to create the skills. For example, you can even add the JavaScript code to it. This is one of the examples where the skill computes the power of a number. So the tutorial is available on Sushi skill CMS. And if you want to analyze where the previous answer came from, you can always analyze. So what Sushi will do, it will return you the link of previous answer. So for example, the previous answer was defined in the DAX skill and the data repository link of that. So next, let's move ahead with the demo. Okay. In this demonstration, I will be talking about how to make our own personal assistant by just changing few variables. Okay. Here we have Sushi web chat applications repo. If you like to contribute, you can fork it from GitHub. And I have my own copy in my machine. I will open it from Visual Studio Code. And I am not going to do bigger changes. I am just going to change my logo. It's a React application which was developed within last Google Summer of Code period. If you need to change colors of this application, you can simply do it in here, message section. I will first show you the application. You can use web chat application from this URL chat.sushi.ai. I will run my application. It will run on port 3000. I will run sample codes. You can see I have changed my logo. I will run sample codes. I will say hi first. These are a few sample queries. If you like to use text to speech and speech to text features, you just need to click this button. Hi. That's how it works. You can use skill CMS from this URL, skill.sushi.ai. These are the skills we have made within last Google Summer of Code period and community made this. And I will show one skill. This is one skill I made. This skill is for fetch book names. If you need to search for a book through the chat application, those commands go through this skill. If you need to integrate new external API, you can easily click on this. You can add the category, language and name for your skill. You can easily write new skills here. I will show you how to make a new skill. I am going to show you how we can change our own hot word because now my chat application is lulu. Let's say I am going to hotword. This keyword checks what is our hotword. Now my hotword is nothing. I am going to change my hotword. Now it changes to lulu. When I say lulu, it says hi for me. I will demonstrate how we handle this from our skill CMS. This is the skill that we made for that. In this part, hotword star. Hotword star means this star represents any variant that can come after this hotword keyword. Then after we take that value and store in this underscore hotword variable. This underscore is super important because this underscore is for store these values in Sushi's mind. Then after we say something with hotword, it compares whether it is equal to our hotword. That we stored previously. Then after it says hi, how can I help? That is how we can change our own hotword for our own personal assistant. Let's move to our presentation. Future developments. We have to integrate learning techniques and personalize themes. If you are a UI guy, teams and personalize your personal assistant. We need to integrate more skills. We need to integrate more external APIs. After that we need to make skills. We are researching to make a skill that can make another skill. As a next phase, we are hoping to create skills from chat and contributions. If you like to contribute Sushi projects, it's real great. If you can make a feature, it's real cool. We really appreciate that if you can do something like that and bug fixes, we really welcome. Documentations are somewhat outdated. You can contribute to Sushi AI projects and GSOC experience. This is our Sushi team that we worked with last GSOC period. These guys were working on iOS project and Android, web chat application and server. They are also a hardware project for Sushi. Programmers' life was usually eat, go to sleep. Within GSOC period, for Cessia, programs were a little bit different. We had to send scrams before 10 a.m. It's a rule. Otherwise, you will get an email from your mentors. We made a lot of contributions within this period because we have to integrate one code commit for every scram. That made this portfolio. Thank you. It depends if you like to contribute Sushi server. The whole source code is available on github.com. The server is built on Java. If you want to contribute to the server part, you need a basic understanding of Java, the object-oriented programming. Apart from contributing to Sushi is very easy. We can all contribute through making skills. The skills are very easy to read and write. The skill tutorial is there. If you have no programming experience, even then you can make skills very easily. You can host your own server, train Sushi in your way and customize and personalize it for your own assistant. For creating a skill, it's very easy. Sushi replies with a JSON which gets parsed here. This one is the editor. We can create skills here. This one is the editor. It requires some of the metadata like who is the name, author, URL provider and the image if you want. Then just start writing the skills. This one is the Sushi skill development tutorial. If you follow this, this is very easy. It has some required skill format and then the schema which I talked about. This is the tutorial level zero. From the beginning, it will help you to create the skills and then the level goes on. For example, the very simple hack is that roses are red. If you write the skills, we call it a dream which can be tested on Etherbad. If you type roses are red, then Sushi will reply back, Sushi is a hack. This way, you can create many skills and the level goes on. Later, you can also query for tables and even embed JavaScript code. Like Java, it is built on Java. Currently, the learning part of Sushi is actually from the skills. Whatever skills you create, they are storing Sushi skill data repository. It takes all the learning from here. Whatever all the skills are available, you can train on that. Do you want to import the custom corpus or corpus? First, you need to format it based on the Sushi skill language. First, the import from Microsoft and other things, all the conversation dialogues first need to be in the format of Sushi skill. It is pretty easy. Maybe some script can work in between to modulate it to the Sushi skill format. If you need to know any more about Sushi, all the things are available in the InforCesia blog. You can refer all little things are described here. Thank you.