Повторение намерения диалога до тех пор, пока условие не будет выполнено - PullRequest
0 голосов
/ 29 декабря 2018

Я использую Python и Dialogflow V2 API.Я хотел бы знать, как перепроверять намерение, пока не будет выполнено условие, используя Python Flask в качестве выполнения.Я заполняю слоты, а затем запускаю SQL-запрос для проверки личности пользователя.Если запрос возвращает false (нет идентификатора, который существует в базе данных), то я хотел бы повторно выполнить намерение, пока не будет выполнено условие (найден userId).

Я попытался просмотреть документацию JS, но не может найти какую-либо документацию Python для выполнения подвига.

1 Ответ

0 голосов
/ 29 декабря 2018

В выполнении, если условие ложно, просто ответьте тем же вопросом, как 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": ""
            }
        }
    ]

default value

Надеюсь, это поможет.

...