今天继续给大家详细介绍下Dify如何使用。我们在【探索】菜单中,选择标签是文本生成的【SQL生成器】这个智能体,添加到工作区。

添加到工作区打开该智能体后,可以看到,和最基础的聊天智能体基本上一模一样,所以我真不清楚Dify咋想的,还把基础的聊天和文本生成,分成了两个智能体。
1、左上区域,可以填写提示词,要求这个智能体干嘛。
2、左下区域,多了一个可以添加的变量部分,例如你在使用时,必须选择一个目标数据库,输入查询的内容。添加的变量,会传入到左上的提示词部分,最后在使用时,替换掉内容提示词中的变量。其中,在右侧,也能对变量进行预览。
3、右上角,没啥说的,换一个模型即可。

下面给大家演示下这个智能体的效果。我们先第一步,把模型更新成deepseek,然后第二步,点击【发布更新】进行保存,最后点击【运行】去运行该智能体。

运行时,我在左侧选择了目标数据库和输入了要查询的内容,点击【运行】后,在右侧给出了结果。

我们查看日志时也可以发现,输入的两个变量,在Prompt中已经被替换掉了,最后变成了User Prompt的一部分,用于生成结果。

到这里,这一部分也给大家讲完了如何创建使用一个文本生成模式下的智能体,也非常简单,撒花结束🎉🎉🎉。
智能体实战5:工作流模式的智能体经过之前几次智能体的实战,大家初步应该能感受到,创建和使用智能体是那么的简单,但那三种模式【聊天助手】、【Agent】和【文本生成应用】,只使用于简单的场景,复杂场景下,我们还得用工作流。但是Dify中的工作流,也设置了两种模式,一种是适合单轮自动化任务的工作流,也就是下面我们要讲的这一部分,另一种是支持记忆复杂的多轮工作流ChatFlow,这个才是最常用的,我们下一部分进行讲解。首先,我们选择【客户评价处理工作流】,添加到工作室。

打开后可以看到,是用各种组件构建的工作流。

这个工作流都是怎么绘制出来的呢,可以通过页面底部,点击【+】号,可以看到里面提供了很多组件,选中具体某一个组件,做拽到页面上即可。

那各个组件是如何建立关联的呢?只需从一个组件的【+】号部分,拖拽至另一个组件的【+】号位置即可。

那每个组件我们最应该关心的是什么呢,有三个:前一个组件的输入内容、组件本身要处理的业务逻辑、组件本身处理后输出的内容(有的时候这部分没有)。例如下面的图的问题分类器这个组件,这个组件的作用,是根据输入的评价,利用大模型的理解能力,自动判别该评价是正向的评价还是负面的评价,然后输出的变量,就是分类的结果,所以我们下图可以很明显的看到这三部分。

因为每个组件的使用方法都不一样,Dify默认提供了16个组件,所以具体如何使用,大家在组件处打开帮助文档进行查看即可:

如果我想对组件的每一步进行具体调试怎么办,类似于程序中Debug代码。除了运行完可以查看完整的log,在log中打开每一个节点查看具体的运行状况外,还可以在运行前,对单个组件进行Debug处理。例如我在问题分类器这个组件上,点击【运行此步骤】,想对该组件进行单步调试。调试的内容我输入了【这个打印机不好用】,看他会给我们返回什么结果。

运行之后,可以从调试结果中看到,输出了三部分:输入、数据处理和输出,正好就是对应我们上面提到的每个组件需要关注的三要素。最后也输出了正确的结果,他是一个负面的评价。

