A Python package for building Alexa skills.
Project description
# skillful
[](https://pypi.python.org/pypi/skillful)
[](https://pypi.python.org/pypi/skillful)
[](https://travis-ci.org/bmweiner/skillful)
[](https://coveralls.io/github/bmweiner/skillful?branch=master)
*A Python package for building Amazon Alexa skills.*
## Features
* Request and response objects for [custom skills](https://goo.gl/JpVGm4)
* Simple definition of response logic for each request type
* Built-in request parsing/validation, intent dispatch, and response
construction
## Installation
pip install skillful
## Example
import skillful
from skillful.tests import data
application_id = 'amzn1.echo-sdk-ams.app.000000-d0ed-0000-ad00-000000d00ebe'
skill = skillful.Skill(application_id)
@skill.launch
def on_launch():
print('Launched: {}'.format(skill.request.session.session_id))
text = 'Welcome to skillful. Would you like to build an Alexa skill?'
skill.response.set_output_speech_plain_text(text)
ssml = ('<speak>Please tell me if you would like to build an Alexa '
'skill.</speak>')
skill.response.set_reprompt_output_speech_ssml(ssml)
@skill.intent('yes')
def on_intent_yes():
text = ('Great! Building Alexa skills is easy with skillful. Open '
'the Alexa app to see more information on skillful, a '
'Python package for building Alexa skills.')
skill.response.set_output_speech_plain_text(text)
title = 'skillful'
content = ('A Python package for building Alexa skills.\n\n'
'Visit: https://github.com/bmweiner/skillful')
skill.response.set_card_type_simple(title, content)
skill.terminate()
@skill.intent('no')
def on_intent_no():
text = ('Well, if you change your mind, open the Alexa app to see '
'more information on skillful, a Python package for '
'building Alexa skills.')
skill.response.set_output_speech_plain_text(text)
title = 'skillful'
content = ('A Python package for building Alexa skills.\n\n'
'Visit: https://github.com/bmweiner/skillful')
skill.response.set_card_type_simple(title, content)
skill.terminate()
@skill.session_ended
def on_session_ended():
print('Ended: {}'.format(skill.request.session.session_id))
skill.terminate()
# simulate request body
body = data.SAMPLE_LAUNCH_REQUEST
skill.process(body)
Output:
Launched: amzn1.echo-api.session.0000000-0000-0000-0000-00000000000
{
"version": "1.0",
"response": {
"outputSpeech": {
"text": "Welcome to skillful. Would you like to build an Alexa skill?",
"type": "PlainText"
},
"shouldEndSession": false,
"reprompt": {
"outputSpeech": {
"ssml": "<speak>Please tell me if you would like to build an Alexa skill.</speak>",
"type": "SSML"
}
}
}
}
[](https://pypi.python.org/pypi/skillful)
[](https://pypi.python.org/pypi/skillful)
[](https://travis-ci.org/bmweiner/skillful)
[](https://coveralls.io/github/bmweiner/skillful?branch=master)
*A Python package for building Amazon Alexa skills.*
## Features
* Request and response objects for [custom skills](https://goo.gl/JpVGm4)
* Simple definition of response logic for each request type
* Built-in request parsing/validation, intent dispatch, and response
construction
## Installation
pip install skillful
## Example
import skillful
from skillful.tests import data
application_id = 'amzn1.echo-sdk-ams.app.000000-d0ed-0000-ad00-000000d00ebe'
skill = skillful.Skill(application_id)
@skill.launch
def on_launch():
print('Launched: {}'.format(skill.request.session.session_id))
text = 'Welcome to skillful. Would you like to build an Alexa skill?'
skill.response.set_output_speech_plain_text(text)
ssml = ('<speak>Please tell me if you would like to build an Alexa '
'skill.</speak>')
skill.response.set_reprompt_output_speech_ssml(ssml)
@skill.intent('yes')
def on_intent_yes():
text = ('Great! Building Alexa skills is easy with skillful. Open '
'the Alexa app to see more information on skillful, a '
'Python package for building Alexa skills.')
skill.response.set_output_speech_plain_text(text)
title = 'skillful'
content = ('A Python package for building Alexa skills.\n\n'
'Visit: https://github.com/bmweiner/skillful')
skill.response.set_card_type_simple(title, content)
skill.terminate()
@skill.intent('no')
def on_intent_no():
text = ('Well, if you change your mind, open the Alexa app to see '
'more information on skillful, a Python package for '
'building Alexa skills.')
skill.response.set_output_speech_plain_text(text)
title = 'skillful'
content = ('A Python package for building Alexa skills.\n\n'
'Visit: https://github.com/bmweiner/skillful')
skill.response.set_card_type_simple(title, content)
skill.terminate()
@skill.session_ended
def on_session_ended():
print('Ended: {}'.format(skill.request.session.session_id))
skill.terminate()
# simulate request body
body = data.SAMPLE_LAUNCH_REQUEST
skill.process(body)
Output:
Launched: amzn1.echo-api.session.0000000-0000-0000-0000-00000000000
{
"version": "1.0",
"response": {
"outputSpeech": {
"text": "Welcome to skillful. Would you like to build an Alexa skill?",
"type": "PlainText"
},
"shouldEndSession": false,
"reprompt": {
"outputSpeech": {
"ssml": "<speak>Please tell me if you would like to build an Alexa skill.</speak>",
"type": "SSML"
}
}
}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
skillful-0.3.tar.gz
(8.5 kB
view details)
File details
Details for the file skillful-0.3.tar.gz
.
File metadata
- Download URL: skillful-0.3.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7a1622d9294901a59e9fd05c5da1143d4b9e0ad807098e6b02c2a6a192e192e |
|
MD5 | a70a32346b53a8a3581b510b399e68b6 |
|
BLAKE2b-256 | fa468091de41bfdc29fa0cde4dcb527ff0d3ec11f736e11a9ce13045401efaf1 |