代码之家  ›  专栏  ›  技术社区  ›  Nikko

Alexa只调用lauchrequest而不是intent

  •  1
  • Nikko  · 技术社区  · 6 年前

    嗨,我在下面的链接中使用python for alexa学习事实技能教程: https://github.com/alexa/skill-sample-python-fact

    我的问题是Alexa只启动了“launchRequest”

    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 回复  |  直到 6 年前
        1
  •  0
  •   Nikko    6 年前