基于 SAP BTP 平台的 AI 项目经验分享 1

简介: 基于 SAP BTP 平台的 AI 项目经验分享

笔者在 SAP 成都研究院工作十五余年,也曾参加过一些基于 SAP Business Technology Platform(中文名称为 SAP 业务技术平台,以下简称 SAP BTP) 的 AI 服务的项目开发和原型验证。本文将这些关于 AI 的项目经验分享出来,希望社区内的 AI 专家不吝赐教。


SAP BTP 将智能企业应用程序与数据库和数据管理、分析、集成和扩展功能整合到一个平台中,适用于云环境和混合环境,包括数百个用于 SAP 和第三方应用程序的预构建集成。其中之一便是 SAP AI Business Services.


如何在 Java 程序里消费 SAP AI 服务

这个项目的背景如下:开发一个 Java 程序,用户可以上传一张图片,该 Java 程序调用 SAP AI API,后者会使用预先训练好的机器学习模型,对该图片进行识别,给用户返回一个文本格式的响应信息,告诉用户识别结果。

下面是具体的实现步骤。

访问 https://api.sap.com, 点击 API :

选择 SAP Leonardo Machine Learning - Functional Services:


Functional Services 类别里选择图像识别 AI 服务,即 Product Image Classification API:

该 API 模型是由 SAP 基于大约 5 万张 Icecat 图片训练而成,能区分 29 种不同的产品类别,这些类别具体可以在官方文档上查询到,比如电脑显示器,数码相机,外部存储设备,键盘,液晶电视,手机充电器,笔记本和其他外设等等等。


可以打开图像识别 API 的技术规范页面,包含 API Model Schema 介绍,即调用 API 后,返回的响应结构里包含的字段名称以及数据类型。


该界面还嵌入了一个小型的 API 调用控制台,可以直接在控制台里选择上传一个本地图形文件,点击 Try it out 按钮来体验 API 的效果。

用下图这张图片进行测试:

在控制台里看到请求处理成功,API 判断出来该图片有 97% 的可能性是一台 notebook.

API 测试通过之后,下一步是在 Java 程序里进行消费。在 API 控制台的右上角有一个按钮 Download SDK,点击之后将 SDK 下载到本地,可以看到该 SDK 是一个基于Gradle 的 Java 项目。因此我们需要下载 Maven 和 Gradle 并完成环境变量配置。


Java 开发环境就绪后,使用 Eclipse 的 import 功能,将 SDK 导入到 Eclipse 里。导入完成后如下图所示:红色区域是 AI Service SDK 自带的代码,蓝色区域是笔者手动创建的代码,用于调用 API 并打印结果。


编辑根目录下的 pom.xml, 将如下依赖关系维护进去:

com.sap.apibhub.sdk, 版本号 1.0.0


在项目根目录下执行 Maven 命令 mvn install, 确保项目成功构建。至此,可以开始编写 Java 代码使用SAP AI SDK 来调用 AI API 了。


SDK 封装了底层 HTTP 请求的发送和响应的解析等细节,使用起来非常简捷。第 15 行的 inferenceSyncPost 函数,接收一个本地 File 对象,然后向 SAP AI Service Endpoint 发送 HTTP 请求。


第 8 行的 API key,可以从 API 控制台获得:

执行 Java 应用,在 Eclipse 控制台打印出的输出, AI Service 判断这张图片有 97% 的可能性是一个 notbook:


如何在 Web 应用里消费 SAP AI 服务

登录 SAP 云平台,打开 WebIDE:

因为是在浏览器环境里使用 JavaScript 调用远端的 AI API,为了避免跨域问题,需要在云平台里创建一个Destination,作用和 ABAP Netweaver 事务码 SM59 里创建的 Destination 类似,所有的 HTTP Request 和 Response 都经由该 Destination.

2d2668d4e8f25e732115eb93cb9d07fb.png

属性如上图所示,url 维护为对应的 sandbox 环境:https://sandbox.api.sap.com/ml


记下这个 Destination 的名称 sapui5ml-api, 因为稍后的 Web 应用的 JavaScript 代码里需要使用。


维护额外的属性 WebIDEnabled 为 true,这样该 Destination 才能在 WebIDE 应用环境中被使用。点击 Check Connection 确保看到绿灯,表明 SAP 云平台 Destination 同 AI Service Endpoint 的连接处于可用状态。


打开 WebIDE 里 Web 应用工程里的 settings.json 文件,将之前从 API 控制台里拷贝的 API Key 粘贴到此处:

ba8a2eb6f15957a8d2a5966f21227ed6.png

在项目根目录下的 neo-app.json 文件里,把类型为 destination 的 target 对象的名称,维护成之前在 SAP 云平台里创建的 Destination 相同的名称 sapui5ml-api:


运行这个 Web 应用,能看到如下界面:

针对这个 Web 应用做一些简单的测试,将下面这张图片,上传到 Web 应用去:


SAP AI API,识别出这张图片有 74.7% 的可能性是一台笔记本电脑,13.8% 的可能性是键盘,11.3% 的可能性是Tablets.

点击 Web 应用的按钮 View JSON,能看到 AI 服务返回的技术明细。

相关文章
|
1月前
|
人工智能 物联网 机器人
『GitHub项目圈选17』推荐5款本周 火火火 的AI开源项目
『GitHub项目圈选17』推荐5款本周 火火火 的AI开源项目
206 1
|
1月前
|
人工智能 监控 算法
java智慧城管源码 AI视频智能分析 可直接上项目
Java智慧城管源码实现AI视频智能分析,适用于直接部署项目。系统运用互联网、大数据、云计算和AI提升城市管理水平,采用“一级监督、二级指挥、四级联动”模式。功能涵盖AI智能检测(如占道广告、垃圾处理等)、执法办案、视频分析、统计分析及队伍管理等多个模块,利用深度学习优化城市管理自动化和智能化,提供决策支持。
223 4
java智慧城管源码 AI视频智能分析 可直接上项目
|
1天前
|
人工智能 移动开发 小程序
uniapp框架——vue3+uniFilePicker+fastapi实现文件上传(搭建ai项目第二步)
uniapp框架——vue3+uniFilePicker+fastapi实现文件上传(搭建ai项目第二步)
12 2
|
1天前
|
人工智能 小程序 前端开发
uniapp框架——初始化vue3项目(搭建ai项目第一步)
uniapp框架——初始化vue3项目(搭建ai项目第一步)
11 1
|
4天前
|
人工智能 监控 数据处理
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】1. 快速上手数据集与测试评估过程
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】1. 快速上手数据集与测试评估过程
18 0
|
4天前
|
人工智能 监控 数据可视化
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】0. 一文全览Tracing功能,让你的程序运行过程一目了然
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】0. 一文全览Tracing功能,让你的程序运行过程一目了然
8 0
|
1月前
|
人工智能 自然语言处理 安全
推荐一款 AI 资源集合平台,助你通往AGI之路。
推荐一款 AI 资源集合平台,助你通往AGI之路。
|
1月前
|
人工智能 算法 测试技术
脑洞大开丨让 AI 写代码,能做出什么样的项目?
AI 编程助手通义灵码可补全代码、写测试、调试和生成注释代码。现在推出全民体验活动,参与者有机会赢取 iPhone15、Switch 等大奖。
|
1月前
|
人工智能 文字识别 自然语言处理
『GitHub项目圈选12』推荐5款本周 深受追捧 的AI开源项目
『GitHub项目圈选12』推荐5款本周 深受追捧 的AI开源项目
174 1
|
机器学习/深度学习 存储 人工智能
科大讯飞,是如何打造AI平台的?
科大讯飞的成功靠的是AI核心战略:平台+赛道。
1089 0