Как передать параметры из Watson Assistant в облачную функцию, развернутую в IBM Cloud - PullRequest
1 голос
/ 19 апреля 2019

Чего я пытаюсь достичь : Передайте параметры в облачную функцию, развернутую в IBM Cloud.

Что я пробовал : Ниже приведены параметры, которые я сохраняю в узле Watson Assistant и пытаюсь передать в облачную функцию IBM.

"parameters": {
"startTime": "$startTime",
"locationName": "$locationName"
},

Ниже приведены коды, которые я использовал для подключения к своей облачной функции IBM:

{
  "context": {
    "private": {
      "my_credentials": {
        "user": "{*//user_id}",
        "password": "{*//password}"
      }
    },
    "startTime": "@sys-date",
    "locationName": "@TaiwanArea"
  },
  "output": {
    "generic": []
  },
  "actions": [
    {
      "name": "/itouristworld_dev/itouristweather/weather",
      "type": "cloud_function",
      "parameters": {
        "locationName": "$locationName"
      },
      "credentials": "$private.my_credentials",
      "result_variable": "result"
    }
  ]

Поэтому я подумал, что параметры $ startTime и $ locationName должны быть переданы в облачную функцию IBM.

Затем в своей облачной функции IBM я использую эти коды:

var request = require("request-promise");

function main(params) {
   var options = {
      url: "https://opendata.cwb.gov.tw/api/v1/rest/datastore/F-C0032-001?format=json",
      headers: {
          Authorization: "{key}"
      },
      qs: {        
        locationName: `${params.locationName}`
      },
      json: true,
      encoding: "utf-8"
   };

   return new Promise(function (resolve, reject) {
      request(options, function (err, resp) {
         if (err) {
            console.log(err);
            return reject({err: err});
         }
      return resolve({response: resp.body});
      });
   });
}

Ответ дает мне целые пакеты данных JSON. Например, если я хотел бы спросить помощника Ватсона "какая сегодня погода в Тайбэе?" это дает мне все условия Тайваня вместо области Тайбэй, которые я должен хранить "Тайбэй" как $ locationName.

Что я наблюдал Я проверяю параметры с помощью «新 北市» (имя области) и param.loactionName в облачной функции IBM. Это дает мне следующие ответы:

【параметры -> "新 北市"】 Это дает мне правильную область, совпадающую с параметрами.

啟動 ID:
4aa67d030b8d45b6a67d030b8db5b6c4
結果:
{
  "response": {
    "records": {
      "datasetDescription": "三十六小時天氣預報",
      "location": [
        {
          "locationName": "新北市",
          "weatherElement": [
            {
              "elementName": "Wx",
              "time": [
                {
                  "endTime": "2019-05-18 06:00:00",
                  "parameter": {
                    "parameterName": "多雲",
                    "parameterValue": "4"
                  },
                  "startTime": "2019-05-17 18:00:00"
                },
                {
                  "endTime": "2019-05-18 18:00:00",
                  "parameter": {
                    "parameterName": "多雲",
                    "parameterValue": "4"
                  },
                  "startTime": "2019-05-18 06:00:00"
                },
                {
                  "endTime": "2019-05-19 06:00:00",
                  "parameter": {
                    "parameterName": "多雲",
                    "parameterValue": "4"
                  },
                  "startTime": "2019-05-18 18:00:00"
                }
              ]
            },
            {
              "elementName": "PoP",
              "time": [
                {
                  "endTime": "2019-05-18 06:00:00",
                  "parameter": {
                    "parameterName": "20",
                    "parameterUnit": "百分比"
                  },
                  "startTime": "2019-05-17 18:00:00"
                },
                {
                  "endTime": "2019-05-18 18:00:00",
                  "parameter": {
                    "parameterName": "10",
                    "parameterUnit": "百分比"
                  },
                  "startTime": "2019-05-18 06:00:00"
                },
                {
                  "endTime": "2019-05-19 06:00:00",
                  "parameter": {
                    "parameterName": "10",
                    "parameterUnit": "百分比"
                  },
                  "startTime": "2019-05-18 18:00:00"
                }
              ]
            },
            {
              "elementName": "MinT",
              "time": [
                {
                  "endTime": "2019-05-18 06:00:00",
                  "parameter": {
                    "parameterName": "25",
                    "parameterUnit": "C"
                  },
                  "startTime": "2019-05-17 18:00:00"
                },
                {
                  "endTime": "2019-05-18 18:00:00",
                  "parameter": {
                    "parameterName": "25",
                    "parameterUnit": "C"
                  },
                  "startTime": "2019-05-18 06:00:00"
                },
                {
                  "endTime": "2019-05-19 06:00:00",
                  "parameter": {
                    "parameterName": "24",
                    "parameterUnit": "C"
                  },
                  "startTime": "2019-05-18 18:00:00"
                }
              ]
            },
            {
              "elementName": "CI",
              "time": [
                {
                  "endTime": "2019-05-18 06:00:00",
                  "parameter": {
                    "parameterName": "舒適"
                  },
                  "startTime": "2019-05-17 18:00:00"
                },
                {
                  "endTime": "2019-05-18 18:00:00",
                  "parameter": {
                    "parameterName": "舒適至悶熱"
                  },
                  "startTime": "2019-05-18 06:00:00"
                },
                {
                  "endTime": "2019-05-19 06:00:00",
                  "parameter": {
                    "parameterName": "舒適至悶熱"
                  },
                  "startTime": "2019-05-18 18:00:00"
                }
              ]
            },
            {
              "elementName": "MaxT",
              "time": [
                {
                  "endTime": "2019-05-18 06:00:00",
                  "parameter": {
                    "parameterName": "26",
                    "parameterUnit": "C"
                  },
                  "startTime": "2019-05-17 18:00:00"
                },
                {
                  "endTime": "2019-05-18 18:00:00",
                  "parameter": {
                    "parameterName": "32",
                    "parameterUnit": "C"
                  },
                  "startTime": "2019-05-18 06:00:00"
                },
                {
                  "endTime": "2019-05-19 06:00:00",
                  "parameter": {
                    "parameterName": "29",
                    "parameterUnit": "C"
                  },
                  "startTime": "2019-05-18 18:00:00"
                }
              ]
            }
          ]
        }
      ]
    },
    "result": {
      "fields": [
        {
          "id": "datasetDescription",
          "type": "String"
        },
        {
          "id": "locationName",
          "type": "String"
        },
        {
          "id": "parameterName",
          "type": "String"
        },
        {
          "id": "parameterValue",
          "type": "String"
        },
        {
          "id": "parameterUnit",
          "type": "String"
        },
        {
          "id": "startTime",
          "type": "Timestamp"
        },
        {
          "id": "endTime",
          "type": "Timestamp"
        }
      ],
      "resource_id": "F-C0032-001"
    },
    "success": "true"
  }
}
日誌:
[]

【параметры -> params.locationName】 Это дает мне местоположение [], затем я возвращаюсь к Watson Assistant, проверяю диалог, хотя я набираю «新 北市» в качестве ключевого слова, я все равно получаю location [] в качестве обратной связи.

啟動 ID:
6e18ca5d4dfe457198ca5d4dfe45712c
結果:
{
  "response": {
    "records": {
      "datasetDescription": "三十六小時天氣預報",
      "location": []
    },
    "result": {
      "fields": [
        {
          "id": "datasetDescription",
          "type": "String"
        },
        {
          "id": "locationName",
          "type": "String"
        },
        {
          "id": "parameterName",
          "type": "String"
        },
        {
          "id": "parameterValue",
          "type": "String"
        },
        {
          "id": "parameterUnit",
          "type": "String"
        },
        {
          "id": "startTime",
          "type": "Timestamp"
        },
        {
          "id": "endTime",
          "type": "Timestamp"
        }
      ],
      "resource_id": "F-C0032-001"
    },
    "success": "true"
  }
}
日誌:
[]
...