SlideShare a Scribd company logo
1 of 28
Download to read offline
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

More Related Content

What's hot

Voice Applications (Alexa Skills) Cloud Native on Kubernetes with Terraform
Voice Applications (Alexa Skills) Cloud Native on Kubernetes with TerraformVoice Applications (Alexa Skills) Cloud Native on Kubernetes with Terraform
Voice Applications (Alexa Skills) Cloud Native on Kubernetes with TerraformVMware Tanzu
 
CQRS + ES with Scala and Akka
CQRS + ES with Scala and AkkaCQRS + ES with Scala and Akka
CQRS + ES with Scala and AkkaBharadwaj N
 
Does Your Stuff Scale?
Does Your Stuff Scale?Does Your Stuff Scale?
Does Your Stuff Scale?stevenh0lmes
 
Force Academy LA Trigger Framework
Force Academy LA Trigger FrameworkForce Academy LA Trigger Framework
Force Academy LA Trigger FrameworkAdam Olshansky
 
Adopting Elixir in a 10 year old codebase
Adopting Elixir in a 10 year old codebaseAdopting Elixir in a 10 year old codebase
Adopting Elixir in a 10 year old codebaseMichael Klishin
 
CliqueSquare processing
CliqueSquare processingCliqueSquare processing
CliqueSquare processingINRIA-OAK
 
Automating microservices: what, where and when
Automating microservices: what, where and whenAutomating microservices: what, where and when
Automating microservices: what, where and whenOleksandr Romanov
 
TDC2016SP - Otimização Prematura: a Raíz de Todo o Mal
TDC2016SP - Otimização Prematura: a Raíz de Todo o MalTDC2016SP - Otimização Prematura: a Raíz de Todo o Mal
TDC2016SP - Otimização Prematura: a Raíz de Todo o Maltdc-globalcode
 
An Introduction to jOOQ
An Introduction to jOOQAn Introduction to jOOQ
An Introduction to jOOQSteve Pember
 
Building APIs with Kotlin and Spark
Building APIs with Kotlin and SparkBuilding APIs with Kotlin and Spark
Building APIs with Kotlin and SparkNordic APIs
 
DITA translatability best practices
DITA translatability best practicesDITA translatability best practices
DITA translatability best practicesYamagata Europe
 
improving the performance of Rails web Applications
improving the performance of Rails web Applicationsimproving the performance of Rails web Applications
improving the performance of Rails web ApplicationsJohn McCaffrey
 
Introduction to Parameters in Foreman
Introduction to Parameters in ForemanIntroduction to Parameters in Foreman
Introduction to Parameters in ForemanTomer Brisker
 

What's hot (14)

Voice Applications (Alexa Skills) Cloud Native on Kubernetes with Terraform
Voice Applications (Alexa Skills) Cloud Native on Kubernetes with TerraformVoice Applications (Alexa Skills) Cloud Native on Kubernetes with Terraform
Voice Applications (Alexa Skills) Cloud Native on Kubernetes with Terraform
 
CQRS + ES with Scala and Akka
CQRS + ES with Scala and AkkaCQRS + ES with Scala and Akka
CQRS + ES with Scala and Akka
 
Does Your Stuff Scale?
Does Your Stuff Scale?Does Your Stuff Scale?
Does Your Stuff Scale?
 
Force Academy LA Trigger Framework
Force Academy LA Trigger FrameworkForce Academy LA Trigger Framework
Force Academy LA Trigger Framework
 
Adopting Elixir in a 10 year old codebase
Adopting Elixir in a 10 year old codebaseAdopting Elixir in a 10 year old codebase
Adopting Elixir in a 10 year old codebase
 
CliqueSquare processing
CliqueSquare processingCliqueSquare processing
CliqueSquare processing
 
Automating microservices: what, where and when
Automating microservices: what, where and whenAutomating microservices: what, where and when
Automating microservices: what, where and when
 
TDC2016SP - Otimização Prematura: a Raíz de Todo o Mal
TDC2016SP - Otimização Prematura: a Raíz de Todo o MalTDC2016SP - Otimização Prematura: a Raíz de Todo o Mal
TDC2016SP - Otimização Prematura: a Raíz de Todo o Mal
 
