今天给大家详细介绍下Dify如何使用。官方文档:docs.dify.ai/zh-hans/int…
安装启动
项目Clone到本地之后,我们采用Docker的方式进行安装:
cd difycd dockercp .env.example .envdocker compose up -d
默认所使用的是80端口,所以我们访问:http://localhost/apps 即可访问Dify。注意:Dify升级时,要注意备份Docker目录下volumes文件夹,因为Dify上的所有数据存储在此。升级后还原备份的volumes即可。
使用前配置我们注册完账号,进入Dify主页后,先不要着急使用,先配置下模型和用户权限。配置模型:我们按照下图,单击右上角自己的头像,选择【设置】->【模型供应商】,即可添加今后在DIfy中使用的模型,例如我这里添加了DeepSeek、百度的文心一言、阿里的同义千问和本地的Ollama模型(注意,配置Ollama模型的URL时,有的小伙伴可能和我一样,BaseURL地址可能是:host.docker.internal:11434)。
Dify默认支持基本上所有主流的模型厂商,添加时只要提供对应的模型Key即可(大多数只需要API Key即可)。如果不知道如何获取,有提示可直接Link到对应的网站去配置即可。例如下面的添加OpenAI模型,按照引导添加即可。
设置用户权限:企业内使用Dify时,一定有多个用户,所以我们一定要对用户进行权限的设置。例如,有时候针对创建好的智能体,普通用户只能使用,没有修改的权限等。如何设置呢?参照下图,同样在【设置】下,这次选择【成员】选项卡,在这里可以添加用户和对用户设置各种权限。
功能介绍下面,来介绍下Dify的基本功能:我个人认为,核心功能就一个,那就是创建智能体(包括工作流也算,只不过默认提供了五种模式)。还有一个辅助的功能,一个简陋版的知识库创建和检索功能。五种智能体模式:聊天助手:简单配置即可构建基于 LLM 的对话机器人。
Agent:具备推理与自主工具调用的智能助手
文本生成应用:用于文本生成任务的 AI 助手
Chatflow:支持记忆的复杂多轮对话工作流
工作流:面向单轮自动化任务的编排工作流
大家不要被上面写的啥新手适用或进阶用户适用给唬住了,其实提供这五种,最后你会发现,最常用的,就是Chatflow。知识库:知识库默认支持两种方式,如果是简单的场景,我们可以直接在Dify中创建知识库,后续引用即可。但我上面也说了,他默认的知识库功能有限,所以还支持连接外部的知识库,例如后面我会演示,如何外接RAGFlow知识库,这种场景企业用的或许多一些。
其他功能:工具(插件)工具,也可以叫做插件,它是辅助创建智能体用的。Dify的插件市场里有着各种各样的插件,可以满足我们创建智能体时连接外部应用的需求。例如后面会给大家演示最近爆火的MCP插件如何使用,去创建智能体。当然也可以写代码去自定义插件,官方文档有着详细的教程,这里不过多解释了。
其他功能:多语言Dify支持多语言,可在设置中进行切换。
知识库实战1:Dify中创建知识库下面,我们先在Dify中创建知识库。我们在知识库菜单下,单击【创建知识库】
然后我们在导入已有文本选项卡下,选择上传我们要作为知识库的文件。例如我这里上传了一个《中国AI智慧操场行业研究报告》的pdf文档。然后单击【下一步】。
然后我们进入到了知识库设置的详细页面了。如果你有RAG基础的话,这个页面整体使用起来会相对容易些,否则你需研究一下。首先,先重点看分段设置这个区域,这里可以对【分段标识符】、【分段最大长度】、【分段重叠长度】、是否【替换掉连续的空格、换行符和制表符】、【删除所有 URL 和电子邮件地址】等进行设置。
如果不知道怎么设置这部分,默认就可以,或者看问号的提示进行设置(后续其他地方也是一样,不知道的话,看问号的提示)。
其次,我们关注第二个部分,索引方式这里,我们选择默认的【高质量】就可以。然后下面这个部分,我们必须选择一个Embedding的模型,这里需要先确保,我们在模型设置的页面,添加的模型厂商中,有Embedding模型才可以,否则这里选不到。类似于我下面的,选择是阿里的【text-embedding-v3】的模型。
最后,我们要关注检索设置这个区域了。里面提供了三种检索方式【向量检索】、【全文检索】、【混合检索】。其实知识库检索的本质,就是你上传的文档,通过embedding处理,转换为了向量存储在向量数据库了,最后检索是从向量数据库进行的检索。所以下面这三种,各有各的优点和使用场景,大家根据需要选择即可。这里我选择【混合检索】,我一般这种用的多,感觉检索出来的结果更加准确。
三种检索方式:向量检索:通过生成查询嵌入并查询与其向量表示最相似的文本分段全文检索:索引文档中的所有词汇,从而允许用户查询任意词汇,并返回包含这些词汇的文本片段混合检索:同时执行全文检索和向量检索,并应用重排序步骤,从两类查询结果中选择匹配用户问题的最佳结果,用户可以选择设置权重或配置重新排序模型权重与Rerank方式。
其次,在混合检索下,有两个选项,一个是权重方式进行检索,一个是Rerank模型方式进行检索。这里也简单解释下,如果选择了Rerank模型方式,你需要从你之前添加的模型厂商中选择一个Rerank模型才可以(很多模型厂商是没有的,大一些的模型厂商会有Rerank模型),Rerank模型的作用是,可以根据候选文档列表与用户问题语义匹配度进行重新排序,从而改进语义排序的结果,简单理解就是从检索结果中,把更符合你问题的那些chunk片段排在最前面展示出来。
这里我们选择另外一个,权重设置,通过调整下面的语义和关键字的比例来对内容进行检索,这里我就不设置了,默认用语义0.7和关键字0.3的比例。然后最后两个参数,Top k是指检索出几个Chunk片段,如果开启Score阈值,只有检索结果的Score分数高于阈值时才会被检索出来,我们默认就关闭即可。(这里还要特殊说明一下,在知识库创建时进行设置的Top K 和 Score 值,在后续检索时发现还会有有地方还让你设置,但是会受这里创建时所设定的值制约如。例如后续我创建知识库这里TopK设置成了3,但是你创建智能体用知识检索时你把Top K设置成了5,但检索的结果还会是3,这个地方要注意,后面对应有地方还会说这个事)
然后我们点击【保存并处理】,开始文档向量化的过程。下面可以看到,向量化(嵌入)成功了。然后我们点击【前往文档】,可以进行查看。
我们点击我们上传的文档后可以发现,已经chunk成功了。到这里,知识库就算是创建成功了。
到这里还没有结束,我们点击左侧的第三个小图标,对知识库进行设置,可以对知识库名称、知识库描述和可见权限等进行设置。这里尤其要关注权限设置,默认是只有知识库创建的本人,也就是只有我才能看见,如果你需要让所有的团队成员或部分团队人员可见,一定别忘了修改知识库的权限。
我们知识库创建也创建成功了,设置也设置了,那该最后一步了,我们检索试试吧。我们点击左侧的第二个图标,进行检索测试。在文本框中输入【中国AI智慧操场行业发展历程】,然后点击【测试】按钮,即可发现右边出现了三个结果。(出现三条是因为Top k之前设置的是3,每一条的右上角还有对应的Score分数,所以如果你之前设置了Score的值,只有高于你设置Score的片段才可以检索出来。)
到这里,才算是真正用Dify创建知识库成功了,并且可以检索出来,撒花🎉🎉🎉。其中有很多设置的参数,上面只是简单的解释了下,如果需要玩好知识库这部分,回去一定要积累RAG领域的知识,或者参考Dify的官方文档,看每一个知识库设置的参数是干什么用的,然后去进行各种尝试和学习,这样才能创建好和用好知识库(主要是知识库的检索,因为我们创建知识库的目的,就是为了检索)。
知识库实战2:Dify中连接外部知识库Dify默认的知识库其实不咋好用,简单的场景还可以,复杂的场景就没办法了,所以我们大多数时候,是连接外部知识库进行检索(本质上是API)。而在开源领域,之前也说了,最接近企业级应用的是RAGFlow知识库,所以我们这一部分,教大家Dify如何接入RAGFlow。首先,我们在知识库右上角选择【外部知识库API】->【添加外部知识库API】,去填写连接RAGFlow的相关信息。
其中【Name】随便填,例如我这下面写的是RAGFlow、API Endpoint这里要注意,是RAGFlow的domain + 【/api/v1/dify】,这个是固定的,例如我RAGFlow的domain是下面的【108dq967ds407.vicp.fun】,那最后的Endpoint拼接【/api/v1/dify…
最后的API Key就是RAGFlow的key。
具体RAGFLow和Dify的设置对应关系参照下图:
其次,我们在创建知识库部分,点击【连接外部知识库】,去连接RAGFlow中的知识库。其中要注意两个地方,第一个,【外部知识API】选择你上面创建的即可,例如我的叫【RAGFlow】,还有一个【外部知识库ID】,因为RAGFlow中有很多知识库,但我们只是连接其中的一个,所以要输入对应RAGFlow知识库的ID。
具体RAGFlow知识库的ID怎么找呢,参照下图即可,展示了RAGFlow与Dify的对应关系。
到这里,外连RAGFlow知识库就创建成功了,下一步还是和之前一样,测试一下。例如我问它,第一章内容是什么,Dify通过API的方式,背后连接RAGFlow对应的2025年中国人工智能计算力发展评估报告知识库,查询出了结果。到此处,搞定,继续撒花🎉🎉🎉。
---------
下面让我们继续进行,进入到创建智能体部分,首先是最简单的,创建一个聊天模式的智能体。
智能体实战1:最简单的聊天模式下面让我们继续进行,进入到创建智能体部分,首先是最简单的,创建一个聊天模式的智能体。这里我们不从0创建,找一个Dify预制的聊天模式智能体进行讲解。(不要问我为什么不带着大家创建,因为实在是太简单了......讲解能听明白了,后面你肯定更容易创建)我们在最上面的探索菜单中,可以看到Dify默认了一堆智能体(实话,我都研究过,不咋好用......参考学习还可以),这里我们选择标签是【聊天助手】的智能体:【会议纪要】,然后添加到工作区。
添加成功后,我们在【工作室】选项卡就可以看到【会议纪要】智能体了。(工作室菜单是DIfy最核心的菜单,你的智能体,创建后都会在里面显示)
点进去之后,可以发现真是特别简单,左侧通过提示词限定了【会议纪要】的功能,然后在右侧最上角,切换成你的模型就可以使用了。
切换模型后,点击【发布】,选择【发布更新】进行保存。
然后我们来测试一下,点击【运行】后,进入到使用页面,我输入了下面如图所示的会议内容。
然后会议纪要的智能体给出了结果,结束,撒花🎉🎉🎉,第一个智能体,就是那么简单。
智能体实战2:Agent模式下面,我们再来看第二个模式,个人感觉要被淘汰掉的传统Agent模式(最后再来告诉大家为啥要被淘汰了)。同样,我们也不创建,看Dify预置的一个例子【YouTube 频道数据分析】。
这个需要安装工具,安装即可。
然后发现这个智能体主要分为三个部分,除了我们之前讲过的【提示词】和【模型】两部分,多了一个【工具】的部分,也就是刚才安装的那些插件。
这里简单说明下,如果大家之前有过创建智能体的经验,这部分很简单。这种智能体的玩法,就是在Prompt中,定义好角色、技能、工作流程(或者叫工作步骤)、限定条件这四大部分。角色:告诉你这智能体是干嘛的,能做什么。技能:该智能体拥有的技能(或插件),也就是下面工具部分那几个工具。工作流程:规定该智能体的操作步骤,每一步应该干什么,调用什么工具去完成什么任务。限定条件:对该智能体设定一些规则。这样,就可以在智能体执行的过程中,调用对应的工具完成任务。具体不给大家演示了,下面来聊聊为什么我认为,这种模式,以后使用的场景越来越少,甚至夸张点说,淘汰掉吧(完全个人观点,不赞成勿喷)。
1、首先,这种智能体模式是早期,在2023年和2024年初的主流模式,处理简单的场景还可以,但是复杂的场景下,就得上工作流。并且Agent模式可以做的,工作流模式一定能做,反过来,工作流模式支持的复杂业务流程,这种Agent模式不一定能完成。所以这种Agent模式现在存在感就很鸡肋,反正我是基本上没用过。
2、其次,现在多数场景下,我们用的都是推理模型,推理模型是不吃设定角色那一套玩法的,大家可以去看看DeepSeek-R1推荐的Prompt写法,我就不多说了。
3、现在MCP都出来了,谁还玩Function Call那一套的工具调用模式,过去的那一套Agent玩法太复杂,而且有时候模型还不听话调用错工具。但是这种Agent模式还存在,肯定有他的价值,但是写法上我们要改变,下面我给大家展示一个Agent模式连接MCP的例子。
智能体实战3:整合MCP今天的最后,放一个大招,给大家演示下,Dify如何在Agent模式下整合MCP。关于MCP的基本概念,这里就不细说了,大家如果不了解的话,以后还想玩AI方向的话,强烈建议必须查一查。1、安装MCP插件。在【工具】->【探索Marketplace】->搜索MCP->安装插件【MCP SSE / StreamableHTTP】。我之前已经安装过了,所以点进去后,显示安装成功。
2、配置MCP。这一步很关键。首先点右上角的【插件】,可以看到你安装过的所有插件,然后选择刚才我们安装的MCP插件【MCP SSE / StreamableHTTP】,需要在右侧进行设置。因为我这里设置完了,所以显示已授权,下面教大家如何设置。
点开之后,会发现,主要就配置一个MCP的Server地址,这里我们用的是Zapier平台去获取这个Server地址才行。
{ "server_name": { "url": "XXXXXX", "headers": {}, "timeout": 50, "sse_read_timeout": 50 }}
Zapier平台MCP Server地址获取方法:1)、访问地址:mcp.zapier.com/mcp 后,在Tools下点击【Add tool】去搜索 + 配置你想添加的MCP工具即可(只需参照步骤操作操作添加,需要各种授权,这里就不一步步演示了)。下图是我添加的Google邮箱发送邮件的MCP工具。2)、在Connect选项卡中,选择一个MCP协议,选StreamableHTTP或SSE协议哪个都行,反正我们上面的DIfy插件都支持,然后Copy MCP Server的路径后,配置到Dify中即可。
整体在Dify配置成功后,就是和我上面的图一样,是Dify会显示已授权的状态。
3、创建Agent应用。我们选择【创建空白应用】->选择【Agent】模式,然后给应用起个名字,例如我的叫MCP-Demo。
4、配置模型和添加MCP工具。然后进去之后非常简单,我们提示词啥也不用写,就右上角配置个模型,在工具部分,添加刚才安装和配置成功的MCP工具即可(安装插件确实安装了一个,但其实是两个工具,一个是查找MCP工具列表,一个是调用MCP工具)
5、运行测试。我就说了一句话,让他给我自己的QQ邮箱发个邮件,告诉它发送主题和内容,然后就没有然后了,发送成功了。我下面还故意没写邮件的主题,他会提示你必须要有主题。是不是很方便,比你之前那种Agent写法,又的设置角色、又得设置技能、又得告诉它每一步咋做(类似于这个你要写的话,你的告诉他第一步找到发送邮件的工具,第二步发送啥的,太麻烦)。现在的做法提示词里面啥都没写,直接用就可以,你告诉他你要发邮件,他会自己调用MCP的列表工具和找寻合适的工具去执行。收到的邮件。
撒花🎉🎉🎉,Dify连接MCP这一部分结束。
---------因为篇幅过长的原因,Dify教程预计分为两部分,这篇是上半部分,下半部分后续也会尽快更新。
原文地址:https://mp.weixin.qq.com/s/JBwlLvM17Err4QuR7K9ebA