Brown Bag - Developing Alexa Skills
evgeny goldin@
September 13, 2017
Alexa Skill - When all you need is a
Alexa Skill - When all you need is a
What is Alexa Skill?
Alexa Skill - When all you need is a
Alexa Skill - When all you need is a
Invoking a skill:
● Alexa, ask / tell <Skill Name> <Utterance>
○ <Utterance>
○ ..
● Alexa, open <Skill Name>
○ <Utterance>
○ ..
● Help
● Cancel / Stop
Alexa Skill - When all you need is a
Where is us-east-1?
Alexa Skill - When all you need is a
Phases:
● Development
● Testing
● Versioning - arn:aws:lambda:..:WhereIs:1
● Certification
● Monitoring
● Alarming
Alexa Skill - When all you need is a
Testing:
● Skill Testing
Alexa Skill - When all you need is a
Testing:
● Skill Testing
● Lambda test event
Alexa Skill - When all you need is a
Testing:
● Skill Testing
● Lambda test event
● Echosim.io
Alexa Skill - When all you need is a
Testing:
● Skill Testing
● Lambda test event
● Echosim.io
● Alexa
Alexa Skill - When all you need is a
Testing:
● Skill Testing
● Lambda test event
● Echosim.io
● Alexa
● aws lambda invoke
● ask api invoke-skill
Alexa Skill - When all you need is a
How Far:
● Alexa, ask How Far is Yellowstone Park?
○ <Destination>
○ <Destination> from <Origin>
○ How Far is <Destination> from <Origin>
Alexa Skill - When all you need is a
How Far:
● Alexa, ask How Far is Yellowstone Park?
○ <Destination>
○ <Destination> from <Origin>
○ How Far is <Destination> from <Origin>
● Anything else becomes a <Destination>!
○ “Garbage” in, garbage out
Alexa Skill - When all you need is a
● Batman House
● North Korea
● Jamaica
● New Delhi
● Erevan
● Good morning
● Thank you
● You suck?
Alexa Skill - When all you need is a
● Batman House
● North Korea
● Jamaica
● New Delhi
● Erevan
● Good morning
● Thank you
● Issaquah!
Alexa Skill - When all you need is a
State management:
● Application state
○ const ALEXA_ENDPOINT = 'api.amazonalexa.com';
● Session state / cache:
○ this.attributes.sessionStarted = Date.now();
○ Session stats, “Default Origin” cache
○ Multi-turn dialogs or skill’s state machine
● userId / deviceID state:
○ const dynamodb = new AWS.DynamoDB();
Alexa Skill - When all you need is a
Testing:
● Skill Testing
● Lambda test event
● Echosim.io
● Alexa
● aws lambda invoke
● ask api invoke-skill
Alexa Skill - When all you need is a
Gotchas:
● emit(response) ends Lambda function
● HTTP errors, timeouts, retries, alarming on metrics
●
Alexa Skill - When all you need is a
Tools & Friends:
● Alexa2Lambda
● Echosim.io
● alexafsm
● Skill metrics
● CloudWatch - Logs, Dashboard, Metrics, Alarms
● SNS + Pushover (poor man on-calls)
● Bespoken.io - local Skill development (+ logging/monitoring)
Alexa Skill - When all you need is a
Wish List:
● Built-in HTTP client (errors, timeouts, retries)
● Errors reporting, alarming on “graceful failures”
● Built-in testing with certification checklist
● CI / Canary testing with sample utterances
● Proper communication channel with skill users!
○ Forum, announcements, skill guide
○ Allow to reply to reviews
● Version control when enabling (v1, v2, $LATEST)
Alexa Skill - When all you need is a
Where to go for more:
● developer.amazon.com/alexa-skills-kit
● github.com/alexa/alexa-cookbook
● github.com/evgeny-goldin/how-far-alexa-skill
● youtube.com/c/alexadevelopers
● developer.amazon.com/blogs/alexa/tag/Alexa
● forums.developer.amazon.com/spaces/165/index.html
● ASK CLI and API
● References: SSML, Request, Request / Response
● hackster.io/amazon-alexa
Alexa Skill - When all you need is a
Alexa Skill - When all you need is a
developer.amazon.com/alexa-skills-kit/alexa-developer-skill-promotion
Alexa Skill - When all you need is a
developer.amazon.com/alexa-skills-kit/alexa-developer-skill-promotion
developer.amazon.com/alexa-skills-kit/alexa-aws-credits
developer.amazon.com/alexa-skills-kit/rewards
Alexa skills

