1

我正在使用 Python 和 Dialogflow V2 API。我想知道如何使用 Python Flask 作为实现来重新提示意图,直到满足条件。我正在填充插槽,然后运行 ​​SQL 查询来验证用户的身份。如果查询返回 false(数据库中不存在身份),那么我想重新运行意图,直到满足条件(找到 userId)。

我试过查看 JS 文档,但找不到任何 Python 文档来完成这一壮举。

4

1 回答 1

1

在履行中,如果条件为假,只需回答相同的问题,如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": ""
            }
        }
    ]

默认值

希望能帮助到你。

于 2018-12-29T06:57:06.100 回答