An Introduction to jOOQ
An Introduction to jOOQAn Introduction to jOOQ
An Introduction to jOOQ
 
Debugging Tips and Tricks
Debugging Tips and TricksDebugging Tips and Tricks
Debugging Tips and Tricks
 
Building APIs with Kotlin and Spark
Building APIs with Kotlin and SparkBuilding APIs with Kotlin and Spark
Building APIs with Kotlin and Spark
 
DITA translatability best practices
DITA translatability best practicesDITA translatability best practices
DITA translatability best practices
 
improving the performance of Rails web Applications
improving the performance of Rails web Applicationsimproving the performance of Rails web Applications
improving the performance of Rails web Applications
 
Introduction to Parameters in Foreman
Introduction to Parameters in ForemanIntroduction to Parameters in Foreman
Introduction to Parameters in Foreman
 

Similar to Alexa skills

Amazon DynamoDB Lessen's Learned by Beginner
Amazon DynamoDB Lessen's Learned by BeginnerAmazon DynamoDB Lessen's Learned by Beginner
Amazon DynamoDB Lessen's Learned by BeginnerHirokazu Tokuno
 
Building Reactive System with Akka
Building  Reactive System with AkkaBuilding  Reactive System with Akka
Building Reactive System with AkkaLam Nguyen
 
Validating Big Data Pipelines - Big Data Spain 2018
Validating Big Data Pipelines - Big Data Spain 2018Validating Big Data Pipelines - Big Data Spain 2018
Validating Big Data Pipelines - Big Data Spain 2018Holden Karau
 
AWS Community Day - Jack Schlederer - Enterprise level search on ECS
AWS Community Day - Jack Schlederer - Enterprise level search on ECSAWS Community Day - Jack Schlederer - Enterprise level search on ECS
AWS Community Day - Jack Schlederer - Enterprise level search on ECSAWS Chicago
 
Beyond unit tests: Deployment and testing for Hadoop/Spark workflows
Beyond unit tests: Deployment and testing for Hadoop/Spark workflowsBeyond unit tests: Deployment and testing for Hadoop/Spark workflows
Beyond unit tests: Deployment and testing for Hadoop/Spark workflowsDataWorks Summit
 
Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...
 Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark... Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...
Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...Databricks
 
How to develop Alexa Skill Kit based on Serverless Architecture
How to develop Alexa Skill Kit based on Serverless ArchitectureHow to develop Alexa Skill Kit based on Serverless Architecture
How to develop Alexa Skill Kit based on Serverless ArchitectureHidetaka Okamoto
 
Validating big data pipelines - Scala eXchange 2018
Validating big data pipelines -  Scala eXchange 2018Validating big data pipelines -  Scala eXchange 2018
Validating big data pipelines - Scala eXchange 2018Holden Karau
 
Spark on Yarn
Spark on YarnSpark on Yarn
Spark on YarnQubole
 
Leakcanary tool
Leakcanary toolLeakcanary tool
Leakcanary tool孝庭 陳
 
Building Applications on Avalanche
Building Applications on AvalancheBuilding Applications on Avalanche
Building Applications on AvalancheKlaraOrban
 
AWS Step Functions - Dev lounge Express Edition.pdf
AWS Step Functions - Dev lounge Express Edition.pdfAWS Step Functions - Dev lounge Express Edition.pdf
AWS Step Functions - Dev lounge Express Edition.pdfAmazon Web Services
 
Testing and validating spark programs - Strata SJ 2016
Testing and validating spark programs - Strata SJ 2016Testing and validating spark programs - Strata SJ 2016
Testing and validating spark programs - Strata SJ 2016Holden Karau
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 

Similar to Alexa skills (15)

Amazon DynamoDB Lessen's Learned by Beginner
Amazon DynamoDB Lessen's Learned by BeginnerAmazon DynamoDB Lessen's Learned by Beginner
Amazon DynamoDB Lessen's Learned by Beginner
 
Building Reactive System with Akka
Building  Reactive System with AkkaBuilding  Reactive System with Akka
Building Reactive System with Akka
 
Validating Big Data Pipelines - Big Data Spain 2018
Validating Big Data Pipelines - Big Data Spain 2018Validating Big Data Pipelines - Big Data Spain 2018
Validating Big Data Pipelines - Big Data Spain 2018
 
