When learning something new, I find that starting simple yet practical is great way to go. The new Sauce Boss sample skill does one thing – provide simple recipes – in a voice-first manner that is also multimodal. If you’re looking to learn more about the Alexa Presentation Language (APL) and multimodal skills, check out the Sauce Boss Sample Skill on GitHub.
Because Sauce Boss is an update to our venerable How To skill samples that you may have used to provide brief recipes and “how-to” skills, it’s useful for both new and experienced skill developers learning about multimodal design and APL. If you already have a skill based on the How To sample skill, then you can use the Sauce Boss sample to add multimodal features like images, lists, TouchWrappers, and speech synchronization.
Here’s what you’ll find when you check out the Sauce Boss sample skill:
- Written in Node.js, usable in an AWS Lambda function or as an Alexa-hosted skill
- Allows customers to ask for a specific recipe from any Alexa-enabled device
- Adaptive, scrollable menu available on display-enabled devices
- Touch wrapped menu allows for tactile interaction
- Multimodal item detail views highlight text as Alexa speaks
Getting Started with the Sauce Boss Sample Skill
To get started with this sample, you need an Alexa developer account (and an AWS account if you don’t create it as an Alexa-hosted skill), and the sample skill located on GitHub. Below you’ll find the instructions for setting up the skill:
- From the Alexa Developer Console create a new skill.
- Name the skill whatever you want, but we recommend Sauce Boss!
- Choose the language model you want to use, such as English (US), which corresponds to en-US. The skill is i18n-ready so you can use it in other locales.
- Choose the Custom interaction model.
- Choose Alexa Hosted.
- It may take a minute, but when your skill is ready, go to the JSON Editor section and replace all the contents with the interaction model from https://github.com/alexa-labs/skill-sample-nodejs-sauce-boss/models that matches the locale you chose in the previous step. Click Save Model.
- Click on Interfaces and enable Alexa Presentation Language. (Auto Delegation is also used, however it should already be enabled.)
- Save that change and build your model.
- Click on the Code tab and update the following files with the following contents:
- index.js from this https://github.com/alexa-labs/skill-sample-nodejs-sauce-boss/lambda/custom/index.js (Pro tip: click the Raw button to make it easier to copy)
- package.json from this https://github.com/alexa-labs/skill-sample-nodejs-sauce-boss /lambda/custom/package.json
- Create a folder named languages. (When prompted, the full folder path should be lambda/languages.)
- In the languages folder, create a file named en-US.js (assuming you picked en-US as your locale) and source the contents from https://github.com/alexa-labs/skill-sample-nodejs-sauce-boss/lambda/custom/languages.
- Create a folder named documents.
- In the documents folder, create these files with the noted content:
- launchRequest.json from https://github.com/alexa-labs/skill-sample-nodejs-sauce-boss/lambda/custom/documents/launchRequest.json
- recipeIntent.json from https://github.com/alexa-labs/skill-sample-nodejs-sauce-boss/lambda/custom/documents/recipeIntent.json
- helpIntent.json from https://github.com/alexa-labs/skill-sample-nodejs-sauce-boss/lambda/custom/documents/helpIntent.json
- Save and Deploy the function
- Click on the Test tab, enable the skill and check it out. Phrases you can try include:
- open sauce boss (or whatever invocation name you used)
- show me the recipe for tartar sauce
Customizing Sauce Boss
Once you get your Sauce Boss skill setup, you’ll want to customize it to be your own. The main areas you’ll need to update are the interaction model, the messages, the recipes, and the images.
- The skill using delegation, so you will need to update the prompts used by Alexa to elicit the slot value where the user specifies the sauce type. While you are there, review the slot values and sample utterances to align with your skill. This includes identifying any synonyms for your slot values.
- Next, you’ll need to check the messages provided to the users. This includes the welcome message, the help message and the like. They’re all grouped together my locale.
- You’ll want to update the “recipes,” of course. They’re in a key-recipe structure where the key value is the slot value the user says. This is the same structure used in the How To skill, so you should be able to directly import or copy/paste your data into Sauce Boss.
- Finally, you’ll need to update the images used by the skill in order to provide the supplemental visuals. Sauce Boss hosts images in an Amazon S3 bucket and doing the same could be your best option. Do remember that you have to have the rights to use the images, or else your skill won’t be published.
Once you’ve customized it, test it yourself then run a (quick) beta test to get user feedback. Ensure all of your skill details (description, icons, etc.) are up to date and submit it for certification.
Thanks for reading and we’re excited to see what you build! Tweet me @franklinlobb with a link to your skill and I’d be happy to check it out!
For more information about building multimodal skills with the Alexa Presentation Language, check out:
- Get Started with the Alexa Presentation Language
- See What Others Have Built with APL
- 10 Tips for Designing Alexa Skills with Visual Responses
- How to Design Visual Components for Voice-First Alexa Skills
- How to Design with the Alexa Presentation Language Components to Create New Voice-First Experiences in Your Alexa Skill
- New Alexa Skill Sample: Learn Multimodal Skill Design with Space Explorer
Source: Alexa Developer Blog