我正在调用在 IBM 数据科学体验中部署模型后生成的 API。 但是当我使用 POST 调用 API 时,它会给出错误"身份验证失败"。 现在的问题是,我使用了 IBM Watson 机器学习服务中可用的凭据,因为该模型不提供任何凭据。
有人可以帮我在这种情况下如何进行吗?
您需要使用 Watson ML Service 凭据生成令牌,并在发布到分数 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#WMLgettingstarted
下有一个示例