Files
Fu-Jie_openwebui-extensions/docs/plugins/tools/batch-install-plugins-tool.zh.md
fujie cea31fed38 feat(batch-install-plugins): initial release v1.0.0
Add Batch Install Plugins from GitHub tool with:
- One-click installation of plugins from GitHub repositories
- Smart plugin discovery with metadata extraction and validation
- Confirmation dialog with plugin list preview
- Selective installation with keyword-based filtering
- Smart fallback: auto-retry with localhost:8080 on connection failure
- Enhanced debugging with frontend and backend logging
- 120-second confirmation timeout for user convenience
- Async httpx client for non-blocking I/O
- Complete i18n support across 11 languages
- Event emitter handling with fallback support
- Timeout guards on frontend JavaScript execution
- Filtered list consistency for confirmation and installation
- Auto-exclusion of tool itself from batch operations
- 6 regression tests with 100% pass rate

Documentation includes:
- English and Chinese READMEs with flow diagrams
- Popular repository examples (iChristGit, Haervwe, Classic298, suurt8ll)
- Mirrored docs for official documentation site
- Plugin index entries in both languages
- Comprehensive release notes (v1.0.0.md and v1.0.0_CN.md)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-15 17:45:42 +08:00

140 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Batch Install Plugins from GitHub - 从 GitHub 批量安装插件
**作者:** [Fu-Jie](https://github.com/Fu-Jie) | **版本:** 1.0.0 | **项目:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **许可:** MIT
---
一键从 GitHub 仓库批量安装插件到你的 OpenWebUI 实例。
## ✨ 主要特性
- **一键安装**: 一条命令安装所有插件
- **自动更新**: 自动更新之前已安装的插件
- **GitHub 支持**: 支持从任何 GitHub 仓库安装插件
- **多类型支持**: 支持 Pipe、Action、Filter 和 Tool 插件
- **确认机制**: 安装前显示插件列表,允许选择性安装
- **国际化**: 支持 11 种语言
## 工作流
```
用户输入
┌─────────────────────────────────────┐
│ 从 GitHub 发现插件 │
│ (获取文件树 + 解析 .py) │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ 按类型和关键词过滤 │
│ (tool/filter/pipe/action) │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ 显示确认对话框 │
│ (插件列表 + 排除提示) │
└─────────────────────────────────────┘
├── [取消] → 结束
┌─────────────────────────────────────┐
│ 安装到 OpenWebUI │
│ (更新或创建每个插件) │
└─────────────────────────────────────┘
完成
```
## 🚀 使用方法
1. 打开 OpenWebUI进入 **工作区 > 工具**
2. 从官方市场安装 **Batch Install Plugins from GitHub**
3. 为你的模型/聊天启用此工具
4. 让模型安装插件
## 使用示例
```
"安装所有插件"
"从 github.com/username/repo 安装所有插件"
"仅安装 pipe 插件"
"安装 action 和 filter 插件"
"安装所有插件exclude_keywords=copilot"
```
## 热门插件仓库
这些是包含大量插件的热门仓库,你可以从中安装插件:
### 社区合集
```
# 从 iChristGit 的集合安装所有插件
"从 iChristGit/OpenWebui-Tools 安装所有插件"
# 从 Haervwe 的工具集合只安装工具
"从 Haervwe/open-webui-tools 安装所有插件"
# 从 Classic298 的仓库安装所有插件
"从 Classic298/open-webui-plugins 安装所有插件"
# 从 suurt8ll 的集合安装所有函数
"从 suurt8ll/open_webui_functions 安装所有插件"
# 仅安装特定类型的插件(比如只安装工具)
"从 iChristGit/OpenWebui-Tools 仅安装 tool 插件"
# 安装时排除特定关键词
"从 Haervwe/open-webui-tools 安装所有插件exclude_keywords=test,deprecated"
```
### 支持的仓库
- `Fu-Jie/openwebui-extensions` - 默认的官方插件集合
- `iChristGit/OpenWebui-Tools` - 全面的工具和插件集合
- `Haervwe/open-webui-tools` - 专业的工具和实用程序
- `Classic298/open-webui-plugins` - 各种插件实现
- `suurt8ll/open_webui_functions` - 基于函数的插件
## 默认仓库
未指定仓库时,默认使用 `Fu-Jie/openwebui-extensions`
## 插件检测规则
### Fu-Jie/openwebui-extensions严格模式
对于默认仓库,插件必须有:
1. 包含 `class Tools:``class Filter:``class Pipe:``class Action:``.py` 文件
2. 包含 `title:``description:`**`openwebui_id:`** 字段的文档字符串
3. 文件名不能以 `_cn` 结尾
### 其他 GitHub 仓库
对于其他仓库:
1. 包含 `class Tools:``class Filter:``class Pipe:``class Action:``.py` 文件
2. 包含 `title:``description:` 字段的文档字符串
## 配置 (Valves)
| 参数 | 默认值 | 描述 |
| --- | --- | --- |
| `SKIP_KEYWORDS` | `test,verify,example,template,mock` | 要跳过的关键词,用逗号分隔 |
| `TIMEOUT` | `20` | 请求超时时间(秒) |
## 确认超时时间
用户确认对话框的默认超时时间为 **2 分钟120 秒)**,为用户提供充足的时间来:
- 阅读和查看插件列表
- 做出安装决定
- 处理网络延迟
## 支持
如果这个插件对你有帮助,欢迎到 [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) 点个 Star这将是我持续改进的动力感谢支持。