Alexa Skills Kit SDK for Python 3.6
Project description
echokit
Lightweight SDK for the Alexa Skills Kit (Python 3.6)
Why?
I felt other solutions were either too clunky, or not quite focused on deployment in AWS Lambda (execution time is money!). That’s why echokit has no dependencies!
Installation
- Requirements:
Python >= 3.6 (that’s it!)
Using pip:
$ pip install echokit
From GitHub:
Clone/download this repo and run this from the echokit/ directory:
$ python setup.py install
Sample
A sample skill using echokit can be found at this repo: https://github.com/arcward/echokit-example
Documentation
More comprehensive documentation can be found on ReadTheDocs:
Getting Started
When you configure your Lambda function, you need to specify a handler. And when you configure your skill in the Alexa dev portal, you’ll be provided an application ID for your skill. Set these at the top of your module:
import echokit
# Set as your skill's handler in Lambda
handler = echokit.handler
# Set as your application ID from the Alexa dev portal
echokit.application_id = "your_application_id"
If your module is main.py, in your Lambda configuration, you’d set main.handler as your handler.
Example
import echokit
from echokit import Response, PlainTextOutputSpeech, SimpleCard
handler = echokit.handler
echokit.application_id = "my_app_id"
@echokit.on_session_launch
def session_started(request_wrapper):
return echokit.ask('Hello!')
@echokit.on_session_ended
def session_ended(request_wrapper):
# Print statement will log the reason to CloudWatch
print(request_wrapper.request.reason)
@echokit.on_intent('OrderIntent')
@echokit.slot('MenuItem', dest='menu_item')
def order_intent(request_wrapper, menu_item):
print(menu_item)
request = request_wrapper.request
menu_item = request.intent.slots['MenuItem'].value
return echokit.tell(f"You just ordered {menu_item}")\
.simple_card(title="Previous order", content=menu_item)
Creating a Lambda deployment package
For reference, see the official docs.
echodist
echodist is a script included to help create ZIP deployment packages. If you installed via setup.py, you can run it from the command line (try echodist --help).
Specify your top-level package directory with --dir. For example, if your __init__.py is located at ~/somepy/somepy/__init__.py you would run:
~ & echodist --dir ~/somepy/somepy
This would create somepy.zip in your home directory (or whever you ran the command). If you unzip it, you can see it includes the entire subtree of the directory you specified, as well as an echokit/ directory.
Manually
Your ZIP file should be created from within your top-level package (don’t just zip the enclosing directory). You’ll need to download/clone echokit and include echokit/ in in that same top-level directory. So if your __init__.py is in ~/my_project/ you should have ~/my_project/echokit.
See the official docs for more info.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file echokit-0.3.0.tar.gz
.
File metadata
- Download URL: echokit-0.3.0.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8b708044bd364231170864e9e5f563cd97d2ad6a5e1c71730e5d81256140c34 |
|
MD5 | 1f8ab8fa7df675b788d8110a44d4afdb |
|
BLAKE2b-256 | 9d39acae678f4502f60528bdd39c8e84c9d8bea1a792d34d6ec30238489eb3d7 |
File details
Details for the file echokit-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: echokit-0.3.0-py3-none-any.whl
- Upload date:
- Size: 13.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa18ebfed48b8ecfbc4acfcb567c942cd63e64699d099a5ea4885b25097cf6ec |
|
MD5 | fde75b46db749f1de7661d22a2a21992 |
|
BLAKE2b-256 | 20f9951c4d1b32d99f71aee9fb365aacf0b68827f8fe09febc2f340e96804f5e |