带有Oracle Digital Assistant和Fn Project的会话式UI。 第二部分
在上一篇文章中,我使用Oracle Digital Assistant為FlexDeploy實現了一個對話式UI。 今天,我將用Fn Flow豐富它,以便聊天機器人接受發行名稱而不是ID來創建快照。 完成后,對話聽起來會更加自然:
…
“您可以建立快照嗎?” 我問。
“當然,您在想什么版本?” “奧運發布” “創建了要發布的快照 奧運 “她報告。 …
聊天機器人調用Fn Flow,將發布名稱作為輸入傳遞給它。 該流程調用Fn函數以獲取給定發行版的ID ,然后調用具有該ID的Fn函數調用FlexDeploy Rest API。
因此, createSnapshotFlow會在鏈中協調兩個Fn函數。 使用FlexDeploy REST API獲得給定名稱的一個發布版本ID :
fdk.handle(function (input) {var res = request('GET', fd_url + '/flexdeploy/rest/v1/release?releaseName=' + input, {});return JSON.parse(res.getBody('utf8'))[0].releaseId; })然后使用相同的API為發行ID創建快照:
fdk.handle(function (input) {var res = request('POST', fd_url + '/flexdeploy/rest/v1/releases/'+input+'/snapshot', {json: { action: 'createSnapshot' },});return JSON.parse(res.getBody('utf8')); })這種方法的核心是Fn Flow。 createSnapshotFlow的Java代碼如下所示:
public class CreateSnapshotFlow {public byte[] createSnapshot(String input) {Flow flow = Flows.currentFlow();FlowFuture<byte[]> stage = flow//invoke checkreleasefn.invokeFunction("01D14PNT7ZNG8G00GZJ000000D", HttpMethod.POST,Headers.emptyHeaders(), input.getBytes()).thenApply(HttpResponse::getBodyAsBytes).thenCompose(releaseId -> flow.//invoke createsnapshotfninvokeFunction("01CXRE2PBANG8G00GZJ0000001", HttpMethod.POST,Headers.emptyHeaders(), releaseId)).thenApply(HttpResponse::getBodyAsBytes);return stage.get();}
請注意,該流使用函數ID而不是函數名稱進行操作。 可以使用以下命令行檢索所有應用程序函數及其ID的列表:
odaapp是我的Fn應用程序。
而已!
翻譯自: https://www.javacodegeeks.com/2019/01/oracle-digital-assistant-fn-project.html
總結
以上是生活随笔為你收集整理的带有Oracle Digital Assistant和Fn Project的会话式UI。 第二部分的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 消息称英伟达 RTX 5090 显卡 C
- 下一篇: linux查看内存进程(linux查看内