当前位置: 首页 > news >正文

dify离线插件打包步骤

目录

  • 背景
  • 步骤
  • 总结

背景

Dify 是一个开源的 AI 应用开发平台 ,让你能轻松搭建各种智能应用,比如聊天机器人、客服助手、文档分析工具等,而不用从零开始写复杂的代码。

今天我们就来看看如何在离线环境安装 Dify 插件。

步骤

  1. 下载 Dify 插件

登录 Dify 界面,进入插件市场,找到要安装的插件

图片

进入详情,点下载。这里下载的插件包一般之后几十KB,直接安装的话,会联网下载依赖包,所以离线服务器不能在这里直接安装。

在这里插入图片描述

  1. 下载打包工具

下载地址:https://github.com/junjiem/dify-plugin-repackaging

这个工具用于重新打包 Dify 插件,它会拉取插件所需的所有第三方库,并重新整合成完整的 Dify 插件包。安装插件时,直接从该包内加载依赖,避免联网下载。

图片

注:工具支持 Linux 和 MacOS,打包机器和目标机器的架构要一样。

  1. 重新打包插件

进入打包工具目录下

cd dify-plugin-repackaging-mainchmod a+x plugin_repackaging.sh# 重新打包 ollama 插件
./plugin_repackaging.sh local ./langgenius-ollama_0.0.6.difypkg

打包完成后会自动生成离线插件包 langgenius-ollama_0.0.6-offline.difypkg,一般有几十到上百兆

4、修改 Dify 配置
Dify 默认只能安装官方的插件,需要关闭这个校验,同时修改 Nginx 上传文件大小上限,修改完重建 Dify 容器。

FORCE_VERIFYING_SIGNATURE=false
PLUGIN_MAX_PACKAGE_SIZE=52428800
NGINX_CLIENT_MAX_BODY_SIZE=500M

5、安装离线包
登录 Dify 界面,进入插件中心,本地安装

选择我们打包的插件安装即可

安装完成,插件右下角会显示本地安装

遇见的一些小问题,如ssl的问题

#!/bin/bash
set -ePYTHON_VERSION=3.11.9
OPENSSL_VERSION=1.1.1wecho "🔧 安装构建依赖..."
yum install -y gcc make wget tar \zlib-devel libffi-devel bzip2-devel xz-devel \readline-devel sqlite-devel ncurses-devel tk-devel gdbm-devel \git patchecho "📥 下载并安装 OpenSSL ${OPENSSL_VERSION}..."
cd /usr/local/src
wget https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz
tar xzvf openssl-${OPENSSL_VERSION}.tar.gz
cd openssl-${OPENSSL_VERSION}./config --prefix=/usr/local/openssl-${OPENSSL_VERSION} --openssldir=/usr/local/openssl-${OPENSSL_VERSION}
make -j$(nproc)
make installecho "✅ OpenSSL 安装完成"# 设置环境变量(当前 shell 生效)
export LD_LIBRARY_PATH=/usr/local/openssl-${OPENSSL_VERSION}/lib:$LD_LIBRARY_PATH
export CFLAGS="-I/usr/local/openssl-${OPENSSL_VERSION}/include"
export LDFLAGS="-L/usr/local/openssl-${OPENSSL_VERSION}/lib"echo "📥 下载并安装 Python ${PYTHON_VERSION}..."
cd /usr/local/src
wget https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz
tar xzf Python-${PYTHON_VERSION}.tgz
cd Python-${PYTHON_VERSION}./configure \--prefix=/usr/local/python-${PYTHON_VERSION} \--enable-optimizations \--with-openssl=/usr/local/openssl-${OPENSSL_VERSION}make -j$(nproc)
make altinstallecho "✅ Python ${PYTHON_VERSION} 安装完成: /usr/local/python-${PYTHON_VERSION}/bin/python3.11"# 测试 SSL 模块
/usr/local/python-${PYTHON_VERSION}/bin/python3.11 -m ssl || {echo "❌ SSL 模块测试失败"exit 1
}echo "✅ SSL 模块导入成功"
/usr/local/python-${PYTHON_VERSION}/bin/python3.11 -c "import ssl; print(ssl.OPENSSL_VERSION)"
ln -sf /usr/local/python-3.11.9/bin/python3.11 /usr/bin/python
ln -sf /usr/local/python-3.11.9/bin/pip3.11 /usr/bin/pip
python -V      # 应该是 Python 3.11.9
pip -V         # 应该显示 pip 对应 Python 3.11

导入dify插件需要的依赖(可以先下载whl文件,然后pip install *.whl)
https://pypi.org/project/dify_plugin/0.3.5/

在这里插入图片描述

这样再执行打包命令的时候就没问题了

./plugin_repackaging.sh local ./langgenius-ollama_0.0.6.difypkg

大功告成!生成offline 文件就可以倒到内网使用啦~

在这里插入图片描述

总结

为什么不能外网直接下载直接导入内网使用呢?产品这样设计的目的是什么呢?所有现象都要打一问号“?”

插件包含 Python 源码 + 第三方依赖(如 openai、pandas 等)
Dify 无法只靠一份 .py 下载就让插件在内网跑起来
如果 Dify 下载了插件代码,还得自动处理依赖(这就需要联网或本地 PyPI 镜像),这一步平台目前不做。

插件打包时,你自己知道要用哪个版本的依赖、是否需要额外的 wheel 文件
如果平台来帮你打包,就必须有编译环境 + PyPI 镜像 + 模型支持 + 安全沙箱
这对平台来说是一个巨大的维护负担,也会让插件安全性不可控。

未来思考:
官方可以未来提供「插件商店 + 离线导出 .difypkg」

http://www.dtcms.com/a/306091.html

相关文章:

  • Apache Ignite 与 Spring Data 集成
  • Electron + Fabric 打包遇到error LNK2001
  • 【面试场景题】随机立减金额计算
  • JVM——内存布局、类加载机制及垃圾回收机制
  • Http401和403什么意思
  • 颐顿机电携手观远BI数据:以数据驱动决策,领跑先进制造智能化升级
  • 皮尔逊相关系数的理论基础、统计特性与应用局限
  • 操作系统:总结(part_1,part_2)
  • Python Pandas.get_dummies函数解析与实战教程
  • Python在自动化与运维领域的核心角色:工具化、平台化与智能化
  • 从零开始,在Windows环境部署vllm
  • Boost.Asio:探索异步I/O引擎核心
  • stm32的PID控制算法
  • 学习游戏制作记录(冻结敌人时间与黑洞技能)7.30
  • 【音视频】WebRTC 开发环境搭建-Web端
  • Apple基础(Xcode②-Flutter结构解析)
  • ica1靶机练习
  • K8s 备份与恢复利器:Velero 实战指南
  • MySQL常见面试题
  • springboot本地访问https链接,证书错误
  • Spark的宽窄依赖
  • Kubernetes 中 ConfigMap 与 Secret 的深度解析
  • gaussdb demo示例
  • Spring Cloud Gateway静态路由实战:Maven多模块高效配置指南
  • 时序数据库厂商 TDengine 发布 AI 原生的工业数据管理平台 IDMP,“无问智推”改变数据消费范式
  • ES 文件浏览器:多功能文件管理与传输利器
  • 数据建模怎么落地?从概念、逻辑到物理模型,一文讲请!
  • Kubernetes高级调度02
  • 《超级秘密文件夹》密码遗忘?试用版/正式版找回教程(附界面操作步骤)
  • AI任务相关解决方案11-基于 Qwen3+langchain+Agent 的学术论文编辑平台系统搭建与开发案例