2017-01-23 13 views
2

Я заметил довольно странную ошибку с API-интерфейсом Emotion из пакета Cognitive Services.API-интерфейс Emotion для Microsoft Cognitive Services. Ошибка: «Размер изображения слишком мал или слишком большой».

Все работает отлично, пока я отправляю URL. При отправке вложений изображения. Я получаю эту ошибку JSON: { error: { code: 'InvalidImageSize', message: 'Image size is too small or too big.' } }

Отправка небольших или больших версий не помогает. Отправьте URL-адрес того же изображения, и внезапно он снова работает отлично.

Я передаю приложение в службу API точно так же, как и для другого API Cognitive Services, а именно Computer Vision. И это отлично работает с потоковыми приложениями.

код на GitHub: https://github.com/sebsylvester/botbuilder-mcs

Я знаю, что API, все еще находятся в предварительном просмотре, но это все-таки странный вопрос.

ответ

1

К сожалению, API-интерфейсы Emotion и Face не поддерживают передачу каналов, как указано here. «Обходной путь» заключается в загрузке битов изображения синхронно до создания веб-запроса. Таким образом, код snippet от этого проекта:

function _postImageSync(url, image, options) { 
    return new _Promise(function (resolve, reject) { 
     request.post({ 
      uri: host + rootPath + url, 
      headers: { 
       'Ocp-Apim-Subscription-Key': key, 
       'Content-Type': 'application/octet-stream' 
      }, 
      qs: options, 
      body: fs.readFileSync(image) 
     }, (error, response) => { 
      response.body = JSON.parse(response.body); 
      _return(error, response, resolve, reject); 
     }); 
    }); 
} 
+0

Спасибо за этот четкий ответ – sebsylvester