欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

带有Oracle Digital Assistant和Fn Project的会话式UI。 第二部分

发布时间:2023/12/3 编程问答 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 带有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。 第二部分的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。