如何将Python库导入Alexa技能



我只是想把随机库导入我的Alexa技能,但我得到了"所请求的技能的响应有问题";每次我尝试使用它在我的lambda函数代码(例如index = random.randrange(len(array)))。我看到的答案从简单地将库放入requirements.txt到使用zip文件都有。没有什么是有效的和/或有意义的。谢谢你的帮助。

random库是PSL的一部分。您只需要在脚本的顶部添加import random和其他导入语句。对于非psl库,您应该将它们添加到requirements.txt文件中。然后将它们导入到脚本中,就像对Node和"package.json"所做的那样。文件。

这是我编辑的LaunchIntent版本从默认的Python Hello World模板在Alexa开发者控制台。import random被添加到脚本的import logging之后,大约在第8行。

class LaunchRequestHandler(AbstractRequestHandler):
"""Handler for Skill Launch."""
def can_handle(self, handler_input):
# type: (HandlerInput) -> bool
return ask_utils.is_request_type("LaunchRequest")(handler_input)
def handle(self, handler_input):
# type: (HandlerInput) -> Response
rnum =  str(random.randint(0,9))
speak_output = "Welcome, your random number is " + rnum
return (
handler_input.response_builder
.speak(speak_output)
.ask(speak_output)
.response
)

因为要将数字与字符串组合生成字符串,所以必须将整型转换为字符串,但仅此而已。

除此之外还有一个"CloudWatch日志"。在Alexa开发控制台的编辑器顶部的按钮。单击它并检查您的最新日志流,以查看可能发生的错误的输出。

例如,我不经常写Python,而且我已经习惯了JavaScript的类型强制转换,我忘记了在将随机数添加到字符串之前将其强制转换为字符串。我知道…坏习惯。这个错误在CloudWatch日志中被清楚地指出。我修好了,一切都很顺利。

最新更新