alexa-skill
alexa-skill is flexible, easy to use and extend package for creating Alexa skill applications.
This package is based on alexa documentation.
Installing
Install and update using pip:
pip install -U alexa-skill
Examples
Define intent class
from alexa_skill.intents import BaseIntents
class ExampleIntents(BaseIntents):
@property
def mapper(self):
return {
'EXAMPLE.hello': self.hello,
}
def hello(self):
return self.response('Hello. Nice to meet you.'), True
Define intent class with slots
from alexa_skill import dates
from alexa_skill.intents import BaseIntents
class DateIntents(BaseIntents):
@property
def mapper(self):
return {
'EXAMPLE.date_intent': self.date_intent,
}
def date_intent(self, slots):
date, date_type = dates.AmazonDateParser.to_date(slots['dateslot']['value'])
text = "Your date is <say-as interpret-as='date'>{}</say-as> and it is a {}".format(
date.strftime('%Y%m%d'),
date_type
)
return self.response(text), True
Define buildin intents
from alexa_skill.intents import BuildInIntents
buildin_intents = BuildInIntents(
help_message='Say "HI" to us',
not_handled_message="Sorry, I don't understand you. Could you repeat?",
stop_message='stop',
cancel_message='cancel'
)
Falcon
Initiate intents in fulfiller webhook for Alexa
import logging
import alexa_skill
import falcon
class Fulfiller(object):
def on_post(self, req, resp):
get_response = alexa_skill.Processor(
req.media,
buildin_intents,
'Welcome to Alexa skill bot',
'Good bye',
ExampleIntents(), # Insert created Intents as arguments
DateIntents(),
)
json_response, handled = get_response()
logging.info('Response was handled by system: {}'.format(handled))
resp.media = json_response
app = falcon.API(media_type=falcon.MEDIA_JSON)
app.add_route('/v1/alexa/fulfiller', Fulfiller())
Flask
import logging
import alexa_skill
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route("/v1/alexa/fulfiller", methods=['POST'])
def fulfiller():
get_response = alexa_skill.Processor(
request.json,
buildin_intents,
'Welcome to Alexa skill bot',
'Good bye',
ExampleIntents(),
DateIntents(),
)
json_response, handled = get_response()
logging.info('Response was handled by system: {}'.format(handled))
return jsonify(json_response)
Documentation
Auto generate documentation
cd docs/
sphinx-apidoc -o ./source/_modules/ ../alexa_skill/
make html
Release files for alexa-skill 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| alexa_skill-0.1.0.tar.gz | 10.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| alexa_skill-0.1.0-py2-none-any.whl | Python 2 | none | any | Details |
Total release size: 34.9 kB
Release files / alexa_skill-0.1.0.tar.gz
| Download URL | alexa_skill-0.1.0.tar.gz |
|---|---|
| Size | 10.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f33abd37cab34ee55e1d8552110dba8d22af54aaa877d93cf36524bfd3b2a80c
|
|
BLAKE2b-256 checksum How to use checksums |
86fddd847cac7f3b07e2ee378d6ac4ed29e8b88dc66ab434902f91ede2eb1929
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/2.7.10
|
Release files / alexa_skill-0.1.0-py2-none-any.whl
| Download URL | alexa_skill-0.1.0-py2-none-any.whl |
|---|---|
| Size | 24.7 kB |
| Tags | Python 2 |
|
SHA-256 checksum How to use checksums |
a2df6d6cfd2e6ff7e56c0f25767a3a4d97d5870fdea205c18fa20a0535d77a7c
|
|
BLAKE2b-256 checksum How to use checksums |
41468daf5bfeafbb42204ba431227bf3b079dcaeb31bbf646b91ca2da62cf146
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/2.7.10
|