Alexa skills

  • 1.
    Brown Bag -Developing Alexa Skills evgeny goldin@ September 13, 2017
  • 2.
    Alexa Skill -When all you need is a
  • 3.
    Alexa Skill -When all you need is a What is Alexa Skill?
  • 4.
    Alexa Skill -When all you need is a
  • 5.
    Alexa Skill -When all you need is a Invoking a skill: ● Alexa, ask / tell <Skill Name> <Utterance> ○ <Utterance> ○ .. ● Alexa, open <Skill Name> ○ <Utterance> ○ .. ● Help ● Cancel / Stop
  • 6.
    Alexa Skill -When all you need is a Where is us-east-1?
  • 7.
    Alexa Skill -When all you need is a Phases: ● Development ● Testing ● Versioning - arn:aws:lambda:..:WhereIs:1 ● Certification ● Monitoring ● Alarming
  • 8.
    Alexa Skill -When all you need is a Testing: ● Skill Testing
  • 9.
    Alexa Skill -When all you need is a Testing: ● Skill Testing ● Lambda test event
  • 10.
    Alexa Skill -When all you need is a Testing: ● Skill Testing ● Lambda test event ● Echosim.io
  • 11.
    Alexa Skill -When all you need is a Testing: ● Skill Testing ● Lambda test event ● Echosim.io ● Alexa
  • 12.
    Alexa Skill -When all you need is a Testing: ● Skill Testing ● Lambda test event ● Echosim.io ● Alexa ● aws lambda invoke ● ask api invoke-skill
  • 13.
    Alexa Skill -When all you need is a How Far: ● Alexa, ask How Far is Yellowstone Park? ○ <Destination> ○ <Destination> from <Origin> ○ How Far is <Destination> from <Origin>
  • 14.
    Alexa Skill -When all you need is a How Far: ● Alexa, ask How Far is Yellowstone Park? ○ <Destination> ○ <Destination> from <Origin> ○ How Far is <Destination> from <Origin> ● Anything else becomes a <Destination>! ○ “Garbage” in, garbage out
  • 15.
    Alexa Skill -When all you need is a ● Batman House ● North Korea ● Jamaica ● New Delhi ● Erevan ● Good morning ● Thank you ● You suck?
  • 16.
    Alexa Skill -When all you need is a ● Batman House ● North Korea ● Jamaica ● New Delhi ● Erevan ● Good morning ● Thank you ● Issaquah!
  • 17.
    Alexa Skill -When all you need is a State management: ● Application state ○ const ALEXA_ENDPOINT = 'api.amazonalexa.com'; ● Session state / cache: ○ this.attributes.sessionStarted = Date.now(); ○ Session stats, “Default Origin” cache ○ Multi-turn dialogs or skill’s state machine ● userId / deviceID state: ○ const dynamodb = new AWS.DynamoDB();
  • 18.
    Alexa Skill -When all you need is a Testing: ● Skill Testing ● Lambda test event ● Echosim.io ● Alexa ● aws lambda invoke ● ask api invoke-skill
  • 19.
    Alexa Skill -When all you need is a Gotchas: ● emit(response) ends Lambda function ● HTTP errors, timeouts, retries, alarming on metrics ●
  • 20.
    Alexa Skill -When all you need is a Tools & Friends: ● Alexa2Lambda ● Echosim.io ● alexafsm ● Skill metrics ● CloudWatch - Logs, Dashboard, Metrics, Alarms ● SNS + Pushover (poor man on-calls) ● Bespoken.io - local Skill development (+ logging/monitoring)
  • 21.
    Alexa Skill -When all you need is a Wish List: ● Built-in HTTP client (errors, timeouts, retries) ● Errors reporting, alarming on “graceful failures” ● Built-in testing with certification checklist ● CI / Canary testing with sample utterances ● Proper communication channel with skill users! ○ Forum, announcements, skill guide ○ Allow to reply to reviews ● Version control when enabling (v1, v2, $LATEST)
  • 22.
    Alexa Skill -When all you need is a Where to go for more: ● developer.amazon.com/alexa-skills-kit ● github.com/alexa/alexa-cookbook ● github.com/evgeny-goldin/how-far-alexa-skill ● youtube.com/c/alexadevelopers ● developer.amazon.com/blogs/alexa/tag/Alexa ● forums.developer.amazon.com/spaces/165/index.html ● ASK CLI and API ● References: SSML, Request, Request / Response ● hackster.io/amazon-alexa
  • 23.
    Alexa Skill -When all you need is a
  • 24.
    Alexa Skill -When all you need is a developer.amazon.com/alexa-skills-kit/alexa-developer-skill-promotion
  • 25.
    Alexa Skill -When all you need is a developer.amazon.com/alexa-skills-kit/alexa-developer-skill-promotion
  • 26.
  • 27.