Как получить выходной контекст в диалоге? - PullRequest
2 голосов
/ 14 июня 2019

Я создал бота, и он содержит два намерения, каждое намерение имеет 20 последующих намерений, после завершения одного намерения оно автоматически вызывает последующее намерение.Таким образом, проблема заключается в том, что если пользователь ответил на 10 запросов, т.е. до 10 последующих действий, и через некоторое время пользователь хочет продолжить с 11-го последующего намерения.Есть ли возможность сделать это.В настоящее время я сохраняю данные предыдущего разговора пользователя и пытаюсь начать с этой точки разговора, но после начала разговора он автоматически запрашивает 11-й запрос о намерении, а затем снова переходит к намерению по умолчанию-приветствию вместо того, чтобы продолжать с12-е последующее намерение.

Ответы [ 2 ]

1 голос
/ 14 июня 2019

Помимо lifeSpan, который мы установили в контексте, существует также ограничение по времени для контекстов. Через 10 минут срок действия всех контекстов истекает, поэтому в вашем случае это может быть проблемой.
В документации указано, что время ожидания составляет 20 минут, но после многих испытаний было замечено, что время ожидания действительно составляет 10 минут.

Что вы можете сделать, это сохранить контекст в некотором кеше или БД после каждого вызова, и перед вызовом Dialogflow добавьте контекст с вашим запросом из кеша / БД.
Я сделал то же самое, и это работает безупречно.

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

0 голосов
/ 14 июня 2019

Я не знаю, делали ли вы это, но я бы порекомендовал установить продолжительность жизни каждого выходного контекста равным 1. Возможно, вы также захотите программно изменить контекст outpu, если вы используете функцию выполнения. Вы сказали, что уже отслеживаете предыдущую беседу, поэтому я предполагаю, что ее установка программным путем будет для вас жизнеспособным решением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...