我正在调用在 IBM Data Science Experience 中部署模型后生成的 API。但是,当我使用 POST 调用 API 时,它会给出错误“身份验证失败”。现在的问题是,我使用了 IBM Watson 机器学习服务中可用的凭证,因为该模型本身不提供任何凭证。
有人可以帮我在这种情况下如何进行吗?
我正在调用在 IBM Data Science Experience 中部署模型后生成的 API。但是,当我使用 POST 调用 API 时,它会给出错误“身份验证失败”。现在的问题是,我使用了 IBM Watson 机器学习服务中可用的凭证,因为该模型本身不提供任何凭证。
有人可以帮我在这种情况下如何进行吗?
您需要使用您的 Watson ML 服务凭证生成一个令牌,并在发布到您的分数 URL 时使用该令牌。您可以像这样生成令牌(注意:用户名、密码和 service_path 在您的 Watson ML 服务凭证中):
import urllib3, requests, json
headers = urllib3.util.make_headers(basic_auth='{}:{}'.format(username, password))
url = '{}/v3/identity/token'.format(service_path)
response = requests.get(url, headers=headers)
mltoken = json.loads(response.text).get('token')
当您点击评分 URL 时,您需要使用此令牌作为 Authorization 标头:
header = {'Authorization': 'Bearer ' + mltoken}
在参考/示例笔记本@ https://console.bluemix.net/docs/services/PredictiveModeling/index.html#WMLgettingstarted下的文档中有一个示例