关于这个例子的完整介绍,请参考公众号 “汪子熙”的两篇文章:

SAP C/4HANA与人工智能和增强现实(AR)技术结合的又一个创新案例

和使用Recast.AI创建具有人工智能的聊天机器人:

本文介绍如何用Java代码同recast.AI网站上创建好的模型交互。

我创建了一个名为get-product-infomation的机器学习模型,用"Add an expression"下面的这么多句子去喂这个模型:

一会测试时,我会用这个句子进行测试 " I am looking for some materials", 所以先记下来。

如果任意输入一句话,recast.AI识别出来意图为get-product-infomation, 我希望AI自动返回一些句子,这些句子定义在recast.AI模型的Actions标签页下面:

比如这个Actions模型的意思是,从Sure, what type of product are you going to produce?和Cool, what products do you want to produce?里随机挑选一句返回。

下图右半部份是recast.AI的测试控制台。

下面是用Java代码方式消费这个人工智能模型的例子:

public class RecastAIService {private final static String RECAST_AI_URL = "https://api.recast.ai/build/v1/dialog";private final static String DEVELOPER_TOKEN = "Token feb6b413a1a8cf8efdd53f48ba1d4";public Answer dialog(final String content, final String conversationId) throws ClientProtocolException, IOException{CloseableHttpClient httpClient = HttpClients.createDefault();HttpPost postRequest = new HttpPost(RECAST_AI_URL);postRequest.addHeader("Authorization", DEVELOPER_TOKEN);postRequest.addHeader("Content-Type", "application/json");String body = "{"message": {"content":""+ content+ "","type":"text"}, "conversation_id": ""+ conversationId+""}";HttpEntity entity = new StringEntity(body);postRequest.setEntity(entity);HttpResponse response = httpClient.execute(postRequest);if(response.getStatusLine().getStatusCode() == 200){String result = EntityUtils.toString(response.getEntity());JSONObject resultJsonObj = JSON.parseObject(result);JSONObject results = (JSONObject) resultJsonObj.get("results");JSONArray messages = results.getJSONArray("messages");JSONObject nlp = (JSONObject) results.get("nlp");JSONArray intents = nlp.getJSONArray("intents");Answer answer = new Answer();if (null != messages && messages.size() > 0){JSONObject messageJson = messages.getJSONObject(0);answer.setContent(messageJson.getString("content"));}if (null != intents && intents.size() > 0){JSONObject intentJson = intents.getJSONObject(0);answer.setIntent(intentJson.getString("slug"));}return answer;}logger.debug("Failed to access recastai. The response code is" + response.getStatusLine().getStatusCode());return null;}

测试代码:

传入I am looking for some materials,recast.AI解析出这个句子的意图有99%的可能性是get-product-information:

Java代码返回的句子也确实是recast.AI模型里维护的回复之一:

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

SAP人工智能服务Recast.AI的一个简单例子相关推荐

  1. SAP MM采购定价过程的一个简单例子

