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 = "(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的原創文章,請關注公眾號"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2375134/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SAP MM採購定價過程的一個簡單例子單例
- 擼一個簡單的MVVM例子MVVM
- 一個最簡單的 Github workflow 例子Github
- 一個簡單的觀察者模式例子模式
- 一個簡單的Ajax請求例子
- Express簡單起一個本地服務介面Express
- JUnit概述及一個簡單例子單例
- WebRTC:一個視訊聊天的簡單例子Web單例
- 一個簡單的例子教會您使用javapJava
- 一個簡單的spring-boot例子Springboot
- 一個簡單的例子帶你理解HashmapHashMap
- 一個閉包函式的簡單例子函式單例
- 一個簡單的netty通訊的例子Netty
- 用 Go 編寫一個簡單的 WebSocket 推送服務GoWeb
- spring攔截器的一個簡單例子Spring單例
- Java多型的一個簡單入門的例子Java多型
- Golang快速實現一個簡單RPC服務GolangRPC
- Spring-Context之一:一個簡單的例子SpringContext
- php mysql 一個查詢優化的簡單例子PHPMySql優化單例
- linux c 一個autotools的最簡單例子Linux單例
- 一個簡單的oracle函式返回陣列的例子Oracle函式陣列
- Spring定時任務的簡單例子Spring單例
- SmartSql使用教程(1)——初探,建立一個簡單的CURD介面服務SQL
- 一個關於SQL隱碼攻擊的簡單例子SQL單例
- Unity如何連線伺服器: 一個簡單的例子Unity伺服器
- C++ Boost 之Python(一個簡單的例子) (轉)C++Python
- 軟體開發中的矛盾——一個簡單的例子 (轉)
- 使用SpringBoot+Dubbo搭建一個簡單的分散式服務Spring Boot分散式
- 基於Java NIO 寫的一個簡單版 Netty 服務端JavaNetty服務端
- XPATH的簡單例子單例
- binder 一個簡單的c++服務的實現,與callback實現C++
- 一個簡單例子教會你C++動態庫的用法單例C++
- 【xiaosonl】一個極其簡單的線上C#IDE例子C#IDE
- SAP MTA 裡定義 SAP UI5 module 的一個例子UI
- 通過一個簡單的例子,瞭解 Cypress 的執行原理
- 用java實現一個簡單的序列化的例子(轉)Java
- 用java實現一個簡單的序列化的例子 (轉)Java
- 停止MySQL服務hang的問題簡單分析(一)MySql