我正在使用 Python 和 Dialogflow V2 API。我想知道如何使用 Python Flask 作为实现来重新提示意图,直到满足条件。我正在填充插槽,然后运行 SQL 查询来验证用户的身份。如果查询返回 false(数据库中不存在身份),那么我想重新运行意图,直到满足条件(找到 userId)。
我试过查看 JS 文档,但找不到任何 Python 文档来完成这一壮举。
我正在使用 Python 和 Dialogflow V2 API。我想知道如何使用 Python Flask 作为实现来重新提示意图,直到满足条件。我正在填充插槽,然后运行 SQL 查询来验证用户的身份。如果查询返回 false(数据库中不存在身份),那么我想重新运行意图,直到满足条件(找到 userId)。
我试过查看 JS 文档,但找不到任何 Python 文档来完成这一壮举。
在履行中,如果条件为假,只需回答相同的问题,如Sorry this username does not exist, please enter the username again.
if not username:
res = json.dumps({
"fulfillmentText": "Sorry this username does not exist, please enter the username again."
})
如果您也有一些意图的输入上下文,那么您也需要从实现中设置他的上下文。
req = request.get_json()
if not username:
res = json.dumps({
"outputContexts": [
{
"name": "{}/contexts/ask-username".format(req['session']),
"lifespanCount": 1,
},
],
"fulfillmentText": "Sorry this username does not exist, please enter the username again."
})
编辑:
要重置参数值,请将参数包含在输出上下文以及 webhook 中,并#context.parameter
在对话框流控制台中设置为参数的默认值。
从上下文设置实体默认值的文档。
"outputContexts": [
{
"name": "projects/${PROJECT_ID}/agent/sessions/${SESSION_ID}/contexts/ask-username",
"lifespanCount": 1,
"parameters": {
"foo": ""
}
}
]
希望能帮助到你。