gpt4 book ai didi

python - Alexa Flask Ask Yes/No 响应处理

转载 作者:太空狗 更新时间:2023-10-30 02:39:43 24 4
gpt4 key购买 nike

我正在尝试在 python 中使用 Flask Ask 创建一个简单的 Alexa 技能。

我有一个名为“SearchIntent”的 intent ,带有一个“searchterm”插槽,python 代码如下所示:

@ask.intent("SearchIntent")
def SearchIntent(searchterm):
resList = []
searchterm = searchterm.lower()

for item in somelist:
if item.find(searchterm) != -1:
resList.append(item)


return question("I Found " + str(len(resList)) + ", Do you want me to list them all?")

我想检查用户的 react ,如果他说"is"而不是阅读所有结果:

return statement('\n'.join(resList))

如果用户拒绝,则执行其他操作

类似于:

...

return question("I Found " + str(len(resList)) + ", Do you want me to list them all?")

if "return question" == "yes":
do something
else:
do something else

我不想在 YesIntent 中再次创建搜索功能,是否可以在同一功能中执行类似的操作?

提前致谢!

最佳答案

这在使用 flask ask 的建议方式中是不可能的。调用 return 后,您将离开 SearchIntent() 函数,无法检查答案或运行其他代码。
然而,你仍然可以让它工作:在用户回答你的问题后,一个新的 intent 被发送并且 flask-ask 调用相应的函数。按照@user3872094 的建议,通过使用 session 属性,您可以在此新函数中处理您的searchterm。 session 属性用于在不同 intent 请求之间的 session 期间保留用户输入。
检查这个最小的例子:

@ask.intent("SearchIntent")
def SearchIntent(searchterm):
session.attributes['term'] = searchterm
return question("I understood {}. Is that correct?".format(searchterm))

@ask.intent('AMAZON.YesIntent')
def yes_intent():
term = session.attributes['term']
return statement("Ok. So your word really was {}.".format(term))

@ask.intent('AMAZON.NoIntent')
def no_intent():
return statement("I am sorry I got it wrong.")

将 Amazon Yes 和 No intent 添加到您的 intent_schema:

{
"intents": [
{
"intent": "SearchIntent",
"slots": [{
"name": "searchterm",
"type": "AMAZON.LITERAL"
}]
},{
"intent": "AMAZON.NoIntent"
}, {
"intent": "AMAZON.YesIntent"
}
]
}

关于python - Alexa Flask Ask Yes/No 响应处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43664060/

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