【发布时间】:2017-07-25 23:51:51
【问题描述】:
我正在调用在 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 时,您需要使用此令牌作为授权标头:
header = {'Authorization': 'Bearer ' + mltoken}
在参考/示例笔记本@https://console.bluemix.net/docs/services/PredictiveModeling/index.html#WMLgettingstartedhttps://console.bluemix.net/docs/services/PredictiveModeling/index.html#WMLgettingstarted 下的文档中有一个示例
【讨论】: