`
JerryWang_SAP
  • 浏览: 1025391 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

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的原创文章,请关注公众号"汪子熙":

 
0
0
分享到:
评论

相关推荐

    starter-NodeJS:用于NodeJS的Recast.AI官方入门套件

    要求节点版本我们建议至少使用`node v6Recast.AI帐户在平台上创建一个帐户,然后按照此在界面上创建第一个机器人。用法安装git clone https://github.com/RecastAI/starter-NodeJS.git my-bot && cd my-bot 使用npm ...

    Unreal.Engine.4.AI.Programming.Essentials.

    《Unreal Engine 4 AI 编程精要》是一本专注于在Unreal Engine 4(UE4)游戏引擎中实现人工智能(AI)编程的教程书籍。本书内容全面,适合初学者和进阶开发者,提供了大量示例和代码,帮助读者快速掌握如何在UE4中...

    Recast-1.4

    验於於3D Path findig的函式库,可以做到上下互叠及娱鲜产生nav的效果。此益修改过的版本,原始版本不符合ogre3D使用,要原始版本请参考以下的连结:https://code.google.com/p/recastnavigation/

    f0recast-v1.4.2_win_9ht.com

    在IT领域,这样的软件可能涉及到数据分析、机器学习或人工智能,用于预测未来的趋势或行为。例如,它可能是一个专门处理时间序列数据的应用,帮助用户预测销售、股市走势、天气变化或者网络流量等。 在v1.4.2这个...

    swift-Recast一款用于收听播客的开源iOS应用程序

    Swift-Recast 是一个专为播客爱好者设计的开源iOS应用程序,它展示了如何利用Swift语言和Apple的开发工具来构建功能丰富的媒体播放器。这个项目不仅提供了一个实用的播客应用实例,也为开发者提供了学习和实践Swift...

    cocos_recastjs

    您可以将任何导航网格与Detour一起使用,但是由Recast生成的数据当然非常合适。 人群管理模块为您提供代理处理和行为自定义的功能 一些文档可以在这里找到: : 如何构建recast.js? 首先,使用recastjs文件夹中的...

    面板:ReCast是一种多平台流媒体工具,您可以将一台服务器流式传输到多种服务

    重播 什么是ReCast? ReCast是一个用PHP编写的多平台流媒体工具,它使用nginx RTMP。 您可以将一台服务器流传输到多个服务 安装 您必须安装Nginx服务器 检出这个专案 ... 创建一个新的crontab条目

    重铸:JavaScript语法树转换器,非破坏性漂亮打印机和自动源映射生成器

    重铸v 通过融化并重塑形状来赋予(金属物体)不同的形状。 形成,时尚或重新安排。 重塑或重建(文学作品,文档,句子等)。...import * as recast from "recast" ; console . log ( recast . print

    recastnavigation-master.

    在IT行业中,导航网格(Navigation Mesh,简称NavMesh)是一种常用的技术,特别是在游戏开发和人工智能领域,用于实现游戏角色或其他智能实体的路径规划。"recastnavigation-master" 是一个开源项目,专注于为cocos...

    recast4j:重铸和绕行导航网格工具集的Java Port

    所得区域仅具有一个不重叠的轮廓,从而极大地简化了过程的最后一步。 首先通过跟踪边界,然后对其进行简化,从而将导航多边形从区域中剥离。 最终将生成的多边形转换为凸多边形,这使它们非常

    python-js逆向之AST语法树初学(一)

    这两天看了什么是控制流平坦化,又研究了下ast语法数,如何把混淆乱序后的代码恢复之前的样子。...下面举例一个案例: 通过 https://obfuscator.io/ 将原代码混淆乱序后输出,复制粘贴到饭碗里,再格式化得到: fu

    recast-frontend:RECAST 网站的代码(也提供 RESTful API)

    RECAST 前端这是当前托管在的 RECAST 前端和 RESTful API 的 Drupal 代码由于 RECAST 是一个社区项目,我们正在迁移到 GitHub 进行协作开发。 RECAST 包(例如 API 包装器、后端实现等)应位于名为 recast-<package>...

    RecastNavigation服务器寻路

    RecastDetour库是一个强大的开源导航网格(NavMesh)工具,它允许游戏世界中的AI角色高效地寻找从一个位置到另一个位置的最短路径。NavMeshScene-master是这个系统的项目源代码,可以被游戏开发者用于构建自己的...

    recastnavigation.zip

    Recast Navigation是一个强大的开源导航网格(Navigation Mesh,简称NavMesh)工具,专为游戏开发设计。这个工具包允许开发者在复杂的游戏环境中创建智能路径规划,使游戏角色能够自动生成合理、流畅的移动路径。...

    fips-recast:Fipsified detourrecast lib (https

    fips-recast fipsified Recast/Detour ( ) fips 构建系统: : 建造 > cd fips > ./fips clone fips-recast > cd ../fips-recast > ./fips build > ./fips run RecastDemo

    my-recast4j-study:recast4j学习

    重铸和绕行导航网格工具集的Java端口。重铸4j原始语言学习,持续更新中!链接: : 附加参考c ++版本: :

    babel-with-recast

    然后您将获得如下输出: ~/Desktop/babel-with-recast (master):ghost: $ node ./Users/kdodds/Desktop/babel-with-recast/node_modules/babel-core/lib/transformation/file/index.js:605 throw err; ^Error: ...

    grunt-recast-runner:针对目录运行重铸转换

    grunt-recast-runner 跨代码库运行重铸脚本 入门 这个插件需要 Grunt ~0.4.5 如果您以前没有使用过 ,请务必查看指南,因为它解释了如何创建以及安装和使用 Grunt 插件。 熟悉该过程后,您可以使用以下命令安装此...

    recast-to-cjs:使用Recast将您的项目从AMD转换为CJS

    使用Recast将AMD转换为CJS 此存储库是Skookum.com/blog上的教程的一部分,该教程用于将项目从AMD转换为common.js。 遵循数字顺序的分支。 骇客 git clone Skookum/recast-to-cjs cd recast-to-cjs npm link ...

    FacebookJS工具包jscodeshift.zip

    jscodeshift 是一个用于在多 JS 文件运行 codemod 的工具包,它提供:一个 runner,它可在每个传递给它的文件之间提供转换,还能输出转换文件的数量。recast 的包装,提供不同的 API。Recast 是一个 AST-to-AST 转换...

Global site tag (gtag.js) - Google Analytics