00:00
大家好,在之前的视频中,我们一起了解了AI模型模块的基础用法,不知道大家有没有动手试一试呢?本期视频我们将继续深入带佳佳全面认识AI工作流模块。本期内容将分为两个部分。第一部分我们会详细的讲解每一个节点的用途和配置方式,第二部分我们会通过几个实战案例,带您一步一步把流程跑起来。希望通过这期内容能帮助大家真正把AI流程跑起来,无论你是上刚刚上手,还是已经开始实战,相信本期视频都会带给你不少启发。那我们马上开始吧。首先,我们先说一说开始节点。每一个新建的流程都会自动生成一个开始节点。
01:03
而且呢,这个节点不能复制,也不能删除,简单理解就是一个流程的起点,独一无二。下面我们来看一下开始节点的配置。开始节点默认包含两个输入字段,分别是用户问题和用户对话历史记录。当AI应用调用流程时,用户的问题和对话记录将通过这两个字段传递进来。通过添加字段可以添加自定义的输入参数,添加的时候呢,我们需要输入字段的名称,显示名称、字段类型以及是否必填。
02:01
在开始节点中配置的所有输入字段,我们在调试中都可以实时的看到变化。当我们创建了流程,配置好开始节点以后,我们可以尝试着保存一下流程,可以看到提示我添加一个结束节点。那什么是结束节点呢?结束节点是流程的最终出口,表示流程执行到此为止。并且有结束节点会将处理结果返回给外部的调用方。我们添加一个结束节点,再保存。可以看到,现在可以成功的保存了。那么结束节点里面呢,需要配置一个输出的变量。输出的变量就是最终返回给调用方的变量,我们先简单选择用户的问题,将开始节点中用户的问题返回给用户啊。
03:10
通过调试看一下我们的结果,我们用户问题可以随便输入。好。看看结果,返回了一个Jason类型Jason的数据,那么Jason的key呢?是我们刚刚输入的key内容,就是我们刚刚输入的开始节点中的用户问题,那也就是现在的流程是我们输入了一个你好,存储为用户问题,然后在结束节点中再把这个用户问题返回给了用户,变成了一个叫question题。这个就是结束节点最基础的使用。相信有眼睛的同学已经看到了,在结束节点中还有一个返回文本的选项。
04:01
那这个返回文本有什么作用呢?可以看到我们刚刚的调试。结束节点返回的是一个Json类型的数据。那返回文本,顾名思义就是让我们的结束节点返回一段文本,这个文本是可以自由拼接的,比如说我们在文本内容中编写输出。的。这时候再引入我们上面的输出变量。看一下效果。可以看到最终输出的是一个字符串类型,而且是我刚刚写的格式,那中间的占位符呢,就替换成了实际的变量,这个就是结束节点的配置。
05:08
当然了,一个流程可以不止拥有一个结束节点,一个流程是可以有多个结束节点的。但是如果有多个结束节点。只会输出其中一个结束节点的内容。比如我们再新建一个结束节点,然后输出。我们最早创建的结束节点返回的是输出的内容,是括号这些内容,那么我们后面新建的结束节点输出内容是输出的内容2我们可以看一下我们到底输出的是谁。虽然流程都执行了,但是最终输出的是我们后添加的这个结束节点的内容,那这一点呢,我们需要去注意。
06:00
那有同学肯定会问了,配虽然配置了多个接触节点,但最后只反馈一个,那我们配置多个接束节点有什么意义呢?这个就是配合我们后面要去讲的条件分支去使用呢?我可以根据不同的条件分支返回不同的结束。然后每一个结束节点会返回不同的内容,这个在我们后续讲到条件分支的时候再去详解。下面让我们来一起新建一个大模型节点试一试。点击加号,选择大模型节点。在大模型节点的配置中,我们需要先选择输入变量。输入变量是节点之前的所有节点的输出内容。我们选择用户问题。给用户问题这个变量起一个名字。那下面呢,我们要去选择大模型节点的模型。
07:06
干模型节点支持灵活配置使用的模型。呃,输出的效果呢,也与所选的模型有很大的关系,比如说呃,Open AI呢,它的综合性就比较强,Keep think的中文能力就会强一些。我们可以,我们现在选择open AI.呃,下面呢,我们就来配置提示词,那提示词分为系统提示词和用户提示词。系统提示词用于设定模型的身份,比如客服、老师、律师等等,那他遵循的语气风格和任务的说明都是在这个系统提示词里面去写的。我们也可以在提示词里面去通过占位符引用输入的变量。如果不知道提示词该怎么写,可以使用右上角的这个生成按钮,让AI来帮我们生成一个提示词。
08:08
比如说,我们现在生成一个可以将多种语言翻译为。英文的翻译器。生成完成之后直接替换。用户提示词呢,就是用户的实际的问题,那这里呢,我们就。直接引用用户的问题。保存配置,下面呢,我们将大于大模型节点的输出,输出的内容是最后AI的返回的回复内容,直接将它的输出内容返回给返回出去。调试看一下效果。
09:03
今天的天气很好。可以看到很快我们就返回了啊,输出的内容是啊,今天的天气很好的英文,嗯。那这样呢,我们最基础的一个大模型节点就已经做好了。那有同学肯定要问了,那如果只是简单的配置这样一个大模型,我们为什么要用工作流呢?我们完全可以用AI应用去实现呀,那肯定有人还记得我刚刚有提到,我们模型的选择会直接影响到我们呃,大模型节点的输出。那众所周知,Open AI是有看图说话的能力的,那deep think呢,在中文文案上面呢,又比open AI要强上很多。那如果我们,我们是不是可以让他们组合起来,让open AI去?
10:06
读取一个图片,理解图片的内容,然后让deep think在图片内容的基础上去创造一个文案。我们尝试一下。好的,我们先来清理我们,呃,好的,我们新建一个流程吧。流程名字叫做看图讲故事。先配置一个开始节点,开始节点需要一张图片。嗯,这段用image。再说。啊,图片是必填。
11:00
下面呢,跟一个大模型节点。我们可以修改一下它的名称叫。图片。它的输入参数是图片。我们模型选择open AI, 而且是open AI的4O,那我们确认一下。我们确认一下它是不是open AI啊,好的,我们用了open AI的so mini, 它是有图片理解的能力的。提示词呢,我们我已经准备好了一个图像的分析专家。最后呢,会输出图片的信息。
12:17
啊,用户提示这里呢,我们。告诉他分析并解释图片的意义,提供详细的解读和背景信息。需要注意啊,我们虽然引用了这个图片,但是我们并没有在提示词里去把它写进去,是因为在我们工作流中,只要输入变量中,变量是一个图片,那它在发送消息的时候呢,就会自动附带上,我们不用再提示词里再将这个图片引用了,就是不用再去将它这样引用进来。啊,我们每次发消息的时候是会自动把图片带上的。呃,下面呢,我们再新建一个也是大模型节点,这个大模型节点是。
13:05
讲故事。讲故事,我们让think去讲,那么它的输入参数是。上一个大语言模型返回的内容。用户提示就是这个。简单看一下提示词啊,其实也是通过生成提前生成好的。啊,它是会一个创作的故事,然后会根据我们的用户提示,然后去创造一个新的故事出来。那最后我们的结束节点选择。
14:01
讲故事的节点。直接将这个故事讲出来。哦。下面呢,我们来调试一下,看看他有没有按照我们的想法去讲故事。因为用户问题没有用,所以我们可以不填写用户问题。那我们传一个素材。嗯,这样一个游泳的绿色的,呃,一个绿色的游泳的卡比的图片。好的,运行结束了,我们来看一下啊,果然他创造了一个卡匹的蓝色奇遇的故事啊,我们追踪一下过程,可以看一看。
15:04
Open AI通过我们的图片。理解出了图片是一个卡通角色,叫卡比啊,然后简单讲了一下这个图片是什么东西。然后deep think呢,通过open AI的描述,创造了一个蓝色的卡比的蓝色奇遇的故事。那这样呢,就是我们呃,大模型节点的一个用法啊。下面呢要介绍知识库节点,知识库节点呢,是从配置好的知识库中查询和用户问题相关的信息,并且将最后的查询结果返回给下游的其他节点使用的。那这个知识过节点呢,也是构建智能问答系统,自动化文档助手等应用的一个重要的组成部分,那现在呢,我们就从头儿开始做一个知识库节点的用法。
16:04
呃,我们先要去创建一个AI知识库。啊,先创建一个简单的知识库,选择一个向量模型。好的,在知识库中上传我们的文档,呃,我们有提前准备一个AI jc的文档,就是我们刚看到的这个,嗯,选择大模型的这个吧。啊,大模型节点的。文档传上去。好,已经穿好了,我们看一下我们能不能匹配到内容。在命中测试中输入大模型节点。然后去查询一下,我们是能够正常的查询到内容的。
17:05
在流程设计中,我们新建一个流程。真是酷。新建知识库节点。在知识库节点中,知识库节点的配置非常的简单,只需要去选择呃一个变量。从用户的开始的问题,那这个是我们的查询的内容,下面呢,要选择知识库啊,可以多选,也可以单选,嗯,但必须得选择一个。好的,我们选了以后,然后最后把知识库的内容输出一下。知识库会分文档和文档列表两个输出,嗯。我们。把他们都输出出来,看一下效果。
18:11
那最后输出了两个内容,一个list,可以看到这是一个列表啊,每你每一个列表里面都会是一段匹配到内容。然后下面是一个content,就是把刚刚列表的内容呢,拼在了一起,返回回来,那我们有了它以后呢,我们后面的节点就可以去读取它的内容,然后去做一些其他的处理了。那下面呢,我们呃,再配合上一个大模型节点,让它做成一个最简单的reg系统。也就是用户知识问答系统输入变量中需要选择用户的问题。还要选择知识库的返回内容,随便哪一个都可以。
19:11
什么说随便哪一个都可以呢?是因为只要在大模型节点中选择的变量,输入的变量是知识库,来源于知识库文节点,那么我们是不需要在系统提示和用户提示里面去引用它的,呃,我们每一次发消息的时候呢,默认都会将这个节点的返回内容提示带给AI,然后让他去回复我们的内容,我们只需要在系统提示简单一些啊,呃,根据。真是。的那种。嗯。我的自己。用户提示是。
20:00
好的,我们再把大模型节点的输出返回给输出出来。直接返回内容。嗯。那最后AI返回的内容告诉我们什么是大模型节点,我们可以追踪一下。知识库确实正常的查出了内容。它的输入也包含了,那这样的话。可以确定,我们的大模型是从知识库的内容里面,然后去回答用户的问题的。那这个流程呢,我们是可以给它放到做好的这个知识库节点检索的功能,我们可以给它放到AI应用里面去试一下。
21:16
选择高级编排。然后关联我们刚刚的这个知识库节点。可以看到在这里呢,我们也可以正常的去使用它。大模型节点是什么?
22:07
呃,可能有同学已经发现了。它的返回内容呢,是不包含图片的。但是我们的文档写的时候呢,实际上是包含图片的,我们可以再问一下,嗯。输入变量如何配置?看到这都是我们的内容的,我们的文档的内容,但是并不包含图片。那这一点怎么解决呢?我们GCG的大模型做的很厉害的一点呢,就是我们其实是支持传图片的,具体该怎么做呢?我们一起来看一下。
23:05
好,回到我们的知识库,我们新建一个知识库。吴文,这是。同样的,选择一个向量模型。好,在上传之前呢,我们先来看一下我们的知识库。我们的知识库分为两部分,一部分是文档,一部分是静态资源,找一找我们的大模型节点的介绍。可以看到大模型节点的介绍呢,是一个markdown格式的文档,然后在这个文档中会包含一个图片的链接。这个图片的链接对应的就是。Static argc里面的这个图片。那确保我们的图片的写法,以及我们文,我们这个目录格式是正确的啊,对应的是跟目录的static AI GC下面啊,确定这样的一个格式,然后将它俩打成一个压缩包。
24:17
可以再看一下格式。嗯,根目录是dock和static,一定要注意。如果你的文档中,如果你的文档中。图片的路径,嗯,图片的路径是。杠开头,那你的这个文件夹一定在你的压缩包里,也要是根目录啊,如果你是点杠这种相对目录,那这个相对目录一定这个文件一定呢,这个目录一定呢,是要相对于你的这个文档所在的目录才可以才能够正确的读到。好的,那我们将我们这个刚刚打包好的这个文件上传一下。
25:02
怎么传?我们刚刚用的是文件上传,现在使用文档库上传。嗯,这是我们刚刚压缩的文件。电脑很快传上来了。嗯,有一些草稿的,这个是因为我们我的苹果电脑压缩以后呢,它会带一个点儿开头的隐藏文件啊,这个是没有用的啊,没有关系,它没有没有没有向量化也没有关系,我们再来查一下。可以看到,我们现在检索到的内容都是包含图片的。好的,下面让我们刚刚去刚刚的流程中。知识库检索。然后将知识库。
26:03
换成刚刚选的图文的知识库。我们要在大模型节点里面特别去说明一下。那我们再测试一下,新建一个聊天儿。我行,今天。好的,可以看到我们现在的AI的返回就已经是一个图文格式的返回了,嗯,这一点呢,用在我们的呃,在线文档的问答上面,我觉得是非常棒。
27:00
刚刚我们利用这个工作流,然后返回了我们的这个文档的内容,但是呢,我们需要先通过一个知识库的节点,通过一个知库的检索,然后再通过一个大模型的去处理,然后最后才会回答一个用户问题,那我们实际中的工作流呢,可能要比这个更复杂,那这样就会有一个问题,就是我们的工作流的调用会耗费非常长的时间。那用户有的时候可能并不知道我们工作流有没有正在正常的运行,那这个时候呢,我们在调用的时候,是不是能够先回答用户一些问题,中间在我们的中间过程中先告诉用户一些问题,然后一步一步的去回答呢?啊是可以的啊,我们可以用直接回复节点。我们在知识库检索完成以后,就通过直接回复节点先告诉用户我们的目前的进度。
28:07
比如我们可以直接啊回,直接回复节点和结束节点配置的方法很像它的,呃,它只有回复内容,它不能够回复变量啊,回复的内容都是文本类型的。可以看到我们在大模型节点之前呢,手动回复了一句话,我们在工作,我们在实际的调用的时候看一看。可以看到,在大模型节点还没有返回的时候呢,我们的直接回复节点回复的内容已经回复过来了。嗯。那这样呢,我们就可以做到了跟用户的一个互动啊,这就是直接回复节点。
我来说两句