如何集成Lambda、Alexa和我的代码(pythonttweepy)?

2024-06-16 12:28:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试着通过和Alexa聊天来发一些东西。我想把我的代码放在AWS Lambda上,并触发Alexa的函数。你知道吗

我已经有了一个Python代码,可以成功地推特某些字符串。我还创建了一个zip文件并将其部署到Lambda上(代码依赖于“tweepy”包)。但是,我无法通过Alexa触发函数,我知道我需要使用handlers和ASK-SDK(Alexa服务包),但是我在这个阶段有点迷失了。有谁能给我一个关于操纵者如何工作的想法,帮助我了解全局吗?你知道吗


Tags: 文件lambda函数字符串代码awshandlers部署
2条回答

Alexa ASKïu SDK Psuedo代码: 这是新ASK\usdk的伪代码,它是ALEXA\usdk的前身。 还请注意,我在NodeJS中工作,但结构可能是相同的

  • 带回调的外部函数-Lambda函数处理程序
    • CanHandle函数
      • 包含确定此处理程序是否为正确处理程序的逻辑。HandlerInput变量包含请求数据,因此您可以检查并查看intent是否==“A specific intent”,然后返回true。否则返回false。或者你可以说得更具体些。(通过意图解雇处理程序是非常基本的。你可以更进一步,并根据意图和状态解雇处理程序。你知道吗
    • 句柄函数
      • 哪个“canHandle”函数返回true这是将要运行的代码。处理程序有几个可以执行的函数。它可以读取会话属性,根据调用的意图更改会话属性,制定字符串响应,读取和写入更持久的属性存储(如dynamodb),并创建和触发alexa响应。你知道吗

handerInput包含您需要的所有内容。我强烈建议您使用调试器在Pycharm中运行测试代码,然后检查handlerInput变量。你知道吗

响应生成器也非常重要,它允许您添加语音、后续提示、卡片、引出槽值等。 handler_input.response_builder

要检查的示例 https://github.com/alexa/skill-sample-python-helloworld-classes/blob/master/lambda/py/hello_world.py

class HelloWorldIntentHandler(AbstractRequestHandler):
    """Handler for Hello World Intent."""
    def can_handle(self, handler_input):
        # type: (HandlerInput) -> bool
        return ask_utils.is_intent_name("HelloWorldIntent")(handler_input)

    def handle(self, handler_input):
        # type: (HandlerInput) -> Response
        speak_output = "Hello Python World from Classes!"

        return (
            handler_input.response_builder
                .speak(speak_output)
                # .ask("add a reprompt if you want to keep the session open for the user to respond")
                .response
        )

对于您关于捕获用户输入的问题,请使用亚马逊搜索查询插槽类型。您可能会遇到关于可以收集多少文本和捕获质量的限制,但searchqueryslot是一个开始。你知道吗

相关问题 更多 >