    SAP MM采购定价过程的一个简单例子 本文以一个简单的例子阐述了SAP MM模块中采购定价的基本原理.本例中,假定采购订单里输入的是含税采购价,然后系统自动计算出物料最终的采购价格(含税价-税额=采 ...

  2. 一个简单例子:贫血模型or领域模型

    转:一个简单例子:贫血模型or领域模型 贫血模型 我们首先用贫血模型来实现.所谓贫血模型就是模型对象之间存在完整的关联(可能存在多余的关联),但是对象除了get和set方外外几乎就没有其它的方法,整个 ...

  3. KaTex的一个简单例子

    在网页中可以用KaTex显示数学公式,KaTex官网是https://katex.org 以下是KaTex的一个简单例子: 下载https://github.com/KaTeX/KaTeX/archi ...

  4. 单纯形法之人工变量法求解步骤:一个简单例子

    文章目录 人工变量法 1. 大M法 1.1. 题目 1.2. 转化为标准型 1.3. 添加人工变量 2. 两阶段法 2.1. 步骤 2.2. 题目 2.2.1. 转化为标准型 2.2.2. 添加人工变 ...

  5. 初次使用CTex时的一个简单例子

    初次使用CTex时的一个简单例子 1.初次使用Ctex时的例子 第一次使用 LATEX,在WinEdt编辑以下代码,然后使用PDFLaTeX生成PDF文档. \documentclass{articl ...

  6. 协方差检验用在什么地方_通过一个简单例子,通俗讲下协方差分析

    内容来自:"小白学统计"微信公众号,感谢作者授权. 临床中经常碰到这种设计:研究对象分为两组,接受不同治疗(如治疗组和安慰组),每组分别在治疗前和治疗后测量观察指标(如血压值).目 ...

  7. Java 百度AI 写一个简单的手势识别程序

    教程地址:请关注我的https://edu.csdn.net/course/detail/23001 Java写一个简单的手势识别程序,这里采用百度是AI,视觉技术中的人体分析中的手势识别,识别图片中 ...

  8. 流媒体视频服务:快速搭建一个简单的流媒体视频服务(一)

    快速搭建一个简单的流媒体视频服务 前言 系统组成 RTMP协议简介 Red5 概述 Red5 服务器搭建 前言 最近自己在研究有关于流媒体播放的技术,网上资料甚少.出于开源精神以及在查阅资料得到各位大 ...

  9. 抛开人工智能定义,ai就是一个超能虐狗的妖艳域名后缀

    近日,李开复在采访中被问及"如果有一天女儿领回来一个男朋友,各方面表现完美甚至比人类更好,但他是智能机器人,您接受吗?"和一直提倡人工智能的日常人设不同,李开复对女儿的" ...

最新文章

  1. Java项目:仿小米电子产品售卖商城系统(java+SpringBoot+Vue+MySQL+Redis+ElementUI)
  2. seq2seq中的beam search算法过程
  3. XamarinAndroid组件教程RecylerView适配器动画动画种类
  4. 【迁移学习(Transfer L)全面指南】迁移学习中的bottlenecks(瓶颈层)
  5. rat/rats--用有理数形式表示矩阵
  6. cahrt框架 ios_iOS Charts框架集成及使用
  7. Spark源码分析之BlockManager
  8. Ubuntu: Ubuntu中安装使用Source Inside 3.5
  9. 终端/Shell 快捷键
  10. AJAX 必用的情况(待选........)
  11. 电子电路计算机仿真应用,电力电子电路的计算机仿真
  12. 深入存储驱动:Overlay2
  13. Java 运算符 输入 分支语句
  14. 保密局计算机网络的安全检查与防护,自治区网络安全检查组莅临图书馆检查指导工作...
  15. 贯入用计算机怎样换算,标准贯入试验的应用及其杆径换算的研究.doc
  16. python求反余弦_python数学.acos反余弦问题
  17. yama搜集的超超…全的下载音效的网站,持续更新
  18. Expo大作战(二十八)--expo sdk api之Speach(语音文字转换),Segment
  19. glTF学习笔记(0)——概述
  20. 第四周铁人战队学习总结

热门文章

  1. sonar api 获取质量数据
  2. 文献记录(part42)--An end-to-end framework for unconstrained monocular 3D hand pose estimation
  3. 今日代码(200714)--主客观求指标权重及求城市得分
  4. 第三次学JAVA再学不好就吃翔(part57)--StringBuffer和String的相互转换
  5. 第三次学JAVA再学不好就吃翔(part6)--基础语法之char数据类型
  6. 云原生应用程序运行时 Kyma 的主要特性介绍
  7. 如何使用 Node.js 访问 SAP HANA Cloud 数据库里的数据
  8. SAP Spartacus B2B user列表对应的Angular Component
  9. SAP Spartacus State
  10. 什么是前端开发中的Pseudo elements