gpt4 book ai didi

python - 回答"is"或“否”后如何回到 intent

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

我的技能是让你可以开始新游戏。不过,如果用户正在 session 中玩游戏或想要开始新游戏,我会在 game_in_progress 中放置一个 session 变量。它显示,“游戏正在进行中,您想继续吗?”

如何将其映射回另一个 intent ,或者检查Yes Intent(如果它来自某个 intent )?

这是我所拥有的

@sb.request_handler(can_handle_func=is_intent_name("AMAZON.StartOverIntent"))
def start_over_intent_handler(handler_input):
# Check if game in play
session_attr = handler_input.attributes_manager.session_attributes

game_in_progress = int(session_attr['game_in_progress'])

if game_in_progress == 1:
speech_text = f"""
You have a game in progress would you like to continue?
"""

请记住,我的 YES intent 稍后将用于其他内容。我如何确定我是从开始新游戏的 intent 中特意说"is"的?

我在网上查了一下,有些人设置了一个状态,然后用 state != 或 == {YourState} 声明另一个 YES intent - 我不知道这是否有效,甚至不知道正确的做法。

我在 Python 中使用装饰器来完成此操作。

最佳答案

每当用户说"is"时,

AMAZON.YesIntent就会被触发,并且可能还有其他问题可以有“是”一个答案。作为开发人员,您可以控制提出/给出哪些问题或回答。使用 sessionAttributes 跟踪问题/回答将帮助您找出用户所说的"is"。

例如:使用 session 属性“question_type”

Alexa: "There is a game in progress, would you like to continue?"  
[question_type = “continue_session”]
User: “yes”

现在,当触发 AMAZON.YesIntent 处理程序时,您可以检查 question_type sessionAttribute 以在后端采取适当的操作。

简而言之,答案是有效地使用 sessionAttirbutes 来确定对话的上下文/状态。

关于python - 回答"is"或“否”后如何回到 intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54263021/

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