The Stealth Alexa driver adds the ability to build Alexa voice bots via Stealth. Alexa bots can be accessed via a wide array of Alexa-enabled products, including Amazon's own Echo devices (including those with displays).
This Stealth integration provides a way of building Alexa Skills using Stealth. Though the patterns for voice bots are the same as text-based bots, the reply types supported are unique.
Alexa replies are unique in that each request is processed synchronously (unlike most other Stealth integrations). Therefore, each reply should only contain a single reply.
Here are the supported replies for the Alexa integration:
These are standard replies for Alexa Skills. They are similar to text
replies in other integrations. They can be sent like:
- reply_type: speech
text: Hello World!
If your speech contains difficult to pronouce words or you wish to add effects to the speech, you can send along SSML to help Alexa pronouce the words.
- reply_type: speech
ssml: "I want to tell you a secret. <amazon:effect name="whispered">I see dead people.</amazon:effect>"
Optionally, you can specify a playBehavior
for how Alexa treats your reply. More info here.
- reply_type: speech
text: Hello World!
play_behavior: 'ENQUEUE'
Reprompts are sent to the user when either they fail to respond or their response did not match one of your mapped intents. Reprompts are optional and if one is not set, nothing is sent to the user.
If you set reprompt: true
, Stealth will re-send your speech.
- reply_type: speech
text: Hello World!
reprompt: true
You may also customize your reprompt by specifying a complete speech
object:
- reply_type: speech
text: "Today will provide you a new learning opportunity. Stick with it and the possibilities will be endless. Can I help you with anything else?"
reprompt:
text: "Can I help you with anything else?"
You can also specify an SSML reprompt.
Cards are rich media that can be displayed via the Alexa mobile app or on devices that may feature a screen. Stealth supports all four card types:
- Simple - a card that contain a title and plain text content
- Standard - a card that contain a title, plain text content, and an image
- LinkAccount - a card that displays a link to an authorization URI that the user can use to link their Alexa account with a user in another system. See Account Linking for Custom Skills for details.
- AskForPermissionsConsent - A card that asks the customer for consent to obtain specific customer information, such as Alexa lists or address information. See Alexa Shopping and To-Do Lists and Enhance Your Skill with Address Information.
Simple card:
- reply_type: card
type: Simple
title: Hello World
content: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas pretium, sem sed placerat elementum, purus quam iaculis dolor, a euismod urna magna et sem.
For standard cards, you can specify a large and small image. For more info on the dimensions and file format, please check out Alexa's documentation.
- reply_type: card
type: Standard
title: Hello World
content: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas pretium, sem sed placerat elementum, purus quam iaculis dolor, a euismod urna magna et sem.
small_image_url: https://loremflickr.com/720/480
large_image_url: https://loremflickr.com/1200/800
By default, Stealth will keep a session open between replies. If you would like to end a session, you can set the end_session
key to any reply:
- reply_type: speech
text: Hello World!
end_session: true
While your user's session is active, you can pass along key-value pairs in your responses. These will be spent back by Alexa in their requests. This is useful for multi-step scripts, like for example ordering a pizza.
To set these session values, you can include the session_values
key in any your responses (except AudioPlayer
and PlaybackController
replies).
- reply_type: speech
text: Hello World!
session_values:
x: 1
y: blue
Coming soon.
Delays are not supported for Alexa bots.