logo
0
0
Login
Jun Zhou<zhoujun@kyzhcity.com>
feat: 添加Dify插件重新打包工具及相关文档

Dify Plugin Tools

Dify插件工具集合,提供插件重新打包、下载和管理功能,支持从Dify市场和GitHub获取插件并重新打包为离线安装包。

🎯 项目概述

本项目包含两个核心组件:

  1. 插件重新打包工具 - 支持从Dify市场、GitHub下载插件并重新打包
  2. Makefile构建系统 - 提供简化的命令行接口和容器化支持

📁 项目结构

dify-plugin-tools/ ├── Makefile # 智能构建系统(支持Docker/Podman自动检测) ├── dify-plugin-repackaging/ # 插件重新打包工具 │ ├── plugin_repackaging.sh # 核心脚本(支持market/github/local三种模式) │ ├── Dockerfile # 容器化配置 │ ├── dify-plugin-* # 多平台构建工具(Linux/macOS,amd64/arm64) │ └── images/ # 文档图片资源 └── plugins/ # 插件存储目录 ├── ollama/ # Ollama模型插件 ├── openai_api_compatible/ # OpenAI API兼容插件 └── vllm/ # VLLM增强插件(支持guided generation)

⚡ 快速开始

1. 环境准备

确保已安装以下任一容器运行时:

  • Docker: https://docs.docker.com/get-docker/
  • Podman: https://podman.io/getting-started/installation

2. 构建容器镜像

make docker-build

🔍 自动检测Docker/Podman,无需手动指定

3. 下载插件

从Dify市场下载:

make market langgenius ollama 0.0.7

从GitHub下载:

make github junjiem/dify-plugin-tools-dbquery v0.0.2 db_query.difypkg

🛠️ 核心功能

插件重新打包工具

支持三种获取方式:

模式命令示例说明
market./plugin_repackaging.sh market langgenius agent 0.0.9从Dify官方市场下载
github./plugin_repackaging.sh github user/repo v1.0.0 plugin.difypkg从GitHub发布下载
local./plugin_repackaging.sh local ./plugin.difypkg重新打包本地插件

高级选项

  • 平台交叉打包: -p manylinux2014_x86_64-p manylinux2014_aarch64
  • 自定义后缀: -s linux-amd64 指定输出包后缀
  • 依赖镜像: 使用阿里云PyPI镜像加速依赖下载

智能容器检测

Makefile自动检测系统环境:

make check-container-runtime # 检查容器运行时 make docker-build # 智能选择Docker/Podman构建

📦 预置插件

项目已包含以下预打包插件:

VLLM插件 (yangyaofei-vllm_0.1.5)

  • 功能: 扩展OpenAI兼容API,支持vLLM特有功能
  • 特色: 支持guided_json、guided_regex、guided_grammar
  • 应用: 结构化输出、思考模式、动态请求引导

Ollama插件 (langgenius-ollama_0.0.7)

  • 功能: Ollama模型集成
  • 优势: 本地模型部署、轻量级运行

OpenAI兼容插件 (langgenius-openai_api_compatible_0.0.23)

  • 功能: 标准OpenAI API兼容层
  • 适用: 通用API接口场景

🔧 技术架构

工作流程

  1. 下载阶段: 根据指定源获取插件包
  2. 解压阶段: 提取插件内容和依赖配置
  3. 依赖打包: 下载Python依赖到wheels目录
  4. 重新打包: 使用dify-plugin工具生成离线安装包
  5. 清理优化: 可选删除源文件,节省空间

核心组件

  • plugin_repackaging.sh: Bash脚本,支持多平台运行
  • dify-plugin工具: 官方多平台构建工具
  • 容器化支持: Docker/Podman双运行时兼容

⚙️ Dify平台配置

为支持自定义插件安装,修改Dify .env配置:

# 允许未审核插件 FORCE_VERIFYING_SIGNATURE=false # 插件大小限制(500M) PLUGIN_MAX_PACKAGE_SIZE=524288000 # Nginx上传限制(500M) NGINX_CLIENT_MAX_BODY_SIZE=500M

🚀 使用场景

离线环境部署

在企业内网或离线环境中,提前下载并重新打包插件,确保所有依赖完整包含。

私有插件仓库

构建组织内部的插件仓库,统一管理和分发经过验证的插件版本。

开发测试

快速获取和测试不同来源的插件,支持本地开发和调试。

多平台支持

支持x86_64和ARM64架构,适配不同部署环境。

🤝 贡献指南

欢迎提交Issue和Pull Request:

  1. 功能建议: 新增插件源支持、优化打包流程
  2. 问题反馈: 构建失败、兼容性问题
  3. 文档完善: 使用教程、最佳实践分享

开发环境

# 克隆项目 git clone https://github.com/junjiem/dify-plugin-repackaging.git # 进入目录 cd dify-plugin-repackaging # 查看帮助 ./plugin_repackaging.sh # 显示使用说明

📄 许可证

本项目采用开源许可证,详见LICENSE文件。

⭐ Star History

Star History Chart


💡 提示: 所有插件文件均已重新打包为offline版本,包含完整依赖,可直接在离线环境安装使用。