gpt4 book ai didi

python - Alexa 技能立即超时

转载 作者:太空宇宙 更新时间:2023-11-04 02:21:20 26 4
gpt4 key购买 nike

我正在创建一个 Alexa 技能,它本质上是一个问卷。在亚马逊网站上的开发者模拟器中,它在没有超时的情况下运行得相当好。经过研究,我开始意识到大约有一个强制性的 8 秒超时。我还看到在 aws lambda 函数的设置中,可以将超时从默认的三秒一直更改为最多五分钟,这是我在故障排除过程中所做的。然而,这种变化似乎没有效果。

我的问题如下:

在 alexa 应用程序或 echoism.io 上进行测试时(我没有 Alexa 设备,但可以想象这些设备的行为与它类似),Alexa 提出的问题只有在被打断时才能回答。换句话说,假设问题已经问完了。然后,会发出哔哔声,表示用户应该响应。在这种情况下,即使用户输入合理,也不会发生任何事情并且技能会退出。但是,如果在提示期间的任何时候,用户点击了发言按钮并回答了问题,从而中断了提示,那么答案将按照开发人员控制台模拟中的预期正确记录。

有什么可能导致这种情况的想法吗?

请求

{
'version':'1.0',
'session':{
'new':False,
'sessionId':'amzn1.echo-api.session.f55b0102-a3cb-4c1a-9b0c-6ef73f579c69',
'application':{
'applicationId':'amzn1.ask.skill.20852205-3919-4d6a-8a62-cb6f8c6214ef'
},
'user':{
'userId':'amzn1.ask.account.AHVXIGHORW6PSATGYB6KWTZFBJ64Q2XXGRX3KFWWTRV7KLUAYSSR657SD74Z6E5PHXF35R75SZ7GJITERAT3XZ73LRXLR4KH2552NLMAL6WMAK2NQUZQ3EXB6DGOU2BZOTXFTT4UBBQSNNXB4J74U44UNWH6QJCWYBBATIIPE6YLV7W3TP4EYWQBTNTJ3LBVXF2EGFRDYRPTUCA'
}
},
'context':{
'System':{
'application':{
'applicationId':'amzn1.ask.skill.20852205-3919-4d6a-8a62-cb6f8c6214ef'
},
'user':{
'userId':'amzn1.ask.account.AHVXIGHORW6PSATGYB6KWTZFBJ64Q2XXGRX3KFWWTRV7KLUAYSSR657SD74Z6E5PHXF35R75SZ7GJITERAT3XZ73LRXLR4KH2552NLMAL6WMAK2NQUZQ3EXB6DGOU2BZOTXFTT4UBBQSNNXB4J74U44UNWH6QJCWYBBATIIPE6YLV7W3TP4EYWQBTNTJ3LBVXF2EGFRDYRPTUCA'
},
'device':{
'deviceId':'amzn1.ask.device.AHO5K5QILDUNW7BKDBJMLWENV7INXNFAHIAUB6ELHJ66MVMKQUPFT77GEEILVUDLABIN2JNUUQGPCOW2K6FX2EFTVKAZHGYFEFHZOLSZK5SHAQHLUK624DFPDS2FBBR6X4AZTKFLIJNLOCAWVQSLW5K2YJ5PGMGT2JBYXSNJE7GZWFIZC7WYK',
'supportedInterfaces':{

}
},
'apiEndpoint':'https://api.amazonalexa.com',
'apiAccessToken':'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJhdWQiOiJodHRwczovL2FwaS5hbWF6b25hbGV4YS5jb20iLCJpc3MiOiJBbGV4YVNraWxsS2l0Iiwic3ViIjoiYW16bjEuYXNrLnNraWxsLjIwODUyMjA1LTM5MTktNGQ2YS04YTYyLWNiNmY4YzYyMTRlZiIsImV4cCI6MTUzMjk2OTc3NSwiaWF0IjoxNTMyOTY2MTc1LCJuYmYiOjE1MzI5NjYxNzUsInByaXZhdGVDbGFpbXMiOnsiY29uc2VudFRva2VuIjpudWxsLCJkZXZpY2VJZCI6ImFtem4xLmFzay5kZXZpY2UuQUhPNUs1UUlMRFVOVzdCS0RCSk1MV0VOVjdJTlhORkFISUFVQjZFTEhKNjZNVk1LUVVQRlQ3N0dFRUlMVlVETEFCSU4ySk5VVVFHUENPVzJLNkZYMkVGVFZLQVpIR1lGRUZIWk9MU1pLNVNIQVFITFVLNjI0REZQRFMyRkJCUjZYNEFaVEtGTElKTkxPQ0FXVlFTTFc1SzJZSjVQR01HVDJKQllYU05KRTdHWldGSVpDN1dZSyIsInVzZXJJZCI6ImFtem4xLmFzay5hY2NvdW50LkFIVlhJR0hPUlc2UFNBVEdZQjZLV1RaRkJKNjRRMlhYR1JYM0tGV1dUUlY3S0xVQVlTU1I2NTdTRDc0WjZFNVBIWEYzNVI3NVNaN0dKSVRFUkFUM1haNzNMUlhMUjRLSDI1NTJOTE1BTDZXTUFLMk5RVVpRM0VYQjZER09VMkJaT1RYRlRUNFVCQlFTTk5YQjRKNzRVNDRVTldINlFKQ1dZQkJBVElJUEU2WUxWN1czVFA0RVlXUUJUTlRKM0xCVlhGMkVHRlJEWVJQVFVDQSJ9fQ.CPFDpKzKMBq9Dyhlw7S_fIHTkxN2YODIg-T85YMRWMqHQbalCFd2nC1rqOXoIAX-T6TTkKiXpOSsvEBgnERKivzPgXTRFou3dxsXijSyr4-ip2Ouu5rk-9lQ0IfVtnD424Kbezq7UzlSeEqyvblaOw4Yd7JwbTD0EuPUtCaj_pwLZny3i5-NunFdy1ytmGPN3KTsIIBjkpal61Ao_xNGgEYq_t5lOIwtEfx8uzPIO3VXn78IVC37FOEgylX3sWljGoxDyG_dQ36sprXWIdHBU0SvFnYJYntNwFH4i59KB2G3XseIcjtKDT2oN2VGF-eBdeolQ9_V_qWxqgOooYhNHw'
}
},
'request':{
'type':'IntentRequest',
'requestId':'amzn1.echo-api.request.848c8eed-7f47-4e32-a214-e034f03caf54',
'timestamp':'2018-07-30T15:56:15Z',
'locale':'en-US',
'intent':{
'name':'ScheduleCall',
'confirmationStatus':'NONE',
'slots':{
'OMProductName':{
'name':'OMProductName',
'confirmationStatus':'NONE'
},
'DidSymtomsReAppear':{
'name':'DidSymtomsReAppear',
'confirmationStatus':'NONE'
},
'ProvideHCPContactInfo':{
'name':'ProvideHCPContactInfo',
'confirmationStatus':'NONE'
},
'PatientFirstName':{
'name':'PatientFirstName',
'confirmationStatus':'NONE'
},
'AskWhenEventBegun':{
'name':'AskWhenEventBegun',
'confirmationStatus':'NONE'
},
'DidHCPRecommendAnyTreatment':{
'name':'DidHCPRecommendAnyTreatment',
'confirmationStatus':'NONE'
},
'PNursing':{
'name':'PNursing',
'confirmationStatus':'NONE'
},
'PDueDate':{
'name':'PDueDate',
'confirmationStatus':'NONE'
},
'PlanToContinue':{
'name':'PlanToContinue',
'confirmationStatus':'NONE'
},
'HowOftenUseProduct':{
'name':'HowOftenUseProduct',
'confirmationStatus':'NONE'
},
'OMPDose':{
'name':'OMPDose',
'confirmationStatus':'NONE'
},
'DateOfMiscarriage':{
'name':'DateOfMiscarriage',
'confirmationStatus':'NONE'
},
'WhatDateWasPAdmitted':{
'name':'WhatDateWasPAdmitted',
'confirmationStatus':'NONE'
},
'AskIfFirstTime':{
'name':'AskIfFirstTime',
'confirmationStatus':'NONE'
},
'WhenStartUsingProduct':{
'name':'WhenStartUsingProduct',
'confirmationStatus':'NONE'
},
'PAnyMedicalConditions':{
'name':'PAnyMedicalConditions',
'confirmationStatus':'NONE'
},
'DrugNameSQ':{
'name':'DrugNameSQ',
'confirmationStatus':'NONE'
},
'DidPatientReUseProduct':{
'name':'DidPatientReUseProduct',
'confirmationStatus':'NONE'
},
'OtherMedications':{
'name':'OtherMedications',
'confirmationStatus':'NONE'
},
'AskPermission':{
'name':'AskPermission',
'confirmationStatus':'NONE'
},
'ReportedCauseOfDeath':{
'name':'ReportedCauseOfDeath',
'confirmationStatus':'NONE'
},
'OMPFreq':{
'name':'OMPFreq',
'confirmationStatus':'NONE'
},
'PatientInitials':{
'name':'PatientInitials',
'confirmationStatus':'NONE'
},
'PPregnant':{
'name':'PPregnant',
'confirmationStatus':'NONE'
},
'WasPAdmittedToHospital':{
'name':'WasPAdmittedToHospital',
'confirmationStatus':'NONE'
},
'AEMiscarriage':{
'name':'AEMiscarriage',
'confirmationStatus':'NONE'
},
'DidTreatSymptoms':{
'name':'DidTreatSymptoms',
'confirmationStatus':'NONE'
},
'DidPContactHCPAbtSymptoms':{
'name':'DidPContactHCPAbtSymptoms',
'confirmationStatus':'NONE'
},
'PatientsHeight':{
'name':'PatientsHeight',
'confirmationStatus':'NONE'
},
'PChildAE':{
'name':'PChildAE',
'confirmationStatus':'NONE'
},
'AEBirthDefect':{
'name':'AEBirthDefect',
'confirmationStatus':'NONE'
},
'OMPStartTaking':{
'name':'OMPStartTaking',
'confirmationStatus':'NONE'
},
'OMIsItTopical':{
'name':'OMIsItTopical',
'confirmationStatus':'NONE'
},
'IsPatientStillExperiencingSymptoms':{
'name':'IsPatientStillExperiencingSymptoms',
'confirmationStatus':'NONE'
},
'DrugReaction':{
'name':'DrugReaction',
'confirmationStatus':'NONE'
},
'AskLastTimeUsed':{
'name':'AskLastTimeUsed',
'confirmationStatus':'NONE'
},
'PAnyAllergies':{
'name':'PAnyAllergies',
'confirmationStatus':'NONE'
},
'DateOfDeath':{
'name':'DateOfDeath',
'confirmationStatus':'NONE'
},
'ReportedCauseBirthDefect':{
'name':'ReportedCauseBirthDefect',
'confirmationStatus':'NONE'
},
'DescPreviousPtSimilarExperience':{
'name':'DescPreviousPtSimilarExperience',
'confirmationStatus':'NONE'
},
'OMPReason':{
'name':'OMPReason',
'confirmationStatus':'NONE'
},
'AskPatientDrugQtyUse':{
'name':'AskPatientDrugQtyUse',
'confirmationStatus':'NONE'
},
'WhenDidSymptomsEnd':{
'name':'WhenDidSymptomsEnd',
'confirmationStatus':'NONE'
},
'DidYouGoToER':{
'name':'DidYouGoToER',
'confirmationStatus':'NONE'
},
'PatientWeight':{
'name':'PatientWeight',
'confirmationStatus':'NONE'
},
'ReportedCauseMisCarriage':{
'name':'ReportedCauseMisCarriage',
'confirmationStatus':'NONE'
},
'AgeOfPatient':{
'name':'AgeOfPatient',
'confirmationStatus':'NONE'
},
'WhyPUseProduct':{
'name':'WhyPUseProduct',
'confirmationStatus':'NONE'
},
'PhoneNumber':{
'name':'PhoneNumber',
'confirmationStatus':'NONE'
},
'OMPLastTimeUsed':{
'name':'OMPLastTimeUsed',
'confirmationStatus':'NONE'
},
'WhatDidERDoForP':{
'name':'WhatDidERDoForP',
'confirmationStatus':'NONE'
},
'NameOfHospital':{
'name':'NameOfHospital',
'confirmationStatus':'NONE'
},
'DidSymtomsImproveAfterStop':{
'name':'DidSymtomsImproveAfterStop',
'confirmationStatus':'NONE'
},
'AskAnyLabTest':{
'name':'AskAnyLabTest',
'confirmationStatus':'NONE'
},
'AECausedDeath':{
'name':'AECausedDeath',
'confirmationStatus':'NONE'
}
}
},
'dialogState':'STARTED'
}
}

