【问题标题】:amazon alexa skill not properly running working python code亚马逊 alexa 技能无法正常运行工作 python 代码
【发布时间】:2020-05-01 16:32:55
【问题描述】:

我正在研究一个简单的 amazon alexa python 技能。 我已经为这个简单的应用程序编写了所有代码并将其加载到我的 lambda 函数中 我已经测试了 lambada 已经加载了我的导入库并且它可以与它们一起使用,但是当我使用这个最终代码时,它会出现“请求的技能响应问题”

    def handle(self, handler_input):
        # type: (HandlerInput) -> Response

        # https://repl.it/repls/UselessOptimalPipeline

        url = "http://jokepro.dx.am/"

        source = requests.get(url)
        bs4call = bs4.BeautifulSoup(source.text, "html.parser")

        obj = bs4call.find('object')

        text = requests.get(url + obj['data']).text
        # print(text) # <-- to print the textfile

        finalJoke = random.choice(text.splitlines())

        speak_output = finalJoke

        return (
            handler_input.response_builder
                .speak(speak_output)
                #.ask()
                .response
        )

这是处理函数

lambda 与该代码中的任何内容是否冲突?为什么它不起作用?

更新:这里有一些相关信息

requirements.txt

boto3==1.9.216
ask-sdk-core==1.11.0
bs4==4.8.2
requests==2.22.0

这一切都不是通过亚马逊开发控制台https://developer.amazon.com/alexa/console/ask

【问题讨论】:

  • 那么现在工作了吗?
  • @rivamarco 不,它根本不工作
  • 您能给我们提供追溯吗?
  • 从来没有人只是没有得到技能的回应,ASK 不提供追溯,这是一个大问题
  • 如果它是 Alexa 托管的技能,在页面左下方的“代码”选项卡中,有一个指向“日志:Amazon CloudWatch”的链接。这可能会让您更好地了解错误/异常是什么。在Alexa Skills Kit docs中也提到了。

标签: python python-3.x amazon-web-services aws-lambda alexa


【解决方案1】:

编辑: 很抱歉没有要求您提供问题的全部细节

根据我的过期情况,您的问题与未正确配置依赖项有关。部署函数时,ALL 依赖项必须列在requriements.txt 中。为了获得正确的依赖关系,我建议使用pipenv

例如,以下命令将显示您项目的完整依赖关系树:

  • pipenv install requests
  • pipenv install bs4
  • pipenv lock -r &gt; requirements.txt

这些命令的结果显示您的 requirements.txt 文件由于添加这两个库而具有以下依赖项:

beautifulsoup4==4.8.2
bs4==0.0.1
certifi==2019.11.28
chardet==3.0.4
idna==2.8
requests==2.22.0
soupsieve==1.9.5
urllib3==1.25.8

所有这些都是您的项目正确导入模块所必需的。当然,您还需要 requirements.txt 中的 boto3 和 ask-sdk,但是,它们原生包含在 lambda 中,因此您不需要依赖项。

对于任何未包含在 lambda 中的库,您需要遵循此过程。有关本机包含的库列表,请参阅:Lambda Packages

【讨论】:

  • 我已经设置了技能生成器,所有的代码都是我的所有代码,而不仅仅是处理程序块pastebin.com/YDLDaKpH
  • 我看到你已经正确配置了 :) 我更新了我的答案以解决真正的问题
  • 我该去哪里使用 pipenv,lamada 控制台?目前我只在 alexa 技能控制台中编码。 (感谢您对此的所有帮助)
  • 我认为您不会在 lambda 控制台中使用它。我在您的本地开发机器上考虑更多。您不一定需要本地的 Alexa 项目,只需一个可以生成依赖项的项目
  • 我的本地开发机器在 python 中安装了所有这些,但我正在他们的网站上开发 alexa 技能
猜你喜欢
  • 2019-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-21
  • 2017-02-01
  • 1970-01-01
相关资源
最近更新 更多