SAP人工智能服务Recast.AI的一个简单例子
关于这个例子的完整介绍,请参考公众号 “汪子熙”的两篇文章:
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的一个简单例子的更多相关文章
- 一个简单例子:贫血模型or领域模型
转:一个简单例子:贫血模型or领域模型 贫血模型 我们首先用贫血模型来实现.所谓贫血模型就是模型对象之间存在完整的关联(可能存在多余的关联),但是对象除了get和set方外外几乎就没有其它的方法,整个 ...
- (转)Java中使用正则表达式的一个简单例子及常用正则分享
转自:http://www.jb51.net/article/67724.htm 这篇文章主要介绍了Java中使用正则表达式的一个简单例子及常用正则分享,本文用一个验证Email的例子讲解JAVA中如 ...
- C语言多线程的一个简单例子
多线程的一个简单例子: #include <stdio.h> #include <stdlib.h> #include <string.h> #include &l ...
- quartz---的一个简单例子
quartz---的一个简单例子 首先建立一个maven项目.jar工程即可.(提示:我前面有如何建立一个maven工程的总结以及maven环境的配置.) 1.建立好后点击到app中运行,--> ...
- 用socket.io实现websocket的一个简单例子
socket.io 是基于 webSocket 构建的跨浏览器的实时应用. 逛博客发现几个比较好的 一.用socket.io实现websocket的一个简单例子 http://biyeah.iteye ...
- WCF服务二:创建一个简单的WCF服务程序
在本例中,我们将实现一个简单的计算服务,提供基本的加.减.乘.除运算,通过客户端和服务端运行在同一台机器上的不同进程实现. 一.新建WCF服务 1.新建一个空白解决方案,解决方案名称为"WC ...
- netsh interface portproxy的一个简单例子
netsh interface portproxy的微软帮助文档地址: https://technet.microsoft.com/zh-cn/library/cc776297(WS.10).aspx ...
- 词法分析程序 LEX和VC6整合使用的一个简单例子
词法分析的理论知识不少,包括了正规式.正规文法.它们之间的转换以及确定的有穷自动机和不确定的有穷自动机等等... 要自己写一个词法分析器也不会很难,只要给出了最简的有穷自动机,就能很方便实现了,用if ...
- js 排列 组合 的一个简单例子
最近工作项目需要用到js排列组合,于是就写了一个简单的demo. 前几天在网上找到一个写全排列A(n,n)的code感觉还可以,于是贴出来了, 排列的实现方式: 全排列主要用到的是递归和数组的插入 比 ...
随机推荐
- 关于Jquery事件绑定的心得
今日在工作的时候,遇上了一些和事件绑定有关的问题无法解决,于是在网上找到了以下资料,稍加整理了下. 对于事件绑定,jQuery的 bind / unbind 大多数时候可能并不会用到,取而代之的是直接 ...
- GIT 恢复单个文件到历史版本
首先查看该文件的历史版本信息:git log <file> 恢复该文件到某个历史版本:git reset 版本号 <file> 检出改文件到工作区:git checkout - ...
- solr6.6教程-基础环境搭建(一)
目前网上关于solr6.+的安装教程很少,有些6.0之前的教程在应用到6.+的版本中出现很多的问题,所以特别整理出来这一片文章,希望能给各位码农一些帮助! 很少写些文章,如有不对的地方,还希望多多指导 ...
- step3: 创建jobbole爬虫
scrapy startproject Redbacktestcd Redbacktest 创建jobbole爬虫 scrapy genspider jobbole2 blog.jobbole.com ...
- PHP学习8——图像处理
主要内容: 加载GD库 创建图像 绘制点,线,矩形,多边形,椭圆,弧线 绘制文字 通过GD库生成验证码 其实吧,学习图像方法的最大作用,好像就是为了制作验证码. 所以此专题,不如叫做制作验证码. 1. ...
- Silverlight & Blend动画设计系列十三:三角函数(Trigonometry)动画之飘落的雪花(Falling Snow)
平时我们所看到的雪花(Falling Snow)飘飘的效果实际上也是一个动画,是由许多的动画对象共同完成的一个界面效果.对于不同大小的雪片可以通过缩放变换(ScaleTransform)功能特性确定, ...
- MVC中FileResult 返回类型返回Excel
公司中以前写的导出有问题.原来使用的XML格式字符串拼接然后转化成流输出 action public FileResult ExportJobFair() { try { string name = ...
- office2007安装时显示安装程序找不到 office.zh-cn\officeLR.cab怎么办
根本原因是和VS2008有关解决方法如下:1. 找到vs2008安装程序(光盘,镜像文件,解压文件都一样),找到WCU文件夹在他里面找到WebDesignerCore文件夹,然后打开它找到WebDes ...
- jmeter简单使用示例
1.下载后解压,运行bin目录下的jmeter.bat 2.add ThreadGroup 3.add request 4.add listener
- 数据上下文中的AddOrUpdate方法
AddOrUpdate是扩展方法,需要添加引用 using System.Data.Entity.Migrations;