Я пытаюсь определить некоторые отношения между значениями сущностей, используя метаданные.
Я загрузил метаданные в значение сущности, используя Watson API v1. Когда я перечисляю сущности через тот же API, я вижу метаданные. Однако мне не удалось получить доступ к метаданным из Watson Assistant.
В качестве теста я изменил значение сущности и проверил через Watson Assistant, что оно было изменено, поэтому я знаю, что работаю с правильным рабочим пространством. Я также проверил сущность с помощью редактора JSON, чтобы убедиться, что она определена, и попытался присвоить сущность переменной контекста.
Я пробовал несколько методов, включая: @Room.building, @Room.metadata.building, entity['Room']?metadata?.building, entity['Room']?.building (все внутри тегов < ?). Использование @Room и entity['Room']?.value правильно возвращает значение объекта. Он обращается к метаданным там, где он терпит неудачу.
Метаданные для построения не должны возвращать значение null, но я либо получаю значение null, либо, в зависимости от того, как я пытаюсь получить значение, исключение SPEL — нет свойства для неопределенного.
К сожалению, в настоящий момент невозможно получить доступ к метаданным, определенным для пользовательских объектов в среде выполнения WA
. metadata
возвращается только при прямом вызове API. Вы можете использовать вызов облачных функций, чтобы получить метаданные в WA
, хотя это тоже не идеально.
Спасибо - этого я и боялся. В некоторых случаях вызов через API может быть быстрее, чем из внешней системы, поэтому, возможно, это решение, если не идеальное.