响应

{
'version':'1.0',
'sessionAttributes':{

},
'response':{
'outputSpeech':{
'type':'PlainText',
'text':'Thank you for using the Jane skill. See you next time!'
},
'card':{
'type':'Simple',
'title':'Jane - Thanks',
'content':'Thank you for using the Jane skill. See you next time!'
},
'reprompt':{
'outputSpeech':{
'type':'PlainText',
'text':None
}
},
'shouldEndSession':True
}
}

最佳答案

默认的 Alexa 超时为 8 秒,不可配置。您可以使用 reprompt 通知用户回答。在最初的 8 秒后,reprompt 将被触发,这给了用户另外 8 秒的响应时间。

但是,您可以尝试一些技巧,例如在后台播放一段时间的无声音频以延长此时间。但是您必须在两者之间使用唤醒词“Alexa”来发出命令或回答。

而 Lambda 超时是不同的,它是每个请求到达您的 Lambda 函数的最长执行持续时间。

In the developer simulator on amazon's website, it works reasonably well without timeout.

Alexa 模拟器选项卡中的技能 session 不会像设备那样超时,让您有更多时间在测试时输入您的响应。如果您的技能使 session 保持打开状态,您可以使用“停止”将其关闭。

shouldEndSession

如果您希望 Alexa 开始等待用户响应,响应 JSON 中的此参数必须设置为 false。当你真的想结束 session 时,你应该将它设置为 true

"shouldEndSession": true 

有关响应对象的更多信息 here

关于python - Alexa 技能立即超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51563357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com