Building an Alexa-based skill means having everything you need to model, code, test, and publish your skill in one web-based interface. In this video, explore the tools available for these tasks.
- [Instructor] Welcome to the Alexa Developer Console. This web interface is going to be your home for most of this course so we better take a look around and get to know the place. Let's start by taking a look at the toolbar. You'll notice here on the left, a link back to your skills, that's the main dashboard where we just left. We've got the name of the skill, not clickable and then six different tabs. We'll start here in the Build tab. The rest of this screen is divided into a left-hand toolbar in the main content area. At the beginning the main area is populated with developer resources. You see the getting started video and external links to resources. There's also the developer checklist. A lot of these are green already because of how many things come pre-provisioned with an Alexa-hosted skill. Moving on, here on the left-hand side you see this section Interaction Model, which is expanded. This is a place we're going to spend a lot of time. We'll be creating custom intents, defining sample utterances, declaring slots and creating custom slot types, which are data types for the values that you're going to ask for the user. This is also the place where we can configure Alexa's automatic dialogue delegation and set the invocation name. As you can see the invocation name Pizza Dog was pre-filled based on the skill name. Down at the bottom of the Interaction Model section there's something called JSON Editor. All these things, the intents, the slots, the slot types can be built here in the graphical user interface. But as we do it's making changes to code on the backend and if you click the JSON Editor you can see the code representation of our interaction model. If you take a look at the exercise files associated with this course you'll see that every step has a file called model.JSON. If you need to catch up at any point, simply copy the contents of model.JSON into this section then click build model and you'll be back up to speed. The interfaces section is for when you want to be something like an audio or video player which is outside the scope of this course. The in point section is worth looking at. Prior to Alexa-hosted skills you will need to deploy your skill service as and external API, possibly using AWS Lambda or your own infrastructure. With Alexa-hosted skills you can take a look in here but be glad because you don't have to touch it at all. Intent history, this section won't be useful during development. When your skills' live this section will collect data on how user utterances are resolved to your intents. A valuable data set for improving the quality of your skills' responses. Annotation sets allow you to set up some automated testing for your interaction model. Each line in an annotation set is an utterance and an expectation of how it ought to be mapped to slots and intents then you can run them in mass later. Display, even the most basic Alexa skills have some visual component. The card that displays in the Alexa mobile app or website at Alexa.amazon.com. For this course we'll leave these options at their defaults so we can close this tab. In skill products, monetizing your skill is outside of the scope of this course but if you were looking to upsell features to your skill users his would be the place to configure those purchasable items. Similarly we won't demo account linking but if you were going to connect to an external service using oauth like Spotify for instance, account linking would be the screen to do it on. Finally permissions. You can ask the user for permission to use details associated with their Alexa account, such as the owner's address. This is the screen where you must explicitly toggle any data you wish to ask for. This will cause the Alexa app to prompt the user for approval upon enabling the skill. That's it for the Build tab but before I click the Code tab I want to recommend something. Right-click on Code and open this tab in a new browser tab. Do the same with the test tab. We'll be using all three frequently and it helps to avoid unnecessary reloads by having them all open. Click that second browser tab and we'll be on the code section. So here you have the Code Editor which includes your files. You see we have an index.JS, a package.JSON and util.js file. We'll spend most of the time in the index.js file but also dip into package.JSON a few times. If you're familiar with Node.Js you know this is the place where we can add dependency packages to our code. Down here on the bottom left we have some links to some AWS resources. As I mentioned, behind the scenes of this Alexa-hosted skill are some AWS resources that are used to run things. One of the links here is to Cloud Watch where our logs will go. If you click it, it opens in a new tab. I'll go ahead and close that and we'll see it more later. Similarly we have a link to the S3 bucket where we will store any session data or media files that will play. Up here in the top we have three buttons, save, deploy and promote to live. You'll be hitting the save button frequently. Behind the scenes this issues a GIT command to a code commit repository which hosts your Node.js code. Deploy will actually deploy your skill service in a mode that can be used for testing in your browser on the test tab or on your own personal device. Promote is only available once you're live in the skill store but the upshot is you can actually update your skill code without needing to rerelease or re-certify your skill. After all, the traditional model for skills is that you'd host your own skill service, Amazon doesn't need to be involved in that part. Let's go to the next browser tab which is the test tab. The test tab let's us type or speak to a simulation of our skill, no device needed. The left-hand side will show our dialogue and the right will show the JSON messages going in and out of the skill service. This is really valuable for debugging and seeing how Alexa interprets speech. We'll get to the remaining tabs when it's time to submit for publication. For now, in order to see the build, code and test tabs in action let's take a look at the hello world of Alexa skills works.
- Designing effective voice interactions
- Designing an interaction model
- Building voice interactions
- Building an interaction model
- Alexa response functions
- Skills software development kit (SDK)
- Mapping values