讲到这里,工作流的如何使用基本就讲完了,撒花🎉🎉🎉。但是还没有结束后,下一部分实战,我们通过ChatFlow这种模式,真正创建几个,感受一下。
智能体实战6:ChatFlow模式的智能体~API Demo接下来,让我们具体实战一个ChatFlow模式的智能体,之前也多次提到了,ChatFlow是最常用的我们创建智能体的方法,其实本质上的使用方法和上面工作流智能体基本上一模一样,但是差在哪呢,主要差在工作流只是支持单轮自动化任务的编排,但ChatFlow是支持记忆的多轮会话,具体体现在LLM(大模型)节点上(当然还有其他的区别,但最核心的区别在此)。
通过下图大家可以看到,左侧是工作流模式下新建的LLM节点,右侧是ChatFlow模式下新建的LLM节点,主要是多了一个记忆的功能,并且默认是关闭的。所以这样看的话,我们还不如直接创建ChatFlow模式下的智能体即可,而且支持的功能更多,效果更好,所以个人感觉现在工作流模式有点鸡肋,平时我基本上从来不用。

现在我们来具体实战一个,做一个API-Demo,可以获取某个城市的实时天气。
第一步,我们新建一个【开始】的节点(默认存在,不用新建),然后在开始节点中添加一个变量,叫做【city】,代表要输入你要查询天气的城市,设置为必填。


第二步,我们新建一个【HTTP请求】节点,然后跟前面的【开始】节点相连接。

具体【HTTP请求】节点的设置,参照下图:其中GET请求部分,输入的路径如下【wttr.in/前一个节点传入的cit...

第三步,我们新建一个【LLM】节点,然后跟前面的【HTTP请求】节点相连接。

具体【LLM】节点的设置,参照下图:其中需要选择一个模型,然后在System Prompt部分输入【请输出今天天气如何】,并且传入上一步【HTTP请求】节点Body属性。User Prompt部分传入最初用户输入的Prompt即可。

最后一步,我们新建一个【直接回复】节点,然后跟前面的【LLM】节点相连接。

具体【直接回复】节点的设置,参照下图:只需传入前一步大模型的回答结果的文本即可。

到这里,我们就创建完了,然后发布更新下即可,保存刚才创建工作流(别告诉我不知道咋保存💦)。最后运行下,看下结果,我就直接在预览模式下看结果了哈。

上面可以看到,我问大连的天气如何,给出了当前时间外边的实时天气。到这里,带大家手把手创建了一个ChatFlow模式的智能体。撒花🎉🎉🎉。
智能体实战7:ChatFlow模式的智能体~RAGFlow-Demo下面我们要做的是,如何将ChatFlow模式下创建的智能体连接知识库进行查询,输出结果。这里的知识库选择的是外联RAGFlow的外部知识库。整体创建完的感觉如下图所示,这里的模型我选择是本地Ollma部署的模型,大家可以选择一些付费的商用模型,或者也可以和我一样,整合一个自己本地模型试试。如果做的过程中有什么问题,可以私信我或后面留言。

其他:查看日志和单步调试我们创建完的智能体,中间运行的流程,我们一定是想看log的,方便我们以后进行调试,所以可以点击左侧第三个按钮【日志与标注】查看完整的执行日志。

下面可以看到,显示出了详细每一步的执行的log。

每一步展开后,可以看更详细详细的Log。

当然,除了这种方式外,每一组件,还可以单步调试,类似于Debug的感觉。拿下面【HTTP请求】组件为例,选择【运行此步骤】进行调试。

调试后可以看到具体的信息,包含了执行的输入、执行的过程和输出的结果。

其他:监测除了可以看某个智能体具体的执行日志外,还可以查看该智能体的一些使用和统计的相关信息。也很简单,点击最左侧最后一个【检测】按钮即可。

其中最后的一个【费用消耗】这个统计要特殊说明下,此费用仅供参考,这个消耗的费用和你调用云平台上模型API产生的费用是对不上的,所以具体调用模型的费用,还是要以模型平台的为准。
截止到这里,社区版本的Dify最核心两大功能【知识库】+【智能体】这两部分就全部讲完了,虽然都是简单的Demo,但只要把这些学会了,后续结合业务场景,可以创建出更强大的智能体。
原文地址:https://mp.weixin.qq.com/s/EgWAfqSQ2i69WiniZ69S-g