Я использую Dialogflow с пользовательским сервером в качестве внутреннего сервера, время от времени отправляя JSON для выполнения.
В качестве примера я хочу сделать очень простой вход в мою систему. Для этого у меня есть намерение "session.login", в котором есть один обязательный параметр, а именно имя пользователя:
Для этого намерения включено выполнение, и мой бэкэнд просто проверяет, данный параметр username
существует в базе данных, а затем либо перенаправляется (с помощью события followup) в другое намерение «login-fail», либо «login-success»: {"followupEventInput": {"name": "login-failed", "languageCode": "en"}}
.
Это все пока работает, но теперь я просто хочу, чтобы это намерение могло сказать что-то вроде «привет, $ username»:
Однако мне не удается это сделать, в качестве параметра имя пользователя, кажется, к тому времени уже нет. Когда я пытаюсь выполнить код, как указано выше, Действия в 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'}}
, но это тоже не поможет.
Если у кого-нибудь есть какая-либо помощь в том, как это сделать, было бы здорово , спасибо!