Skip to main content

skillful

PyPIVersion PyPIDownloads BuildStatus Coverage

A Python package for building Amazon Alexa skills.

Features

  • Request and response objects for custom skills

  • 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"
      }
    }
  }
}

Metadata

Release files for skillful 0.3.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for skillful 0.3.3
File Size Uploaded
skillful-0.3.3.tar.gz 12.7 kB Details

Release files / skillful-0.3.3.tar.gz

Download URL skillful-0.3.3.tar.gz
Size 12.7 kB
Tags Source
SHA-256 checksum
How to use checksums
06402c20900be0526f00e3afb98818d8bc81e71635c0c46cd8690206b4ff9f3a
BLAKE2b-256 checksum
How to use checksums
57fa990dae561b54bc3a73c1ce28d2ee4391ae6cd351bcd406b2bf448753d337
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

0.8.2

1 release file

0.8.1

1 release file

0.8

1 release file

0.7.1

1 release file

0.7

1 release file

0.6

0.4

1 release file

This release

0.3.3 This release

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3

1 release file

0.2

1 release file

0.1

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page