00:00
下面呢,我们来介绍一下Java增强节点,嗯,Java增强节点的目的其实跟HTTP节点很类似,都是我们要绕过这个工作流内部,我们不在工作流内部自己玩了,而是要去调用一些外部的能力,但是Java节点跟STB节点有一些区别的,就是呢,可能我们在呃,我们的程序中不是所有的功能都能够通过接口去访问,或者有一些我们可能不方便把它做成接口,那这个时候呢,我们就可以使用Java增强节点直接去调用我们系统中的某一段业务逻辑,那具体该如何实现呢,我们先。新建一个流程。知道吧。然后新增一个Java增强节点。障碍增强节点,同样的它会有输入变量,它会接收用户的问题,比如说我们叫就叫ER t1。
01:08
那这个时候呢,我们需要输入一个类路径,或者是spring的病,这个时候大家可能就会很疑惑了,这个是干什么的呢?其实是我们要在自己的程序中实现这个Java arg增强Java的接口,实现这个接口,下面呢,我们去我们的代码中去实现一下这个接口。我们来到我们的Java代码中。然后再。当前启动的这个项目里面,我们创建一个新的Java类。嗯,就叫test my.No.这个Java节点需要实现我们的接口。去实现里面的方法。
02:05
可以看到这个接口只有一个process方法啊,它是执行流程,然后会有入参,这个入参是一个map。嗯,这个map呢,和我们定义的输入变量其实是一致的,比如我们这里定义了。ARG1啊,比如我再加一个ARG2。那这样的话,在代码里面就是input pre就等于。女儿锦衣。ARG2看一看就是这样的一个结构啊,那我们输出的内容呢,也是输出一个map,那这个map对应的也是输出变量里面的结果啊,我们默认会有一个result啊,如果是result的话,那就是我们新建一个。
03:03
Map.嗯。然后把这个map输出出去,那这样的话,我们用result就可以接收到的就是这个map中的result的值。与这里是对应的,当然我也可以自定义,自定义自己的变量,那这里我们就不需要了,我们只需要一个输入变量,然后一个输出变量,我们计算这个输入变量的长度。好的,我从这个input里面获取到。P2G1。
04:05
然后它是一个string类型。然后我要计算它的长度。最后。出这个长度。啊,这样一个很简单的一个Java增强就写好了。我们先测试一下看能不能行,那这里我要输入类路径或者spring b, 我们先用一个类路径。嗯,要输出一个结束节点。结束节点就选择Java增强的返回结果。
05:03
在执行之前呢,我们要重启一下我们的服务。好,现在我的服务已经重启完了,我们来试一下。晚安。输入的内容是6,呃,我们刚刚不是还有一个screen bam吗?啊,我们同样呢,支持我们这个Java增强的类,使用screen bam, 那么confident啊,然后我们可以给它起一个名字啊,看Java node, 那这样的话我就可以。直接使用这个B的名称,而不是使用类的完全路径了,这样也是可以的,那spring bin的好处是什么呢?我是完全我用了spring病以后呢,我就可以直接注入我系统里面的一些service,对不对啊。
06:03
啊,什么什么service啊,这样的话,我们可就可以直接调用我程序里面的某些接口啊,嗯,那这样呢,到这儿呢,就是Java增强接口,呃,Java增强节点啊,该怎么用啊,就讲到这里。我们刚刚讲HTP请求节点的时候有提到,呃,如果我的请求的返回的内容呢,是一个比较复杂的这个返回的结果,那我可以用这种body点儿,Result点儿的这种方式去把很深处的内容点儿出来,但是呢,嗯,这样毕竟还是有一些死板,那有的时候呢,它值也不是这样简简单单的,可能取第几个或者第几个数据就可以做到的,那这个时候呢,该怎么办?比如我有一些自己的逻辑要去,难道我要去用一个Java节点去做吗?那Java节点我们都知道要重启服务,而且要放在一个服务里面,像其实还是有一些麻烦,那这个时候呢,我们就需要用到这个。
07:11
脚本儿执行节点。脚本执行节点呢,允许在工作流中执行自定义的脚本,那我们现在是支持javascript的等等,呃,Python等等这个语言来进行处理,它呢主要是用来做一些复杂的嵌套的Jason的数据解析,然后做一些呃,计算的逻辑啊,变量的处理,那它的语法呢,就是和我们正常的语法是一样的。那我们现在就呃简单来演示一下该怎么使用。添加一个脚本执行节点。脚本执行节点也是有输入变量,也是去上下文中的用户变量,那我们这里呢,就是简单的用一个呃,用户的问题去接收,然后在下面的语言中,我们可以选择自己所比较擅长或者比较熟悉的语言啊,我们就先用一个script的语言。
08:17
这里和Java的增强是一样的,也就是我们的输入的变量都会作为一个map传给prem,那pre也可以直接去点出来啊。那假设我们现在就用两个变量,用一个用户,用户问题和用户问题的1。然后在脚本执行里面去选择第二个问题一二题那。然后我们的脚点脚本是最后是返回了一个对象,那这个对象呢,也是和呃,Java增强节点是一样的,我们去第一个的K就可以得到返回内容,我们把两个字符串来拼接。
09:08
加一个结束节点。好,第一个问题。第二个问题。看看结果,第一个问题拼接了第二个问题,我们的脚本已经正常执行了,好了,接下来呢,是我们的最后一个流程节点,叫此流程节点,那此流程节点呢,是我在当前的流程中可以调用其他预设的流程,实现流程的一个复用。啊,这样我们的流程就可以用在别的地方,比如说我们刚刚创建了一个翻译的一些翻译的流程,那我可以在别的流程里面再去调用它。
10:03
比如我可能别的业务中,我需要有一个翻译的能力啊,那这样我就可以调用我已经创建好的这个翻译的这个流程,嗯,找一下这个。但我选完选择完流程以后呢,我的输入变量和输出变量都已经自己自动带出来了,这个呢,这些输入变量和输出变量对应的就是我选择的这个子流程,它的输入和输出,那我用户问题,我要传当前的用户问题进去,然后用户的。呃,语言我也改一个。嗯,我们在实际用的时候,我们可能这个语言是通过其他的一些渠道,比如说通过接口或者是通过脚本传进来的啊,那我们这里方便,我就直接从开始节点传进来。
11:08
然后直接输出它的结果。那我们这样它有两个结果,我们都输出一下。嗯。看一下啊。啊,我是中国人,翻译成英文。你看调用了子程子流程节点,然后此流程输出了IAM Chinese啊。返回吧。嗯,这样就是一个自由正节点啊,最简单的调用的方式。好,到现在呢,我们所有的节点都已经介绍完了。下面呢是我们,呃,可以用两个实际的例子来演示一下我们的流程在实际的业务中的使用。
12:12
在积木报表最新的版本中,我们添加了一个。生成SQLAI生成SQL语句的功能,我们先来看一下功能,呃,选定一个数据库。然后选择生成搜狗直接描述,呃。查询直接描述查询物料列表。那个AI选择了合适的表。然后生成了搜狗语句,并且把搜狗语句查询出来了,嗯,直接使用这个搜狗L,嗯,就是一个AI生成搜狗L语句的这样的一个功能,嗯,那么这个功能是如何实现的呢?啊,其实就是用我们这CG中的AI流程去做的,我们可以看一下,这就是我们的这个GCG的AI的流程,嗯,啊,后面分了很多啊,但其实我们并没有完全用啊,我们用了其中的几个可以看一下,我们有一个条件,我们先看我们的输入。
13:18
录的内容呢,包含一个用户的问题。然后表结构。数据库类型、业务类型。在条件分支里,我们判断业务类型,根据业务类型去将整个流程调转到不同的分支中,那像我们刚刚演示的生成circle呢,就使用到了选择表和生成circle这两个一个分支。那选择表我们拿到DDL,然后把呃格式和我们的需求都告诉AI,让AI去生成嗯,对应的表结构,拿到表结构以后,拿到他选择好的表以后呢,再通过AI去让它生成一个搜狗L语句啊,最后输出出去啊,可以看一下我们的。
14:11
积木的后台,这是选择表。我们会先从选定的数据源中拿到所有的数据库表,然后调用流程的接口。嗯,其实就是通过网络请求调用了它的接口。然后把我们的功能传递进去。然后获取到它的结果啊,直接调用了它的结口,然后获取到最后的结果返回回来。选择表,然后生成circleq也是一样的,通过呃,也是通过it TP请求,然后拿到我们的表的信息啊,把表的每一个字段的信息都截取出来,组装成一个Jason的结构,然后把这个Jason的结构呢一起传给了。
15:03
AI的流程后,让流程去生成我们的这个最终的搜狗语句,然后我们最后呢,在页面上把搜狗语句展示出来。啊,这个功能就实现了啊,其实很简单啊,主要的实现的逻辑呢,都是在AI这边儿,让AI去实现的。下面呢,这是第二个功能啊,我们都知道OCR识别呢,呃,以前都需要去使用第三方的API平台,然后调用他们的接口去进行识别,那有了AI流程设计以后,我们完全可以自己去实现OCR的识别,比如说我们现在有一个。OCR的类型叫身份证识别,你让他识别身份证的内容。那我可以这样解析一下,然后传一个身份证的图片。
16:01
解析。那AI可以把身份证中的呃,参数,姓名、性别、民族,包括身份证号全部都识别出来啊,这样就很轻松的就实现了一个OCR的识别,那这个功能是怎么做的呢?我们先看一下流程的设计。开始点点输入一个用户的问题和一个图片。然后跟一个条件分支,我们去判断一下图片是不是空的啊,如果是空的,那当然它这个是传说是不合法的,会告诉他请提供图片,嗯。接下来呢,我们会通过一个脚本执行节点。去判断参数里面的问题存不存在,如果参数里的问题不存在的话,那么我们会重新给一个问题,叫从图片中提取文字。
17:02
最后文字,嗯,问题和图片都有了,我们把这两个东西一块儿给AI,让他去提取文字内容,文字内的内容,并且按照我们要求的格式返回。最后把这个大说大模型的返回的内容输出出去,嗯,然后在前端呢,我们的页面中,其实。通过一个解析节点,然后调用了我们的流程的接口,调用了流程的接口参数就是内容为准。最后的返回内容,就直接把我们的返回内容截写出来,然后展示到我们的文输入框里。当我们实际使用的时候,肯定这些内容会在组装成一个Jason,然后调用我们的业务逻辑。那这样可以看到很轻松的我们就做出来了一个可能需要依赖第三方的平台才能够实现的能力,但是如果我们用AI的话,我们可以很容易的就把这个功能实现了啊。
18:13
好了,以上就是今天给大家介绍的所有节点了,那这些功能搭配起来,不管是做智能客服,自动办公,还是搭建自己的AI运动化,都能够轻松搞定,那接下来就靠大家动手去实践了。
我来说两句