Я пытаюсь запросить коллекцию 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 секунд, пока я не вижу результаты справа.
Что я делаю не так? Спасибо за вашу помощь.