/vision/v1.0/analyze的Microsoft认知服务内部服务器错误

时间:2016-04-26 21:01:23

标签: microsoft-cognitive

我制作了一个小程序来测试Microsoft Cognitive Service,但它总是返回

{
 "code":"InternalServerError",
 "requestId":"6d6dd4ec-9840-4db3-9849-a6497094fa4c",
 "message":"Internal server error."
}

我使用的代码是:

#!/usr/bin/env python
import httplib, urllib, base64

headers = {
    # Request headers
    'Content-Type': 'application/json',
    'Ocp-Apim-Subscription-Key': '53403359628e420ab85a516a79ba1bd0',
}

params = urllib.urlencode({
    # Request parameters
    'visualFeatures': 'Categories,Tags,Adult,Description,Faces',
    'details': '{string}',
})

try:
    conn = httplib.HTTPSConnection('api.projectoxford.ai')

    conn.request("POST", "/vision/v1.0/analyze?%s" % params, 
       '{"url":"http://static5.netshoes.net/Produtos/bola-umbro-neo-liga-futsal/28/D21-0232-028/D21-0232-028_zoom1.jpg?resize=54g:*"}', headers)
    response = conn.getresponse()
    data = response.read()
    print(data)
    conn.close()
except Exception as e:
    print("[Errno {0}] {1}".format(e.errno, e.strerror))

我做错了什么或者它是一个普遍的服务器问题?

1 个答案:

答案 0 :(得分:3)

问题出在 params 变量中。在定义要提取的视觉特征时,可以从图像中指定特定细节,如documentation中所述。 详细信息字段(如果使用)必须使用其中一个有效的字符串选项进行初始化(目前仅支持" Celebrities"选项,识别图像中的哪个名人)。在这种情况下,您使用字面上文档中记录的占位符初始化了详细信息字段(' {string'})。这导致系统发出内部错误。

要纠正这个问题,你应该尝试:

params = urllib.urlencode({
    # Request parameters
   'visualFeatures': 'Categories,Tags,Adult,Description,Faces',
   'details': 'Celebrities',
})

(PS:已经向Microsoft Cognitive Services报告了这种行为。)