gpt4 book ai didi

python - Alexa:使用 Dialog.Delegate 和 Python 链接 intent

转载 作者:行者123 更新时间:2023-12-04 17:32:49 26 4
gpt4 key购买 nike

我正在寻找一些示例代码,就像本文中描述的 nodejs 一样:

https://developer.amazon.com/blogs/alexa/post/9ffdbddb-948a-4eff-8408-7e210282ed38/intent-chaining-for-alexa-skill

我试图调用另一个 intent 但没有成功

def handle(self, handler_input):
#some code
return handler_input.response_builder.add_directive(DelegateDirective(updated_intent= {"name":"OrderIntent", "confirmationStatus": "None", "slots" : {}}))

最佳答案

我知道这个问题很久以前就有人问过了。我认为发布答案可能对其他人寻找基于 python 的 Alexa 问题有所帮助。
经过大量测试,通过api docs ,并试图自己解决这个问题,我想出了以下方法来让它工作。我的个人问题是我找到了解决方案 here允许当前函数调用另一个 intent 的句柄函数;但是,这不会产生我需要的必需的强制插槽对话框。
我的解决方案如下:

from ask_sdk_model.dialog import delegate_directive
from ask_sdk_model.intent import Intent

def handle(self, handler_input):
speak_output = "We're going to another intent"
return handler_input.response_builder.speak(speak_output).add_directive(delegate_directive.DelegateDirective(updated_intent=Intent(name="<insert_intent_name>"))).response

只需更改 <insert_intent_name>在上面的代码段中,您尝试调用的任何 intent 。当像这样调用它时,它会确保也保持 intent 模型的所有部分完好无损。 IE。如果您有必需的插槽,它们将像最初触发原始 intent 时一样被对待。
注意:在测试期间,我不断遇到错误,指出: [ERROR] AttributeError: 'ResponseFactory' object has no attribute deserialized_types' .我发现这是因为我没有添加 .response到 return 语句的末尾。
它应该允许基于原始 intent 中的设置属性进行 YesIntent 和 NoIntent 转换。
Alexa Output

关于python - Alexa:使用 Dialog.Delegate 和 Python 链接 intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57971699/

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