feat: add interactive selection dialog to batch installer (#60)

* feat: add interactive selection dialog to batch installer

* feat: improve batch installer selection dialog

* feat: add search and filtering to batch installer dialog

* fix: sync type filter with selected plugins

* fix: sync search results with selected plugins

* feat: add multi-repository batch install support

* fix: clarify single-call multi-repo usage

* feat: add repository filters to selection dialog

* refactor: simplify selection dialog header

* docs: simplify batch installer quick start

* docs: feature batch installer on homepage
This commit is contained in:
Fu-Jie
2026-03-16 15:39:14 +08:00
committed by GitHub
parent f142b32486
commit 8573a0d7b0
16 changed files with 977 additions and 377 deletions

View File

@@ -1,29 +1,30 @@
# 🎉 Batch Install Plugins 首发 v1.0.0
# 🎉 Batch Install Plugins v1.1.0
## 标题
**一键批量安装 OpenWebUI 插件 - 解决装机烦恼**
** OpenWebUI 批量安装带来可勾选的交互式插件选择器**
## 前言
在 OpenWebUI 中安装插件曾经很麻烦:逐个搜索、逐个下载、祈祷一切顺利。今天,我们欣然宣布 **Batch Install Plugins from GitHub** v1.0.0 的问世 — 一款强大的新工具,让插件安装从苦差事变成一条简单命令
批量安装不应该是“全装或不装”的二选一。现在,**Batch Install Plugins from GitHub** v1.1.0 新增了基于浏览器的交互式选择对话框,用户可以先查看过滤后的插件列表,再勾选真正要安装的插件,然后才开始调用安装 API
## 核心特性
### 🚀 一键批量安装
- 从任意公开 GitHub 仓库用一条命令安装多个插件
- 自动发现插件并进行验证
- 无缝更新已安装的插件
### 🚀 交互式插件选择
- 基于 OpenWebUI 的 `execute` 事件打开自定义浏览器选择对话框
- 显示带复选框、类型筛选、关键词搜索、插件描述和仓库信息的过滤结果
- 只安装用户保留勾选的插件
### ✅ 智能安全保障
- 安装前显示插件列表确认对话框
- 用户可在安装前查看和审批
- 用更丰富的选择流程替代基础 confirmation 事件
- 用户无需改写请求,也能取消勾选不想安装的插件
- 不再显示多余的“复制 exclude_keywords”提示
- 自动排除工具自身,避免重复安装
### 🌍 多仓库支持
支持从**任意公开 GitHub 仓库**安装插件,包括你自己的社区合集:
- 次请求处理一个仓库,需要时可再次调用工具来组合多个来源
- 次请求即可组合多个仓库,并在同一个分组选择器中查看
- **默认**Fu-Jie/openwebui-extensions我的个人合集
- 支持公开仓库,格式为 `owner/repo`
- 混合搭配:先从我的合集安装,再通过后续调用添加社区合集
- 支持公开仓库,格式为 `owner/repo`,可用逗号、分号或换行分隔
- 混合搭配:安装前就能在同一个对话框中选择多个来源的插件
### 🔧 容器友好
- 自动处理容器部署中的端口映射问题
@@ -37,25 +38,25 @@
## 工作流程:交互式安装
每次请求处理一个仓库。如需组合多个仓库,请在上一次安装完成后再发起下一次请求
`repo` 参数现在支持多个 `owner/repo`,可用逗号、分号或换行分隔
1. **先从我的合集开始**
```
"安装 Fu-Jie/openwebui-extensions 中的所有插件"
```
查看确认对话框,批准后开始安装。
查看选择对话框,保留想安装的勾选项后开始安装。
2. **再添加社区合集**
2. **混合加入社区合集**
```
"从 iChristGit/OpenWebui-Tools 安装所有插件"
"从 Fu-Jie/openwebui-extensions、iChristGit/OpenWebui-Tools 安装所有插件"
```
从不同仓库添加更多插件。已安装的插件会无缝更新
在一个按仓库分组的选择对话框里查看两个来源,再安装真正需要的子集
3. **按类型继续安装**
3. **跨仓库按类型继续安装**
```
"从 Haervwe/open-webui-tools 仅安装 pipe 插件"
"从 Haervwe/open-webui-tools、Classic298/open-webui-plugins 仅安装 pipe 插件"
```
从另一个仓库选择特定类型的插件,或排除某些关键词。
次性在多个仓库选择特定类型的插件,或排除某些关键词。
4. **使用你自己的公开仓库**
```
@@ -84,23 +85,23 @@ OpenRouter API pipe 集成,提供高级模型访问。
## 使用示例
下面每一行都是一次独立请求
下面每一行都可以直接使用,其中第三行演示了单次请求组合多个仓库
```
# 先从我的合集开始
"安装所有插件"
# 在下一次请求中加入社区插件
# 添加社区插件
"从 iChristGit/OpenWebui-Tools 安装所有插件"
# 从其他仓库只安装某一种类型
"从 Haervwe/open-webui-tools 安装 tool 插件"
# 在同一个选择器里组合多个仓库
"从 Fu-Jie/openwebui-extensions、Classic298/open-webui-plugins 安装所有插件"
# 继续补充你的插件组合
"从 Classic298/open-webui-plugins 安装仅 action 插件"
# 从多个仓库只安装某一种类型
"从 Haervwe/open-webui-tools、Classic298/open-webui-plugins 安装 tool 插件"
# 过滤不想安装的插件
"从 Haervwe/open-webui-tools 安装所有插件exclude_keywords=test,deprecated"
"从 Haervwe/open-webui-tools、Classic298/open-webui-plugins 安装所有插件exclude_keywords=test,deprecated"
# 从你自己的公开仓库安装
"从 your-username/my-plugin-collection 安装所有插件"
@@ -110,8 +111,8 @@ OpenRouter API pipe 集成,提供高级模型访问。
- **异步架构**:非阻塞 I/O性能更优
- **httpx 集成**:现代化异步 HTTP 客户端,包含超时保护
- **完整测试**8 个回归测试100% 通过率
- **完整事件支持**:正确处理 OpenWebUI 事件注入,提供回退机制
- **选择性安装流程**:安装循环只会处理用户最终勾选的插件子集
- **完整事件支持**:正确处理 OpenWebUI `execute` 事件,并保留回退行为
## 安装方法
@@ -123,7 +124,7 @@ OpenRouter API pipe 集成,提供高级模型访问。
## 相关链接
- **GitHub 仓库**https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/tools/batch-install-plugins
- **发布说明**https://github.com/Fu-Jie/openwebui-extensions/blob/main/plugins/tools/batch-install-plugins/v1.0.0_CN.md
- **发布说明**https://github.com/Fu-Jie/openwebui-extensions/blob/main/plugins/tools/batch-install-plugins/v1.1.0_CN.md
## 社区支持