Я использую dialogflow-выполнение для реализации серверной части моего сервиса на основе диалогового потока. Есть момент, когда я использую метод agent.setFollowupEvent(targetIntent)
, targetIntent
требует, чтобы контекст был сопоставим, давайте назовем его targetContext
.
Я не могу точно сказать, когда он перестал работать (неделя? Месяц, может быть?), Но он работал, и сейчас он не работает (и я не думаю, что изменил что-либо, что могло бы это объяснить). Выполнение targetIntent
никогда не вызывается, и я вижу на консоли диалогового потока, что это потому, что запрос, вызванный setFollowupEvent
, не соответствует ни одному намерению.
Если я уберу требование targetContext
из targetIntent
, оно будет работать.
Я думаю, что я правильно устанавливаю контекст:
agent.context.set(targetContext, null, null);
agent.setFollowupEvent(targetIntent);
Проверка тела ответа, который dialogflow-выполнение отправляет в dialogflow Я вижу:
{
"outputContexts": [{ "name": "projects/<myprojectid>/agent/sessions/<mysessionid>/contexts/<targetContext>" }],
"followupEventInput": { "name": "<targetIntent>", "languageCode": "it" }
}
Контекст есть, и я думаю, что это правильно.
Есть какие-нибудь подсказки? Единственное, о чем я могу думать, - это то, что мы изменили тип агента с свободного на предприятие.