gpt4 book ai didi

alexa - Alexa 如何接受仅限插槽的话语?

转载 作者:行者123 更新时间:2023-12-01 04:44:22 26 4
gpt4 key购买 nike

我正在尝试编写我的第一个 Alexa 技能,但应用程序流程有点困惑,甚至阅读了有关对话委托(delegate)等的所有文档。我真的很喜欢一些建议。

我追求的流量

"Alexa, start Movietime Quiz."

Welcome to Movietime Quiz. Before we begin, what team are you on: red or blue?

"Blue."

Blue was always the best team. Question 1: which of these films was not directed by Alfred Hitchcock? A: Vertigo, B: Rope, C: Happy Gilmore.

"C."

Correct! 10 points to the blue team. Question 2...



在您想知道为什么团队需要参与其中之前,这是一个简化的示例,以最短、最清晰的方式说明我的问题。

我的直觉/天真的方法

让最初的启动请求处理程序说欢迎和什么团队,然后有两个 intent 。第一个显然是 AnswerQuestionIntent,它监听“A”、“B”、“C”或“D”。第二个是 SetTeamIntent,它监听“红色”或“蓝色”。

我会有一个包含约 100 个琐事问题的数组。游戏开始时,将 session 属性'currentQuestion'设置为0。在AnswerQuestionIntent中,处理用户的正确/错误响应后,增加该数字,如果为9,则结束游戏;如果没有,问一个随机的问题。

我的问题

我实际上无法弄清楚如何让 Alexa 使用单个插槽作为话语。我的意思是,我想要一个“团队”插槽类型(值“红色”和“蓝色”)和一个“答案”插槽类型(值“A”、“B”、“C”和“D” )。 SetTeamIntent 应该由话语 {team} 激活和 AnswerQuestionIntent 由 {answer} ,但是当我尝试设置时,developer.amazon.com 技能生成器给了我“错误请求”错误。

我尝试查看 GitHub 上的 SDK 示例,但我有点迷茫,因为我在学习时一直在使用 GUI 技能构建器,并且不确定它是如何映射的——无论如何,还不足以阅读解决方案。

最佳答案

有两种不同的方法来处理这个问题。

1. 带对话模型的 ElicitSlot 指令

启动技能并触发 intent 后,您可以回复 elicitslot directive .

交互模型 :您定义一个槽和一个 intent ,例如 PlayGameIntent 中的 {team} 和 {answer}。提供触发 intent 的话语,例如“开始游戏”。

技能 :触发​​ PlayGameIntent 后。返回带有引出槽指令的响应。类似于以下内容。

{
"version": "1.0",
"sessionAttributes": {},
"response": {
"outputSpeech": {
"type": "PlainText",
"text": "What team are you on? Blue or Red? "
},
"shouldEndSession": false,
"directives": [
{
"type": "Dialog.ElicitSlot",
"slotToElicit": "team",
"updatedIntent": {
"name": "PlayGameIntent",
"confirmationStatus": "NONE",
"slots": {
"team": {
"name": "team",
"confirmationStatus": "NONE"
},
"answer": {
"name": "answer",
"confirmationStatus": "NONE"
}
}
}
}
]
}
}

用户现在可以为插槽 {team} 提供答案,并且 Alexa 为 PlayGameIntent 发送另一个 IntentRequest。在游戏结束之前,您可以根据需要多次重复请求。

2. 没有对话模型的自定义 intent

如果不使用对话模型,您就不会受到只有时隙话语的限制。您可以按照您的描述构建您的 intent 模式。如果您离开 Skill Builder Beta,您将自动禁用交互模型的对话模型。

然后,您可以使用如下示例话语构建 intent 模式:
AnswerQuestionIntent {answer}
SetTeamIntent {team}

关于alexa - Alexa 如何接受仅限插槽的话语?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48024733/

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