我经历了Alexa Skills Kit的一个快速启动,创建了我的第一个Alexa技能,现在我正在尝试向后工作,通过我的文本编辑器设置开发项目并通过ASK CLI进行部署。但似乎ask-cli无法找到我的交互模型,因为当我尝试部署时,我得到以下输出:
$ ask deploy
--------------------更新技能项目--------------------
技能ID:amzn1.ask.skill.6eebd8dd-2062-4666-9040-34d103d114c7
技能部署完成。
调用更新模型错误。
错误代码:400 {
"消息":"交互模型无效。","违规":[ { " message":" null:HV000116:要验证的对象不能为空。" }]}
当我使用--debug标志运行时,它看起来像交互模型作为空对象发送。我将下面的完整输出粘贴,但据我所知,我认为这是重要的部分:
[2017-12-30T22:21:56.535Z] - DEBUG - UPDATE-MODEL request-id: d9357bc2-edaf-11e7-85ba-550bb02f81a7 POST https://api.amazonalexa.com/v0/skills/amzn1.ask.skill.6eebd8dd-2062-4666-9040-34d103d114c7/interactionModel/locales/en-US 状态代码:400 Bad Request
请求标题:{" User-Agent":" ask-cli / 1.0.0-beta.8 节点/ V9.3.0""授权":" AtzA的| IwEBIGhOiYYsONdFRcrE8Aapsyzk_O798yl_9FmRyO8BiXdsgo8tjYgq6eIB9323UavV2_U5PA2TkRYTq3Tt9Ui69n-XWyorWgRFpkm0ahl9uBWq5diTyQQIyGTXc_sgJQcjx3_mKiJ-ku5y_CR7cFOg6apqOTMyu4BO6pcC8ejydsne5GfqkbEqDHlwa44cQyxOw9Ir97CB0-WdleRI-IJpsyCoQvZ11Ah2pt_K-PZRtdqE5nUG9tQx49_v1N5apGrNyNxKAICAnJZ0aH3gE1ruAlZc4BUNn7SBM6-sSC1pppSTNVX_8MfwoRfVsdZ-cPbjJIxM3wftjUAah0wPdC-yeEVf-P2JOpTAscLpT-zEzzkEGiZrD1W61YyE0SH04KXqoOS3sgdWYrOEomIQg1TbcOlYvskbCqnOnkrHMGikgaUbWCF7YOTQrE1s0zOrIOujHJez7iIMc0WhUI4LkGdhHttSxxzRHnL3t5JEhOHC0DkLDaRp6ESPs6U4n7hfYtE2ktJDTs_nql39xfDqadfziEPOurEpA3MffHN20mGx3w-8jpIx_pW4mdo41Vi33hHHSa-1l9fbsKRKef2MrI91oNUY9eI7HXNF6Exi3OFR2oFP29TsgA25ZNBUcrEAM1OxAVI& #34;"接受":"应用/ JSON""内容类型":"应用/ JSON""内容长度":2}
请求正文:{}
这是我的项目结构:
├── .ask
│ └── config
├── .gitignore
├── lambda
│ ├── custom
│ │ ├── node_modules
│ │ ├── package-lock.json
│ │ ├── package.json
│ │ ├── src
│ │ └── test
├── models
│ └── en-US.json
└── skill.json
ask-deploy --debug
的完整输出如下。有人为什么不能验证交互模型?
-------------------- Debug Mode -------------------- [2017-12- 30T22:21:55.649Z] - DEBUG - UPDATE-SKILL请求ID: d89914a8-edaf-11e7-85ba-550bb02f81a7 PUT https://api.amazonalexa.com/v0/skills/amzn1.ask.skill.6eebd8dd-2062-4666-9040-34d103d114c7 状态代码:202接受
请求标题:{" User-Agent":" ask-cli / 1.0.0-beta.8 节点/ V9.3.0""授权":" AtzA的| IwEBIGhOiYYsONdFRcrE8Aapsyzk_O798yl_9FmRyO8BiXdsgo8tjYgq6eIB9323UavV2_U5PA2TkRYTq3Tt9Ui69n-XWyorWgRFpkm0ahl9uBWq5diTyQQIyGTXc_sgJQcjx3_mKiJ-ku5y_CR7cFOg6apqOTMyu4BO6pcC8ejydsne5GfqkbEqDHlwa44cQyxOw9Ir97CB0-WdleRI-IJpsyCoQvZ11Ah2pt_K-PZRtdqE5nUG9tQx49_v1N5apGrNyNxKAICAnJZ0aH3gE1ruAlZc4BUNn7SBM6-sSC1pppSTNVX_8MfwoRfVsdZ-cPbjJIxM3wftjUAah0wPdC-yeEVf-P2JOpTAscLpT-zEzzkEGiZrD1W61YyE0SH04KXqoOS3sgdWYrOEomIQg1TbcOlYvskbCqnOnkrHMGikgaUbWCF7YOTQrE1s0zOrIOujHJez7iIMc0WhUI4LkGdhHttSxxzRHnL3t5JEhOHC0DkLDaRp6ESPs6U4n7hfYtE2ktJDTs_nql39xfDqadfziEPOurEpA3MffHN20mGx3w-8jpIx_pW4mdo41Vi33hHHSa-1l9fbsKRKef2MrI91oNUY9eI7HXNF6Exi3OFR2oFP29TsgA25ZNBUcrEAM1OxAVI& #34;"接受":"应用/ JSON""内容类型":"应用/ JSON""内容长度":1768}
申请机构: {" skillManifest" {" publishingInformation" {"区域设置" {"的en-US" {"总结&#34 ;:"我的 摘要"," examplePhrases":["有","","真实","短语" , "此处&#34],"关键字":["选择""随机&#34],"名称":&# 34;选择 之间"" smallIconUri":" https://api.amazonalexa.com/v0/skills/amzn1.ask.skill.6eebd8dd-2062-4666-9040-34d103d114c7/images/eyJkIjoiQjRvNFltSDdCQU54Y25DanlKR1ArVFhGZW1ZL1I3NjdpRldXQXltZ2FUVmNZblV6WUE1eU4veVduMHF2WEY2bXdiUmlIZkJ1SFVNbEh0Q3A3K1g4SDc1WnczdDNqR3duT0JubnBhZVhBTkF0UFMzeVl4Q3k4eFQxTlRxeXc0dGYiLCJpdiI6IlZHN1gyb0FqQ2VjMnBEWGtMZ2J0SEE9PSIsInYiOjF9""描述":"我的 描述"" largeIconUri":" https://api.amazonalexa.com/v0/skills/amzn1.ask.skill.6eebd8dd-2062-4666-9040-34d103d114c7/images/eyJkIjoiTkQ5OWd2RkN3UDhoWlJ1eFF5TDNtZytHbStkbFNYcHhqUGNDSG04RjREVUhIVTRVQkpxbjVyTFVWaHFVRDFPbDRtYnlWQUZCMFJRQnpEczRFQnlOckF0N05yZVZDSnhRUHIzZmFoWWRTRjRqZHNIUjUxV3dMekpNZzl0OFhzVFdoQXV0RERPQTBsV3d3b05xVnYxODZRPT0iLCJpdiI6IiszVG9QQ1o2ajA2ZThPVzIxTUh4MXc9PSIsInYiOjF9"}}," isAvailableWorldwide":真," testingInstructions&#34 ;: "没有 特别""类别":"新奇"" distributionCountries":[]}," API和#34; {"定制" {"端点" {" URI":" ARN:AWS:拉姆达:US-西-2:760655967349:功能:randomChoiceAlexaSkill"} }}," manifestVersion":" 1.0""权限":[]," privacyAndCompliance" {" allowsPurchases&# 34;:假," isExportCompliant":真," containsAds":假," isChildDirected":假," usesPersonalInfo":假}} }
回复标题:{"服务器":"服务器","日期":"周六,2017年12月30日22:21:56 GMT""内容类型":"应用/ JSON""内容长度":" 2"&#34 ;连接":"靠近"" X-AMZN-的requestId":" d89914a8-EDAF-11e7-85ba-550bb02f81a7"" X -amz最新":"星期六, 2017年12月30日22:21:56 GMT""位置":" /v0/skills/amzn1.ask.skill.6eebd8dd-2062-4666-9040-34d103d114c7/status","变化&# 34;:"接受编码,用户代理"}
回复正文:{} ---------------------------------------- [2017-12-30T22:21:55.941 Z] - DEBUG - GET-SKILL-STATUS请求ID: d8d4977b-edaf-11e7-a1e2-2df47a70d226 GET https://api.amazonalexa.com/v0/skills/amzn1.ask.skill.6eebd8dd-2062-4666-9040-34d103d114c7/status 状态代码:200 OK
请求标题:{" User-Agent":" ask-cli / 1.0.0-beta.8 节点/ V9.3.0""授权":" AtzA的| IwEBIGhOiYYsONdFRcrE8Aapsyzk_O798yl_9FmRyO8BiXdsgo8tjYgq6eIB9323UavV2_U5PA2TkRYTq3Tt9Ui69n-XWyorWgRFpkm0ahl9uBWq5diTyQQIyGTXc_sgJQcjx3_mKiJ-ku5y_CR7cFOg6apqOTMyu4BO6pcC8ejydsne5GfqkbEqDHlwa44cQyxOw9Ir97CB0-WdleRI-IJpsyCoQvZ11Ah2pt_K-PZRtdqE5nUG9tQx49_v1N5apGrNyNxKAICAnJZ0aH3gE1ruAlZc4BUNn7SBM6-sSC1pppSTNVX_8MfwoRfVsdZ-cPbjJIxM3wftjUAah0wPdC-yeEVf-P2JOpTAscLpT-zEzzkEGiZrD1W61YyE0SH04KXqoOS3sgdWYrOEomIQg1TbcOlYvskbCqnOnkrHMGikgaUbWCF7YOTQrE1s0zOrIOujHJez7iIMc0WhUI4LkGdhHttSxxzRHnL3t5JEhOHC0DkLDaRp6ESPs6U4n7hfYtE2ktJDTs_nql39xfDqadfziEPOurEpA3MffHN20mGx3w-8jpIx_pW4mdo41Vi33hHHSa-1l9fbsKRKef2MrI91oNUY9eI7HXNF6Exi3OFR2oFP29TsgA25ZNBUcrEAM1OxAVI& #34;}
回复标题:{"服务器":"服务器","日期":"周六,2017年12月30日22:21:57 GMT""内容类型":"应用/ JSON""内容长度":" 87"&#34 ;连接":"靠近"" X-AMZN-的requestId":" d8d4977b-EDAF-11E7-a1e2-2df47a70d226"" X -amz最新":"星期六, 2017年12月30日22:21:57 GMT","变化":"接受编码,用户代理"}
回应机构: " {\"清单\":{\"上次更改时间\":{\"时间\":\" 2017- 12-30T22:21:56.889Z \" \"状态\":\"成功\"}}}" ---------------------------------------- [2017-12-30T22:21:56.292 Z] - DEBUG - GET-MODEL-STATUS请求ID: d9020ff6-edaf-11e7-b4f4-39c6476092ba GET https://api.amazonalexa.com/v0/skills/amzn1.ask.skill.6eebd8dd-2062-4666-9040-34d103d114c7/interactionModel/locales/en-US/status 状态代码:200 OK
请求标题:{" User-Agent":" ask-cli / 1.0.0-beta.8 节点/ V9.3.0""授权":" AtzA的| IwEBIGhOiYYsONdFRcrE8Aapsyzk_O798yl_9FmRyO8BiXdsgo8tjYgq6eIB9323UavV2_U5PA2TkRYTq3Tt9Ui69n-XWyorWgRFpkm0ahl9uBWq5diTyQQIyGTXc_sgJQcjx3_mKiJ-ku5y_CR7cFOg6apqOTMyu4BO6pcC8ejydsne5GfqkbEqDHlwa44cQyxOw9Ir97CB0-WdleRI-IJpsyCoQvZ11Ah2pt_K-PZRtdqE5nUG9tQx49_v1N5apGrNyNxKAICAnJZ0aH3gE1ruAlZc4BUNn7SBM6-sSC1pppSTNVX_8MfwoRfVsdZ-cPbjJIxM3wftjUAah0wPdC-yeEVf-P2JOpTAscLpT-zEzzkEGiZrD1W61YyE0SH04KXqoOS3sgdWYrOEomIQg1TbcOlYvskbCqnOnkrHMGikgaUbWCF7YOTQrE1s0zOrIOujHJez7iIMc0WhUI4LkGdhHttSxxzRHnL3t5JEhOHC0DkLDaRp6ESPs6U4n7hfYtE2ktJDTs_nql39xfDqadfziEPOurEpA3MffHN20mGx3w-8jpIx_pW4mdo41Vi33hHHSa-1l9fbsKRKef2MrI91oNUY9eI7HXNF6Exi3OFR2oFP29TsgA25ZNBUcrEAM1OxAVI& #34;}
回复标题:{"服务器":"服务器","日期":"周六,2017年12月30日22:21:57 GMT""内容类型":"应用/ JSON""内容长度":" 20"&#34 ;连接":"靠近"" X-AMZN-的requestId":" d9020ff6-EDAF-11E7-b4f4-39c6476092ba"" X -amz最新":"星期六, 2017年12月30日22:21:57 GMT","变化":"接受编码,用户代理"}
回复正文:" {\" status \":\" SUCCESS \"}" ---------------------------------------- [2017-12-30T22:21:56.535 Z] - DEBUG - UPDATE-MODEL request-id:d9357bc2-edaf-11e7-85ba-550bb02f81a7 POST https://api.amazonalexa.com/v0/skills/amzn1.ask.skill.6eebd8dd-2062-4666-9040-34d103d114c7/interactionModel/locales/en-US 状态代码:400 Bad Request
请求标题:{" User-Agent":" ask-cli / 1.0.0-beta.8 节点/ V9.3.0""授权":" AtzA的| IwEBIGhOiYYsONdFRcrE8Aapsyzk_O798yl_9FmRyO8BiXdsgo8tjYgq6eIB9323UavV2_U5PA2TkRYTq3Tt9Ui69n-XWyorWgRFpkm0ahl9uBWq5diTyQQIyGTXc_sgJQcjx3_mKiJ-ku5y_CR7cFOg6apqOTMyu4BO6pcC8ejydsne5GfqkbEqDHlwa44cQyxOw9Ir97CB0-WdleRI-IJpsyCoQvZ11Ah2pt_K-PZRtdqE5nUG9tQx49_v1N5apGrNyNxKAICAnJZ0aH3gE1ruAlZc4BUNn7SBM6-sSC1pppSTNVX_8MfwoRfVsdZ-cPbjJIxM3wftjUAah0wPdC-yeEVf-P2JOpTAscLpT-zEzzkEGiZrD1W61YyE0SH04KXqoOS3sgdWYrOEomIQg1TbcOlYvskbCqnOnkrHMGikgaUbWCF7YOTQrE1s0zOrIOujHJez7iIMc0WhUI4LkGdhHttSxxzRHnL3t5JEhOHC0DkLDaRp6ESPs6U4n7hfYtE2ktJDTs_nql39xfDqadfziEPOurEpA3MffHN20mGx3w-8jpIx_pW4mdo41Vi33hHHSa-1l9fbsKRKef2MrI91oNUY9eI7HXNF6Exi3OFR2oFP29TsgA25ZNBUcrEAM1OxAVI& #34;"接受":"应用/ JSON""内容类型":"应用/ JSON""内容长度":2}
请求正文:{}
回复标题:{"服务器":"服务器","日期":"周六,2017年12月30日22:21:57 GMT""内容类型":"应用/ JSON""内容长度":" 139"&#34 ;连接":"靠近"" X-AMZN-的requestId":" d9357bc2-EDAF-11e7-85ba-550bb02f81a7"" X -amz最新":"星期六, 2017年12月30日22:21:57 GMT"" X-AMZN-ERRORTYPE":" BadRequestException:http://internal.amazon.com/coral/com.amazon.alexa.skillmanagement/""变化":"接受编码,用户代理"}
回复正文:{"消息":"交互模型不是 有效。","违规":[{"消息":" null:HV000116:要成为的对象 验证不得为空。"}]}
答案 0 :(得分:1)
在Alexa开发者控制台中更新交互模型并直接从JSON编辑器复制JSON后,我遇到了这个问题。 应该工作,JSON看起来完整,并且正确显示,但出于某种原因要求部署barfed。
我解决了它:
ask api get-model -s <skillId> -l en-US > models/en-US.json
这使用API来提取当前部署的模型,并写入指定的文件。
答案 1 :(得分:0)
我的猜测是en-US.JSON出了问题,但我不确定。
如果您正在尝试将工作技能转换为使用CLI,那么我建议您先从工作技能开始,然后使用&#34;问克隆&#34;将其下载到CLI所需的格式。
然后,您应该能够完全按照下载的方式部署技能。检查所有内容到Git,然后继续使用下载的副本。如果您的更改破坏了某些内容,则可以恢复到工作级别等。
答案 2 :(得分:0)
我在编辑交互模型文件(en-US.json)后收到此错误
我正在使用Web界面中部署的Alexa技能,并发现我的编辑那里可以导出到json文件,该文件看起来与我的Skills Kit项目结构相同。所以我用生成的模型替换了我的en-US.json文件的内容。但是在部署时我收到了这个错误:
{“message”:“交互模型不是 有效。“,”违规“:[{”message“:”null:HV000116:要成为的对象 validated不能为null。“}]}
事实证明,生成的模型需要进行微调,以使其与ASK CLI正在寻找的交互模型文件兼容。生成的模型的结构如下:
{
"languageModel": {
"invocationName": "yo mamma",
"intents": [
{
"name": "AMAZON.CancelIntent",
"slots": [],
"samples": []
},
{
"name": "AMAZON.HelpIntent",
"slots": [],
"samples": []
},
{
"name": "AMAZON.StopIntent",
"slots": [],
"samples": []
}
]
}
}
但是en-US.json模型结构如下所示:
{
"interactionModel": {
"languageModel": {
"invocationName": "yo mama",
"intents": [
{
"name": "AMAZON.CancelIntent",
"slots": [],
"samples": []
},
{
"name": "AMAZON.HelpIntent",
"slots": [],
"samples": []
},
{
"name": "AMAZON.StopIntent",
"slots": [],
"samples": []
}
]
}
}
}
我只是将我的语言模型包装在另一个具有“interactionModel”属性的对象中,并且模型已成功验证和部署。