Как передать объект JSON в IBM Watson Assistant через действие? - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть экземпляр Watson Assistant, который я хочу использовать для предоставления услуг расчета для пользователей моего сайта. Я следовал документу здесь , и служба, похоже, правильно подбирает слоты для каждого бита информации, а также правильно тестирует методы моего клиентского приложения. Я не уверен, почему я не могу получить доступ к ответу, отправленному моим методом на узел.

Вот мой клиентский метод:

function fraisCar(action){
    if (action.puissance <= 3) {
      if(action.kilometres <= 5000){
        var bareme = action.kilometres * 0.41;
      }
      if(action.kilometres > 5000 && action.kilometres <= 20000){
        var bareme = (action.kilometres * 0.245) + 824
      }
      if(action.kilometres > 20000){
        var bareme = (action.kilometres * 0.286)
      }
    }
    
   if (action.puissance == 4) {
     if(action.kilometres <= 5000){
        var bareme = action.kilometres * 0.493;
      }
      if(action.kilometres > 5000 && action.kilometres <= 20000){
        var bareme = (action.kilometres * 0.277) + 1082
      }
      if(action.kilometres > 20000){
        var bareme = (action.kilometres * 0.332)
      }
   }
   if (action.puissance == 5) {
     if(action.kilometres <= 5000){
        var bareme = action.kilometres * 0.543;
      }
      if(action.kilometres > 5000 && action.kilometres <= 20000){
        var bareme = (action.kilometres * 0.305) + 1188
      }
      if(action.kilometres > 20000){
        var bareme = (action.kilometres * 0.364)
      }
   }
    if (action.puissance == 5) {
     if(action.kilometres <= 5000){
        var bareme = action.kilometres * 0.543;
      }
      if(action.kilometres > 5000 && action.kilometres <= 20000){
        var bareme = (action.kilometres * 0.305) + 1188
      }
      if(action.kilometres > 20000){
        var bareme = (action.kilometres * 0.364)
      }
   }
   if (action.puissance == 6) {
     if(action.kilometres <= 5000){
        var bareme = action.kilometres * 0.568;
      }
      if(action.kilometres > 5000 && action.kilometres <= 20000){
        var bareme = (action.kilometres * 0.32) + 1244
      }
      if(action.kilometres > 20000){
        var bareme = (action.kilometres * 0.382)
      }
   }
   if (action.puissance > 6) {
     if(action.kilometres <= 5000){
        var bareme = action.kilometres * 0.595;
      }
      if(action.kilometres > 5000 && action.kilometres <= 20000){
        var bareme = (action.kilometres * 0.337) + 1288
      }
      if(action.kilometres > 20000){
        var bareme = (action.kilometres * 0.401)
      }
   }
   var frais = bareme + action.fraisGarage + action.fraisPeage + action.fraisEmprunt;
   return {frais: frais};
}

и вот мой редактор JSON в Watson.

Я попытался перейти к дочернему узлу сразу после выполнения действия, чтобы предотвратить ожидаемый ввод данных пользователем перед отображением сообщения, используя output.frais, а также ничего не работает.

Какой лучший способ получить доступ к значению возвращаемого объекта и автоматически встроить его в ответ Уотсона?

И если у меня есть более простые вычисления, такие как умножение, как мне использовать класс java.lang.Math в узлах диалога, чтобы сделать это? Я попробовал синтаксис в документации, и он просто почему-то не завершен.

Примечание: Я не хочу выполнять действия на сервере с IBM Cloud Functions, просто вызов клиента.

1 Ответ

0 голосов
/ 30 апреля 2018

Результат действия будет сохранен в переменной context frais. Затем можно получить доступ из любого места в диалоговом окне, написав $frais или <? context.frais ?>.

Чтобы отобразить эту переменную в выходных данных, просто напишите в поле ответа вашего диалогового узла: "This is the value of context.frais: $frais .".

...