乐趣区

部署在SAP-Cloud-Platform-CloudFoundry环境的应用如何消费SAP-Leonardo机器学习API

Jerry 的前一篇文章 如何在 Web 应用里消费 SAP Leonardo 的机器学习 API 里介绍的例子是 Neo 测试环境的 Web 应用消费 sandbox 版本的机器学习 API,url 如下:

https://sandbox.api.sap.com/ml

本文介绍一个部署在 SAP Cloud Platform CloudFoundry 环境下的应用,如何消费 SAP Leonardo 上的机器学习 API。

登录 SAP Cloud Platform Cockpit,进入 CloudFoundry 环境的 Service Marketplace,找到 SAP Leonardo 机器学习的服务,单击该服务的超链接进入明细页面:

创建一个新的服务实例:

Service Plan 就选默认的 standard:

给这个服务实例取个名字:

单击这个创建好的服务实例,然后创建一个新的 Service Key:

给 Service Key 也取个名字。

我们通过创建 Service instance 进而创建 Service Key 的目的,是为了得到下图的 clientid 和 clientsecret。

而我们拿到 clientid 和 clientsecret,是为了用它们换取 OAuth2.0 协议里的 access token.

关于更多 clientid 和 clientsecret 基于 OAuth2.0 换取 access token 的细节,请参考 Jerry 的文章:OAuth 2.0 协议在 SAP 产品中的应用。

除了 clientid 和 clientsecret 外,我们还能在 service key 里得到当前这个 SAP Cloud Platform CloudFoundry 环境上所有可用的机器学习 API 的 url,它们全部维护在节点 serviceurls 里:

注意观察,此时的 IMAGE_CLASSIFICATION 这个 API 的 url,路径已经从上一篇文章的 https://sandbox.api.sap.com/ml,变成了包含 CloudFoundry 环境信息的:

https://mlftrial-image-classi…

接下来通过 clientid 和 client secret 换取 access token,使用下面这个链接里的应用获得 access Token:

https://generate_ml_token.cfa…

把这个 Bearer 开头的 access Token 记录下来。

之前创建 service key 时,我们已经从创建结果里获得了基于产品图片识别类别的 API url:

https://mlftrial-image-classi…

浏览器里访问这个 url,得到一个采用 Swagger(一个采用 RESTFUL 接口,基于 YAML 和 JSON 语言的 API 文档在线自动生成工具) 实现的 API 控制台:

点击 try out,从本地选择一张图片,我还是选择的这张图片:

再将之前通过 clientid 和 client secret 换取的 access token 填到控制台对应字段里,点击 execute:

得到结果:

至于如何在 nodejs 和 Java 应用里通过编程动态地获取 access Token 以及发送 HTTP post 请求,因为网上例子很多,在下面更多阅读的文章里我也讲过,所以这里我就不再重复了,感谢阅读。

更多阅读

  • 使用 Java+SAP 云平台 +SAP Cloud Connector 调用 ABAP On-Premise 系统里的函数
  • 使用 JDBC 操作 SAP 云平台上的 HANA 数据库
  • 用 JavaScript 访问 SAP 云平台上的服务遇到跨域问题该怎么办
  • 在 SAP 云平台的 CloudFoundry 环境下消费 ABAP On-Premise OData 服务
  • 如何在 Web 应用里消费 SAP Leonardo 的机器学习 API
  • 使用 Java 程序消费 SAP Leonardo 的机器学习 API
退出移动版