Диалоговый поток: использовать параметры, которые установлены в выполнении - PullRequest
0 голосов
/ 13 февраля 2020

Я использую Dialogflow с пользовательским сервером в качестве внутреннего сервера, время от времени отправляя JSON для выполнения.

В качестве примера я хочу сделать очень простой вход в мою систему. Для этого у меня есть намерение "session.login", в котором есть один обязательный параметр, а именно имя пользователя: login-intent

Для этого намерения включено выполнение, и мой бэкэнд просто проверяет, данный параметр username существует в базе данных, а затем либо перенаправляется (с помощью события followup) в другое намерение «login-fail», либо «login-success»: {"followupEventInput": {"name": "login-failed", "languageCode": "en"}}.

Это все пока работает, но теперь я просто хочу, чтобы это намерение могло сказать что-то вроде «привет, $ username»: enter image description here

Однако мне не удается это сделать, в качестве параметра имя пользователя, кажется, к тому времени уже нет. Когда я пытаюсь выполнить код, как указано выше, Действия в Google завершаются неудачно, то есть мой бот покидает диалог, и я получаю сообщение об ошибке MalformedResponse expected_inputs[0].input_prompt.rich_initial_prompt: 'rich_response' must contain at least one item.

Я попытался отправить информацию о параметре с моего сервера выполнения, так что мой новый ответ, перенаправляющий меня к цели session.login.success, будет выглядеть так: {'outputContexts': [{'lifespanCount': 5, 'name': 'projects/MY_AGENT/MY_SESSION/contexts/login-incomplete', 'parameters': {'username': 'aron'}}], 'followupEventInput': {'languageCode': 'en', 'name': 'login-success'}}, но это тоже не поможет.

Если у кого-нибудь есть какая-либо помощь в том, как это сделать, было бы здорово , спасибо!

1 Ответ

0 голосов
/ 13 февраля 2020

Сам разобрался.

Во-первых, мне вообще не нужно устанавливать новый параметр, просто нужно использовать в своем ответе параметр # oldcontext.oldparameter, а во-вторых, если один разыменования из контекста, знак доллара больше не нужен:

enter image description here

...