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的原創文章,請關注公眾號"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2375134/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一個簡單的「IOC」例子
- SAP MM採購定價過程的一個簡單例子單例
- 擼一個簡單的MVVM例子MVVM
- 一個最簡單的 Github workflow 例子Github
- 一個簡單的netty通訊的例子Netty
- JUnit概述及一個簡單例子單例
- WebRTC:一個視訊聊天的簡單例子Web單例
- 使用node啟動一個簡單的服務
- 一個簡單的生活例子,感受TRIZ的魅力!
- 一個簡單的例子瞭解async跟defer
- 一個簡單的例子教會您使用javapJava
- Express簡單起一個本地服務介面Express
- Golang快速實現一個簡單RPC服務GolangRPC
- 用 Go 編寫一個簡單的 WebSocket 推送服務GoWeb
- Unity如何連線伺服器: 一個簡單的例子Unity伺服器
- 使用SpringBoot+Dubbo搭建一個簡單的分散式服務Spring Boot分散式
- SAP Spartacus SplitViewComponent Migration 的一個具體例子View
- spring 簡單的使用 Hikari連線池 和 jdbc連線mysql 的一個簡單例子SpringJDBCMySql單例
- python+flask 編寫一個簡單的登入介面例子PythonFlask
- python+flask編寫一個簡單的登入介面例子PythonFlask
- 一個簡單的例子理解Kubernetes的三種IP地址型別型別
- 通過一個簡單的例子,瞭解 Cypress 的執行原理
- 基於Java NIO 寫的一個簡單版 Netty 服務端JavaNetty服務端
- SmartSql使用教程(1)——初探,建立一個簡單的CURD介面服務SQL
- SAP MTA 裡定義 SAP UI5 module 的一個例子UI
- 一個簡單例子教會你C++動態庫的用法單例C++
- SAP Spartacus SSR 中的 shimming 實現的一個例子
- 簡單的整合 shiro + SpringMVC 例子SpringMVC
- SAP Cloud Platform integration上建立一個最簡單的iFlowCloudPlatform
- 報表生成器FastReport .Net程式設計師手冊:WCF服務的簡單例子AST程式設計師單例
- ASP.NET Core 簡單給 Phi 模型封裝一個服務ASP.NET模型封裝
- Laravel 關聯查詢 ——一對一 簡單例子Laravel單例
- SAP C/4HANA Sales Cloud使用OData服務和第三方系統整合的一個具體例子Cloud
- SAP UI5 使用 Smart Control 的一個具體例子UI
- 【k8s】使用k8s部署一個簡單的nginx服務K8SNginx
- entitybuilder--一個簡單的業務通用框架UI框架
- 一個典型的加了 SAP 註解的 OData 服務明細分析
- Matplotlib1.簡單例子單例