一个易于创建Alexa技能工具包的库
pylexa的Python项目详细描述
pylexa是一个旨在简化Alexa Skills Kits开发的库。
pylexa允许定义一个简单的flask应用程序,它将 能够接受请求并向alexa返回适当的响应 服务。
示例
假设你想定义一个Alexa技能 用户说。到目前为止,您已经:
添加了一个Echo意图和一个插槽,message:
{"intent":"Echo","slots":[{"name":"message","type":"AMAZON.LITERAL"}]}
添加了允许用户与技能交互的话语:
Echo echo { something | message }
现在,您可以创建一个服务器来接受请求 返回回应输入的响应。使用pylexa,我们只需要 完成此操作的代码如下:
fromflaskimportFlaskfrompylexa.appimportalexa_blueprintfrompylexa.intentimporthandle_intentfrompylexa.responseimportPlainTextSpeechapp=Flask(__name__)app.config['app_id']='amzn1.echo-sdk-ams.app.my_app_id'app.register_blueprint(alexa_blueprint)@handle_intent('Echo')defhandle_echo_intent(request):returnPlainTextSpeech(request.slots.get('message','Nothing to echo'))
就这样!你可以推上面的代码,配置技能指向 运行flask应用程序的服务器,并使用服务模拟器 测试你的技能。
测试
使用pip install -r requirements.pip安装需求之后, 可以使用nosetests运行测试。
Alexa配置
Alexa技能的配置在开发人员中分为三个部分 控制台:
- 意图模式
- 话语列表
- 自定义插槽定义
pylexa附带了一个命令行工具,旨在简化 通过允许定义一个yaml文件 信息并生成意图模式、语句和自定义槽 从那开始。
例如,假设您定义了以下yaml模式:
intents:-TestIntent:foo:AMAZON.NUMBERbar:CUSTOM_SLOT-OtherIntent-AMAZON.YesIntentutterances:TestIntent:-'dosomethingwith{foo}and{bar}'-'{foo}{bar}'OtherIntent:-'dosomethingelse'slots:CUSTOM_SLOT:-value 1-value 2
这定义了一种处理三个意图的技能(TestIntent, OtherIntent和AMAZON.YesIntent指定 TestIntent和OtherIntent,并包含自定义插槽 定义。
如果我们在conf/schema.yml:
$ tree conf conf └── schema.yml 0 directories, 1 file
然后我们可以运行命令行工具generate-alexa-conf来创建 必需的文件:
$ generate-alexa-conf conf/schema.yml
我们现在已经在它们的 拥有文件:
$ tree conf conf ├── intent_schema.json ├── schema.yml ├── slots │ ├── CUSTOM_SLOT └── utterances.txt 1 directory, 4 files
然后可以将每个文件的内容复制并粘贴到 Alexa技能配置的适当部分。