当前位置: 首页 > 知识库问答 >
问题:

Alexa只调用LauchRequest,不调用意图

和嘉澍
2023-03-14

大家好,我在下面的链接中介绍了使用Python for Alexa的事实技能教程:https://github.com/alexa/skill-sample-python-fact

我的问题是Alexa只启动“启动请求”

def lambda_handler(event, context):
    # App entry point 

    #print(event)

    if event['session']['new']:
        on_session_started()

    if event['request']['type'] == "LaunchRequest":
        return on_launch(event['request'])
    elif event['request']['type'] == "IntentRequest":
        return on_intent(event['request'], event['session'])
    elif event['request']['type'] == "SessionEndedRequest":
        return on_session_ended()

但它不执行"GetNewFactIntent"的"IntentRequest"

def on_intent(request, session):
    """ called on receipt of an Intent  """

    intent_name = request['intent']['name']

    # process the intents
    if intent_name == "GetNewFactIntent":
    return get_fact_response()
    elif intent_name == "AMAZON.HelpIntent":
        return get_help_response()
    elif intent_name == "AMAZON.StopIntent":
        return get_stop_response()
    elif intent_name == "AMAZON.CancelIntent":
        return get_stop_response()
    elif intent_name == "AMAZON.FallbackIntent":
        return get_fallback_response()
    else:
        print("invalid Intent reply with help")
        return get_help_response()

正因为如此,只有调用名称在调用函数时有效,并且来自“GetNewFactIntent”的示例语句不调用函数。我的猜测是,它有关于传递给AWS Lambda的JSON的问题。它没有得到“意图请求”或者它找不到

intent_name = request['intent']['name']

JSON模式:

{
    "interactionModel": {
        "languageModel": {
            "invocationName": "space facts",
            "intents": [
                {
                    "name": "AMAZON.CancelIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.HelpIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.StopIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.FallbackIntent",
                    "samples": []
                },
                {
                    "name": "GetNewFactIntent",
                    "slots": [],
                    "samples": [
                        "a fact",
                        "a space fact",
                        "tell me a fact",
                        "tell me a space fact",
                        "give me a fact",
                        "give me a space fact",
                        "tell me trivia",
                        "tell me a space trivia",
                        "give me trivia",
                        "give me a space trivia",
                        "give me some information",
                        "give me some space information",
                        "tell me something",
                        "give me something"
                    ]
                }
            ],
            "types": []
        }
    }
}

共有1个答案

敖淮晨
2023-03-14

我的问题是我没有告诉我的调用名称。所以教训是:在意图之前,先调用。

 类似资料:
  • 我刚刚创建了我的第一个(定制)蒸馏器。我上传了一个包含索引的zip文件,在Lambda中设置了这个函数。js和所有必需的代码,包括node_模块和基本的Alexa技能,我的孩子(根据教程)。我确保我压缩了文件和子文件夹,而不是文件夹本身(正如我所见,这是导致类似错误的常见原因),但当我用一个示例话语在网络工具中创建技能和测试时,我得到: 无法调用远程终结点,或者它返回的响应无效。 我不知道如何调试

  • 我有多个具有多个选择限制的无线电组,一个是by name属性,另一个是jQuery。对于每个无线电组,我在更改时将checked属性设置为false,这样每个组只能检查一个无线电。 HTML jQuery 这只适用于第一组,有什么建议吗? 编辑: 使用类选择器而不是ID: HTML jQuery

  • 我正在测试的方法是: 为什么这给了我断言错误: java.lang.AssertionError:意外的方法调用player.sendMessage(“§9 TEST Player§B is afk.[TEST REASON]”):player.sendMessage(“§9 TEST Player§B is afk.[TEST REASON]”):预期:1,实际:0在org.easyMock.i

  • 我在应用程序中为2个不同的包配置了Spring AOP来记录异常。每个封装有2种不同的配置: } method2中出现了一些异常,它调用了logExceptionXYZ方法,我们将它包装在一个泛型异常中,比如ExceptionXYZ,并进一步抛出它。 但在此之后,logExceptionABC方法也会被调用并抛出一个泛型异常,例如ExceptionABC。

  • 问题内容: 我目前正在将GCM通知实施到我的应用中。 我遇到的问题是实现中的方法未被调用。我从GCM服务器收到的数据很好,因为它会自动生成一个通知(我希望使用该方法将其替换为我自己的通知),但是之后,我的所有日​​志调用都不会打印在日志中。 从服务器发送到GCM服务器的JSON AndroidManifest.xml(仅适用于GCM部分) GcmListenerService(只是一个快速打印,以

  • 问题内容: 我从以下代码调用函数: 我的功能是 我怎么只能拨打一次ajax电话?所以当内容被加载并且页面不被拒绝时不加载ajax吗?我尝试做布尔变量,但什么也没做,我支持这是因为我调用了everytime函数。请给我一个想法。 谢谢 问题答案: 当您想对该事件做某事时。 确定何时已加载数据。 或在您想一次调用时使用。 参考