保姆教程篇:手把手教你从零开始本地部署Dify工作流

本教程将指导您在个人电脑上安装和配置 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"

在这里插入图片描述

  1. 下载后解压文件

第三步:启动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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/443648.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32外设详解——ADC

来源:铁头山羊 基本概念 ①ADC是模数转换器的统称,stm32f103c8t6内部集成了2个12位主次逼近型ADC,外设名称为ADC1、ADC2。 ② 采样深度为12位意味着ADC可以将0~3.3V的模拟电压等比转换为0~4095的数字值(分割为2的12次方份&…

SOMEIP_ETS_178: Subscribe_using_wrong_SOMEIP_MessageID

测试目的: 验证DUT能够拒绝一个SOME/IP头部使用错误消息ID进行服务发现的SubscribeEventgroup消息,并以SubscribeEventgroupNAck作为响应。 描述 本测试用例旨在确保DUT遵循SOME/IP协议,当接收到一个使用错误消息ID的服务发现SubscribeEve…

YOLO--前置基础词-学习总结(上)

RFBNet是什么意思 RFBNet 是一种用于目标检测的深度学习网络,它的名字来源于 "Receptive Field Block Network"(感受野块网络)。简单来说,RFBNet 是一种可以让计算机更好地“看”图像中不同大小的物体的方法。 在图像处…

Python FFmpeg 安装使用教程

文章目录 什么是 FFmpeg?主要功能包括: Windows 下载安装下载解压安装配置环境变量 使用案例使用 ffmpeg-python 库转换视频格式视频剪辑添加字幕 使用 subprocess.run 执行视频格式转换 其它问题ffmpeg 不是内部或外部命令,也不是可运行的程序 个人简介…

虹软人脸 报错 Can‘t find dependent libraries

系列文章目录 文章目录 系列文章目录一、虹软人脸 报错 Can‘t find dependent libraries 一、虹软人脸 报错 Can‘t find dependent libraries 在项目中使用了 虹软 人脸识别SDK,环境一直出错。 错误: Can’t find dependent libraries 从错误信息来…

Arduino UNO R3自学笔记21 之 Arduino基础篇学习总结

注意:学习和写作过程中,部分资料搜集于互联网,如有侵权请联系删除。 前言:目前将Arduino的大多数基础内容学习了,做个总结。 1.编程语言 学习单片机,在面向单片机编程时,语言是最基础的&#…

Web前端入门

文章目录 前言1 Web前端概述1.1 网站和网页1.2 HTML语言1.3 网页的形成1.4 常用浏览器1.5 浏览器内核(渲染引擎)1.6 web标准 2 HTML标签2.1 开发工具2.2 HTML语法规则2.3 标签的关系2.4 HTML注释标签2.5 结构标签 3 常用标签3.1 标题标签3.2 段落标签3.3 换行标签3.…

HAL库常用的函数:

目录 HAL库: 1.GPIO常用函数: 1.HAL_GPIO_ReadPin( ) 2.HAL_GPIO_WritePin( ) 3.HAL_GPIO_TogglePin( ) 4.HAL_GPIO_EXTI_IRQHandler( ) 5.HAL_GPIO_EXTI_Callback( ) 2.UART常用函数: 1.HAL_U…

详细分析Spring Framework中 @ConditionalOnProperty的基本知识(附Demo)

目录 前言1. 基本知识2. Demo 前言 基本的Java知识推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)【Java项目】实战CRUD的功能整理(持续更新) 从实战中学习启发 1. 基本知识 Conditiona…

2025考研今天开始预报名!攻略请查收

2025年全国硕士研究生招生考试 今天起开始预报名 有什么流程?需要准备哪些信息? 这份考研报名攻略速查收 ↓↓↓ 全国硕士研究生招生考试报名包括网上报名和网上确认两个阶段: 网上预报名时间为10月9日至10月12日(每日9&#xff1…

虚幻引擎GAS入门学习笔记(二)

虚幻引擎GAS入门(二) 学习位置UE5.3 GAS入门教程重置版 小明 MVC框架与技能初始化 让一开始创建的蓝图的基础GameplayAbility蓝图继承我们写好的BaseGameplayAbility类 创建一个库函数,写一些常用的函数在里面第一个得到玩家与玩家控制器 获取角色面对目标的方向…

【优选算法】(第三十二篇)

目录 ⼆进制求和(easy) 题目解析 讲解算法原理 编写代码 字符串相乘(medium) 题目解析 讲解算法原理 编写代码 ⼆进制求和(easy) 题目解析 1.题目链接:. - 力扣(LeetCode&a…

双十一好物必买榜:数码好物推荐!

​双十一该入手一些好物来准备度过下一年,选择几款数码好物和工作都用得到的实用好物陪伴冬天是能够让自己更积极的迎接生活,能够让自己更开心满足的方式。适当的购物也是能够缓解工作压力,心情不好的方法,但依然要选择买回家不会…

团员申请书怎么写?这里归纳了一些模板

团员申请书怎么写?随着社会的快速发展和时代的进步,越来越多的青年人意识到加入团组织的重要性。作为新时代的青年,我们应当积极响应国家的号召,参与到团组织的建设中来。而想要成为共青团员,首先需要撰写一份规范的团…

Umi中的微前端

umi/max 内置了 Qiankun 微前端插件,它可以一键启用 Qiankun 微前端开发模式,帮助您轻松地在 Umi 项目中集成 Qiankun 微应用,构建出一个生产可用的微前端架构系统。 什么是微前端 微前端是一种多个团队通过独立发布功能的方式来共同构建现代…

golang grpc初体验

grpc 是一个高性能、开源和通用的 RPC 框架,面向服务端和移动端,基于 HTTP/2 设计。目前支持c、java和go,分别是grpc、grpc-java、grpc-go,目前c版本支持c、c、node.js、ruby、python、objective-c、php和c#。grpc官网 grpc-go P…

【牛客刷题实战】BC120 争夺前五名

大家好,我是小卡皮巴拉 文章目录 目录 牛客题目: BC120 争夺前五名 题目描述 输入描述: 输出描述: 示例1 示例2 解题思路: 具体思路: 题目要点: 完整代码: 兄弟们共…

python爬虫 - 数据提取

🌈个人主页:https://blog.csdn.net/2401_86688088?typeblog 🔥 系列专栏:https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、数据类型及其对应的提取策略 (一)文本数据 &…

【设计模式】软件设计原则——开闭原则里氏替换单一职责

开闭原则内容引出 开闭原则 定义:一个软件实体,类,函数,模块;对扩展开放,对修改关闭。用抽象构建框架,用实现扩展细节。可以提高软件的可复用性和可维护性。 开发新功能时,尽量不修…

猿人学— 第一届第1题(解题思路附源码)

猿人学 — 第一届第1题(解题思路附源码) F12进入开发者工具—> 发现停止在debugger处 —> 右键点击Never pause here后下一步 翻页,抓包后发现请求携带page和m两个参数,page应该就是页数,m则需要逆向 依次查…