本教程将指导您在个人电脑上安装和配置 Dify。
为什么需要Dify
在开始具体的教程之前,先搞清楚为什么要选择 Dify。
6 月份,阿里巴巴全球数学竞赛中,首次接受AI参赛。结果令人大跌眼镜:AI选手们的表现完全无法与人类选手相提并论。
后来的各大媒体转发,想必你也已经知道,"AI在数学领域的能力还远远不够”。
但是另一方面,一个关键的细节似乎被忽略了。
之后一些AI博主开始对着这些题目[1],亲自尝试用当前最先进的AI模型来解答这些数学题,设计出五花八门天花乱坠的提示词,各种”专家“,思维链等buff叠满,结果如何?很可惜,大家得到的都是同一个令人沮丧的答案——0分。
但是这些参赛的AI可是取得34分的成绩!这几乎是不可想象。
但是你有没有想过,如果我们自己用当前的AI模型来做一遍的话,几乎是0分!但是为什么这些AI可以做到34分呢?
答案就在于,参赛的前三名AI都采用了一种称为"多智能体(Multi-Agent)"的方法。与单一模型不同,这种方法运用了多个智能体协同工作,通过判断和综合求解来得出最终答案。34分同学在个人博客中分享的他们的方案设计[2]:
单一的AI模型,无论多么先进,都有其局限性。但当我们将多个智能体组合在一起时,它们的潜力将被极大地释放。
你,需要重新认识AI 智能体。
当然,”AI 智能体“对你来说可能已经是一个不陌生的概念,在不同的语境中,又可以被叫做"GPTs"或者"AI Agent"。
现在,不同的模型厂商均提供了智能体的创作或者使用。
这些智能体相当于封装了一个又一个的提示词黑箱,省去了你独自编写提示词的过程。
比如我曾经在 GPT 商店发布过一个自己创作的智能体,「角色注入提示词」,受到了很多人的喜欢。这个智能体的作用就是你只需要把自己的「意图」输入,就可以得到一段「角色注入」提示词,也就是"你现在是 xxx 专家,精通 xxx"这样的话就不需要自己去琢磨如何写。
如果只到这一步,那么你完全不需要用到 Dify,或者 Dify 仅仅可以作为你在本地使用自己部署的大模型的 Web UI。
但 Dify 的优势可不仅限于此,它真正的价值在于——模型编排(不同的语境下也叫做智能体设计,Agent Design,现在还有一个专门的职业是Agent Designer,专门用于设计智能体的)
什么是模型编排呢?简单理解就是负责通过智能体的组合设计,来实现更加复杂、更加智能,从而突破现有模型的能力边界。
举一个最简单的日常场景,比如,我们可以在Poe中用上Claude-Opus的200K版本,这个当前最强大的长文阅读理解模型。
不过它用起来实在是太贵了…每一次要消耗12000积分,也就是一个月的额度几十次就问没了。
这还不是最麻烦的,最麻烦的是,我们并非所有的问题,都用到200k的版本,比如再一次回答中,大模型输出了一个你看不懂的概念,此时你希望它可以翻译为容易理解的中文版本,那么此时完全没必要用当前的200k版本。可是如果此时切换到普通版本,上下文会丢掉,如果继续使用200k的版本,又会觉得有点浪费。当然现在有很多API-WebUI可以实现自由切换定义模型的配置,但是又不够智能……我如果希望,模型可以根据我的问题,自由的去选择不同的模型或者是模型版本来做回答,就必须得用上模型编排。
再比如,最近360就搞了一个”复仇者联盟“,与国内15家大模型开发商合作,推出一款AI搜索应用产品「360 AI助手」[3]。
我搞不过你GPT4.0没关系,我们所有人加在一起就可以搞定你!
本质上所做的,就是模型编排。
以上,简单介绍到这里,那么今天就来介绍一款非常适合用于模型编排的工具,Dify。
Dify 允许你将不同的智能体组合在一起,构建出更加强大和复杂的 AI 应用。你可以让一个智能体负责理解用户的输入,根据输入的特点进行转发给另一组用于回答的智能体中最适合处理该问题的一个,用于负责生成回答,再由一个专门的智能体对回答进行优化和修正。通过这种方式,你可以发挥每个智能体的长处,弥补它们的不足,最终得到一个性能更好、更加稳定的 AI 系统。
此外,Dify 还提供了一个直观的图形化界面,让你可以方便地管理和编排这些智能体。你不需要编写复杂的代码,只需要通过拖拽和连线,就可以定义智能体之间的交互和数据流动。这大大降低了开发 AI 应用的门槛,让更多人可以参与到这个领域中来。
在接下来的教程中,将一步步带你安装和配置 Dify,拿到入场券。
下面一步步来操作。
第一步:准备Docker
Docker 就像一个便携的软件箱子,它让您可以在不同的计算机上运行相同的程序,而无需担心复杂的安装过程。选择 Docker 的原因在于它大大简化了软件部署流程,避免了安装众多依赖软件的烦恼。
安装步骤:
(1)访问Docker官网:https://www.docker.com/products/docker-desktop/
(2)根据系统选择对应版本的Docker Desktop(本教程以 Windows 系统为例)
(3)按照安装向导一步步操作即可
(4)可能遇到的问题及解决方案
但是也许…未必一帆风顺,比如我在第一次安装的时候,打开之后就出现了下面的画面:
也就是在安装或更新 Docker Desktop 时,可能会遇到 WSL(Windows Subsystem for Linux)更新失败的问题。WSL 是 Docker Desktop 在 Windows 上运行所需的一个重要组件。如果出现这种情况,可以尝试在命令提示符或 PowerShell 中手动运行以下wsl --update
命令来更新 WSL:
成功解决问题后,Docker Desktop 的界面应该正常显示了。
第二步:获取Dify代码
接下来,我们需要获取Dify的源代码。有两种方法:
方法1:使用Git克隆(推荐)
(1)打开Git bash
(2)输入命令:git clone https://github.com/langgenius/dify
方法2:直接下载
(1)访问 https://github.com/langgenius/dify
(2)点击绿色的"Code"按钮,然后选择"Download ZIP"
- 下载后解压文件
第三步:启动Dify
现在我们已经有了Dify的代码,接下来要启动它:
(1)先找到docker-compose.yaml
文件所在的文件夹(通常在 dify 目录下的 docker 文件夹中)
进入docker-compose.yaml
所在文件夹的终端中,运行命令:docker compose up -d
这个命令会启动在 docker-compose.yml
中定义的所有服务。
(3)等待Docker下载并启动所有必要的组件
安装成功后,在 Docker Desktop 中应该能看到以 docker 命名的文件夹,即为安装成功。
第四步:配置Dify
现在Dify已经运行起来了,让我们来配置它:
(1)打开浏览器,访问 http://127.0.0.1/,你会看到Dify的设置页面
(2)创建管理员账户:设置用户名、邮箱和密码(请务必牢记这些信息)
(3)完成之后,正式进入Dify的世界。
第五步:配置模型
请注意,安装 Dify 并不等同于下载了 AI 模型。
Dify 是一个运行在本地的 Web UI,它允许我们便捷地访问和使用各种大语言模型,但是需要注意的是,下载 Dify 并不等同于下载了这些模型本身,如果希望使用这些大模型,依然需要入场券,也就是需要拿到相应的 API Key,这部分是需要自己额外付费。
如何配置API Key呢,在设置页面中,点击「模型供应商」,选择您想使用的供应商(本教程以 Moonshot AI 为例),选择「Moonshot AI」,并点击设置。
输入月之暗面的KEY即可。
需要从 Moonshot AI 的官网获取 API Key。
访问以下网址:https://platform.moonshot.cn/console/api-keys
注意,你需要提前完成 Moonshot AI 账户的充值。
现在我将刚刚创建的API Key输入到之前的框中。
配置完成后,你应该能看到 Moonshot AI 提供的可选模型了。
这里提供了三个可选项
- moonshot-v1-8k
- moonshot-v1-32k
- moonshot-v1-128k
不同的模型在能力和专业领域上可能有所不同。例如,moonshot-v1-8k 更适合处理短文本,而 moonshot-v1-128k 则在长文本生成和复杂问题解答上表现更好。你可以根据自己的需求选择合适的模型。
第六步:创建第一个应用
这篇文章里,先不做更复杂的设计,先来完成第一个最简单的Demo应用作为演示。
点击创建空白应用,比如我们想要创建一个智能翻译的助手。
输入对应的提示语,并且选择模型,右侧可以实时预览,如果效果不理想,就可以对应的调整左侧。
此时,点右上角的【运行】,就可以正式使用这个智能体应用了。
此时就已经实现了一个简单的模型的WebUI服务了。
至此,你已经成功搭建了一个简单的 AI 模型 Web UI 服务。
恭喜你完成了 Dify 的安装和基本配置!接下来,就可以进一步探索 Dify 的更多功能,创建更复杂、更强大的 AI 应用。
欢迎继续关注后续教程,将带你深入探讨 Dify 的进阶用法,做出真正实用的AI智能体。
参考资料
[1] 集成中国最强15款大模型,360打造AI全家桶测评比GPT-4o高18% https://mp.weixin.qq.com/s/nz2npNvjAvf6Rt2csjpKZw
[2] Solution Sharing and Some Thoughts about Alibaba Global Mathematical Competition for AI https://blog.richardstu.com/solution-sharing-and-some-thoughts-about-alibaba-mathematical-competition-for-ai
[3] 我用ChatGPT做了一下姜萍的数学竞赛题,它懵了,我也懵了。 https://mp.weixin.qq.com/s/3tagHhPgb-H2wOafLW2OwA