一个易于创建Alexa技能工具包的库

pylexa的Python项目详细描述


Build Status

pylexa是一个旨在简化Alexa Skills Kits开发的库。

pylexa允许定义一个简单的flask应用程序,它将 能够接受请求并向alexa返回适当的响应 服务。

示例

假设你想定义一个Alexa技能 用户说。到目前为止,您已经:

  • Amazon Developer Console

  • 添加了一个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

这定义了一种处理三个意图的技能(TestIntentOtherIntentAMAZON.YesIntent指定 TestIntentOtherIntent,并包含自定义插槽 定义。

如果我们在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技能配置的适当部分。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java SimpleCursorAdapter删除值   java结束while循环条件   java检查设备是否连接到特定网络   java组织。冬眠MappingException找不到逻辑名称为annotation getter的列   为什么java邮件中会抛出此异常?   加载SDK时发生java Eclipse错误   返回奇怪输出的Java数组   JavaXStream和对象类序列化   将枚举列表传递给namedQuery后出现java非法转换异常。Hibernate中的setParameter()   java Android studio不允许我在字符串上使用开关?   有没有办法从Java程序访问存储在Chrome中的cookie   java在枚举中构造实例而不修改枚举类   java Blackberry JDE FieldChangeListener   java修复错误:未报告的异常InterruptedException   java Spring数据JPA:findAll(具有规范和可分页)在计数查询中失败