昨天晚上,我的社群里有朋友问Dify如何更新:
我到github官方仓库一看,原来Dify更新版本了,并且是大版本更新,且仓库刚更新不久,还是热乎的:
查看更新公告:
可以看到,本次更新,最大的内容就是新增了插件系统。我意识到这是一个重大更新,这对个人开发者可是一个非常好的消息。于是,立即下载部署,开始试玩:
到Dify官方仓库:https://github.com/langgenius/dify
新版本更新说明:https://github.com/langgenius/dify/releases
一、旧版本Dify升级v1.0.0
开头提醒:如果生产版本数据太多,或者运行已久,未知风险很高,版本迁移可能会造成原有功能受影响,不建议进行此次大版本迁移!!!
若Dify项目本身还未投产,或者数据量不多,嫌版本迁移太麻烦,可以直接选择使用我的一键安装包,不需要下载景象,一件点击启动,十分钟即可体验到新版本(可以跳过本节,到下一节获取一键安装包下载链接)
一)升级之前的数据
二)开始升级
1、修改docker镜像源
由于网络原因,我们需要修改docker镜像源,全选,复制,粘贴即可:
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"registry-mirrors": [
"https://hub.rat.dev",
"https://dockerhub.icu",
"https://docker.wanpeng.top",
"https://register.librax.org"
]
}
2、替换docker目录下的文件
env
和 docker-compose.yaml
文件飞书文档下载:https://i3k3w6il9z.feishu.cn/docx/ZZHrdait2oKVRXx1VWLceIR1nve?from=from_copylink
3、右键打开命令行
4、关掉docker容器
如果服务正运行着的话,执行以下先关掉:
docker compose down
5、拉取最新镜像并启动
执行如下命令,拉取最新镜像(已存在的镜像会自动跳过)
docker compose up -d
6、插件迁移
如果你是从旧版本升级到 v1.0.0,需要执行一些基本的迁移步骤
请注意:备份之前,一定做好数据备份,将原docker目录完整打包备份!!!
1)进入容器
从桌面客户端进入:
2)提取插件:
升级到 v1.0.0 的第一步是将当前环境中使用的工具和模型安装到新的插件环境中,确保在数据库迁移之前完成插件安装。运行以下命令:
poetry run flask extract-plugins --workers=20
此命令将提取当前环境中使用的所有模型和工具。workers
参数决定了提取过程中的并行进程数;根据您的需求进行调整。最终结果将保存在 plugins.jsonl
文件中,该文件包含当前 Dify 实例中所有工作区的插件信息。
3)安装插件
此处需要确保你的网络(如果失败,就用魔法)正常运行,并且可以访问 https://marketplace.dify.ai,然后运行以下命令,操作方法同上:
poetry run flask install-plugins --workers=2
此命令将下载并安装所有必要的插件到最新环境中
7、数据迁移
1)更新数据库架构
在完成基本的插件安装过程后,按照标准的 Dify 升级程序更新数据库架构到最新版本:
poetry run flask db upgrade
2)数据迁移
Dify v1.0 包括对旧数据的兼容性。您应该能够正常运行,但为了更好的未来兼容性,在确定不会回滚到旧版本后,运行以下数据迁移命令:
poetry run flask migrate-data-for-plugin
此命令将为数据库中现有的模型和工具供应商添加 langgenius
前缀,例如将 openai
转换为 langgenius/openai/openai
。此操作可能会影响旧版本的 Dify 的功能,因此在运行此命令之前备份数据库,以防止不必要的问题。
8、刷新页面看到新版页面
到此,版本迁移完成!再次提醒:如果生产版本数据太多,或者运行已久,版本迁移可能会造成原有功能受影响,不建议进行此次大版本迁移!!!
若Dify项目本身还未投产,或者数据量不多,可以选择使用我的一键安装包,不需要下载景象,一件点击启动,十分钟即可体验到新版本
二、新版本一键安装包
一)获取下载链接
二)运行一键安装包
首次启动,需要加载docker镜像,需要等待10分钟左右,后续打开不需要加载镜像就会很快了
三)等待自动打开浏览器
设置管理员账号,登陆进入后台
三、先看看插件市场
一)从后台初始页面过去
看完更新日志后,我迫不及待的进行了安装部署,设置管理员账户,登录,进入后台,右上角发现了 插件
点击去以后,发现可以有三种安装插件:插件市场,Github,本地
嗯,很灵活,点个赞!
进入插件市场看看
可以看到Dify的插件,囊括了很多种类型:模型,工具,Agent策略,扩展
二)先看看,模型都有什么?
1、模型(Models):
其实就是老版本模型供应商的集合,后续如果新增供应商的话,就需要到这里找了,当然你还是可以从老入口去接入大模型,操作体验没变,只是需要先安装在配置:
各类 AI 模型的接入插件,支持模型服务商和自定义模型两种类型,能够极大降低配置和调用 LLM API 的门槛。
2、工具(Tools)
工具指的是能够被 Chatflow / Workflow / Agent 类型应用所调用的第三方服务。提供完整的 API 实现能力,用于增强 Dify 应用的能力。
在老版本也已经存在工具,现在只是整合到了插件系统内,还是老面孔
3、Agent策略(Agent Strategies)
Agent 策略插件能够定义 Agent 节点内部的推理和决策逻辑,包括 LLM 对于工具选择、调用以及对返回结果的处理逻辑。
这是本次更新的新增功能
4、扩展(Extensions)
仅提供 Endpoint 能力,为简单场景设计的轻量级方案。仅通过调用 HTTP 服务即可调用扩展功能,适用于只需要基础 API 调用的简单集成场景。
5、插件集(Bundles)
插件集是一系列插件的组合。通过安装插件集可以批量安装预选插件,告别手动逐个安装插件的繁琐过程。
四、插件的多种安装方式
一)在线安装插件
但是,安装插件过程中,我发现速度比较慢,可能跟网络有关系,懂的都懂,安装完成后,需要刷新下页面,甚至需要刷新多次,才能看到已安装好的插件:
二)本地安装插件
1、先从官方市场下载插件
有些时候,由于网络原因,Dify的市场插件可能下载很慢,我们可以委托别人下载,然后直接发给自己,然后从本地安装。
插件市场可以到官方插件市场下载,也可以从本地项目中的插件市场安装。
官方插件市场地址:https://marketplace.dify.ai/
2、拖入本地插件
将上一步下载的插件导入本地Dify项目:
3、安装插件
4、等待插件安装完成
即使是本地插件安装,也需要等待一会,然后刷新页面
三)从Github安装插件
由于官方相关文档还没有上线,暂时无法演示,后续我会针对特定场景,开发Dify插件并分享出来,欢迎大家持续关注
五、Dify插件的新特性及优势
一)为什么要有插件系统?
我们看Dify,永远可以拿Coze作为他的对标来分析,很多逻辑就顺了。先来看看Coze的插件生态:
Coze工作流很强大,但是若没有插件生态的支撑,恐怕能力要弱很多。有了插件,智能体的能力就像插上了翅膀,可以任意在天空翱翔,几乎无所不能!它突破了原有框架的限制,提供更丰富和强大的扩展能力,全面覆盖了各类细分场景的需求,开发过程更加敏捷,高效!
和Coze的插件相比,Dify的插件系统有什么不同:
二)插件的新特性
1、友好的传播属性:
Dify的插件可以通过插件市场,Github,本地文件形式传播。和Coze相比,我觉得最大的灵活之处是它可以导出和本地上传,可以不必上传插件市场,直接导出插件直接共享给其他人,传播插件没有任何限制,这对于开发完插件,有内部分享需求的朋友来说,绝对是最大的福音了!
2、增强 LLM 的多模态能力
插件系统可以增强 LLM 处理多媒体内容的能力。开发者可以根据场景,通过插件辅助 LLM 完成图片处理、视频处理等任务,包括但不限于图片裁切、背景处理、人物图像处理等。
3、开发者友好的调试能力
插件系统提供了完善的开发和调试支持:
支持主流 IDE 和调试工具,仅需配置一些简单的环境变量,即可远程连接一个 Dify 实例。甚至支持连接 Dify 的 SaaS 服务,此时你在 Dify 中对该插件的任何操作都会被转发至你的本地运行
4、持久化存储数据
为支持复杂应用场景,插件系统全新引入了数据持久化存储能力:
插件级别的数据存储
- Workspace 级别的数据共享,你可以向插件传递当前工作空间的信息,帮助插件提供更多自定义功能。
- 内置的数据管理机制,这使得插件能够可靠地保存和管理应用数据,支持更复杂的业务场景。
5、便捷地反向调用
插件能够与 Dify 平台内的功能组件进行双向互动,它能够按照指令主动调用 Dify 的核心功能,包括:
- AI 模型调用
- 工具使用
- 应用访问
- 知识库交互
- 功能节点调用(如问题分类、参数提取等)
双向调用机制让插件具备了更强大的功能整合能力,这意味着不仅可以使用已有的 Dify 应用能力全面增强插件能力,你还可以将插件作为一个独立的 Dify 应用请求网关,扩充更多的应用使用场景。
6、更自由的 API 接口自定义能力
除了 Dify 应用内原有的 API(例如 Chatbot 应用 API,Workflow 应用 API 等),插件系统新增了自定义 API 的能力。开发者可以根据业务需求,将业务代码封装为插件并托管至 Dify Marketplace,并自动提供请求端点,实现数据处理、请求响应等自定义逻辑。
以上,第2-6点,摘抄自官方文档,可自行插件详情,以了解更多:插件功能简介 | Dify
三)插件的权限管理
权限管理,也是很多人对的需求,比如,开发的插件涉及有高敏感操作,只想对团队管理员开放,其他人不能使用,此时就可以用上插件的权限管理功能:
六、写在最后
以上就是Dify 最新版本v1.0.0的尝鲜体验,后续我会持续分享关于本地大模型应用开发与本地知识库的解决方案,包括:Dify,ragflow ,基于本地知识库的智能客服等落地方案