Вызов IBM Watson Assistant для IBM Cloud Function - ошибка времени выполнения - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь запросить коллекцию IBM Watson Discovery (расширенный веб-обход) через чат-помощника Watson Assistant с помощью облачной функции IBM. Я следовал инструкциям в этом посте Функции IBM Cloud для вызова сервисов Watson - большое спасибо, Родальтон, это очень помогло.

Тем не менее, я получаю ошибки времени выполнения при попытке вызвать облачную функцию с узла Watson Assistant. Сообщение об ошибке: Ошибка Proyx: Невозможно получить тип содержимого . Узел Assistant имеет следующий код и выглядит как this (JSON ниже вводится в редакторе JSON, который открывается при нажатии на значок шестеренки, выделенный желтым цветом).

    {
  "output": {
    "text": {
      "values": [],
      "selection_policy": "sequential"
    },
    "generic": []
  },
  "actions": [
    {
      "name": "/*****@*****.***_dev/actions/*******",
      "type": "server",
      "parameters": {
        "input": "<?input.text?>"
      },
      "credentials": "$my_creds",
      "result_variable": "context.discovery_output"
    }
  ]
}

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

    /**
  *
  * @param {object} params
  * @param {string} params.iam_apikey
  * @param {string} params.url
  * @param {string} params.username
  * @param {string} params.password
  * @param {string} params.environment_id
  * @param {string} params.collection_id
  * @param {string} params.configuration_id
  * @param {string} params.input
  *
  * @return {object}
  *
  */

const assert = require('assert');
const DiscoveryV1 = require('watson-developer-cloud/discovery/v1');

function main(params) {
  return new Promise(function (resolve, reject) {

      let discovery;

      if (params.iam_apikey){
        discovery = new DiscoveryV1({
          'iam_apikey': params.iam_apikey,
          'url': params.url,
          'version': '2018-12-03'
        });
      }
      else {
        discovery = new DiscoveryV1({
          'username': params.username,
          'password': params.password,
          'url': params.url,
          'version': '2018-12-03'
      });
    }

    discovery.query({
      'environment_id': params.environment_id,
      'collection_id': params.collection_id,
      'configuration_id': params.configuration_id,
      'natural_language_query': params.input,
      'passages': false,
      'return': 'text'
    }, function(err, data) {
      if (err) {
        return reject(err);
      }
      return resolve(data);
    });
  });
}
  • Конечная точка от здесь . Если я добавляю «. json» к моей конечной точке, я получаю сообщение об ошибке «Тело ответа на вызов Webhook превышает ограничение в 1050000 байт ...»
  • Настройки моего пространства имен (имя пользователя: пароль) начинаются с здесь .
  • После предоставления пользовательского ввода на панели «Пробная работа» помощника, который попадает на узел Discovery и переходит к дочернему узлу Discovery_results, как и предполагалось, переменная контекста «$ results_variable» имеет значение «null» как показано здесь . Однако когда я запускаю действие на этой странице cloud.ibm.com/functions/details/action/*****%2540****.com_dev//*******/code, я получаю результаты здесь . Тем не менее, это займет около 12 секунд, пока я не вижу результаты справа.

Что я делаю не так? Спасибо за вашу помощь.

...