outputContexts иногда не появляется в queryResult - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть проект агента в Dialogflow v2.И мой код оценивает агента через Web API (я использую код Python без каких-либо библиотек диалоговых потоков).

Чтобы проверить исходное значение сущности, я использую outputContexts в queryResult с помощью detectIntent функции.

Но я обнаружил, что queryResult иногда не содержит outputContexts.Результаты зависят от содержания входного текста.Я использую пользовательские объекты и системные объекты в моем агенте.И я обнаружил, что sys.date сущность иногда не возвращает outputContexts через веб-API.Однако он возвращает outputContexts, когда я тестировал тот же текст ввода через консоль графического интерфейса Dialogflow.

https://cloud.google.com/dialogflow-enterprise/docs/reference/rest/v2beta1/DetectIntentResponse?hl=ja

outputContexts []: object (Context)
Коллекциявыходных контекстов.Если применимо, outputContexts.parameters содержит записи с именем .original, содержащие исходные значения параметров перед запросом.

Обновление 1

Я обнаружил, что outputContexts появляются только тогда, когда некоторые необходимые слоты отсутствуют в диалоге.Например, intentA содержит два обязательных слота.Если я ввожу текст, содержащий только один слот, ответ показывает outputContexts, а если текст включает два слота (все слоты, то есть allRequiredParamsPresent=True), ответ не показывает outputContexts.Это правда?Трудно прочитать эту спецификацию из документа Dialogflow.

Обновление 2

Я нашел хорошее решение для получения исходных значений сущностей из приведенного ниже потока.Чтобы получить исходные значения, мне нужно подготовить специальные объекты для извлечения original данных из произвольных слотов.Это original применимо для системных и пользовательских объектов.

неоднозначность диалогового потока с одинаковыми синонимами для разных значений объекта

1 Ответ

0 голосов
/ 06 августа 2019

Согласно этому документу , если вы включите заполнение слота webhook , вы получите запрос с каждым параметром для каждого пропущенного обязательного параметра.Кроме того, чтобы дополнить ответ , на который вы ссылались , больше нет необходимости добавлять дополнительный параметр original в параметры, параметры outputContext будут включать его .

Вот пример параметров:

Paramters И outputContext:

Context

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