我正在尝试使用bot模拟器工具附加图像并将此图像发送到microsofts customvision api,我遇到的问题是我得到了
{ Code: 'BadRequestImageFormat', Message: '' }
从自定义视觉api调用返回。
我正在使用request
中的npm
模块来处理呼叫
// Receive messages from the user and respond by echoing each message back (prefixed with 'You said:')
var bot = new builder.UniversalBot(connector, function (session) {
session.send("Hello"); //session.message.text
// If there is an attachment
if (session.message.attachments.length > 0){
console.log(session.message.attachments[0])
request.post({
url: 'xxx',
encoding: null,
json: true,
headers: {
'Content-Type': 'application/octet-stream',
'Prediction-Key': 'xxx'
},
body: session.message.attachments[0]
}, function(error, response, body){
console.log(body);
});
}
});
我相信我可能会将错误的格式发送到自定义视觉中,但我还是暂时无法弄明白。
答案 0 :(得分:0)
我复制了您的问题,看起来问题是您的内容类型'。您尝试在请求中传递JSON,但将内容类型设置为octet-stream
。请参阅下面的修改后的代码:
var bot = new builder.UniversalBot(connector, function (session) {
session.send("Hello"); //session.message.text
// If there is an attachment
if (session.message.attachments.length > 0){
console.log(session.message.attachments[0])
request.post({
url: 'https://northeurope.api.cognitive.microsoft.com/vision/v1.0/analyze?visualFeatures',
encoding: null,
json: true,
headers: {
'Content-Type': 'application/json',
'Ocp-Apim-Subscription-Key': 'Your API Key...'
},
body: session.message.attachments[0]
},
function (err, response, body) {
if (err) return console.log(err)
console.log(body);
});
}
});
当我运行此操作时,我收到错误InvalidImageUrl
,因为它正在本地主机上查找内容。你可以通过使用Ngrok公开你的本地主机来解决这个问题。