AWS Community Day - Jack Schlederer - Enterprise level search on ECS
AWS Community Day - Jack Schlederer - Enterprise level search on ECSAWS Community Day - Jack Schlederer - Enterprise level search on ECS
AWS Community Day - Jack Schlederer - Enterprise level search on ECS
 
Beyond unit tests: Deployment and testing for Hadoop/Spark workflows
Beyond unit tests: Deployment and testing for Hadoop/Spark workflowsBeyond unit tests: Deployment and testing for Hadoop/Spark workflows
Beyond unit tests: Deployment and testing for Hadoop/Spark workflows
 
Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...
 Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark... Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...
Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...
 
How to develop Alexa Skill Kit based on Serverless Architecture
How to develop Alexa Skill Kit based on Serverless ArchitectureHow to develop Alexa Skill Kit based on Serverless Architecture
How to develop Alexa Skill Kit based on Serverless Architecture
 
Validating big data pipelines - Scala eXchange 2018
Validating big data pipelines -  Scala eXchange 2018Validating big data pipelines -  Scala eXchange 2018
Validating big data pipelines - Scala eXchange 2018
 
Spark on Yarn
Spark on YarnSpark on Yarn
Spark on Yarn
 
Leakcanary tool
Leakcanary toolLeakcanary tool
Leakcanary tool
 
Building Applications on Avalanche
Building Applications on AvalancheBuilding Applications on Avalanche
Building Applications on Avalanche
 
Actor Model Akka Framework
Actor Model Akka FrameworkActor Model Akka Framework
Actor Model Akka Framework
 
AWS Step Functions - Dev lounge Express Edition.pdf
AWS Step Functions - Dev lounge Express Edition.pdfAWS Step Functions - Dev lounge Express Edition.pdf
AWS Step Functions - Dev lounge Express Edition.pdf
 
Testing and validating spark programs - Strata SJ 2016
Testing and validating spark programs - Strata SJ 2016Testing and validating spark programs - Strata SJ 2016
Testing and validating spark programs - Strata SJ 2016
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 

More from Evgeny Goldin

Polyglot Gradle with Node.js and Play
Polyglot Gradle with Node.js and PlayPolyglot Gradle with Node.js and Play
Polyglot Gradle with Node.js and PlayEvgeny Goldin
 
Node.js meets jenkins
Node.js meets jenkinsNode.js meets jenkins
Node.js meets jenkinsEvgeny Goldin
 
Functional Programming in Groovy
Functional Programming in GroovyFunctional Programming in Groovy
Functional Programming in GroovyEvgeny Goldin
 
Spock Extensions Anatomy
Spock Extensions AnatomySpock Extensions Anatomy
Spock Extensions AnatomyEvgeny Goldin
 
10 Cool Facts about Gradle
10 Cool Facts about Gradle10 Cool Facts about Gradle
10 Cool Facts about GradleEvgeny Goldin
 
Start Writing Groovy
Start Writing GroovyStart Writing Groovy
Start Writing GroovyEvgeny Goldin
 

More from Evgeny Goldin (9)

Polyglot Gradle with Node.js and Play
Polyglot Gradle with Node.js and PlayPolyglot Gradle with Node.js and Play
Polyglot Gradle with Node.js and Play
 
Node.js meets jenkins
Node.js meets jenkinsNode.js meets jenkins
Node.js meets jenkins
 
Functional Programming in Groovy
Functional Programming in GroovyFunctional Programming in Groovy
Functional Programming in Groovy
 
Release It!
Release It!Release It!
Release It!
 
Spock Extensions Anatomy
Spock Extensions AnatomySpock Extensions Anatomy
Spock Extensions Anatomy
 
10 Cool Facts about Gradle
10 Cool Facts about Gradle10 Cool Facts about Gradle
10 Cool Facts about Gradle
 
Start Writing Groovy
Start Writing GroovyStart Writing Groovy
Start Writing Groovy
 
Groovy Maven Builds
Groovy Maven BuildsGroovy Maven Builds
Groovy Maven Builds
 
Maven Plugins
Maven PluginsMaven Plugins
Maven Plugins
 

Recently uploaded

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 

Recently uploaded (20)

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 

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