followupEvent не соответствует ни одному намерению - PullRequest
0 голосов
/ 29 мая 2019

Я использую 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" }
}

Контекст есть, и я думаю, что это правильно. Есть какие-нибудь подсказки? Единственное, о чем я могу думать, - это то, что мы изменили тип агента с свободного на предприятие.

1 Ответ

0 голосов
/ 29 мая 2019

Очевидно, я нашел решение только после того, как задал вопрос ...

Проблема заключалась в продолжительности жизни контекста, я не установил его, теперь он работает с:

                                 |
                                 V
agent.context.set(targetContext, 1, null);
agent.setFollowupEvent(targetIntent);

Таким образом, результат становится:

{
    "outputContexts": [{ "name": "projects/<myprojectid>/agent/sessions/<mysessionid>/contexts/<targetContext>", "lifespanCount": 1 }],
    "followupEventInput": { "name": "<targetIntent>", "languageCode": "it" }
}

Тем не менее, я вполне уверен, что это работало раньше, возможно, не устанавливая значение продолжительности жизни, используемое по умолчанию, равным 1?

...