Compare commits
90 Commits
v2026.02.1
...
v2026.02.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fc9f1ccb43 | ||
|
|
272b959a44 | ||
|
|
0bde066088 | ||
|
|
6334660e8d | ||
|
|
c29d84f97a | ||
|
|
aac2e89022 | ||
|
|
fea812d4f4 | ||
|
|
b570cbfcde | ||
|
|
adc5e0a1f4 | ||
|
|
04b8108890 | ||
|
|
f1ba03e3bd | ||
|
|
cdd9950973 | ||
|
|
473012fa6f | ||
|
|
1bbddb2222 | ||
|
|
dc66610cb2 | ||
|
|
655b5311cf | ||
|
|
4390ee2085 | ||
|
|
6bf3656d30 | ||
|
|
bfb2039095 | ||
|
|
86091f77cf | ||
|
|
eb223e3e75 | ||
|
|
d1bbbd9071 | ||
|
|
840c77ea2f | ||
|
|
91ba7df086 | ||
|
|
fa636c7bc5 | ||
|
|
a5ad295d38 | ||
|
|
e1f70d52a5 | ||
|
|
015c22063a | ||
|
|
0ea95ceefa | ||
|
|
1192c71453 | ||
|
|
0b5663636f | ||
|
|
1736a1bfbf | ||
|
|
d7c25aa973 | ||
|
|
d71b4a7351 | ||
|
|
a05697df70 | ||
|
|
b355c3f0c1 | ||
|
|
30f2aed68a | ||
|
|
50c549b260 | ||
|
|
2a75580831 | ||
|
|
4032746243 | ||
|
|
871e76b1df | ||
|
|
954ebad8b2 | ||
|
|
fa5d962152 | ||
|
|
2ac8d4b14f | ||
|
|
c86b27a0c1 | ||
|
|
2381c5080e | ||
|
|
0394be7d16 | ||
|
|
7c9bf4082a | ||
|
|
8621d178ae | ||
|
|
20a7d57b5b | ||
|
|
8f72e25671 | ||
|
|
b7e62e63e0 | ||
|
|
bbccffa95b | ||
|
|
b9104702ac | ||
|
|
015b0d98ec | ||
|
|
fc56ea7faa | ||
|
|
e1c2261537 | ||
|
|
93e8e3bee2 | ||
|
|
1fb2cccd58 | ||
|
|
b34ce0b075 | ||
|
|
49efcb7e4d | ||
|
|
8d334a48b9 | ||
|
|
16882bf9e5 | ||
|
|
dc0366aab2 | ||
|
|
6d080d3a28 | ||
|
|
e50a55ee11 | ||
|
|
edbd75e5dc | ||
|
|
387ca8788b | ||
|
|
cfb15808ef | ||
|
|
0424521380 | ||
|
|
c2ea3b2479 | ||
|
|
a96a588141 | ||
|
|
f34da0b263 | ||
|
|
80dce6e1de | ||
|
|
080534d03b | ||
|
|
a63d3e89ff | ||
|
|
0b9c242c0f | ||
|
|
6f7ae4a304 | ||
|
|
571adf33c5 | ||
|
|
813e2b8320 | ||
|
|
21ec586c68 | ||
|
|
e95a786420 | ||
|
|
7773723b18 | ||
|
|
c547c1cee5 | ||
|
|
b04112a261 | ||
|
|
df977a7ccc | ||
|
|
3986eb854f | ||
|
|
fe170bedb9 | ||
|
|
3504313f15 | ||
|
|
e5e0f4cbcc |
@@ -12,19 +12,22 @@ All plugins MUST follow the standard README template.
|
|||||||
**Reference Template**: @docs/PLUGIN_README_TEMPLATE.md
|
**Reference Template**: @docs/PLUGIN_README_TEMPLATE.md
|
||||||
|
|
||||||
### Language Requirements
|
### Language Requirements
|
||||||
|
|
||||||
- **English Version (`README.md`)**: The primary documentation source. Must follow the template strictly.
|
- **English Version (`README.md`)**: The primary documentation source. Must follow the template strictly.
|
||||||
- **Chinese Version (`README_CN.md`)**: MUST be translated based on the English version (`README.md`) to ensure consistency in structure and content.
|
- **Chinese Version (`README_CN.md`)**: MUST be translated based on the English version (`README.md`) to ensure consistency in structure and content.
|
||||||
|
|
||||||
### Metadata Requirements
|
### Metadata Requirements
|
||||||
|
|
||||||
The metadata line must follow this format:
|
The metadata line must follow this format:
|
||||||
`**Author:** [Name](Link) | **Version:** [X.Y.Z] | **Project:** [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) | **License:** MIT`
|
`**Author:** [Name](Link) | **Version:** [X.Y.Z] | **Project:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **License:** MIT`
|
||||||
|
|
||||||
### Structure Checklist
|
### Structure Checklist
|
||||||
1. **Title & Description**
|
|
||||||
2. **Metadata Line** (Author, Version, Project, License)
|
1. **Title & Description**
|
||||||
3. **Preview** (Screenshots/GIFs)
|
2. **Metadata Line** (Author, Version, Project, License)
|
||||||
4. **What's New** (Keep last 3 versions)
|
3. **Preview** (Screenshots/GIFs)
|
||||||
5. **Key Features**
|
4. **What's New** (Keep last 3 versions)
|
||||||
6. **How to Use**
|
5. **Key Features**
|
||||||
7. **Configuration (Valves)**
|
6. **How to Use**
|
||||||
8. **Troubleshooting** (Must include link to GitHub Issues)
|
7. **Configuration (Valves)**
|
||||||
|
8. **Troubleshooting** (Must include link to GitHub Issues)
|
||||||
|
|||||||
@@ -12,11 +12,11 @@ Reference: `.github/copilot-instructions.md`
|
|||||||
|
|
||||||
### Bilingual Requirement
|
### Bilingual Requirement
|
||||||
|
|
||||||
Every plugin **MUST** have bilingual versions for both code and documentation:
|
Every plugin **MUST** have a single internationalized code file and bilingual documentation:
|
||||||
|
|
||||||
- **Code**:
|
- **Code (i18n)**:
|
||||||
- English: `plugins/{type}/{name}/{name}.py`
|
- `plugins/{type}/{name}/{name}.py`
|
||||||
- Chinese: `plugins/{type}/{name}/{name_cn}.py` (or `中文名.py`)
|
- The single `.py` file must implement internal i18n (e.g., using `navigator.language` or backend headers) to support multiple languages natively, rather than splitting into separate files.
|
||||||
- **README**:
|
- **README**:
|
||||||
- English: `plugins/{type}/{name}/README.md`
|
- English: `plugins/{type}/{name}/README.md`
|
||||||
- Chinese: `plugins/{type}/{name}/README_CN.md`
|
- Chinese: `plugins/{type}/{name}/README_CN.md`
|
||||||
@@ -46,10 +46,10 @@ When adding or updating a plugin, you **MUST** update the following documentatio
|
|||||||
### Plugin Directory
|
### Plugin Directory
|
||||||
|
|
||||||
- `README.md`: Update version, description, and usage.
|
- `README.md`: Update version, description, and usage.
|
||||||
- **Key Capabilities**: **MUST** include ALL core functionalities and features. Do not only list new features in "What's New".
|
- **Key Capabilities**: **MUST** include ALL core functionalities and features. This is a cumulative section. Every release **MUST** verify that basic core descriptions are NOT lost or overwritten by new feature lists.
|
||||||
- **What's New**: Explicitly describe only the latest changes/updates in a prominent position at the beginning. This section is dynamic and changes with versions.
|
- **What's New**: Explicitly describe only the latest changes/updates in a prominent position at the beginning. This section is dynamic and changes with versions.
|
||||||
- `README_CN.md`: Update version, description, and usage.
|
- `README_CN.md`: Update version, description, and usage.
|
||||||
- **核心功能 (Key Capabilities)**: **必须**包含所有核心功能和特性,不能只在 "What's New" 中列出。
|
- **核心功能 (Key Capabilities)**: **必须**包含所有核心功能和特性。这是一个累积性的部分,每次版本更新**必须**确认基础核心功能的描述没有丢失或被新功能列表覆盖。
|
||||||
- **最新更新 (What's New)**: 在开头显眼位置明确描述最新的更改/更新。此部分是动态的,随版本变化。
|
- **最新更新 (What's New)**: 在开头显眼位置明确描述最新的更改/更新。此部分是动态的,随版本变化。
|
||||||
|
|
||||||
### Global Documentation (`docs/`)
|
### Global Documentation (`docs/`)
|
||||||
@@ -81,14 +81,13 @@ Reference: `.github/workflows/release.yml`
|
|||||||
- **Release Information Compliance**: When a release is requested, the agent must generate a standard release summary (English commit title + bilingual bullet points) as defined in Section 3 & 5.
|
- **Release Information Compliance**: When a release is requested, the agent must generate a standard release summary (English commit title + bilingual bullet points) as defined in Section 3 & 5.
|
||||||
- **Default Action (Prepare Only)**: When performing a version bump or update, the agent should update all files locally but **STOP** before committing. Present the changes and the **proposed Release/Commit Message** to the user and wait for explicit confirmation to commit/push.
|
- **Default Action (Prepare Only)**: When performing a version bump or update, the agent should update all files locally but **STOP** before committing. Present the changes and the **proposed Release/Commit Message** to the user and wait for explicit confirmation to commit/push.
|
||||||
- **Consistency**: When bumping, update version in **ALL** locations:
|
- **Consistency**: When bumping, update version in **ALL** locations:
|
||||||
1. English Code (`.py`)
|
1. Code (`.py`)
|
||||||
2. Chinese Code (`.py`)
|
2. English README (`README.md`)
|
||||||
3. English README (`README.md`)
|
3. Chinese README (`README_CN.md`)
|
||||||
4. Chinese README (`README_CN.md`)
|
4. Docs Index (`docs/.../index.md`)
|
||||||
5. Docs Index (`docs/.../index.md`)
|
5. Docs Index CN (`docs/.../index.zh.md`)
|
||||||
6. Docs Index CN (`docs/.../index.zh.md`)
|
6. Docs Detail (`docs/.../{name}.md`)
|
||||||
7. Docs Detail (`docs/.../{name}.md`)
|
7. Docs Detail CN (`docs/.../{name}.zh.md`)
|
||||||
8. Docs Detail CN (`docs/.../{name}.zh.md`)
|
|
||||||
|
|
||||||
### Automated Release Process
|
### Automated Release Process
|
||||||
|
|
||||||
@@ -105,8 +104,8 @@ Reference: `.github/workflows/release.yml`
|
|||||||
- **Auto-Sync**: If a local plugin has no ID but matches an existing published plugin by **Title**, the script will automatically fetch the ID, update the local file, and proceed with the update.
|
- **Auto-Sync**: If a local plugin has no ID but matches an existing published plugin by **Title**, the script will automatically fetch the ID, update the local file, and proceed with the update.
|
||||||
- Requirement: `OPENWEBUI_API_KEY` secret must be set.
|
- Requirement: `OPENWEBUI_API_KEY` secret must be set.
|
||||||
- **README Link**: When announcing a release, always include the GitHub README URL for the plugin:
|
- **README Link**: When announcing a release, always include the GitHub README URL for the plugin:
|
||||||
- Format: `https://github.com/Fu-Jie/awesome-openwebui/blob/main/plugins/{type}/{name}/README.md`
|
- Format: `https://github.com/Fu-Jie/openwebui-extensions/blob/main/plugins/{type}/{name}/README.md`
|
||||||
- Example: `https://github.com/Fu-Jie/awesome-openwebui/blob/main/plugins/filters/folder-memory/README.md`
|
- Example: `https://github.com/Fu-Jie/openwebui-extensions/blob/main/plugins/filters/folder-memory/README.md`
|
||||||
|
|
||||||
### Release Content Standard
|
### Release Content Standard
|
||||||
|
|
||||||
@@ -119,8 +118,8 @@ When the user confirms a release, the agent **MUST** follow these content standa
|
|||||||
2. **Release Summary (for user review)**:
|
2. **Release Summary (for user review)**:
|
||||||
- Before committing, present a "Release Draft" containing:
|
- Before committing, present a "Release Draft" containing:
|
||||||
- **Title**: e.g., `Release v0.1.1: [Plugin Name] - [Brief Summary]`
|
- **Title**: e.g., `Release v0.1.1: [Plugin Name] - [Brief Summary]`
|
||||||
- **Changes**: Bilingual bullet points (English/Chinese) describing the impact.
|
- **Changelog**: English-only list of commits since the last release, including hashes (e.g., `896de02 docs(config): reorder antigravity model alias example`).
|
||||||
- **Verification Status**: Confirm all 8+ files have been updated and synced.
|
- **Verification Status**: Confirm all 7+ files have been updated and synced.
|
||||||
3. **Internal Documentation**: Ensure "What's New" sections in READMEs and `docs/` match exactly the changes being released.
|
3. **Internal Documentation**: Ensure "What's New" sections in READMEs and `docs/` match exactly the changes being released.
|
||||||
|
|
||||||
### Pull Request Check
|
### Pull Request Check
|
||||||
@@ -134,9 +133,10 @@ When the user confirms a release, the agent **MUST** follow these content standa
|
|||||||
|
|
||||||
Before committing:
|
Before committing:
|
||||||
|
|
||||||
- [ ] Code is bilingual and functional?
|
- [ ] Code is internal i18n supported (`.py`) and fully functional?
|
||||||
- [ ] Docstrings have updated version?
|
- [ ] Docstrings have updated version?
|
||||||
- [ ] READMEs are updated and bilingual?
|
- [ ] READMEs are updated and bilingual?
|
||||||
|
- [ ] **Key Capabilities** in READMEs still cover all legacy core features + new features?
|
||||||
- [ ] `docs/` index and detail pages are updated?
|
- [ ] `docs/` index and detail pages are updated?
|
||||||
- [ ] Root `README.md` is updated?
|
- [ ] Root `README.md` is updated?
|
||||||
- [ ] All version numbers match exactly?
|
- [ ] All version numbers match exactly?
|
||||||
|
|||||||
@@ -45,8 +45,7 @@
|
|||||||
"contributions": [
|
"contributions": [
|
||||||
"ideas"
|
"ideas"
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
,
|
|
||||||
{
|
{
|
||||||
"login": "abaroni",
|
"login": "abaroni",
|
||||||
"name": "Alessandro Baroni",
|
"name": "Alessandro Baroni",
|
||||||
@@ -61,6 +60,6 @@
|
|||||||
"skipCi": true,
|
"skipCi": true,
|
||||||
"repoType": "github",
|
"repoType": "github",
|
||||||
"repoHost": "https://github.com",
|
"repoHost": "https://github.com",
|
||||||
"projectName": "awesome-openwebui",
|
"projectName": "openwebui-extensions",
|
||||||
"projectOwner": "Fu-Jie"
|
"projectOwner": "Fu-Jie"
|
||||||
}
|
}
|
||||||
230
.github/copilot-instructions.md
vendored
230
.github/copilot-instructions.md
vendored
@@ -1,4 +1,4 @@
|
|||||||
# Copilot Instructions for awesome-openwebui
|
# Copilot Instructions for openwebui-extensions
|
||||||
|
|
||||||
本文档定义了 OpenWebUI 插件开发的标准规范和最佳实践。Copilot 在生成代码或文档时应遵循这些准则。
|
本文档定义了 OpenWebUI 插件开发的标准规范和最佳实践。Copilot 在生成代码或文档时应遵循这些准则。
|
||||||
|
|
||||||
@@ -8,27 +8,26 @@ This document defines the standard conventions and best practices for OpenWebUI
|
|||||||
|
|
||||||
## 🏗️ 项目结构与命名 (Project Structure & Naming)
|
## 🏗️ 项目结构与命名 (Project Structure & Naming)
|
||||||
|
|
||||||
### 1. 双语版本要求 (Bilingual Version Requirements)
|
### 1. 语言与代码规范 (Language & Code Requirements)
|
||||||
|
|
||||||
#### 插件代码 (Plugin Code)
|
#### 插件代码 (Plugin Code)
|
||||||
|
|
||||||
每个插件必须提供两个版本:
|
每个插件**必须**采用单文件国际化 (i18n) 设计。严禁为不同语言创建独立的源代码文件(如 `_cn.py`)。
|
||||||
|
|
||||||
1. **英文版本**: `plugin_name.py` - 英文界面、提示词和注释
|
1. **单代码文件**: `plugins/{type}/{name}/{name}.py`
|
||||||
2. **中文版本**: `plugin_name_cn.py` - 中文界面、提示词和注释
|
2. **内置 i18n**: 必须在代码中根据前端传来的用户语言(如 `__user__` 中的 `language` 或通过 `get_user_language` 脚本读取)动态切换界面显示、提示词和状态日志。
|
||||||
|
|
||||||
示例:
|
示例目录结构:
|
||||||
```
|
```
|
||||||
plugins/actions/export_to_docx/
|
plugins/actions/export_to_docx/
|
||||||
├── export_to_word.py # English version
|
├── export_to_word.py # 单个代码文件,内置多语言支持
|
||||||
├── export_to_word_cn.py # Chinese version
|
├── README.md # 英文文档 (English documentation)
|
||||||
├── README.md # English documentation
|
└── README_CN.md # 中文文档
|
||||||
└── README_CN.md # Chinese documentation
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 文档 (Documentation)
|
#### 文档 (Documentation)
|
||||||
|
|
||||||
每个插件目录必须包含双语 README 文件:
|
尽管代码是合一的,但为了市场展示和 SEO,每个插件目录仍**必须**包含双语 README 文件:
|
||||||
|
|
||||||
- `README.md` - English documentation
|
- `README.md` - English documentation
|
||||||
- `README_CN.md` - 中文文档
|
- `README_CN.md` - 中文文档
|
||||||
@@ -39,7 +38,7 @@ plugins/actions/export_to_docx/
|
|||||||
|
|
||||||
1. **标题 (Title)**: 插件名称,带 Emoji 图标
|
1. **标题 (Title)**: 插件名称,带 Emoji 图标
|
||||||
2. **元数据 (Metadata)**: 作者、版本、项目链接 (一行显示)
|
2. **元数据 (Metadata)**: 作者、版本、项目链接 (一行显示)
|
||||||
- 格式: `**Author:** [Fu-Jie](https://github.com/Fu-Jie) | **Version:** x.x.x | **Project:** [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui)`
|
- 格式: `**Author:** [Fu-Jie](https://github.com/Fu-Jie) | **Version:** x.x.x | **Project:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions)`
|
||||||
- **注意**: Author 和 Project 为固定值,仅需更新 Version 版本号
|
- **注意**: Author 和 Project 为固定值,仅需更新 Version 版本号
|
||||||
3. **描述 (Description)**: 一句话功能介绍
|
3. **描述 (Description)**: 一句话功能介绍
|
||||||
4. **最新更新 (What's New)**: **必须**放在描述之后,仅展示**最近 1 次**更新
|
4. **最新更新 (What's New)**: **必须**放在描述之后,仅展示**最近 1 次**更新
|
||||||
@@ -47,8 +46,8 @@ plugins/actions/export_to_docx/
|
|||||||
6. **使用方法 (How to Use)**: 按步骤说明
|
6. **使用方法 (How to Use)**: 按步骤说明
|
||||||
7. **配置参数 (Configuration/Valves)**: 使用表格格式,包含参数名、默认值、描述
|
7. **配置参数 (Configuration/Valves)**: 使用表格格式,包含参数名、默认值、描述
|
||||||
8. **支持 (Support)**: **必须**包含,放在配置参数之后、故障排除之前
|
8. **支持 (Support)**: **必须**包含,放在配置参数之后、故障排除之前
|
||||||
- English: `If this plugin has been useful, a star on [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) is a big motivation for me. Thank you for the support.`
|
- English: `If this plugin has been useful, a star on [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) is a big motivation for me. Thank you for the support.`
|
||||||
- 中文: `如果这个插件对你有帮助,欢迎到 [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) 点个 Star,这将是我持续改进的动力,感谢支持。`
|
- 中文: `如果这个插件对你有帮助,欢迎到 [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) 点个 Star,这将是我持续改进的动力,感谢支持。`
|
||||||
9. **其他 (Others)**: 支持的模板类型、语法示例、故障排除等
|
9. **其他 (Others)**: 支持的模板类型、语法示例、故障排除等
|
||||||
- **Changelog**: 统一指向 GitHub 项目历史,不在 README 中列出具体变更
|
- **Changelog**: 统一指向 GitHub 项目历史,不在 README 中列出具体变更
|
||||||
|
|
||||||
@@ -58,12 +57,10 @@ plugins/actions/export_to_docx/
|
|||||||
plugins/
|
plugins/
|
||||||
├── actions/ # Action 插件 (用户触发的功能)
|
├── actions/ # Action 插件 (用户触发的功能)
|
||||||
│ ├── my_action/
|
│ ├── my_action/
|
||||||
│ │ ├── my_action.py # English version
|
│ │ ├── my_action.py # 单文件,内置 i18n
|
||||||
│ │ ├── 我的动作.py # Chinese version
|
|
||||||
│ │ ├── README.md # English documentation
|
│ │ ├── README.md # English documentation
|
||||||
│ │ └── README_CN.md # Chinese documentation
|
│ │ └── README_CN.md # Chinese documentation
|
||||||
│ ├── ACTION_PLUGIN_TEMPLATE.py # English template
|
│ ├── ACTION_PLUGIN_TEMPLATE.py # 通用 i18n 模板
|
||||||
│ ├── ACTION_PLUGIN_TEMPLATE_CN.py # Chinese template
|
|
||||||
│ └── README.md
|
│ └── README.md
|
||||||
├── filters/ # Filter 插件 (输入处理)
|
├── filters/ # Filter 插件 (输入处理)
|
||||||
│ └── ...
|
│ └── ...
|
||||||
@@ -109,7 +106,7 @@ plugins/debug/
|
|||||||
"""
|
"""
|
||||||
title: 插件名称 (Plugin Name)
|
title: 插件名称 (Plugin Name)
|
||||||
author: Fu-Jie
|
author: Fu-Jie
|
||||||
author_url: https://github.com/Fu-Jie/awesome-openwebui
|
author_url: https://github.com/Fu-Jie/openwebui-extensions
|
||||||
funding_url: https://github.com/open-webui
|
funding_url: https://github.com/open-webui
|
||||||
version: 0.1.0
|
version: 0.1.0
|
||||||
icon_url: data:image/svg+xml;base64,<base64-encoded-svg>
|
icon_url: data:image/svg+xml;base64,<base64-encoded-svg>
|
||||||
@@ -124,7 +121,7 @@ description: 插件功能的简短描述。Brief description of plugin functiona
|
|||||||
|--------------|---------------------|----------------|
|
|--------------|---------------------|----------------|
|
||||||
| `title` | 插件显示名称 | `Export to Word` / `导出为 Word` |
|
| `title` | 插件显示名称 | `Export to Word` / `导出为 Word` |
|
||||||
| `author` | 作者名称 | `Fu-Jie` |
|
| `author` | 作者名称 | `Fu-Jie` |
|
||||||
| `author_url` | 作者主页链接 | `https://github.com/Fu-Jie/awesome-openwebui` |
|
| `author_url` | 作者主页链接 | `https://github.com/Fu-Jie/openwebui-extensions` |
|
||||||
| `funding_url` | 赞助/项目链接 | `https://github.com/open-webui` |
|
| `funding_url` | 赞助/项目链接 | `https://github.com/open-webui` |
|
||||||
| `version` | 语义化版本号 | `0.1.0`, `1.2.3` |
|
| `version` | 语义化版本号 | `0.1.0`, `1.2.3` |
|
||||||
| `icon_url` | 图标 (Base64 编码的 SVG) | 仅 Action 插件**必须**提供。其他类型可选。 |
|
| `icon_url` | 图标 (Base64 编码的 SVG) | 仅 Action 插件**必须**提供。其他类型可选。 |
|
||||||
@@ -474,14 +471,124 @@ async def get_user_language(self):
|
|||||||
|
|
||||||
#### 适用场景与引导 (Usage Guidelines)
|
#### 适用场景与引导 (Usage Guidelines)
|
||||||
|
|
||||||
- **语言适配**: 动态获取界面语言 (`ru-RU`, `zh-CN`) 自动切换输出语言。
|
- **语言适配**: 动态获取界面语言 (`ru-RU`, `zh-CN`) 自动切换输出语言和 UI 翻译。这对于单文件 i18n 插件至关重要。
|
||||||
- **时区处理**: 获取 `Intl.DateTimeFormat().resolvedOptions().timeZone` 处理时间。
|
- **时区处理**: 获取 `Intl.DateTimeFormat().resolvedOptions().timeZone` 处理时间。
|
||||||
- **客户端存储**: 读取 `localStorage` 中的用户偏好设置。
|
- **客户端存储**: 读取 `localStorage` 中的用户偏好设置。
|
||||||
- **硬件能力**: 获取 `navigator.clipboard` 或 `navigator.geolocation` (需授权)。
|
- **硬件能力**: 获取 `navigator.clipboard` 或 `navigator.geolocation` (需授权)。
|
||||||
|
|
||||||
**注意**: 即使插件有 `Valves` 配置,也应优先尝试自动探测,提升用户体验。
|
**注意**: 即使插件有 `Valves` 配置,也应优先尝试自动探测,提升用户体验。
|
||||||
|
|
||||||
### 8. 智能代理文件交付规范 (Agent File Delivery Standards)
|
### 8. 国际化 (i18n) 适配规范 (Internationalization Standards)
|
||||||
|
|
||||||
|
开发供全球用户使用的插件时,必须预置多语言支持(如中文、英文等)。
|
||||||
|
|
||||||
|
#### i18n 字典定义
|
||||||
|
|
||||||
|
在文件顶部定义 `TRANSLATIONS` 字典存储多语言字符串:
|
||||||
|
|
||||||
|
```python
|
||||||
|
TRANSLATIONS = {
|
||||||
|
"en-US": {
|
||||||
|
"status_starting": "Smart Mind Map is starting...",
|
||||||
|
},
|
||||||
|
"zh-CN": {
|
||||||
|
"status_starting": "智能思维导图正在启动...",
|
||||||
|
},
|
||||||
|
# ... 其他语言
|
||||||
|
}
|
||||||
|
|
||||||
|
# 语言回退映射 (Fallback Map)
|
||||||
|
FALLBACK_MAP = {
|
||||||
|
"zh": "zh-CN",
|
||||||
|
"zh-TW": "zh-CN",
|
||||||
|
"zh-HK": "zh-CN",
|
||||||
|
"en": "en-US",
|
||||||
|
"en-GB": "en-US"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 获取当前用户真实语言 (Robust Language Detection)
|
||||||
|
|
||||||
|
Open WebUI 的前端(localStorage)并未自动同步语言设置到后端数据库或通过标准 API 参数传递。为了获取精准的用户偏好语言,**必须**使用多层级回退机制(Multi-level Fallback):
|
||||||
|
`JS 动态探测 (localStorage)` > `HTTP 浏览器头 (Accept-Language)` > `用户 Profile 默认设置` > `en-US`
|
||||||
|
|
||||||
|
> **注意!防卡死指南 (Anti-Deadlock Guide)**
|
||||||
|
> 在通过 `__event_call__` 执行前端 JS 脚本时,如果前端脚本不慎抛出异常 (`Exception`) 会导致回调函数 `cb()` 永不执行,这会让后端的 `asyncio` 永远阻塞并卡死整个请求队列!
|
||||||
|
> **必须**做两重防护:
|
||||||
|
> 1. JS 内部包裹 `try...catch` 保证必须有 `return`。
|
||||||
|
> 2. 后端使用 `asyncio.wait_for` 设置强制超时(建议 2 秒)。
|
||||||
|
|
||||||
|
```python
|
||||||
|
import asyncio
|
||||||
|
from fastapi import Request
|
||||||
|
|
||||||
|
async def _get_user_context(
|
||||||
|
self,
|
||||||
|
__user__: Optional[dict],
|
||||||
|
__event_call__: Optional[callable] = None,
|
||||||
|
__request__: Optional[Request] = None,
|
||||||
|
) -> dict:
|
||||||
|
user_language = __user__.get("language", "en-US") if __user__ else "en-US"
|
||||||
|
|
||||||
|
# 1st Fallback: HTTP Accept-Language header
|
||||||
|
if __request__ and hasattr(__request__, "headers") and "accept-language" in __request__.headers:
|
||||||
|
raw_lang = __request__.headers.get("accept-language", "")
|
||||||
|
if raw_lang:
|
||||||
|
user_language = raw_lang.split(",")[0].split(";")[0]
|
||||||
|
|
||||||
|
# 2nd Fallback (Best): Execute JS in frontend to read localStorage
|
||||||
|
if __event_call__:
|
||||||
|
try:
|
||||||
|
js_code = """
|
||||||
|
try {
|
||||||
|
return (
|
||||||
|
document.documentElement.lang ||
|
||||||
|
localStorage.getItem('locale') ||
|
||||||
|
navigator.language ||
|
||||||
|
'en-US'
|
||||||
|
);
|
||||||
|
} catch (e) {
|
||||||
|
return 'en-US';
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
# 【致命!】必须设置 wait_for 防止前端无响应卡死后端
|
||||||
|
frontend_lang = await asyncio.wait_for(
|
||||||
|
__event_call__({"type": "execute", "data": {"code": js_code}}),
|
||||||
|
timeout=2.0
|
||||||
|
)
|
||||||
|
if frontend_lang and isinstance(frontend_lang, str):
|
||||||
|
user_language = frontend_lang
|
||||||
|
except Exception as e:
|
||||||
|
pass # fallback to accept-language or en-US
|
||||||
|
|
||||||
|
return {
|
||||||
|
"user_language": user_language,
|
||||||
|
# ... user_name, user_id etc.
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 实际使用 (Usage in Action/Filter)
|
||||||
|
|
||||||
|
在 Action 或者 Filter 执行时引用这套上下文获取机制,然后传入映射器获取最终翻译:
|
||||||
|
|
||||||
|
```python
|
||||||
|
async def action(
|
||||||
|
self,
|
||||||
|
body: dict,
|
||||||
|
__user__: Optional[dict] = None,
|
||||||
|
__event_call__: Optional[callable] = None,
|
||||||
|
__request__: Optional[Request] = None,
|
||||||
|
**kwargs
|
||||||
|
) -> Optional[dict]:
|
||||||
|
|
||||||
|
user_ctx = await self._get_user_context(__user__, __event_call__, __request__)
|
||||||
|
user_lang = user_ctx["user_language"]
|
||||||
|
|
||||||
|
# 获取多语言文本 (通过你的 translation.get() 扩展)
|
||||||
|
# start_msg = self._get_translation(user_lang, "status_starting")
|
||||||
|
```
|
||||||
|
|
||||||
|
### 9. 智能代理文件交付规范 (Agent File Delivery Standards)
|
||||||
|
|
||||||
在开发具备文件生成能力的智能代理插件(如 GitHub Copilot SDK 集成)时,必须遵循以下标准流程,以确保文件在不同存储后端(本地/S3)下的可用性并绕过不必要的 RAG 处理。
|
在开发具备文件生成能力的智能代理插件(如 GitHub Copilot SDK 集成)时,必须遵循以下标准流程,以确保文件在不同存储后端(本地/S3)下的可用性并绕过不必要的 RAG 处理。
|
||||||
|
|
||||||
@@ -501,7 +608,7 @@ async def get_user_language(self):
|
|||||||
- 代理应始终将“当前目录”视为其受保护所在的私有工作空间。
|
- 代理应始终将“当前目录”视为其受保护所在的私有工作空间。
|
||||||
- `publish_file_from_workspace` 的参数 `filename` 仅需传入相对于当前目录的文件名。
|
- `publish_file_from_workspace` 的参数 `filename` 仅需传入相对于当前目录的文件名。
|
||||||
|
|
||||||
### 9. Copilot SDK 插件工具定义规范 (Copilot SDK Tool Definition Standards)
|
### 10. Copilot SDK 插件工具定义规范 (Copilot SDK Tool Definition Standards)
|
||||||
|
|
||||||
在为 GitHub Copilot SDK 开发自定义工具时,为了确保大模型能正确识别参数(避免生成空的 `properties` Schema),必须遵循以下定义模式:
|
在为 GitHub Copilot SDK 开发自定义工具时,为了确保大模型能正确识别参数(避免生成空的 `properties` Schema),必须遵循以下定义模式:
|
||||||
|
|
||||||
@@ -535,6 +642,63 @@ my_tool = define_tool(
|
|||||||
2. **Field 描述**: 在 `BaseModel` 中使用 `Field(..., description="...")` 为每个参数提供详细的描述信息。
|
2. **Field 描述**: 在 `BaseModel` 中使用 `Field(..., description="...")` 为每个参数提供详细的描述信息。
|
||||||
3. **Required vs Optional**: 明确标注必填项(无默认值)和可选项(带 `default`)。
|
3. **Required vs Optional**: 明确标注必填项(无默认值)和可选项(带 `default`)。
|
||||||
|
|
||||||
|
### 11. Copilot SDK 流式渲染与工具卡片规范 (Streaming & Tool Card Standards)
|
||||||
|
|
||||||
|
在处理大模型的思维链(Reasoning)输出和工具调用(Tool Calls)时,为了确保能完美兼容 OpenWebUI 0.8.x 前端的 Markdown 解析器及原生折叠 UI 组件,必须遵循以下极度严格的输出格式规范。
|
||||||
|
|
||||||
|
#### 思维链流式渲染 (Reasoning Streaming)
|
||||||
|
|
||||||
|
为了让前端能够正确显示“Thinking...”的折叠框和 Spinner 动画,**必须**使用原生的 `<think>` 标签。
|
||||||
|
|
||||||
|
- **正确的标签包裹**:
|
||||||
|
```html
|
||||||
|
<think>
|
||||||
|
这里是思考过程...
|
||||||
|
</think>
|
||||||
|
```
|
||||||
|
- **关键细节**:
|
||||||
|
- **标签闭合检测**: 必须在代码内部维护状态(如 `state["thinking_started"]`)。当(1)正文内容即将开始输出,或(2)工具调用触发 (`tool.execution_start`) 时,**必须优先输出 `\n</think>\n` 强制闭合标签**。如果不闭合,后续的正文或工具面板会被全部吞进思考框内,导致页面完全崩坏!
|
||||||
|
- **不要手动拼装**: 严禁通过手动输出 `<details type="reasoning">` 等大段 HTML 来模拟思考过程,这种方式极易在流式片段发送中破坏前端 DOM 树并导致错位。
|
||||||
|
|
||||||
|
#### 工具调用原生卡片 (Native Tool Calls Block)
|
||||||
|
|
||||||
|
为了在对话界面中生成标准、原生的下拉折叠“工具调用”卡片,当 `event_type == "tool.execution_complete"` 时,必须向队列输出如下严格格式的 HTML:
|
||||||
|
|
||||||
|
```python
|
||||||
|
# 必须转义属性中的双引号为 "
|
||||||
|
args_for_attr = args_json_str.replace('"', """)
|
||||||
|
result_for_attr = result_content.replace('"', """)
|
||||||
|
|
||||||
|
tool_block = (
|
||||||
|
f'\\n<details type="tool_calls"'
|
||||||
|
f' id="{tool_call_id}"'
|
||||||
|
f' name="{tool_name}"'
|
||||||
|
f' arguments="{args_for_attr}"'
|
||||||
|
f' result="{result_for_attr}"'
|
||||||
|
f' done="true">\\n'
|
||||||
|
f"<summary>Tool Executed</summary>\\n"
|
||||||
|
f"</details>\\n\\n"
|
||||||
|
)
|
||||||
|
queue.put_nowait(tool_block)
|
||||||
|
```
|
||||||
|
|
||||||
|
- **致命避坑点 (Critical Pitfalls)**:
|
||||||
|
1. **属性转义 (Extremely Important)**: `<details>` 内的 `arguments` 和 `result` 属性**必须**将内部的所有双引号 `"` 替换为 `"`。因为 OpenWebUI 前端提取这些数据的 Regex 是严格的 `="([^"]*)"`,一旦内容中出现原生双引号,就会被瞬间截断,导致参数被渲染为空并引发解析错误!
|
||||||
|
2. **换行符要求**: `<details ...>` 尖括号闭合后紧接着的内容**必须换行**(即 `>\\n`),否则 Markdown 扩展引擎无法将其识别为独立的 UI Block。
|
||||||
|
3. **去除冗余通知**: 不要在 `tool.execution_start` 事件中提前向对话流输出普通的 `🔧 Executing...` 纯文本块,这会导致最终页面上同时出现两块工具提示(一个文本,一个折叠卡片)。
|
||||||
|
|
||||||
|
#### Debug 信息的解耦 (Decoupling Debug Logs)
|
||||||
|
|
||||||
|
对于连接建立、运行环境、缓存加载等属于 *脚本自身运行状态* 的 Debug 信息:
|
||||||
|
- **禁止**: 不要将这些内容 yield 到最终的回答数据流(或塞进 `<think>` 标签内),这会污染回答的纯粹性。
|
||||||
|
- **推荐**: 统一使用 OpenWebUI 顶部的原生状态反馈气泡(Status Events):
|
||||||
|
```python
|
||||||
|
await __event_emitter__({
|
||||||
|
"type": "status",
|
||||||
|
"data": {"description": "连接建立,正在等待响应...", "done": True}
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ⚡ Action 插件规范 (Action Plugin Standards)
|
## ⚡ Action 插件规范 (Action Plugin Standards)
|
||||||
@@ -932,8 +1096,7 @@ Filter 实例是**单例 (Singleton)**。
|
|||||||
|
|
||||||
### 1. ✅ 开发检查清单 (Development Checklist)
|
### 1. ✅ 开发检查清单 (Development Checklist)
|
||||||
|
|
||||||
- [ ] 创建英文版插件代码 (`plugin_name.py`)
|
- [ ] 代码实现了内置 i18n 逻辑 (`.py`)
|
||||||
- [ ] 创建中文版插件代码 (`plugin_name_cn.py`)
|
|
||||||
- [ ] 编写英文 README (`README.md`)
|
- [ ] 编写英文 README (`README.md`)
|
||||||
- [ ] 编写中文 README (`README_CN.md`)
|
- [ ] 编写中文 README (`README_CN.md`)
|
||||||
- [ ] 包含标准化文档字符串
|
- [ ] 包含标准化文档字符串
|
||||||
@@ -941,7 +1104,7 @@ Filter 实例是**单例 (Singleton)**。
|
|||||||
- [ ] 使用 Lucide 图标
|
- [ ] 使用 Lucide 图标
|
||||||
- [ ] 实现 Valves 配置
|
- [ ] 实现 Valves 配置
|
||||||
- [ ] 使用 logging 而非 print
|
- [ ] 使用 logging 而非 print
|
||||||
- [ ] 测试双语界面
|
- [ ] 测试 i18n 界面适配
|
||||||
- [ ] **一致性检查**: 确保文档、代码、README 同步
|
- [ ] **一致性检查**: 确保文档、代码、README 同步
|
||||||
- [ ] **README 结构**:
|
- [ ] **README 结构**:
|
||||||
- **Key Capabilities** (英文) / **核心功能** (中文): 必须包含所有核心功能
|
- **Key Capabilities** (英文) / **核心功能** (中文): 必须包含所有核心功能
|
||||||
@@ -951,8 +1114,10 @@ Filter 实例是**单例 (Singleton)**。
|
|||||||
|
|
||||||
任何插件的**新增、修改或移除**,必须同时更新:
|
任何插件的**新增、修改或移除**,必须同时更新:
|
||||||
1. **插件代码** (version)
|
1. **插件代码** (version)
|
||||||
2. **项目文档** (`docs/`)
|
2. **插件自述文件** (`plugins/{type}/{name}/README.md` & `README_CN.md`)
|
||||||
3. **自述文件** (`README.md`)
|
3. **项目文档** (`docs/plugins/{type}/{name}.md` & `.zh.md`)
|
||||||
|
4. **项目文档索引** (`docs/plugins/{type}/index.md` & `index.zh.md` — 版本号)
|
||||||
|
5. **项目根 README** (`README.md` & `README_CN.md` — 更新日期徽章 `` 必须同步为发布当天日期)
|
||||||
|
|
||||||
### 3. 发布工作流 (Release Workflow)
|
### 3. 发布工作流 (Release Workflow)
|
||||||
|
|
||||||
@@ -988,13 +1153,14 @@ Filter 实例是**单例 (Singleton)**。
|
|||||||
2. **变更列表 (Bilingual Changes)**:
|
2. **变更列表 (Bilingual Changes)**:
|
||||||
- 英文: Clear descriptions of technical/functional changes.
|
- 英文: Clear descriptions of technical/functional changes.
|
||||||
- 中文: 清晰描述用户可见的功能改进或修复。
|
- 中文: 清晰描述用户可见的功能改进或修复。
|
||||||
3. **核查状态 (Verification)**: 确认版本号已在相关 8+ 处位置同步更新。
|
3. **核查状态 (Verification)**: 确认版本号已在相关 7+ 处位置同步更新(1 个代码文件 + 2 个 README + 4 个 Docs 文件)。
|
||||||
|
|
||||||
### 4. 🤖 Git 提交与推送规范 (Git Operations & Push Rules)
|
### 4. 🤖 Git 提交与推送规范 (Git Operations & Push Rules)
|
||||||
|
|
||||||
- **核心原则**: 默认仅进行**本地文件准备**(更新代码、READMEs、Docs、版本号),**严禁**在未获用户明确许可的情况下自动执行 `git commit` 或 `git push`。
|
- **核心原则**: 默认仅进行**本地文件准备**(更新代码、READMEs、Docs、版本号),**严禁**在未获用户明确许可的情况下自动执行 `git commit` 或 `git push`。
|
||||||
- **允许 (需确认)**: 只有在用户明确表示“发布”、“Commit it”、“Release”或“提交”后,才允许直接推送到 `main` 分支或创建 PR。
|
- **允许 (需确认)**: 只有在用户明确表示“发布”、“Commit it”、“Release”或“提交”后,才允许直接推送到 `main` 分支或创建 PR。
|
||||||
- **功能分支**: 推荐在进行大规模重构或实验性功能开发时,创建功能分支 (`feature/xxx`) 进行隔离。
|
- **功能分支**: 推荐在进行大规模重构或实验性功能开发时,创建功能分支 (`feature/xxx`) 进行隔离。
|
||||||
|
- **PR 提交**: 必须使用 GitHub CLI (`gh`) 创建 Pull Request。示例:`gh pr create --title "feat: ..." --body "..."`。
|
||||||
|
|
||||||
### 5. 🤝 贡献者认可规范 (Contributor Recognition)
|
### 5. 🤝 贡献者认可规范 (Contributor Recognition)
|
||||||
|
|
||||||
@@ -1004,8 +1170,7 @@ Filter 实例是**单例 (Singleton)**。
|
|||||||
|
|
||||||
## 📚 参考资源 (Reference Resources)
|
## 📚 参考资源 (Reference Resources)
|
||||||
|
|
||||||
- [Action 插件模板 (英文)](plugins/actions/ACTION_PLUGIN_TEMPLATE.py)
|
- [Action 插件模板](plugins/actions/ACTION_PLUGIN_TEMPLATE.py)
|
||||||
- [Action 插件模板 (中文)](plugins/actions/ACTION_PLUGIN_TEMPLATE_CN.py)
|
|
||||||
- [插件开发指南](plugins/actions/PLUGIN_DEVELOPMENT_GUIDE.md)
|
- [插件开发指南](plugins/actions/PLUGIN_DEVELOPMENT_GUIDE.md)
|
||||||
- [Lucide Icons](https://lucide.dev/icons/)
|
- [Lucide Icons](https://lucide.dev/icons/)
|
||||||
- [OpenWebUI 文档](https://docs.openwebui.com/)
|
- [OpenWebUI 文档](https://docs.openwebui.com/)
|
||||||
@@ -1015,8 +1180,9 @@ Filter 实例是**单例 (Singleton)**。
|
|||||||
## Author
|
## Author
|
||||||
|
|
||||||
Fu-Jie
|
Fu-Jie
|
||||||
GitHub: [Fu-Jie/awesome-openwebui](https://github.com/Fu-Jie/awesome-openwebui)
|
GitHub: [Fu-Jie/openwebui-extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
MIT License
|
MIT License
|
||||||
|
```
|
||||||
|
|||||||
44
.github/workflows/community-stats.yml
vendored
44
.github/workflows/community-stats.yml
vendored
@@ -8,10 +8,8 @@
|
|||||||
name: Community Stats
|
name: Community Stats
|
||||||
|
|
||||||
on:
|
on:
|
||||||
# 每小时整点运行
|
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '0 * * * *'
|
- cron: '0 * * * *'
|
||||||
# 手动触发
|
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
@@ -41,21 +39,16 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
if [ -f docs/community-stats.json ]; then
|
if [ -f docs/community-stats.json ]; then
|
||||||
echo "total_posts=$(jq -r '.total_posts // 0' docs/community-stats.json)" >> $GITHUB_OUTPUT
|
echo "total_posts=$(jq -r '.total_posts // 0' docs/community-stats.json)" >> $GITHUB_OUTPUT
|
||||||
echo "total_points=$(jq -r '.user.total_points // 0' docs/community-stats.json)" >> $GITHUB_OUTPUT
|
|
||||||
echo "followers=$(jq -r '.user.followers // 0' docs/community-stats.json)" >> $GITHUB_OUTPUT
|
|
||||||
# 提取所有插件的版本号,生成一个排序后的字符串用于比较
|
|
||||||
echo "versions=$(jq -r '[.posts[].version] | sort | join(",")' docs/community-stats.json)" >> $GITHUB_OUTPUT
|
|
||||||
else
|
else
|
||||||
echo "total_posts=0" >> $GITHUB_OUTPUT
|
echo "total_posts=0" >> $GITHUB_OUTPUT
|
||||||
echo "total_points=0" >> $GITHUB_OUTPUT
|
|
||||||
echo "followers=0" >> $GITHUB_OUTPUT
|
|
||||||
echo "versions=" >> $GITHUB_OUTPUT
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Generate stats report
|
- name: Generate stats report
|
||||||
env:
|
env:
|
||||||
OPENWEBUI_API_KEY: ${{ secrets.OPENWEBUI_API_KEY }}
|
OPENWEBUI_API_KEY: ${{ secrets.OPENWEBUI_API_KEY }}
|
||||||
OPENWEBUI_USER_ID: ${{ secrets.OPENWEBUI_USER_ID }}
|
OPENWEBUI_USER_ID: ${{ secrets.OPENWEBUI_USER_ID }}
|
||||||
|
GIST_TOKEN: ${{ secrets.GIST_TOKEN }}
|
||||||
|
GIST_ID: ${{ secrets.GIST_ID }}
|
||||||
run: |
|
run: |
|
||||||
python scripts/openwebui_stats.py
|
python scripts/openwebui_stats.py
|
||||||
|
|
||||||
@@ -63,53 +56,22 @@ jobs:
|
|||||||
id: new_stats
|
id: new_stats
|
||||||
run: |
|
run: |
|
||||||
echo "total_posts=$(jq -r '.total_posts // 0' docs/community-stats.json)" >> $GITHUB_OUTPUT
|
echo "total_posts=$(jq -r '.total_posts // 0' docs/community-stats.json)" >> $GITHUB_OUTPUT
|
||||||
echo "total_points=$(jq -r '.user.total_points // 0' docs/community-stats.json)" >> $GITHUB_OUTPUT
|
|
||||||
echo "followers=$(jq -r '.user.followers // 0' docs/community-stats.json)" >> $GITHUB_OUTPUT
|
|
||||||
echo "versions=$(jq -r '[.posts[].version] | sort | join(",")' docs/community-stats.json)" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- name: Check for significant changes
|
- name: Check for significant changes
|
||||||
id: check_changes
|
id: check_changes
|
||||||
run: |
|
run: |
|
||||||
OLD_POSTS="${{ steps.old_stats.outputs.total_posts }}"
|
OLD_POSTS="${{ steps.old_stats.outputs.total_posts }}"
|
||||||
NEW_POSTS="${{ steps.new_stats.outputs.total_posts }}"
|
NEW_POSTS="${{ steps.new_stats.outputs.total_posts }}"
|
||||||
OLD_POINTS="${{ steps.old_stats.outputs.total_points }}"
|
|
||||||
NEW_POINTS="${{ steps.new_stats.outputs.total_points }}"
|
|
||||||
OLD_FOLLOWERS="${{ steps.old_stats.outputs.followers }}"
|
|
||||||
NEW_FOLLOWERS="${{ steps.new_stats.outputs.followers }}"
|
|
||||||
OLD_VERSIONS="${{ steps.old_stats.outputs.versions }}"
|
|
||||||
NEW_VERSIONS="${{ steps.new_stats.outputs.versions }}"
|
|
||||||
|
|
||||||
SHOULD_COMMIT="false"
|
SHOULD_COMMIT="false"
|
||||||
CHANGE_REASON=""
|
CHANGE_REASON=""
|
||||||
|
|
||||||
# 检查新增插件
|
|
||||||
if [ "$NEW_POSTS" -gt "$OLD_POSTS" ]; then
|
if [ "$NEW_POSTS" -gt "$OLD_POSTS" ]; then
|
||||||
SHOULD_COMMIT="true"
|
SHOULD_COMMIT="true"
|
||||||
CHANGE_REASON="new plugin added ($OLD_POSTS -> $NEW_POSTS)"
|
CHANGE_REASON="new plugin added ($OLD_POSTS -> $NEW_POSTS)"
|
||||||
echo "📦 New plugin detected: $OLD_POSTS -> $NEW_POSTS"
|
echo "📦 New plugin detected: $OLD_POSTS -> $NEW_POSTS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 检查版本变更
|
|
||||||
if [ "$OLD_VERSIONS" != "$NEW_VERSIONS" ]; then
|
|
||||||
SHOULD_COMMIT="true"
|
|
||||||
CHANGE_REASON="${CHANGE_REASON:+$CHANGE_REASON, }plugin version updated"
|
|
||||||
echo "🔄 Plugin version changed"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 检查积分增加
|
|
||||||
if [ "$NEW_POINTS" -gt "$OLD_POINTS" ]; then
|
|
||||||
SHOULD_COMMIT="true"
|
|
||||||
CHANGE_REASON="${CHANGE_REASON:+$CHANGE_REASON, }points increased ($OLD_POINTS -> $NEW_POINTS)"
|
|
||||||
echo "⭐ Points increased: $OLD_POINTS -> $NEW_POINTS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 检查粉丝增加
|
|
||||||
if [ "$NEW_FOLLOWERS" -gt "$OLD_FOLLOWERS" ]; then
|
|
||||||
SHOULD_COMMIT="true"
|
|
||||||
CHANGE_REASON="${CHANGE_REASON:+$CHANGE_REASON, }followers increased ($OLD_FOLLOWERS -> $NEW_FOLLOWERS)"
|
|
||||||
echo "👥 Followers increased: $OLD_FOLLOWERS -> $NEW_FOLLOWERS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "should_commit=$SHOULD_COMMIT" >> $GITHUB_OUTPUT
|
echo "should_commit=$SHOULD_COMMIT" >> $GITHUB_OUTPUT
|
||||||
echo "change_reason=$CHANGE_REASON" >> $GITHUB_OUTPUT
|
echo "change_reason=$CHANGE_REASON" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
@@ -124,6 +86,6 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
git config --local user.email "github-actions[bot]@users.noreply.github.com"
|
git config --local user.email "github-actions[bot]@users.noreply.github.com"
|
||||||
git config --local user.name "github-actions[bot]"
|
git config --local user.name "github-actions[bot]"
|
||||||
git add docs/community-stats.zh.md docs/community-stats.md docs/community-stats.json docs/badges README.md README_CN.md
|
git add docs/ README.md README_CN.md
|
||||||
git diff --staged --quiet || git commit -m "chore: update community stats - ${{ steps.check_changes.outputs.change_reason }}"
|
git diff --staged --quiet || git commit -m "chore: update community stats - ${{ steps.check_changes.outputs.change_reason }}"
|
||||||
git push
|
git push
|
||||||
|
|||||||
27
.github/workflows/release.yml
vendored
27
.github/workflows/release.yml
vendored
@@ -1,8 +1,6 @@
|
|||||||
# GitHub Actions Workflow for Plugin Release
|
# Plugin Release Workflow
|
||||||
# 插件发布工作流
|
|
||||||
#
|
#
|
||||||
# This workflow automates the release process for OpenWebUI plugins.
|
# This workflow automates the release process for OpenWebUI plugins.
|
||||||
# 此工作流自动化 OpenWebUI 插件的发布流程。
|
|
||||||
#
|
#
|
||||||
# Triggers:
|
# Triggers:
|
||||||
# - Push to main branch when plugins are modified (auto-release)
|
# - Push to main branch when plugins are modified (auto-release)
|
||||||
@@ -15,7 +13,7 @@
|
|||||||
# 3. Creates a GitHub Release with plugin files as downloadable assets
|
# 3. Creates a GitHub Release with plugin files as downloadable assets
|
||||||
# 4. Supports multiple plugin updates in a single release
|
# 4. Supports multiple plugin updates in a single release
|
||||||
|
|
||||||
name: Plugin Release / 插件发布
|
name: Plugin Release
|
||||||
|
|
||||||
on:
|
on:
|
||||||
# Auto-trigger on push to main when plugins are modified
|
# Auto-trigger on push to main when plugins are modified
|
||||||
@@ -331,8 +329,7 @@ jobs:
|
|||||||
DETECTED_CHANGES: ${{ needs.check-changes.outputs.release_notes }}
|
DETECTED_CHANGES: ${{ needs.check-changes.outputs.release_notes }}
|
||||||
COMMITS: ${{ steps.commits.outputs.commits }}
|
COMMITS: ${{ steps.commits.outputs.commits }}
|
||||||
run: |
|
run: |
|
||||||
echo "# ${VERSION} Release / 发布" > release_notes.md
|
> release_notes.md
|
||||||
echo "" >> release_notes.md
|
|
||||||
|
|
||||||
if [ -n "$TITLE" ]; then
|
if [ -n "$TITLE" ]; then
|
||||||
echo "## $TITLE" >> release_notes.md
|
echo "## $TITLE" >> release_notes.md
|
||||||
@@ -340,21 +337,21 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$DETECTED_CHANGES" ] && ! echo "$DETECTED_CHANGES" | grep -q "No changes detected"; then
|
if [ -n "$DETECTED_CHANGES" ] && ! echo "$DETECTED_CHANGES" | grep -q "No changes detected"; then
|
||||||
echo "## What's Changed / 更新内容" >> release_notes.md
|
echo "## What's Changed" >> release_notes.md
|
||||||
echo "" >> release_notes.md
|
echo "" >> release_notes.md
|
||||||
echo "$DETECTED_CHANGES" >> release_notes.md
|
echo "$DETECTED_CHANGES" >> release_notes.md
|
||||||
echo "" >> release_notes.md
|
echo "" >> release_notes.md
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$COMMITS" ]; then
|
if [ -n "$COMMITS" ]; then
|
||||||
echo "## Commits / 提交记录" >> release_notes.md
|
echo "## Commits" >> release_notes.md
|
||||||
echo "" >> release_notes.md
|
echo "" >> release_notes.md
|
||||||
echo "$COMMITS" >> release_notes.md
|
echo "$COMMITS" >> release_notes.md
|
||||||
echo "" >> release_notes.md
|
echo "" >> release_notes.md
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$NOTES" ]; then
|
if [ -n "$NOTES" ]; then
|
||||||
echo "## Additional Notes / 附加说明" >> release_notes.md
|
echo "## Additional Notes" >> release_notes.md
|
||||||
echo "" >> release_notes.md
|
echo "" >> release_notes.md
|
||||||
echo "$NOTES" >> release_notes.md
|
echo "$NOTES" >> release_notes.md
|
||||||
echo "" >> release_notes.md
|
echo "" >> release_notes.md
|
||||||
@@ -364,11 +361,11 @@ jobs:
|
|||||||
|
|
||||||
cat >> release_notes.md << 'EOF'
|
cat >> release_notes.md << 'EOF'
|
||||||
|
|
||||||
## Download / 下载
|
## Download
|
||||||
|
|
||||||
📦 **Download the updated plugin files below** / 请在下方下载更新的插件文件
|
📦 **Download the updated plugin files below**
|
||||||
|
|
||||||
### Installation / 安装
|
### Installation
|
||||||
|
|
||||||
#### From OpenWebUI Community
|
#### From OpenWebUI Community
|
||||||
1. Open OpenWebUI Admin Panel
|
1. Open OpenWebUI Admin Panel
|
||||||
@@ -376,7 +373,7 @@ jobs:
|
|||||||
3. Search for the plugin name
|
3. Search for the plugin name
|
||||||
4. Click Install
|
4. Click Install
|
||||||
|
|
||||||
#### Manual Installation / 手动安装
|
#### Manual Installation
|
||||||
1. Download the plugin file (`.py`) from the assets below
|
1. Download the plugin file (`.py`) from the assets below
|
||||||
2. Open OpenWebUI Admin Panel → Functions
|
2. Open OpenWebUI Admin Panel → Functions
|
||||||
3. Click "Create Function" → Import
|
3. Click "Create Function" → Import
|
||||||
@@ -384,8 +381,8 @@ jobs:
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
📚 [Documentation / 文档](https://fu-jie.github.io/awesome-openwebui/)
|
📚 [Documentation](https://fu-jie.github.io/openwebui-extensions/)
|
||||||
🐛 [Report Issues / 报告问题](https://github.com/Fu-Jie/awesome-openwebui/issues)
|
🐛 [Report Issues](https://github.com/Fu-Jie/openwebui-extensions/issues)
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
echo "=== Release Notes ==="
|
echo "=== Release Notes ==="
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -139,3 +139,4 @@ logs/
|
|||||||
|
|
||||||
# OpenWebUI specific
|
# OpenWebUI specific
|
||||||
# Add any specific ignores for OpenWebUI plugins if needed
|
# Add any specific ignores for OpenWebUI plugins if needed
|
||||||
|
.git-worktrees/
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Contributing Guide
|
# Contributing Guide
|
||||||
|
|
||||||
Thank you for your interest in **OpenWebUI Extras**!
|
Thank you for your interest in **OpenWebUI Extensions**!
|
||||||
|
|
||||||
## 🚀 How to Contribute
|
## 🚀 How to Contribute
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# 贡献指南
|
# 贡献指南
|
||||||
|
|
||||||
感谢你对 **OpenWebUI Extras** 感兴趣!
|
感谢你对 **OpenWebUI Extensions** 感兴趣!
|
||||||
|
|
||||||
## 🚀 贡献流程
|
## 🚀 贡献流程
|
||||||
|
|
||||||
|
|||||||
45
README.md
45
README.md
@@ -1,37 +1,41 @@
|
|||||||
# OpenWebUI Extras
|
# OpenWebUI Extensions
|
||||||
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
||||||
[](#contributors-)
|
[](#contributors-)
|
||||||
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
||||||
|
|
||||||
|
English | [中文](./README_CN.md)
|
||||||
|
|
||||||
A collection of enhancements, plugins, and prompts for [OpenWebUI](https://github.com/open-webui/open-webui), developed and curated for personal use to extend functionality and improve experience.
|
A collection of enhancements, plugins, and prompts for [OpenWebUI](https://github.com/open-webui/open-webui), developed and curated for personal use to extend functionality and improve experience.
|
||||||
|
|
||||||
<!-- STATS_START -->
|
<!-- STATS_START -->
|
||||||
## 📊 Community Stats
|
## 📊 Community Stats
|
||||||
|
>
|
||||||
> 🕐 Auto-updated: 2026-02-10 12:51
|
> 
|
||||||
|
|
||||||
| 👤 Author | 👥 Followers | ⭐ Points | 🏆 Contributions |
|
| 👤 Author | 👥 Followers | ⭐ Points | 🏆 Contributions |
|
||||||
| :---: | :---: | :---: | :---: |
|
| :---: | :---: | :---: | :---: |
|
||||||
| [Fu-Jie](https://openwebui.com/u/Fu-Jie) | **216** | **262** | **44** |
|
| [Fu-Jie](https://openwebui.com/u/Fu-Jie) |  |  |  |
|
||||||
|
|
||||||
| 📝 Posts | ⬇️ Downloads | 👁️ Views | 👍 Upvotes | 💾 Saves |
|
| 📝 Posts | ⬇️ Downloads | 👁️ Views | 👍 Upvotes | 💾 Saves |
|
||||||
| :---: | :---: | :---: | :---: | :---: |
|
| :---: | :---: | :---: | :---: | :---: |
|
||||||
| **21** | **4031** | **47177** | **224** | **267** |
|
|  |  |  |  |  |
|
||||||
|
|
||||||
### 🔥 Top 6 Popular Plugins
|
### 🔥 Top 6 Popular Plugins
|
||||||
|
|
||||||
> 🕐 Auto-updated: 2026-02-10 12:51
|
| Rank | Plugin | Version | Downloads | Views | 📅 Updated |
|
||||||
|
|
||||||
| Rank | Plugin | Version | Downloads | Views | Updated |
|
|
||||||
| :---: | :--- | :---: | :---: | :---: | :---: |
|
| :---: | :--- | :---: | :---: | :---: | :---: |
|
||||||
| 🥇 | [Smart Mind Map](https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a) | 0.9.2 | 935 | 8224 | 2026-01-28 |
|
| 🥇 | [Smart Mind Map](https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a) |  |  |  |  |
|
||||||
| 🥈 | [Smart Infographic](https://openwebui.com/posts/smart_infographic_ad6f0c7f) | 1.5.0 | 678 | 6439 | 2026-01-30 |
|
| 🥈 | [Smart Infographic](https://openwebui.com/posts/smart_infographic_ad6f0c7f) |  |  |  |  |
|
||||||
| 🥉 | [Export to Word Enhanced](https://openwebui.com/posts/export_to_word_enhanced_formatting_fca6a315) | 0.4.4 | 374 | 2931 | 2026-02-07 |
|
| 🥉 | [Export to Word Enhanced](https://openwebui.com/posts/export_to_word_enhanced_formatting_fca6a315) |  |  |  |  |
|
||||||
| 4️⃣ | [Async Context Compression](https://openwebui.com/posts/async_context_compression_b1655bc8) | 1.2.2 | 360 | 3689 | 2026-01-28 |
|
| 4️⃣ | [Markdown Normalizer](https://openwebui.com/posts/markdown_normalizer_baaa8732) |  |  |  |  |
|
||||||
| 5️⃣ | [Export to Excel](https://openwebui.com/posts/export_mulit_table_to_excel_244b8f9d) | 0.3.7 | 340 | 1631 | 2026-02-09 |
|
| 5️⃣ | [Async Context Compression](https://openwebui.com/posts/async_context_compression_b1655bc8) |  |  |  |  |
|
||||||
| 6️⃣ | [Markdown Normalizer](https://openwebui.com/posts/markdown_normalizer_baaa8732) | 1.2.4 | 323 | 4559 | 2026-01-29 |
|
| 6️⃣ | [Export to Excel](https://openwebui.com/posts/export_mulit_table_to_excel_244b8f9d) |  |  |  |  |
|
||||||
|
|
||||||
*See full stats in [Community Stats Report](./docs/community-stats.md)*
|
### 📈 Total Downloads Trend
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
*See full stats and charts in [Community Stats Report](./docs/community-stats.md)*
|
||||||
<!-- STATS_END -->
|
<!-- STATS_END -->
|
||||||
|
|
||||||
## 🌟 Star Features
|
## 🌟 Star Features
|
||||||
@@ -42,6 +46,11 @@ A collection of enhancements, plugins, and prompts for [OpenWebUI](https://githu
|
|||||||
> [!TIP]
|
> [!TIP]
|
||||||
> **No GitHub Copilot subscription required!** Supports **BYOK (Bring Your Own Key)** mode using your own OpenAI/Anthropic API keys.
|
> **No GitHub Copilot subscription required!** Supports **BYOK (Bring Your Own Key)** mode using your own OpenAI/Anthropic API keys.
|
||||||
|
|
||||||
|
#### 🌟 Featured Real-World Cases
|
||||||
|
|
||||||
|
- **[GitHub Star Forecasting](./docs/plugins/pipes/star-prediction-example.md)**: Automatically parsing CSV data, writing analysis scripts, and generating interactive growth dashboards.
|
||||||
|
- **[Video Optimization](./docs/plugins/pipes/video-processing-example.md)**: Direct control of system-level tools (FFmpeg) to accelerate and compress media with professional color optimization.
|
||||||
|
|
||||||
### 2. [Smart Mind Map](https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a) [](https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a)
|
### 2. [Smart Mind Map](https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a) [](https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a)
|
||||||
|
|
||||||
**Experience interactive thinking.** Seamlessly transforms complex chat sessions into structured, clickable mind maps for better visual modeling and rapid idea extraction.
|
**Experience interactive thinking.** Seamlessly transforms complex chat sessions into structured, clickable mind maps for better visual modeling and rapid idea extraction.
|
||||||
@@ -164,9 +173,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
|||||||
<table>
|
<table>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rbb-dev"><img src="https://avatars.githubusercontent.com/u/37469229?v=4?s=100" width="100px;" alt="rbb-dev"/><br /><sub><b>rbb-dev</b></sub></a><br /><a href="#ideas-rbb-dev" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/Fu-Jie/awesome-openwebui/commits?author=rbb-dev" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rbb-dev"><img src="https://avatars.githubusercontent.com/u/37469229?v=4?s=100" width="100px;" alt="rbb-dev"/><br /><sub><b>rbb-dev</b></sub></a><br /><a href="#ideas-rbb-dev" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/Fu-Jie/openwebui-extensions/commits?author=rbb-dev" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://trade.xyz/?ref=BZ1RJRXWO"><img src="https://avatars.githubusercontent.com/u/7317522?v=4?s=100" width="100px;" alt="Raxxoor"/><br /><sub><b>Raxxoor</b></sub></a><br /><a href="https://github.com/Fu-Jie/awesome-openwebui/issues?q=author%3Adhaern" title="Bug reports">🐛</a> <a href="#ideas-dhaern" title="Ideas, Planning, & Feedback">🤔</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://trade.xyz/?ref=BZ1RJRXWO"><img src="https://avatars.githubusercontent.com/u/7317522?v=4?s=100" width="100px;" alt="Raxxoor"/><br /><sub><b>Raxxoor</b></sub></a><br /><a href="https://github.com/Fu-Jie/openwebui-extensions/issues?q=author%3Adhaern" title="Bug reports">🐛</a> <a href="#ideas-dhaern" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/i-iooi-i"><img src="https://avatars.githubusercontent.com/u/1827701?v=4?s=100" width="100px;" alt="ZOLO"/><br /><sub><b>ZOLO</b></sub></a><br /><a href="https://github.com/Fu-Jie/awesome-openwebui/issues?q=author%3Ai-iooi-i" title="Bug reports">🐛</a> <a href="#ideas-i-iooi-i" title="Ideas, Planning, & Feedback">🤔</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/i-iooi-i"><img src="https://avatars.githubusercontent.com/u/1827701?v=4?s=100" width="100px;" alt="ZOLO"/><br /><sub><b>ZOLO</b></sub></a><br /><a href="https://github.com/Fu-Jie/openwebui-extensions/issues?q=author%3Ai-iooi-i" title="Bug reports">🐛</a> <a href="#ideas-i-iooi-i" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://perso.crans.org/grande/"><img src="https://avatars.githubusercontent.com/u/469017?v=4?s=100" width="100px;" alt="Johan Grande"/><br /><sub><b>Johan Grande</b></sub></a><br /><a href="#ideas-nahoj" title="Ideas, Planning, & Feedback">🤔</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://perso.crans.org/grande/"><img src="https://avatars.githubusercontent.com/u/469017?v=4?s=100" width="100px;" alt="Johan Grande"/><br /><sub><b>Johan Grande</b></sub></a><br /><a href="#ideas-nahoj" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/abaroni"><img src="https://avatars.githubusercontent.com/u/21365486?v=4?s=100" width="100px;" alt="Alessandro Baroni"/><br /><sub><b>Alessandro Baroni</b></sub></a><br /><a href="#ideas-abaroni" title="Ideas, Planning, & Feedback">🤔</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/abaroni"><img src="https://avatars.githubusercontent.com/u/21365486?v=4?s=100" width="100px;" alt="Alessandro Baroni"/><br /><sub><b>Alessandro Baroni</b></sub></a><br /><a href="#ideas-abaroni" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
37
README_CN.md
37
README_CN.md
@@ -1,4 +1,4 @@
|
|||||||
# OpenWebUI Extras
|
# OpenWebUI Extensions
|
||||||
|
|
||||||
[English](./README.md) | 中文
|
[English](./README.md) | 中文
|
||||||
|
|
||||||
@@ -6,31 +6,33 @@ OpenWebUI 增强功能集合。包含个人开发与收集的插件、提示词
|
|||||||
|
|
||||||
<!-- STATS_START -->
|
<!-- STATS_START -->
|
||||||
## 📊 社区统计
|
## 📊 社区统计
|
||||||
|
>
|
||||||
> 🕐 自动更新于 2026-02-10 12:51
|
> 
|
||||||
|
|
||||||
| 👤 作者 | 👥 粉丝 | ⭐ 积分 | 🏆 贡献 |
|
| 👤 作者 | 👥 粉丝 | ⭐ 积分 | 🏆 贡献 |
|
||||||
| :---: | :---: | :---: | :---: |
|
| :---: | :---: | :---: | :---: |
|
||||||
| [Fu-Jie](https://openwebui.com/u/Fu-Jie) | **216** | **262** | **44** |
|
| [Fu-Jie](https://openwebui.com/u/Fu-Jie) |  |  |  |
|
||||||
|
|
||||||
| 📝 发布 | ⬇️ 下载 | 👁️ 浏览 | 👍 点赞 | 💾 收藏 |
|
| 📝 发布 | ⬇️ 下载 | 👁️ 浏览 | 👍 点赞 | 💾 收藏 |
|
||||||
| :---: | :---: | :---: | :---: | :---: |
|
| :---: | :---: | :---: | :---: | :---: |
|
||||||
| **21** | **4031** | **47177** | **224** | **267** |
|
|  |  |  |  |  |
|
||||||
|
|
||||||
### 🔥 热门插件 Top 6
|
### 🔥 热门插件 Top 6
|
||||||
|
|
||||||
> 🕐 自动更新于 2026-02-10 12:51
|
| 排名 | 插件 | 版本 | 下载 | 浏览 | 📅 更新 |
|
||||||
|
|
||||||
| 排名 | 插件 | 版本 | 下载 | 浏览 | 更新日期 |
|
|
||||||
| :---: | :--- | :---: | :---: | :---: | :---: |
|
| :---: | :--- | :---: | :---: | :---: | :---: |
|
||||||
| 🥇 | [Smart Mind Map](https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a) | 0.9.2 | 935 | 8224 | 2026-01-28 |
|
| 🥇 | [Smart Mind Map](https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a) |  |  |  |  |
|
||||||
| 🥈 | [Smart Infographic](https://openwebui.com/posts/smart_infographic_ad6f0c7f) | 1.5.0 | 678 | 6439 | 2026-01-30 |
|
| 🥈 | [Smart Infographic](https://openwebui.com/posts/smart_infographic_ad6f0c7f) |  |  |  |  |
|
||||||
| 🥉 | [Export to Word Enhanced](https://openwebui.com/posts/export_to_word_enhanced_formatting_fca6a315) | 0.4.4 | 374 | 2931 | 2026-02-07 |
|
| 🥉 | [Export to Word Enhanced](https://openwebui.com/posts/export_to_word_enhanced_formatting_fca6a315) |  |  |  |  |
|
||||||
| 4️⃣ | [Async Context Compression](https://openwebui.com/posts/async_context_compression_b1655bc8) | 1.2.2 | 360 | 3689 | 2026-01-28 |
|
| 4️⃣ | [Markdown Normalizer](https://openwebui.com/posts/markdown_normalizer_baaa8732) |  |  |  |  |
|
||||||
| 5️⃣ | [Export to Excel](https://openwebui.com/posts/export_mulit_table_to_excel_244b8f9d) | 0.3.7 | 340 | 1631 | 2026-02-09 |
|
| 5️⃣ | [Async Context Compression](https://openwebui.com/posts/async_context_compression_b1655bc8) |  |  |  |  |
|
||||||
| 6️⃣ | [Markdown Normalizer](https://openwebui.com/posts/markdown_normalizer_baaa8732) | 1.2.4 | 323 | 4559 | 2026-01-29 |
|
| 6️⃣ | [Export to Excel](https://openwebui.com/posts/export_mulit_table_to_excel_244b8f9d) |  |  |  |  |
|
||||||
|
|
||||||
*完整统计请查看 [社区统计报告](./docs/community-stats.zh.md)*
|
### 📈 总下载量累计趋势
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
*完整统计与趋势图请查看 [社区统计报告](./docs/community-stats.zh.md)*
|
||||||
<!-- STATS_END -->
|
<!-- STATS_END -->
|
||||||
|
|
||||||
## 🌟 精选功能
|
## 🌟 精选功能
|
||||||
@@ -41,6 +43,11 @@ OpenWebUI 增强功能集合。包含个人开发与收集的插件、提示词
|
|||||||
> [!TIP]
|
> [!TIP]
|
||||||
> **无需 GitHub Copilot 订阅!** 支持 **BYOK (Bring Your Own Key)** 模式,使用你自己的 OpenAI/Anthropic API Key。
|
> **无需 GitHub Copilot 订阅!** 支持 **BYOK (Bring Your Own Key)** 模式,使用你自己的 OpenAI/Anthropic API Key。
|
||||||
|
|
||||||
|
#### 🌟 核心实战案例
|
||||||
|
|
||||||
|
- **[GitHub Star 增长预测](./docs/plugins/pipes/star-prediction-example.zh.md)**:自动解析 CSV 数据,编写 Python 分析脚本并生成动态增长看板。
|
||||||
|
- **[视频高质量转换与压缩](./docs/plugins/pipes/video-processing-example.zh.md)**:直接调用系统级 FFmpeg 工具,实现录屏的加速、缩放及双阶段色彩优化。
|
||||||
|
|
||||||
### 2. [Smart Mind Map](https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a) [](https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a)
|
### 2. [Smart Mind Map](https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a) [](https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a)
|
||||||
|
|
||||||
**体验浸入式思维。** 将复杂的对话瞬间转化为结构化、可点击的交互式思维导图,助力知识建模与逻辑提取。
|
**体验浸入式思维。** 将复杂的对话瞬间转化为结构化、可点击的交互式思维导图,助力知识建模与逻辑提取。
|
||||||
|
|||||||
0
docs/.!55042!.DS_Store
Normal file
0
docs/.!55042!.DS_Store
Normal file
@@ -6,7 +6,7 @@ The Chinese version (README_CN.md) MUST be translated based on this English vers
|
|||||||
|
|
||||||
[Brief description of what the plugin does. Keep it concise and engaging.]
|
[Brief description of what the plugin does. Keep it concise and engaging.]
|
||||||
|
|
||||||
**Author:** [Fu-Jie](https://github.com/Fu-Jie) | **Version:** 1.0.0 | **Project:** [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) | **License:** MIT
|
**Author:** [Fu-Jie](https://github.com/Fu-Jie) | **Version:** 1.0.0 | **Project:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **License:** MIT
|
||||||
|
|
||||||
## What's New
|
## What's New
|
||||||
|
|
||||||
@@ -39,15 +39,15 @@ The Chinese version (README_CN.md) MUST be translated based on this English vers
|
|||||||
|
|
||||||
## ⭐ Support
|
## ⭐ Support
|
||||||
|
|
||||||
If this plugin has been useful, a star on [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) is a big motivation for me. Thank you for the support.
|
If this plugin has been useful, a star on [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) is a big motivation for me. Thank you for the support.
|
||||||
|
|
||||||
## Troubleshooting ❓
|
## Troubleshooting ❓
|
||||||
|
|
||||||
- **Plugin not working?**: Check if the filter/action is enabled in the model settings.
|
- **Plugin not working?**: Check if the filter/action is enabled in the model settings.
|
||||||
- **Debug Logs**: Enable `SHOW_DEBUG_LOG` in Valves and check the browser console (F12) for detailed logs.
|
- **Debug Logs**: Enable `SHOW_DEBUG_LOG` in Valves and check the browser console (F12) for detailed logs.
|
||||||
- **Error Messages**: If you see an error, please copy the full error message and report it.
|
- **Error Messages**: If you see an error, please copy the full error message and report it.
|
||||||
- **Submit an Issue**: If you encounter any problems, please submit an issue on GitHub: [Awesome OpenWebUI Issues](https://github.com/Fu-Jie/awesome-openwebui/issues)
|
- **Submit an Issue**: If you encounter any problems, please submit an issue on GitHub: [OpenWebUI Extensions Issues](https://github.com/Fu-Jie/openwebui-extensions/issues)
|
||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
|
|
||||||
See the full history on GitHub: [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui)
|
See the full history on GitHub: [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"schemaVersion": 1,
|
"schemaVersion": 1,
|
||||||
"label": "downloads",
|
"label": "downloads",
|
||||||
"message": "4.0k",
|
"message": "4.2k",
|
||||||
"color": "blue",
|
"color": "blue",
|
||||||
"namedLogo": "openwebui"
|
"namedLogo": "openwebui"
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"schemaVersion": 1,
|
"schemaVersion": 1,
|
||||||
"label": "followers",
|
"label": "followers",
|
||||||
"message": "216",
|
"message": "220",
|
||||||
"color": "blue"
|
"color": "blue"
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"schemaVersion": 1,
|
"schemaVersion": 1,
|
||||||
"label": "plugins",
|
"label": "plugins",
|
||||||
"message": "21",
|
"message": "22",
|
||||||
"color": "green"
|
"color": "green"
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"schemaVersion": 1,
|
"schemaVersion": 1,
|
||||||
"label": "points",
|
"label": "points",
|
||||||
"message": "262",
|
"message": "271",
|
||||||
"color": "orange"
|
"color": "orange"
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"schemaVersion": 1,
|
"schemaVersion": 1,
|
||||||
"label": "upvotes",
|
"label": "upvotes",
|
||||||
"message": "224",
|
"message": "231",
|
||||||
"color": "brightgreen"
|
"color": "brightgreen"
|
||||||
}
|
}
|
||||||
@@ -1,15 +1,18 @@
|
|||||||
{
|
{
|
||||||
"total_posts": 21,
|
"total_posts": 22,
|
||||||
"total_downloads": 4031,
|
"total_downloads": 4161,
|
||||||
"total_views": 47177,
|
"total_views": 45988,
|
||||||
"total_upvotes": 224,
|
"total_upvotes": 231,
|
||||||
"total_downvotes": 2,
|
"total_downvotes": 2,
|
||||||
"total_saves": 267,
|
"total_saves": 274,
|
||||||
"total_comments": 51,
|
"total_comments": 55,
|
||||||
"by_type": {
|
"by_type": {
|
||||||
"action": 15,
|
"post": 3,
|
||||||
"filter": 2,
|
"filter": 4,
|
||||||
"unknown": 4
|
"pipe": 1,
|
||||||
|
"action": 12,
|
||||||
|
"prompt": 1,
|
||||||
|
"review": 1
|
||||||
},
|
},
|
||||||
"posts": [
|
"posts": [
|
||||||
{
|
{
|
||||||
@@ -19,13 +22,13 @@
|
|||||||
"version": "0.9.2",
|
"version": "0.9.2",
|
||||||
"author": "Fu-Jie",
|
"author": "Fu-Jie",
|
||||||
"description": "Intelligently analyzes text content and generates interactive mind maps to help users structure and visualize knowledge.",
|
"description": "Intelligently analyzes text content and generates interactive mind maps to help users structure and visualize knowledge.",
|
||||||
"downloads": 935,
|
"downloads": 954,
|
||||||
"views": 8224,
|
"views": 8395,
|
||||||
"upvotes": 22,
|
"upvotes": 22,
|
||||||
"saves": 50,
|
"saves": 50,
|
||||||
"comments": 13,
|
"comments": 13,
|
||||||
"created_at": "2025-12-30",
|
"created_at": "2025-12-31",
|
||||||
"updated_at": "2026-01-28",
|
"updated_at": "2026-01-29",
|
||||||
"url": "https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a"
|
"url": "https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -35,13 +38,13 @@
|
|||||||
"version": "1.5.0",
|
"version": "1.5.0",
|
||||||
"author": "Fu-Jie",
|
"author": "Fu-Jie",
|
||||||
"description": "AI-powered infographic generator based on AntV Infographic. Supports professional templates, auto-icon matching, and SVG/PNG downloads.",
|
"description": "AI-powered infographic generator based on AntV Infographic. Supports professional templates, auto-icon matching, and SVG/PNG downloads.",
|
||||||
"downloads": 678,
|
"downloads": 710,
|
||||||
"views": 6439,
|
"views": 6719,
|
||||||
"upvotes": 24,
|
"upvotes": 24,
|
||||||
"saves": 34,
|
"saves": 34,
|
||||||
"comments": 10,
|
"comments": 10,
|
||||||
"created_at": "2025-12-28",
|
"created_at": "2025-12-28",
|
||||||
"updated_at": "2026-01-30",
|
"updated_at": "2026-01-31",
|
||||||
"url": "https://openwebui.com/posts/smart_infographic_ad6f0c7f"
|
"url": "https://openwebui.com/posts/smart_infographic_ad6f0c7f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -51,11 +54,11 @@
|
|||||||
"version": "0.4.4",
|
"version": "0.4.4",
|
||||||
"author": "Fu-Jie",
|
"author": "Fu-Jie",
|
||||||
"description": "Export current conversation from Markdown to Word (.docx) with Mermaid diagrams rendered client-side (Mermaid.js, SVG+PNG), LaTeX math, real hyperlinks, improved tables, syntax highlighting, and blockquote support.",
|
"description": "Export current conversation from Markdown to Word (.docx) with Mermaid diagrams rendered client-side (Mermaid.js, SVG+PNG), LaTeX math, real hyperlinks, improved tables, syntax highlighting, and blockquote support.",
|
||||||
"downloads": 374,
|
"downloads": 383,
|
||||||
"views": 2931,
|
"views": 3029,
|
||||||
"upvotes": 14,
|
"upvotes": 14,
|
||||||
"saves": 26,
|
"saves": 26,
|
||||||
"comments": 3,
|
"comments": 5,
|
||||||
"created_at": "2026-01-03",
|
"created_at": "2026-01-03",
|
||||||
"updated_at": "2026-02-07",
|
"updated_at": "2026-02-07",
|
||||||
"url": "https://openwebui.com/posts/export_to_word_enhanced_formatting_fca6a315"
|
"url": "https://openwebui.com/posts/export_to_word_enhanced_formatting_fca6a315"
|
||||||
@@ -63,17 +66,17 @@
|
|||||||
{
|
{
|
||||||
"title": "Async Context Compression",
|
"title": "Async Context Compression",
|
||||||
"slug": "async_context_compression_b1655bc8",
|
"slug": "async_context_compression_b1655bc8",
|
||||||
"type": "action",
|
"type": "filter",
|
||||||
"version": "1.2.2",
|
"version": "1.2.2",
|
||||||
"author": "Fu-Jie",
|
"author": "Fu-Jie",
|
||||||
"description": "Reduces token consumption in long conversations while maintaining coherence through intelligent summarization and message compression.",
|
"description": "Reduces token consumption in long conversations while maintaining coherence through intelligent summarization and message compression.",
|
||||||
"downloads": 360,
|
"downloads": 363,
|
||||||
"views": 3689,
|
"views": 3759,
|
||||||
"upvotes": 14,
|
"upvotes": 14,
|
||||||
"saves": 33,
|
"saves": 34,
|
||||||
"comments": 0,
|
"comments": 0,
|
||||||
"created_at": "2025-11-08",
|
"created_at": "2025-11-08",
|
||||||
"updated_at": "2026-01-28",
|
"updated_at": "2026-01-29",
|
||||||
"url": "https://openwebui.com/posts/async_context_compression_b1655bc8"
|
"url": "https://openwebui.com/posts/async_context_compression_b1655bc8"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -83,26 +86,26 @@
|
|||||||
"version": "0.3.7",
|
"version": "0.3.7",
|
||||||
"author": "Fu-Jie",
|
"author": "Fu-Jie",
|
||||||
"description": "Extracts tables from chat messages and exports them to Excel (.xlsx) files with smart formatting.",
|
"description": "Extracts tables from chat messages and exports them to Excel (.xlsx) files with smart formatting.",
|
||||||
"downloads": 340,
|
"downloads": 342,
|
||||||
"views": 1631,
|
"views": 1675,
|
||||||
"upvotes": 7,
|
"upvotes": 7,
|
||||||
"saves": 6,
|
"saves": 6,
|
||||||
"comments": 0,
|
"comments": 0,
|
||||||
"created_at": "2025-05-30",
|
"created_at": "2025-05-30",
|
||||||
"updated_at": "2026-02-09",
|
"updated_at": "2026-02-10",
|
||||||
"url": "https://openwebui.com/posts/export_mulit_table_to_excel_244b8f9d"
|
"url": "https://openwebui.com/posts/export_mulit_table_to_excel_244b8f9d"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Markdown Normalizer",
|
"title": "Markdown Normalizer",
|
||||||
"slug": "markdown_normalizer_baaa8732",
|
"slug": "markdown_normalizer_baaa8732",
|
||||||
"type": "action",
|
"type": "filter",
|
||||||
"version": "1.2.4",
|
"version": "1.2.4",
|
||||||
"author": "Fu-Jie",
|
"author": "Fu-Jie",
|
||||||
"description": "A content normalizer filter that fixes common Markdown formatting issues in LLM outputs, such as broken code blocks, LaTeX formulas, and list formatting.",
|
"description": "A content normalizer filter that fixes common Markdown formatting issues in LLM outputs, such as broken code blocks, LaTeX formulas, and list formatting.",
|
||||||
"downloads": 323,
|
"downloads": 341,
|
||||||
"views": 4559,
|
"views": 4716,
|
||||||
"upvotes": 17,
|
"upvotes": 17,
|
||||||
"saves": 28,
|
"saves": 30,
|
||||||
"comments": 5,
|
"comments": 5,
|
||||||
"created_at": "2026-01-12",
|
"created_at": "2026-01-12",
|
||||||
"updated_at": "2026-01-29",
|
"updated_at": "2026-01-29",
|
||||||
@@ -115,26 +118,26 @@
|
|||||||
"version": "0.2.4",
|
"version": "0.2.4",
|
||||||
"author": "Fu-Jie",
|
"author": "Fu-Jie",
|
||||||
"description": "Quickly generates beautiful flashcards from text, extracting key points and categories.",
|
"description": "Quickly generates beautiful flashcards from text, extracting key points and categories.",
|
||||||
"downloads": 220,
|
"downloads": 226,
|
||||||
"views": 3342,
|
"views": 3387,
|
||||||
"upvotes": 13,
|
"upvotes": 13,
|
||||||
"saves": 14,
|
"saves": 14,
|
||||||
"comments": 2,
|
"comments": 2,
|
||||||
"created_at": "2025-12-30",
|
"created_at": "2025-12-30",
|
||||||
"updated_at": "2026-01-28",
|
"updated_at": "2026-01-29",
|
||||||
"url": "https://openwebui.com/posts/flash_card_65a2ea8f"
|
"url": "https://openwebui.com/posts/flash_card_65a2ea8f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "AI Task Instruction Generator",
|
"title": "AI Task Instruction Generator",
|
||||||
"slug": "ai_task_instruction_generator_9bab8b37",
|
"slug": "ai_task_instruction_generator_9bab8b37",
|
||||||
"type": "unknown",
|
"type": "prompt",
|
||||||
"version": "",
|
"version": "",
|
||||||
"author": "",
|
"author": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"downloads": 184,
|
"downloads": 202,
|
||||||
"views": 2608,
|
"views": 2784,
|
||||||
"upvotes": 9,
|
"upvotes": 9,
|
||||||
"saves": 5,
|
"saves": 6,
|
||||||
"comments": 0,
|
"comments": 0,
|
||||||
"created_at": "2026-01-28",
|
"created_at": "2026-01-28",
|
||||||
"updated_at": "2026-01-28",
|
"updated_at": "2026-01-28",
|
||||||
@@ -147,8 +150,8 @@
|
|||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"author": "Fu-Jie",
|
"author": "Fu-Jie",
|
||||||
"description": "A comprehensive thinking lens that dives deep into any content - from context to logic, insights, and action paths.",
|
"description": "A comprehensive thinking lens that dives deep into any content - from context to logic, insights, and action paths.",
|
||||||
"downloads": 146,
|
"downloads": 147,
|
||||||
"views": 1237,
|
"views": 1250,
|
||||||
"upvotes": 6,
|
"upvotes": 6,
|
||||||
"saves": 11,
|
"saves": 11,
|
||||||
"comments": 0,
|
"comments": 0,
|
||||||
@@ -163,8 +166,8 @@
|
|||||||
"version": "0.4.4",
|
"version": "0.4.4",
|
||||||
"author": "Fu-Jie",
|
"author": "Fu-Jie",
|
||||||
"description": "将对话导出为 Word (.docx),支持 Mermaid 图表 (客户端渲染 SVG+PNG)、LaTeX 数学公式、真实超链接、增强表格格式、代码高亮和引用块。",
|
"description": "将对话导出为 Word (.docx),支持 Mermaid 图表 (客户端渲染 SVG+PNG)、LaTeX 数学公式、真实超链接、增强表格格式、代码高亮和引用块。",
|
||||||
"downloads": 125,
|
"downloads": 128,
|
||||||
"views": 2187,
|
"views": 2219,
|
||||||
"upvotes": 13,
|
"upvotes": 13,
|
||||||
"saves": 7,
|
"saves": 7,
|
||||||
"comments": 4,
|
"comments": 4,
|
||||||
@@ -175,17 +178,17 @@
|
|||||||
{
|
{
|
||||||
"title": "GitHub Copilot Official SDK Pipe",
|
"title": "GitHub Copilot Official SDK Pipe",
|
||||||
"slug": "github_copilot_official_sdk_pipe_ce96f7b4",
|
"slug": "github_copilot_official_sdk_pipe_ce96f7b4",
|
||||||
"type": "action",
|
"type": "pipe",
|
||||||
"version": "0.6.1",
|
"version": "0.6.2",
|
||||||
"author": "Fu-Jie",
|
"author": "Fu-Jie",
|
||||||
"description": "Integrate GitHub Copilot SDK. Supports dynamic models, multi-turn conversation, streaming, multimodal input, infinite sessions, and frontend debug logging.",
|
"description": "Integrate GitHub Copilot SDK. Supports dynamic models, multi-turn conversation, streaming, multimodal input, infinite sessions, and frontend debug logging.",
|
||||||
"downloads": 95,
|
"downloads": 107,
|
||||||
"views": 2254,
|
"views": 2412,
|
||||||
"upvotes": 13,
|
"upvotes": 14,
|
||||||
"saves": 7,
|
"saves": 9,
|
||||||
"comments": 4,
|
"comments": 6,
|
||||||
"created_at": "2026-01-26",
|
"created_at": "2026-01-26",
|
||||||
"updated_at": "2026-02-09",
|
"updated_at": "2026-02-10",
|
||||||
"url": "https://openwebui.com/posts/github_copilot_official_sdk_pipe_ce96f7b4"
|
"url": "https://openwebui.com/posts/github_copilot_official_sdk_pipe_ce96f7b4"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -195,8 +198,8 @@
|
|||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"author": "Fu-Jie",
|
"author": "Fu-Jie",
|
||||||
"description": "Automatically extracts project rules from conversations and injects them into the folder's system prompt.",
|
"description": "Automatically extracts project rules from conversations and injects them into the folder's system prompt.",
|
||||||
"downloads": 59,
|
"downloads": 61,
|
||||||
"views": 1278,
|
"views": 1318,
|
||||||
"upvotes": 6,
|
"upvotes": 6,
|
||||||
"saves": 8,
|
"saves": 8,
|
||||||
"comments": 0,
|
"comments": 0,
|
||||||
@@ -212,7 +215,7 @@
|
|||||||
"author": "Fu-Jie",
|
"author": "Fu-Jie",
|
||||||
"description": "基于 AntV Infographic 的智能信息图生成插件。支持多种专业模板,自动图标匹配,并提供 SVG/PNG 下载功能。",
|
"description": "基于 AntV Infographic 的智能信息图生成插件。支持多种专业模板,自动图标匹配,并提供 SVG/PNG 下载功能。",
|
||||||
"downloads": 58,
|
"downloads": 58,
|
||||||
"views": 1048,
|
"views": 1066,
|
||||||
"upvotes": 10,
|
"upvotes": 10,
|
||||||
"saves": 1,
|
"saves": 1,
|
||||||
"comments": 0,
|
"comments": 0,
|
||||||
@@ -227,13 +230,13 @@
|
|||||||
"version": "0.9.2",
|
"version": "0.9.2",
|
||||||
"author": "Fu-Jie",
|
"author": "Fu-Jie",
|
||||||
"description": "智能分析文本内容,生成交互式思维导图,帮助用户结构化和可视化知识。",
|
"description": "智能分析文本内容,生成交互式思维导图,帮助用户结构化和可视化知识。",
|
||||||
"downloads": 37,
|
"downloads": 39,
|
||||||
"views": 579,
|
"views": 589,
|
||||||
"upvotes": 6,
|
"upvotes": 6,
|
||||||
"saves": 2,
|
"saves": 2,
|
||||||
"comments": 0,
|
"comments": 0,
|
||||||
"created_at": "2025-12-31",
|
"created_at": "2025-12-31",
|
||||||
"updated_at": "2026-01-28",
|
"updated_at": "2026-01-29",
|
||||||
"url": "https://openwebui.com/posts/智能生成交互式思维导图帮助用户可视化知识_8d4b097b"
|
"url": "https://openwebui.com/posts/智能生成交互式思维导图帮助用户可视化知识_8d4b097b"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -244,12 +247,12 @@
|
|||||||
"author": "Fu-Jie",
|
"author": "Fu-Jie",
|
||||||
"description": "通过智能摘要和消息压缩,降低长对话的 token 消耗,同时保持对话连贯性。",
|
"description": "通过智能摘要和消息压缩,降低长对话的 token 消耗,同时保持对话连贯性。",
|
||||||
"downloads": 33,
|
"downloads": 33,
|
||||||
"views": 656,
|
"views": 669,
|
||||||
"upvotes": 7,
|
"upvotes": 7,
|
||||||
"saves": 5,
|
"saves": 5,
|
||||||
"comments": 0,
|
"comments": 0,
|
||||||
"created_at": "2025-11-08",
|
"created_at": "2025-11-08",
|
||||||
"updated_at": "2026-01-28",
|
"updated_at": "2026-01-29",
|
||||||
"url": "https://openwebui.com/posts/异步上下文压缩_5c0617cb"
|
"url": "https://openwebui.com/posts/异步上下文压缩_5c0617cb"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -260,12 +263,12 @@
|
|||||||
"author": "Fu-Jie",
|
"author": "Fu-Jie",
|
||||||
"description": "快速将文本提炼为精美的学习记忆卡片,支持核心要点提取与分类。",
|
"description": "快速将文本提炼为精美的学习记忆卡片,支持核心要点提取与分类。",
|
||||||
"downloads": 27,
|
"downloads": 27,
|
||||||
"views": 680,
|
"views": 690,
|
||||||
"upvotes": 8,
|
"upvotes": 8,
|
||||||
"saves": 1,
|
"saves": 1,
|
||||||
"comments": 0,
|
"comments": 0,
|
||||||
"created_at": "2025-12-30",
|
"created_at": "2025-12-30",
|
||||||
"updated_at": "2026-01-28",
|
"updated_at": "2026-01-29",
|
||||||
"url": "https://openwebui.com/posts/闪记卡生成插件_4a31eac3"
|
"url": "https://openwebui.com/posts/闪记卡生成插件_4a31eac3"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -276,7 +279,7 @@
|
|||||||
"author": "Fu-Jie",
|
"author": "Fu-Jie",
|
||||||
"description": "全方位的思维透镜 —— 从背景全景到逻辑脉络,从深度洞察到行动路径。",
|
"description": "全方位的思维透镜 —— 从背景全景到逻辑脉络,从深度洞察到行动路径。",
|
||||||
"downloads": 24,
|
"downloads": 24,
|
||||||
"views": 425,
|
"views": 444,
|
||||||
"upvotes": 5,
|
"upvotes": 5,
|
||||||
"saves": 1,
|
"saves": 1,
|
||||||
"comments": 0,
|
"comments": 0,
|
||||||
@@ -291,40 +294,56 @@
|
|||||||
"version": "0.1.2",
|
"version": "0.1.2",
|
||||||
"author": "Fu-Jie",
|
"author": "Fu-Jie",
|
||||||
"description": "A specialized filter to bypass OpenWebUI's default RAG for GitHub Copilot SDK models. It moves uploaded files to a safe location ('copilot_files') so the Copilot Pipe can process them natively without interference.",
|
"description": "A specialized filter to bypass OpenWebUI's default RAG for GitHub Copilot SDK models. It moves uploaded files to a safe location ('copilot_files') so the Copilot Pipe can process them natively without interference.",
|
||||||
"downloads": 13,
|
"downloads": 16,
|
||||||
"views": 370,
|
"views": 867,
|
||||||
"upvotes": 2,
|
"upvotes": 3,
|
||||||
"saves": 0,
|
"saves": 0,
|
||||||
"comments": 0,
|
"comments": 0,
|
||||||
"created_at": "2026-02-09",
|
"created_at": "2026-02-09",
|
||||||
"updated_at": "2026-02-09",
|
"updated_at": "2026-02-10",
|
||||||
"url": "https://openwebui.com/posts/github_copilot_sdk_files_filter_403a62ee"
|
"url": "https://openwebui.com/posts/github_copilot_sdk_files_filter_403a62ee"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "🚀 Open WebUI Prompt Plus: AI-Powered Prompt Manager",
|
"title": "🚀 GitHub Copilot SDK Pipe: AI That Executes, Not Just Talks",
|
||||||
"slug": "open_webui_prompt_plus_ai_powered_prompt_manager_s_15fa060e",
|
"slug": "github_copilot_sdk_for_openwebui_elevate_your_ai_t_a140f293",
|
||||||
"type": "unknown",
|
"type": "post",
|
||||||
"version": "",
|
"version": "",
|
||||||
"author": "",
|
"author": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"downloads": 0,
|
"downloads": 0,
|
||||||
"views": 1481,
|
"views": 296,
|
||||||
|
"upvotes": 5,
|
||||||
|
"saves": 0,
|
||||||
|
"comments": 0,
|
||||||
|
"created_at": "2026-02-10",
|
||||||
|
"updated_at": "2026-02-10",
|
||||||
|
"url": "https://openwebui.com/posts/github_copilot_sdk_for_openwebui_elevate_your_ai_t_a140f293"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "🚀 Open WebUI Prompt Plus: AI-Powered Prompt Manager",
|
||||||
|
"slug": "open_webui_prompt_plus_ai_powered_prompt_manager_s_15fa060e",
|
||||||
|
"type": "post",
|
||||||
|
"version": "",
|
||||||
|
"author": "",
|
||||||
|
"description": "",
|
||||||
|
"downloads": 0,
|
||||||
|
"views": 1526,
|
||||||
"upvotes": 12,
|
"upvotes": 12,
|
||||||
"saves": 18,
|
"saves": 19,
|
||||||
"comments": 8,
|
"comments": 8,
|
||||||
"created_at": "2026-01-25",
|
"created_at": "2026-01-25",
|
||||||
"updated_at": "2026-01-28",
|
"updated_at": "2026-01-29",
|
||||||
"url": "https://openwebui.com/posts/open_webui_prompt_plus_ai_powered_prompt_manager_s_15fa060e"
|
"url": "https://openwebui.com/posts/open_webui_prompt_plus_ai_powered_prompt_manager_s_15fa060e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Review of Claude Haiku 4.5",
|
"title": "Review of Claude Haiku 4.5",
|
||||||
"slug": "review_of_claude_haiku_45_41b0db39",
|
"slug": "review_of_claude_haiku_45_41b0db39",
|
||||||
"type": "unknown",
|
"type": "review",
|
||||||
"version": "",
|
"version": "",
|
||||||
"author": "",
|
"author": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"downloads": 0,
|
"downloads": 0,
|
||||||
"views": 142,
|
"views": 161,
|
||||||
"upvotes": 2,
|
"upvotes": 2,
|
||||||
"saves": 0,
|
"saves": 0,
|
||||||
"comments": 0,
|
"comments": 0,
|
||||||
@@ -335,12 +354,12 @@
|
|||||||
{
|
{
|
||||||
"title": " 🛠️ Debug Open WebUI Plugins in Your Browser",
|
"title": " 🛠️ Debug Open WebUI Plugins in Your Browser",
|
||||||
"slug": "debug_open_webui_plugins_in_your_browser_81bf7960",
|
"slug": "debug_open_webui_plugins_in_your_browser_81bf7960",
|
||||||
"type": "unknown",
|
"type": "post",
|
||||||
"version": "",
|
"version": "",
|
||||||
"author": "",
|
"author": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"downloads": 0,
|
"downloads": 0,
|
||||||
"views": 1417,
|
"views": 1421,
|
||||||
"upvotes": 14,
|
"upvotes": 14,
|
||||||
"saves": 10,
|
"saves": 10,
|
||||||
"comments": 2,
|
"comments": 2,
|
||||||
@@ -354,11 +373,11 @@
|
|||||||
"name": "Fu-Jie",
|
"name": "Fu-Jie",
|
||||||
"profile_url": "https://openwebui.com/u/Fu-Jie",
|
"profile_url": "https://openwebui.com/u/Fu-Jie",
|
||||||
"profile_image": "https://community.s3.openwebui.com/uploads/users/b15d1348-4347-42b4-b815-e053342d6cb0/profile_d9510745-4bd4-4f8f-a997-4a21847d9300.webp",
|
"profile_image": "https://community.s3.openwebui.com/uploads/users/b15d1348-4347-42b4-b815-e053342d6cb0/profile_d9510745-4bd4-4f8f-a997-4a21847d9300.webp",
|
||||||
"followers": 216,
|
"followers": 220,
|
||||||
"following": 4,
|
"following": 4,
|
||||||
"total_points": 262,
|
"total_points": 271,
|
||||||
"post_points": 222,
|
"post_points": 229,
|
||||||
"comment_points": 40,
|
"comment_points": 42,
|
||||||
"contributions": 44
|
"contributions": 48
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,46 +1,60 @@
|
|||||||
# 📊 OpenWebUI Community Stats Report
|
# 📊 OpenWebUI Community Stats Report
|
||||||
|
|
||||||
> 📅 Updated: 2026-02-10 12:51
|
> 
|
||||||
|
|
||||||
|
### 📈 Total Downloads Trend
|
||||||
|

|
||||||
|
|
||||||
|
> *Blue: Downloads | Purple: Views (Real-time dynamic)*
|
||||||
|
|
||||||
|
### 📂 Content Distribution
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
## 📈 Overview
|
## 📈 Overview
|
||||||
|
|
||||||
| Metric | Value |
|
| Metric | Value |
|
||||||
|------|------|
|
|------|------|
|
||||||
| 📝 Total Posts | 21 |
|
| 📝 Total Posts |  |
|
||||||
| ⬇️ Total Downloads | 4031 |
|
| ⬇️ Total Downloads |  |
|
||||||
| 👁️ Total Views | 47177 |
|
| 👁️ Total Views |  |
|
||||||
| 👍 Total Upvotes | 224 |
|
| 👍 Total Upvotes |  |
|
||||||
| 💾 Total Saves | 267 |
|
| 💾 Total Saves |  |
|
||||||
| 💬 Total Comments | 51 |
|
| ⭐ Author Points |  |
|
||||||
|
| 👥 Followers |  |
|
||||||
|
|
||||||
## 📂 By Type
|
## 📂 By Type
|
||||||
|
|
||||||
- **action**: 15
|
- 
|
||||||
- **filter**: 2
|
- 
|
||||||
- **unknown**: 4
|
- 
|
||||||
|
- 
|
||||||
|
- 
|
||||||
|
- 
|
||||||
|
|
||||||
## 📋 Posts List
|
## 📋 Posts List
|
||||||
|
|
||||||
| Rank | Title | Type | Version | Downloads | Views | Upvotes | Saves | Updated |
|
| Rank | Title | Type | Version | Downloads | Views | Upvotes | Saves | Updated |
|
||||||
|:---:|------|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
|:---:|------|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
||||||
| 1 | [Smart Mind Map](https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a) | action | 0.9.2 | 935 | 8224 | 22 | 50 | 2026-01-28 |
|
| 1 | [Smart Mind Map](https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a) | action |  |  |  |  |  | 2026-01-29 |
|
||||||
| 2 | [Smart Infographic](https://openwebui.com/posts/smart_infographic_ad6f0c7f) | action | 1.5.0 | 678 | 6439 | 24 | 34 | 2026-01-30 |
|
| 2 | [Smart Infographic](https://openwebui.com/posts/smart_infographic_ad6f0c7f) | action |  |  |  |  |  | 2026-01-31 |
|
||||||
| 3 | [Export to Word Enhanced](https://openwebui.com/posts/export_to_word_enhanced_formatting_fca6a315) | action | 0.4.4 | 374 | 2931 | 14 | 26 | 2026-02-07 |
|
| 3 | [Export to Word Enhanced](https://openwebui.com/posts/export_to_word_enhanced_formatting_fca6a315) | action |  |  |  |  |  | 2026-02-07 |
|
||||||
| 4 | [Async Context Compression](https://openwebui.com/posts/async_context_compression_b1655bc8) | action | 1.2.2 | 360 | 3689 | 14 | 33 | 2026-01-28 |
|
| 4 | [Async Context Compression](https://openwebui.com/posts/async_context_compression_b1655bc8) | filter |  |  |  |  |  | 2026-01-29 |
|
||||||
| 5 | [Export to Excel](https://openwebui.com/posts/export_mulit_table_to_excel_244b8f9d) | action | 0.3.7 | 340 | 1631 | 7 | 6 | 2026-02-09 |
|
| 5 | [Export to Excel](https://openwebui.com/posts/export_mulit_table_to_excel_244b8f9d) | action |  |  |  |  |  | 2026-02-10 |
|
||||||
| 6 | [Markdown Normalizer](https://openwebui.com/posts/markdown_normalizer_baaa8732) | action | 1.2.4 | 323 | 4559 | 17 | 28 | 2026-01-29 |
|
| 6 | [Markdown Normalizer](https://openwebui.com/posts/markdown_normalizer_baaa8732) | filter |  |  |  |  |  | 2026-01-29 |
|
||||||
| 7 | [Flash Card](https://openwebui.com/posts/flash_card_65a2ea8f) | action | 0.2.4 | 220 | 3342 | 13 | 14 | 2026-01-28 |
|
| 7 | [Flash Card](https://openwebui.com/posts/flash_card_65a2ea8f) | action |  |  |  |  |  | 2026-01-29 |
|
||||||
| 8 | [AI Task Instruction Generator](https://openwebui.com/posts/ai_task_instruction_generator_9bab8b37) | unknown | | 184 | 2608 | 9 | 5 | 2026-01-28 |
|
| 8 | [AI Task Instruction Generator](https://openwebui.com/posts/ai_task_instruction_generator_9bab8b37) | prompt |  |  |  |  |  | 2026-01-28 |
|
||||||
| 9 | [Deep Dive](https://openwebui.com/posts/deep_dive_c0b846e4) | action | 1.0.0 | 146 | 1237 | 6 | 11 | 2026-01-08 |
|
| 9 | [Deep Dive](https://openwebui.com/posts/deep_dive_c0b846e4) | action |  |  |  |  |  | 2026-01-08 |
|
||||||
| 10 | [导出为Word增强版](https://openwebui.com/posts/导出为_word_支持公式流程图表格和代码块_8a6306c0) | action | 0.4.4 | 125 | 2187 | 13 | 7 | 2026-02-07 |
|
| 10 | [导出为Word增强版](https://openwebui.com/posts/导出为_word_支持公式流程图表格和代码块_8a6306c0) | action |  |  |  |  |  | 2026-02-07 |
|
||||||
| 11 | [GitHub Copilot Official SDK Pipe](https://openwebui.com/posts/github_copilot_official_sdk_pipe_ce96f7b4) | action | 0.6.1 | 95 | 2254 | 13 | 7 | 2026-02-09 |
|
| 11 | [GitHub Copilot Official SDK Pipe](https://openwebui.com/posts/github_copilot_official_sdk_pipe_ce96f7b4) | pipe |  |  |  |  |  | 2026-02-10 |
|
||||||
| 12 | [📂 Folder Memory – Auto-Evolving Project Context](https://openwebui.com/posts/folder_memory_auto_evolving_project_context_4a9875b2) | filter | 0.1.0 | 59 | 1278 | 6 | 8 | 2026-01-20 |
|
| 12 | [📂 Folder Memory – Auto-Evolving Project Context](https://openwebui.com/posts/folder_memory_auto_evolving_project_context_4a9875b2) | filter |  |  |  |  |  | 2026-01-20 |
|
||||||
| 13 | [智能信息图](https://openwebui.com/posts/智能信息图_e04a48ff) | action | 1.5.0 | 58 | 1048 | 10 | 1 | 2026-01-29 |
|
| 13 | [智能信息图](https://openwebui.com/posts/智能信息图_e04a48ff) | action |  |  |  |  |  | 2026-01-29 |
|
||||||
| 14 | [思维导图](https://openwebui.com/posts/智能生成交互式思维导图帮助用户可视化知识_8d4b097b) | action | 0.9.2 | 37 | 579 | 6 | 2 | 2026-01-28 |
|
| 14 | [思维导图](https://openwebui.com/posts/智能生成交互式思维导图帮助用户可视化知识_8d4b097b) | action |  |  |  |  |  | 2026-01-29 |
|
||||||
| 15 | [异步上下文压缩](https://openwebui.com/posts/异步上下文压缩_5c0617cb) | action | 1.2.2 | 33 | 656 | 7 | 5 | 2026-01-28 |
|
| 15 | [异步上下文压缩](https://openwebui.com/posts/异步上下文压缩_5c0617cb) | action |  |  |  |  |  | 2026-01-29 |
|
||||||
| 16 | [闪记卡 (Flash Card)](https://openwebui.com/posts/闪记卡生成插件_4a31eac3) | action | 0.2.4 | 27 | 680 | 8 | 1 | 2026-01-28 |
|
| 16 | [闪记卡 (Flash Card)](https://openwebui.com/posts/闪记卡生成插件_4a31eac3) | action |  |  |  |  |  | 2026-01-29 |
|
||||||
| 17 | [精读](https://openwebui.com/posts/精读_99830b0f) | action | 1.0.0 | 24 | 425 | 5 | 1 | 2026-01-08 |
|
| 17 | [精读](https://openwebui.com/posts/精读_99830b0f) | action |  |  |  |  |  | 2026-01-08 |
|
||||||
| 18 | [GitHub Copilot SDK Files Filter](https://openwebui.com/posts/github_copilot_sdk_files_filter_403a62ee) | filter | 0.1.2 | 13 | 370 | 2 | 0 | 2026-02-09 |
|
| 18 | [GitHub Copilot SDK Files Filter](https://openwebui.com/posts/github_copilot_sdk_files_filter_403a62ee) | filter |  |  |  |  |  | 2026-02-10 |
|
||||||
| 19 | [🚀 Open WebUI Prompt Plus: AI-Powered Prompt Manager](https://openwebui.com/posts/open_webui_prompt_plus_ai_powered_prompt_manager_s_15fa060e) | unknown | | 0 | 1481 | 12 | 18 | 2026-01-28 |
|
| 19 | [🚀 GitHub Copilot SDK Pipe: AI That Executes, Not Just Talks](https://openwebui.com/posts/github_copilot_sdk_for_openwebui_elevate_your_ai_t_a140f293) | post |  |  |  |  |  | 2026-02-10 |
|
||||||
| 20 | [Review of Claude Haiku 4.5](https://openwebui.com/posts/review_of_claude_haiku_45_41b0db39) | unknown | | 0 | 142 | 2 | 0 | 2026-01-14 |
|
| 20 | [🚀 Open WebUI Prompt Plus: AI-Powered Prompt Manager](https://openwebui.com/posts/open_webui_prompt_plus_ai_powered_prompt_manager_s_15fa060e) | post |  |  |  |  |  | 2026-01-29 |
|
||||||
| 21 | [ 🛠️ Debug Open WebUI Plugins in Your Browser](https://openwebui.com/posts/debug_open_webui_plugins_in_your_browser_81bf7960) | unknown | | 0 | 1417 | 14 | 10 | 2026-01-10 |
|
| 21 | [Review of Claude Haiku 4.5](https://openwebui.com/posts/review_of_claude_haiku_45_41b0db39) | review |  |  |  |  |  | 2026-01-14 |
|
||||||
|
| 22 | [ 🛠️ Debug Open WebUI Plugins in Your Browser](https://openwebui.com/posts/debug_open_webui_plugins_in_your_browser_81bf7960) | post |  |  |  |  |  | 2026-01-10 |
|
||||||
|
|||||||
@@ -1,46 +1,60 @@
|
|||||||
# 📊 OpenWebUI 社区统计报告
|
# 📊 OpenWebUI 社区统计报告
|
||||||
|
|
||||||
> 📅 更新时间: 2026-02-10 12:51
|
> 
|
||||||
|
|
||||||
|
### 📈 总下载量累计趋势
|
||||||
|

|
||||||
|
|
||||||
|
> *蓝色: 总下载量 | 紫色: 总浏览量 (实时动态生成)*
|
||||||
|
|
||||||
|
### 📂 内容分类占比 (Distribution)
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
## 📈 总览
|
## 📈 总览
|
||||||
|
|
||||||
| 指标 | 数值 |
|
| 指标 | 数值 |
|
||||||
|------|------|
|
|------|------|
|
||||||
| 📝 发布数量 | 21 |
|
| 📝 发布数量 |  |
|
||||||
| ⬇️ 总下载量 | 4031 |
|
| ⬇️ 总下载量 |  |
|
||||||
| 👁️ 总浏览量 | 47177 |
|
| 👁️ 总浏览量 |  |
|
||||||
| 👍 总点赞数 | 224 |
|
| 👍 总点赞数 |  |
|
||||||
| 💾 总收藏数 | 267 |
|
| 💾 总收藏数 |  |
|
||||||
| 💬 总评论数 | 51 |
|
| ⭐ 作者总积分 |  |
|
||||||
|
| 👥 粉丝数量 |  |
|
||||||
|
|
||||||
## 📂 按类型分类
|
## 📂 按类型分类
|
||||||
|
|
||||||
- **action**: 15
|
- 
|
||||||
- **filter**: 2
|
- 
|
||||||
- **unknown**: 4
|
- 
|
||||||
|
- 
|
||||||
|
- 
|
||||||
|
- 
|
||||||
|
|
||||||
## 📋 发布列表
|
## 📋 发布列表
|
||||||
|
|
||||||
| 排名 | 标题 | 类型 | 版本 | 下载 | 浏览 | 点赞 | 收藏 | 更新日期 |
|
| 排名 | 标题 | 类型 | 版本 | 下载 | 浏览 | 点赞 | 收藏 | 更新日期 |
|
||||||
|:---:|------|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
|:---:|------|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
||||||
| 1 | [Smart Mind Map](https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a) | action | 0.9.2 | 935 | 8224 | 22 | 50 | 2026-01-28 |
|
| 1 | [Smart Mind Map](https://openwebui.com/posts/turn_any_text_into_beautiful_mind_maps_3094c59a) | action |  |  |  |  |  | 2026-01-29 |
|
||||||
| 2 | [Smart Infographic](https://openwebui.com/posts/smart_infographic_ad6f0c7f) | action | 1.5.0 | 678 | 6439 | 24 | 34 | 2026-01-30 |
|
| 2 | [Smart Infographic](https://openwebui.com/posts/smart_infographic_ad6f0c7f) | action |  |  |  |  |  | 2026-01-31 |
|
||||||
| 3 | [Export to Word Enhanced](https://openwebui.com/posts/export_to_word_enhanced_formatting_fca6a315) | action | 0.4.4 | 374 | 2931 | 14 | 26 | 2026-02-07 |
|
| 3 | [Export to Word Enhanced](https://openwebui.com/posts/export_to_word_enhanced_formatting_fca6a315) | action |  |  |  |  |  | 2026-02-07 |
|
||||||
| 4 | [Async Context Compression](https://openwebui.com/posts/async_context_compression_b1655bc8) | action | 1.2.2 | 360 | 3689 | 14 | 33 | 2026-01-28 |
|
| 4 | [Async Context Compression](https://openwebui.com/posts/async_context_compression_b1655bc8) | filter |  |  |  |  |  | 2026-01-29 |
|
||||||
| 5 | [Export to Excel](https://openwebui.com/posts/export_mulit_table_to_excel_244b8f9d) | action | 0.3.7 | 340 | 1631 | 7 | 6 | 2026-02-09 |
|
| 5 | [Export to Excel](https://openwebui.com/posts/export_mulit_table_to_excel_244b8f9d) | action |  |  |  |  |  | 2026-02-10 |
|
||||||
| 6 | [Markdown Normalizer](https://openwebui.com/posts/markdown_normalizer_baaa8732) | action | 1.2.4 | 323 | 4559 | 17 | 28 | 2026-01-29 |
|
| 6 | [Markdown Normalizer](https://openwebui.com/posts/markdown_normalizer_baaa8732) | filter |  |  |  |  |  | 2026-01-29 |
|
||||||
| 7 | [Flash Card](https://openwebui.com/posts/flash_card_65a2ea8f) | action | 0.2.4 | 220 | 3342 | 13 | 14 | 2026-01-28 |
|
| 7 | [Flash Card](https://openwebui.com/posts/flash_card_65a2ea8f) | action |  |  |  |  |  | 2026-01-29 |
|
||||||
| 8 | [AI Task Instruction Generator](https://openwebui.com/posts/ai_task_instruction_generator_9bab8b37) | unknown | | 184 | 2608 | 9 | 5 | 2026-01-28 |
|
| 8 | [AI Task Instruction Generator](https://openwebui.com/posts/ai_task_instruction_generator_9bab8b37) | prompt |  |  |  |  |  | 2026-01-28 |
|
||||||
| 9 | [Deep Dive](https://openwebui.com/posts/deep_dive_c0b846e4) | action | 1.0.0 | 146 | 1237 | 6 | 11 | 2026-01-08 |
|
| 9 | [Deep Dive](https://openwebui.com/posts/deep_dive_c0b846e4) | action |  |  |  |  |  | 2026-01-08 |
|
||||||
| 10 | [导出为Word增强版](https://openwebui.com/posts/导出为_word_支持公式流程图表格和代码块_8a6306c0) | action | 0.4.4 | 125 | 2187 | 13 | 7 | 2026-02-07 |
|
| 10 | [导出为Word增强版](https://openwebui.com/posts/导出为_word_支持公式流程图表格和代码块_8a6306c0) | action |  |  |  |  |  | 2026-02-07 |
|
||||||
| 11 | [GitHub Copilot Official SDK Pipe](https://openwebui.com/posts/github_copilot_official_sdk_pipe_ce96f7b4) | action | 0.6.1 | 95 | 2254 | 13 | 7 | 2026-02-09 |
|
| 11 | [GitHub Copilot Official SDK Pipe](https://openwebui.com/posts/github_copilot_official_sdk_pipe_ce96f7b4) | pipe |  |  |  |  |  | 2026-02-10 |
|
||||||
| 12 | [📂 Folder Memory – Auto-Evolving Project Context](https://openwebui.com/posts/folder_memory_auto_evolving_project_context_4a9875b2) | filter | 0.1.0 | 59 | 1278 | 6 | 8 | 2026-01-20 |
|
| 12 | [📂 Folder Memory – Auto-Evolving Project Context](https://openwebui.com/posts/folder_memory_auto_evolving_project_context_4a9875b2) | filter |  |  |  |  |  | 2026-01-20 |
|
||||||
| 13 | [智能信息图](https://openwebui.com/posts/智能信息图_e04a48ff) | action | 1.5.0 | 58 | 1048 | 10 | 1 | 2026-01-29 |
|
| 13 | [智能信息图](https://openwebui.com/posts/智能信息图_e04a48ff) | action |  |  |  |  |  | 2026-01-29 |
|
||||||
| 14 | [思维导图](https://openwebui.com/posts/智能生成交互式思维导图帮助用户可视化知识_8d4b097b) | action | 0.9.2 | 37 | 579 | 6 | 2 | 2026-01-28 |
|
| 14 | [思维导图](https://openwebui.com/posts/智能生成交互式思维导图帮助用户可视化知识_8d4b097b) | action |  |  |  |  |  | 2026-01-29 |
|
||||||
| 15 | [异步上下文压缩](https://openwebui.com/posts/异步上下文压缩_5c0617cb) | action | 1.2.2 | 33 | 656 | 7 | 5 | 2026-01-28 |
|
| 15 | [异步上下文压缩](https://openwebui.com/posts/异步上下文压缩_5c0617cb) | action |  |  |  |  |  | 2026-01-29 |
|
||||||
| 16 | [闪记卡 (Flash Card)](https://openwebui.com/posts/闪记卡生成插件_4a31eac3) | action | 0.2.4 | 27 | 680 | 8 | 1 | 2026-01-28 |
|
| 16 | [闪记卡 (Flash Card)](https://openwebui.com/posts/闪记卡生成插件_4a31eac3) | action |  |  |  |  |  | 2026-01-29 |
|
||||||
| 17 | [精读](https://openwebui.com/posts/精读_99830b0f) | action | 1.0.0 | 24 | 425 | 5 | 1 | 2026-01-08 |
|
| 17 | [精读](https://openwebui.com/posts/精读_99830b0f) | action |  |  |  |  |  | 2026-01-08 |
|
||||||
| 18 | [GitHub Copilot SDK Files Filter](https://openwebui.com/posts/github_copilot_sdk_files_filter_403a62ee) | filter | 0.1.2 | 13 | 370 | 2 | 0 | 2026-02-09 |
|
| 18 | [GitHub Copilot SDK Files Filter](https://openwebui.com/posts/github_copilot_sdk_files_filter_403a62ee) | filter |  |  |  |  |  | 2026-02-10 |
|
||||||
| 19 | [🚀 Open WebUI Prompt Plus: AI-Powered Prompt Manager](https://openwebui.com/posts/open_webui_prompt_plus_ai_powered_prompt_manager_s_15fa060e) | unknown | | 0 | 1481 | 12 | 18 | 2026-01-28 |
|
| 19 | [🚀 GitHub Copilot SDK Pipe: AI That Executes, Not Just Talks](https://openwebui.com/posts/github_copilot_sdk_for_openwebui_elevate_your_ai_t_a140f293) | post |  |  |  |  |  | 2026-02-10 |
|
||||||
| 20 | [Review of Claude Haiku 4.5](https://openwebui.com/posts/review_of_claude_haiku_45_41b0db39) | unknown | | 0 | 142 | 2 | 0 | 2026-01-14 |
|
| 20 | [🚀 Open WebUI Prompt Plus: AI-Powered Prompt Manager](https://openwebui.com/posts/open_webui_prompt_plus_ai_powered_prompt_manager_s_15fa060e) | post |  |  |  |  |  | 2026-01-29 |
|
||||||
| 21 | [ 🛠️ Debug Open WebUI Plugins in Your Browser](https://openwebui.com/posts/debug_open_webui_plugins_in_your_browser_81bf7960) | unknown | | 0 | 1417 | 14 | 10 | 2026-01-10 |
|
| 21 | [Review of Claude Haiku 4.5](https://openwebui.com/posts/review_of_claude_haiku_45_41b0db39) | review |  |  |  |  |  | 2026-01-14 |
|
||||||
|
| 22 | [ 🛠️ Debug Open WebUI Plugins in Your Browser](https://openwebui.com/posts/debug_open_webui_plugins_in_your_browser_81bf7960) | post |  |  |  |  |  | 2026-01-10 |
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Contributing Guide
|
# Contributing Guide
|
||||||
|
|
||||||
Thank you for your interest in contributing to **OpenWebUI Extras**! We welcome contributions of plugins, prompts, documentation, and more.
|
Thank you for your interest in contributing to **OpenWebUI Extensions**! We welcome contributions of plugins, prompts, documentation, and more.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -181,6 +181,6 @@ By contributing, you agree that your contributions will be licensed under the sa
|
|||||||
|
|
||||||
## 🙏 Thank You!
|
## 🙏 Thank You!
|
||||||
|
|
||||||
Every contribution, no matter how small, helps make OpenWebUI Extras better for everyone. Thank you for being part of our community!
|
Every contribution, no matter how small, helps make OpenWebUI Extensions better for everyone. Thank you for being part of our community!
|
||||||
|
|
||||||
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui){ .md-button .md-button--primary }
|
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/openwebui-extensions){ .md-button .md-button--primary }
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# 贡献指南
|
# 贡献指南
|
||||||
|
|
||||||
感谢你对 **OpenWebUI Extras** 的兴趣!我们欢迎各种形式的贡献,包括插件、提示词、文档等。
|
感谢你对 **OpenWebUI Extensions** 的兴趣!我们欢迎各种形式的贡献,包括插件、提示词、文档等。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -181,6 +181,6 @@ Update: 插件开发指南添加新示例
|
|||||||
|
|
||||||
## 🙏 感谢
|
## 🙏 感谢
|
||||||
|
|
||||||
每一份贡献,无论大小,都有助于让 OpenWebUI Extras 变得更好。感谢你成为我们社区的一员!
|
每一份贡献,无论大小,都有助于让 OpenWebUI Extensions 变得更好。感谢你成为我们社区的一员!
|
||||||
|
|
||||||
[:fontawesome-brands-github: 在 GitHub 上查看](https://github.com/Fu-Jie/awesome-openwebui){ .md-button .md-button--primary }
|
[:fontawesome-brands-github: 在 GitHub 上查看](https://github.com/Fu-Jie/openwebui-extensions){ .md-button .md-button--primary }
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# 贡献指南
|
# 贡献指南
|
||||||
|
|
||||||
感谢你对 **OpenWebUI Extras** 的兴趣!我们欢迎各种形式的贡献,包括插件、提示词、文档等。
|
感谢你对 **OpenWebUI Extensions** 的兴趣!我们欢迎各种形式的贡献,包括插件、提示词、文档等。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -181,6 +181,6 @@ Update: 插件开发指南添加新示例
|
|||||||
|
|
||||||
## 🙏 感谢
|
## 🙏 感谢
|
||||||
|
|
||||||
每一份贡献,无论大小,都有助于让 OpenWebUI Extras 变得更好。感谢你成为我们社区的一员!
|
每一份贡献,无论大小,都有助于让 OpenWebUI Extensions 变得更好。感谢你成为我们社区的一员!
|
||||||
|
|
||||||
[:fontawesome-brands-github: 在 GitHub 上查看](https://github.com/Fu-Jie/awesome-openwebui){ .md-button .md-button--primary }
|
[:fontawesome-brands-github: 在 GitHub 上查看](https://github.com/Fu-Jie/openwebui-extensions){ .md-button .md-button--primary }
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Documentation Writing Guide
|
# Documentation Writing Guide
|
||||||
|
|
||||||
This guide explains how to write and contribute documentation for OpenWebUI Extras.
|
This guide explains how to write and contribute documentation for OpenWebUI Extensions.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -21,8 +21,8 @@ Our documentation is built with [MkDocs](https://www.mkdocs.org/) and the [Mater
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Clone the repository
|
# Clone the repository
|
||||||
git clone https://github.com/Fu-Jie/awesome-openwebui.git
|
git clone https://github.com/Fu-Jie/openwebui-extensions.git
|
||||||
cd awesome-openwebui
|
cd openwebui-extensions
|
||||||
|
|
||||||
# Install dependencies
|
# Install dependencies
|
||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
@@ -122,7 +122,7 @@ Step-by-step usage instructions.
|
|||||||
|
|
||||||
## Source Code
|
## Source Code
|
||||||
|
|
||||||
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/...){ .md-button }
|
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/...){ .md-button }
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# 文档编写指南
|
# 文档编写指南
|
||||||
|
|
||||||
本文介绍如何为 OpenWebUI Extras 编写与贡献文档。
|
本文介绍如何为 OpenWebUI Extensions 编写与贡献文档。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -21,8 +21,8 @@
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 克隆仓库
|
# 克隆仓库
|
||||||
git clone https://github.com/Fu-Jie/awesome-openwebui.git
|
git clone https://github.com/Fu-Jie/openwebui-extensions.git
|
||||||
cd awesome-openwebui
|
cd openwebui-extensions
|
||||||
|
|
||||||
# 安装依赖
|
# 安装依赖
|
||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
@@ -122,7 +122,7 @@ Step-by-step usage instructions.
|
|||||||
|
|
||||||
## Source Code
|
## Source Code
|
||||||
|
|
||||||
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/...){ .md-button }
|
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/...){ .md-button }
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Development
|
# Development
|
||||||
|
|
||||||
Learn how to develop plugins and contribute to OpenWebUI Extras.
|
Learn how to develop plugins and contribute to OpenWebUI Extensions.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -164,5 +164,5 @@ user_language = __user__.get("language", "en-US")
|
|||||||
## Resources
|
## Resources
|
||||||
|
|
||||||
- [Full Development Guide](plugin-guide.md)
|
- [Full Development Guide](plugin-guide.md)
|
||||||
- [Plugin Examples](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins)
|
- [Plugin Examples](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins)
|
||||||
- [OpenWebUI Documentation](https://docs.openwebui.com/)
|
- [OpenWebUI Documentation](https://docs.openwebui.com/)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# 开发指南
|
# 开发指南
|
||||||
|
|
||||||
了解如何开发插件并为 OpenWebUI Extras 做出贡献。
|
了解如何开发插件并为 OpenWebUI Extensions 做出贡献。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -164,5 +164,5 @@ user_language = __user__.get("language", "en-US")
|
|||||||
## 资源
|
## 资源
|
||||||
|
|
||||||
- [完整开发指南](plugin-guide.md)
|
- [完整开发指南](plugin-guide.md)
|
||||||
- [插件示例](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins)
|
- [插件示例](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins)
|
||||||
- [OpenWebUI 文档](https://docs.openwebui.com/)
|
- [OpenWebUI 文档](https://docs.openwebui.com/)
|
||||||
|
|||||||
@@ -406,6 +406,6 @@ except Exception as e:
|
|||||||
|
|
||||||
## Additional Resources
|
## Additional Resources
|
||||||
|
|
||||||
- [:fontawesome-brands-github: Plugin Examples](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins)
|
- [:fontawesome-brands-github: Plugin Examples](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins)
|
||||||
- [:material-book-open-variant: OpenWebUI Official Docs](https://docs.openwebui.com/)
|
- [:material-book-open-variant: OpenWebUI Official Docs](https://docs.openwebui.com/)
|
||||||
- [:material-forum: Community Discussions](https://github.com/open-webui/open-webui/discussions)
|
- [:material-forum: Community Discussions](https://github.com/open-webui/open-webui/discussions)
|
||||||
|
|||||||
@@ -4,17 +4,17 @@ hide:
|
|||||||
- toc
|
- toc
|
||||||
---
|
---
|
||||||
|
|
||||||
# Welcome to OpenWebUI Extras
|
# Welcome to OpenWebUI Extensions
|
||||||
|
|
||||||
<div class="hero-section" markdown>
|
<div class="hero-section" markdown>
|
||||||
<div class="hero-content" markdown>
|
<div class="hero-content" markdown>
|
||||||
|
|
||||||
# 🚀 Supercharge Your OpenWebUI Experience
|
# 🚀 Supercharge Your OpenWebUI Experience
|
||||||
|
|
||||||
**OpenWebUI Extras** is a curated collection of plugins, prompts, and enhancements designed to extend the functionality of [OpenWebUI](https://github.com/open-webui/open-webui).
|
**OpenWebUI Extensions** is a curated collection of plugins, prompts, and enhancements designed to extend the functionality of [OpenWebUI](https://github.com/open-webui/open-webui).
|
||||||
|
|
||||||
[Get Started :material-arrow-right:](#quick-navigation){ .md-button .md-button--primary }
|
[Get Started :material-arrow-right:](#quick-navigation){ .md-button .md-button--primary }
|
||||||
[View on GitHub :fontawesome-brands-github:](https://github.com/Fu-Jie/awesome-openwebui){ .md-button }
|
[View on GitHub :fontawesome-brands-github:](https://github.com/Fu-Jie/openwebui-extensions){ .md-button }
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -135,6 +135,6 @@ We welcome contributions! Whether it's a new plugin, a helpful prompt, or docume
|
|||||||
|
|
||||||
<div class="footer-stats" markdown>
|
<div class="footer-stats" markdown>
|
||||||
|
|
||||||
**OpenWebUI Extras** - Making AI interactions more powerful and productive.
|
**OpenWebUI Extensions** - Making AI interactions more powerful and productive.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -4,17 +4,17 @@ hide:
|
|||||||
- toc
|
- toc
|
||||||
---
|
---
|
||||||
|
|
||||||
# 欢迎来到 OpenWebUI Extras
|
# 欢迎来到 OpenWebUI Extensions
|
||||||
|
|
||||||
<div class="hero-section" markdown>
|
<div class="hero-section" markdown>
|
||||||
<div class="hero-content" markdown>
|
<div class="hero-content" markdown>
|
||||||
|
|
||||||
# 🚀 增强你的 OpenWebUI 体验
|
# 🚀 增强你的 OpenWebUI 体验
|
||||||
|
|
||||||
**OpenWebUI Extras** 是一个精心整理的插件、提示词和增强功能集合,旨在扩展 [OpenWebUI](https://github.com/open-webui/open-webui) 的功能。
|
**OpenWebUI Extensions** 是一个精心整理的插件、提示词和增强功能集合,旨在扩展 [OpenWebUI](https://github.com/open-webui/open-webui) 的功能。
|
||||||
|
|
||||||
[开始使用 :material-arrow-right:](#快速导航){ .md-button .md-button--primary }
|
[开始使用 :material-arrow-right:](#快速导航){ .md-button .md-button--primary }
|
||||||
[在 GitHub 上查看 :fontawesome-brands-github:](https://github.com/Fu-Jie/awesome-openwebui){ .md-button }
|
[在 GitHub 上查看 :fontawesome-brands-github:](https://github.com/Fu-Jie/openwebui-extensions){ .md-button }
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -135,6 +135,6 @@ hide:
|
|||||||
|
|
||||||
<div class="footer-stats" markdown>
|
<div class="footer-stats" markdown>
|
||||||
|
|
||||||
**OpenWebUI Extras** - 让 AI 交互更强大、更高效。
|
**OpenWebUI Extensions** - 让 AI 交互更强大、更高效。
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -158,7 +158,7 @@ if (response.ok) {
|
|||||||
|
|
||||||
## 完整示例
|
## 完整示例
|
||||||
|
|
||||||
参考 [js_render_poc.py](https://github.com/Fu-Jie/awesome-openwebui/blob/main/plugins/actions/js-render-poc/js_render_poc.py) 获取完整的 PoC 实现。
|
参考 [js_render_poc.py](https://github.com/Fu-Jie/openwebui-extensions/blob/main/plugins/actions/js-render-poc/js_render_poc.py) 获取完整的 PoC 实现。
|
||||||
|
|
||||||
## 事件类型
|
## 事件类型
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ The Deep Dive plugin transforms how you understand complex content by guiding yo
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
1. Download the plugin file: [`deep_dive.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/deep-dive)
|
1. Download the plugin file: [`deep_dive.py`](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/deep-dive)
|
||||||
2. Upload to OpenWebUI: **Admin Panel** → **Settings** → **Functions**
|
2. Upload to OpenWebUI: **Admin Panel** → **Settings** → **Functions**
|
||||||
3. Enable the plugin
|
3. Enable the plugin
|
||||||
|
|
||||||
@@ -108,4 +108,4 @@ The plugin generates a beautiful structured timeline:
|
|||||||
|
|
||||||
## Source Code
|
## Source Code
|
||||||
|
|
||||||
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/deep-dive){ .md-button }
|
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/deep-dive){ .md-button }
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
1. 下载插件文件: [`deep_dive_cn.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/deep-dive)
|
1. 下载插件文件: [`deep_dive_cn.py`](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/deep-dive)
|
||||||
2. 上传到 OpenWebUI: **管理面板** → **设置** → **Functions**
|
2. 上传到 OpenWebUI: **管理面板** → **设置** → **Functions**
|
||||||
3. 启用插件
|
3. 启用插件
|
||||||
|
|
||||||
@@ -108,4 +108,4 @@
|
|||||||
|
|
||||||
## 源代码
|
## 源代码
|
||||||
|
|
||||||
[:fontawesome-brands-github: 在 GitHub 上查看](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/deep-dive){ .md-button }
|
[:fontawesome-brands-github: 在 GitHub 上查看](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/deep-dive){ .md-button }
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ The Export to Excel plugin allows you to download your chat conversations as Exc
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
1. Download the plugin file: [`export_to_excel.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/export_to_excel)
|
1. Download the plugin file: [`export_to_excel.py`](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/export_to_excel)
|
||||||
2. Upload to OpenWebUI: **Admin Panel** → **Settings** → **Functions**
|
2. Upload to OpenWebUI: **Admin Panel** → **Settings** → **Functions**
|
||||||
3. Enable the plugin
|
3. Enable the plugin
|
||||||
|
|
||||||
@@ -84,4 +84,4 @@ The exported Excel file contains:
|
|||||||
|
|
||||||
## Source Code
|
## Source Code
|
||||||
|
|
||||||
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/export_to_excel){ .md-button }
|
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/export_to_excel){ .md-button }
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ Export to Excel 插件可以把你的聊天记录下载为 Excel 文件,适用
|
|||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
1. 下载插件文件:[`export_to_excel.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/export_to_excel)
|
1. 下载插件文件:[`export_to_excel.py`](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/export_to_excel)
|
||||||
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
||||||
3. 启用插件
|
3. 启用插件
|
||||||
|
|
||||||
@@ -84,4 +84,4 @@ Export to Excel 插件可以把你的聊天记录下载为 Excel 文件,适用
|
|||||||
|
|
||||||
## 源码
|
## 源码
|
||||||
|
|
||||||
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/export_to_excel){ .md-button }
|
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/export_to_excel){ .md-button }
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ Users can override the following settings in their personal settings:
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
1. Download the plugin file: [`export_to_word.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/export_to_docx)
|
1. Download the plugin file: [`export_to_word.py`](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/export_to_docx)
|
||||||
2. Upload to OpenWebUI: **Admin Panel** → **Settings** → **Functions**
|
2. Upload to OpenWebUI: **Admin Panel** → **Settings** → **Functions**
|
||||||
3. Enable the plugin
|
3. Enable the plugin
|
||||||
|
|
||||||
@@ -125,5 +125,5 @@ Users can override the following settings in their personal settings:
|
|||||||
|
|
||||||
## Source Code
|
## Source Code
|
||||||
|
|
||||||
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/export_to_docx){ .md-button }
|
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/export_to_docx){ .md-button }
|
||||||
**Author:** [Fu-Jie](https://github.com/Fu-Jie) | **Version:** 0.4.4 | **Project:** [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui)
|
**Author:** [Fu-Jie](https://github.com/Fu-Jie) | **Version:** 0.4.4 | **Project:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ Export to Word 插件会把聊天消息从 Markdown 转成精致的 Word 文档
|
|||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
1. 下载插件文件:[`export_to_word.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/export_to_docx)
|
1. 下载插件文件:[`export_to_word.py`](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/export_to_docx)
|
||||||
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
||||||
3. 启用插件
|
3. 启用插件
|
||||||
|
|
||||||
@@ -125,5 +125,5 @@ Export to Word 插件会把聊天消息从 Markdown 转成精致的 Word 文档
|
|||||||
|
|
||||||
## 源码
|
## 源码
|
||||||
|
|
||||||
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/export_to_docx){ .md-button }
|
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/export_to_docx){ .md-button }
|
||||||
**Author:** [Fu-Jie](https://github.com/Fu-Jie) | **Version:** 0.4.4 | **Project:** [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui)
|
**Author:** [Fu-Jie](https://github.com/Fu-Jie) | **Version:** 0.4.4 | **Project:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ The Knowledge Card plugin (also known as Flash Card / 闪记卡) transforms cont
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
1. Download the plugin file: [`flash_card.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/flash-card)
|
1. Download the plugin file: [`flash_card.py`](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/flash-card)
|
||||||
2. Upload to OpenWebUI: **Admin Panel** → **Settings** → **Functions**
|
2. Upload to OpenWebUI: **Admin Panel** → **Settings** → **Functions**
|
||||||
3. Enable the plugin
|
3. Enable the plugin
|
||||||
|
|
||||||
@@ -85,4 +85,4 @@ The Knowledge Card plugin (also known as Flash Card / 闪记卡) transforms cont
|
|||||||
|
|
||||||
## Source Code
|
## Source Code
|
||||||
|
|
||||||
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/flash-card){ .md-button }
|
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/flash-card){ .md-button }
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ Knowledge Card 插件(又名 Flash Card / 闪记卡)会把内容转成视觉
|
|||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
1. 下载插件文件:[`flash_card.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/flash-card)
|
1. 下载插件文件:[`flash_card.py`](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/flash-card)
|
||||||
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
||||||
3. 启用插件
|
3. 启用插件
|
||||||
|
|
||||||
@@ -85,4 +85,4 @@ Knowledge Card 插件(又名 Flash Card / 闪记卡)会把内容转成视觉
|
|||||||
|
|
||||||
## 源码
|
## 源码
|
||||||
|
|
||||||
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/flash-card){ .md-button }
|
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/flash-card){ .md-button }
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ Actions are interactive plugins that:
|
|||||||
|
|
||||||
Intelligently analyzes text content and generates interactive mind maps with beautiful visualizations.
|
Intelligently analyzes text content and generates interactive mind maps with beautiful visualizations.
|
||||||
|
|
||||||
**Version:** 0.9.2
|
**Version:** 1.0.0
|
||||||
|
|
||||||
[:octicons-arrow-right-24: Documentation](smart-mind-map.md)
|
[:octicons-arrow-right-24: Documentation](smart-mind-map.md)
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ Actions 是交互式插件,能够:
|
|||||||
|
|
||||||
智能分析文本并生成交互式、精美的思维导图。
|
智能分析文本并生成交互式、精美的思维导图。
|
||||||
|
|
||||||
**版本:** 0.8.0
|
**版本:** 1.0.0
|
||||||
|
|
||||||
[:octicons-arrow-right-24: 查看文档](smart-mind-map.md)
|
[:octicons-arrow-right-24: 查看文档](smart-mind-map.md)
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ The Smart Infographic plugin uses AI to analyze text content and generate profes
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
1. Download the plugin file: [`infographic.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/infographic)
|
1. Download the plugin file: [`infographic.py`](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/infographic)
|
||||||
2. Upload to OpenWebUI: **Admin Panel** → **Settings** → **Functions**
|
2. Upload to OpenWebUI: **Admin Panel** → **Settings** → **Functions**
|
||||||
3. Configure plugin settings (optional)
|
3. Configure plugin settings (optional)
|
||||||
4. Enable the plugin
|
4. Enable the plugin
|
||||||
@@ -108,4 +108,4 @@ data
|
|||||||
|
|
||||||
## Source Code
|
## Source Code
|
||||||
|
|
||||||
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/infographic){ .md-button }
|
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/infographic){ .md-button }
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ Smart Infographic 使用 AI 分析文本,并基于 AntV 可视化引擎生成
|
|||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
1. 下载插件文件:[`infographic.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/infographic)
|
1. 下载插件文件:[`infographic.py`](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/infographic)
|
||||||
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
||||||
3. 可选:根据需要配置插件选项
|
3. 可选:根据需要配置插件选项
|
||||||
4. 启用插件
|
4. 启用插件
|
||||||
@@ -108,4 +108,4 @@ data
|
|||||||
|
|
||||||
## 源码
|
## 源码
|
||||||
|
|
||||||
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/infographic){ .md-button }
|
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/infographic){ .md-button }
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# Smart Mind Map
|
# Smart Mind Map
|
||||||
|
|
||||||
<span class="category-badge action">Action</span>
|
<span class="category-badge action">Action</span>
|
||||||
<span class="version-badge">v0.9.2</span>
|
<span class="version-badge">v1.0.0</span>
|
||||||
|
|
||||||
Intelligently analyzes text content and generates interactive mind maps for better visualization and understanding.
|
Intelligently analyzes text content and generates interactive mind maps for better visualization and understanding.
|
||||||
|
|
||||||
@@ -17,13 +17,14 @@ The Smart Mind Map plugin transforms text content into beautiful, interactive mi
|
|||||||
- :material-gesture-swipe: **Rich Controls**: Zoom, reset view, expand level selector (All/2/3) and fullscreen
|
- :material-gesture-swipe: **Rich Controls**: Zoom, reset view, expand level selector (All/2/3) and fullscreen
|
||||||
- :material-palette: **Theme Aware**: Auto-detects OpenWebUI light/dark theme with manual toggle
|
- :material-palette: **Theme Aware**: Auto-detects OpenWebUI light/dark theme with manual toggle
|
||||||
- :material-download: **One-Click Export**: Download high-res PNG, copy SVG, or copy Markdown source
|
- :material-download: **One-Click Export**: Download high-res PNG, copy SVG, or copy Markdown source
|
||||||
- :material-translate: **Multi-language**: Matches output language to the input text
|
- :material-translate: **i18n Embedded**: One code file smartly detects frontend languages and translates the output.
|
||||||
|
- :material-arrow-all: **Auto-Sizing & Direct Embed**: Seamlessly scales to display massive canvas inline (requires setting toggle).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
1. Download the plugin file: [`smart_mind_map.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/smart-mind-map)
|
1. Download the plugin file: [`smart_mind_map.py`](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/smart-mind-map)
|
||||||
2. Upload to OpenWebUI: **Admin Panel** → **Settings** → **Functions** (Actions)
|
2. Upload to OpenWebUI: **Admin Panel** → **Settings** → **Functions** (Actions)
|
||||||
3. Enable the plugin, and optionally allow iframe same-origin access so theme auto-detection works
|
3. Enable the plugin, and optionally allow iframe same-origin access so theme auto-detection works
|
||||||
|
|
||||||
@@ -50,6 +51,7 @@ The Smart Mind Map plugin transforms text content into beautiful, interactive mi
|
|||||||
| `MIN_TEXT_LENGTH` | integer | `100` | Minimum characters required before analysis runs |
|
| `MIN_TEXT_LENGTH` | integer | `100` | Minimum characters required before analysis runs |
|
||||||
| `CLEAR_PREVIOUS_HTML` | boolean | `false` | Clear previous plugin HTML instead of merging |
|
| `CLEAR_PREVIOUS_HTML` | boolean | `false` | Clear previous plugin HTML instead of merging |
|
||||||
| `MESSAGE_COUNT` | integer | `1` | Number of recent messages to include (1–5) |
|
| `MESSAGE_COUNT` | integer | `1` | Number of recent messages to include (1–5) |
|
||||||
|
| `ENABLE_DIRECT_EMBED_MODE` | boolean | `false` | Enable inline full-width UI for OpenWebUI 0.8.0+ |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -94,4 +96,4 @@ The plugin generates an interactive HTML mind map embedded in the chat:
|
|||||||
|
|
||||||
## Source Code
|
## Source Code
|
||||||
|
|
||||||
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/smart-mind-map){ .md-button }
|
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/smart-mind-map){ .md-button }
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# Smart Mind Map(智能思维导图)
|
# Smart Mind Map(智能思维导图)
|
||||||
|
|
||||||
<span class="category-badge action">Action</span>
|
<span class="category-badge action">Action</span>
|
||||||
<span class="version-badge">v0.9.2</span>
|
<span class="version-badge">v1.0.0</span>
|
||||||
|
|
||||||
智能分析文本内容,生成交互式思维导图,帮助你更直观地理解信息结构。
|
智能分析文本内容,生成交互式思维导图,帮助你更直观地理解信息结构。
|
||||||
|
|
||||||
@@ -17,13 +17,14 @@ Smart Mind Map 会将文本转换成漂亮的交互式思维导图。插件会
|
|||||||
- :material-gesture-swipe: **丰富控制**:缩放/重置、展开层级(全部/2/3 级)与全屏
|
- :material-gesture-swipe: **丰富控制**:缩放/重置、展开层级(全部/2/3 级)与全屏
|
||||||
- :material-palette: **主题感知**:自动检测 OpenWebUI 亮/暗色主题并支持手动切换
|
- :material-palette: **主题感知**:自动检测 OpenWebUI 亮/暗色主题并支持手动切换
|
||||||
- :material-download: **一键导出**:下载高分辨率 PNG、复制 SVG 或 Markdown
|
- :material-download: **一键导出**:下载高分辨率 PNG、复制 SVG 或 Markdown
|
||||||
- :material-translate: **多语言**:输出语言与输入文本一致
|
- :material-translate: **内置 i18n 语言识别**:单个文件自动检测控制台前端语言,无需繁杂的各种语言包版本。
|
||||||
|
- :material-arrow-all: **直出全屏版体验 (需配置开启)**:新版直出渲染抛开沙盒限制,纵情铺满屏幕,享受原生的图表体验。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
1. 下载插件文件:[`smart_mind_map.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/smart-mind-map)
|
1. 下载插件文件:[`smart_mind_map.py`](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/smart-mind-map)
|
||||||
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**(Actions)
|
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**(Actions)
|
||||||
3. 启用插件,并可在设置中允许 iframe same-origin 以启用主题自动检测
|
3. 启用插件,并可在设置中允许 iframe same-origin 以启用主题自动检测
|
||||||
|
|
||||||
@@ -50,6 +51,7 @@ Smart Mind Map 会将文本转换成漂亮的交互式思维导图。插件会
|
|||||||
| `MIN_TEXT_LENGTH` | integer | `100` | 开始分析所需的最少字符数 |
|
| `MIN_TEXT_LENGTH` | integer | `100` | 开始分析所需的最少字符数 |
|
||||||
| `CLEAR_PREVIOUS_HTML` | boolean | `false` | 生成新导图时是否清除之前的插件 HTML |
|
| `CLEAR_PREVIOUS_HTML` | boolean | `false` | 生成新导图时是否清除之前的插件 HTML |
|
||||||
| `MESSAGE_COUNT` | integer | `1` | 用于生成的最近消息数量(1–5) |
|
| `MESSAGE_COUNT` | integer | `1` | 用于生成的最近消息数量(1–5) |
|
||||||
|
| `ENABLE_DIRECT_EMBED_MODE` | boolean | `false` | 是否开启沉浸式直出模式 (需要 Open WebUI 0.8.0+ ) |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -94,4 +96,4 @@ Smart Mind Map 会将文本转换成漂亮的交互式思维导图。插件会
|
|||||||
|
|
||||||
## 源码
|
## 源码
|
||||||
|
|
||||||
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/smart-mind-map){ .md-button }
|
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/actions/smart-mind-map){ .md-button }
|
||||||
|
|||||||
@@ -1,137 +1,81 @@
|
|||||||
# Async Context Compression
|
# Async Context Compression Filter
|
||||||
|
|
||||||
<span class="category-badge filter">Filter</span>
|
**Author:** [Fu-Jie](https://github.com/Fu-Jie/openwebui-extensions) | **Version:** 1.3.0 | **Project:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **License:** MIT
|
||||||
<span class="version-badge">v1.2.2</span>
|
|
||||||
|
|
||||||
Reduces token consumption in long conversations through intelligent summarization while maintaining conversational coherence.
|
This filter reduces token consumption in long conversations through intelligent summarization and message compression while keeping conversations coherent.
|
||||||
|
|
||||||
|
## What's new in 1.3.0
|
||||||
|
|
||||||
|
- **Internationalization (i18n)**: Complete localization of user-facing messages across 9 languages (English, Chinese, Japanese, Korean, French, German, Spanish, Italian).
|
||||||
|
- **Smart Status Display**: Added `token_usage_status_threshold` valve (default 80%) to intelligently control when token usage status is shown.
|
||||||
|
- **Improved Performance**: Frontend language detection and logging are optimized to be completely non-blocking, maintaining lightning-fast TTFB.
|
||||||
|
- **Copilot SDK Integration**: Automatically detects and skips compression for copilot_sdk based models to prevent conflicts.
|
||||||
|
- **Configuration**: `debug_mode` is now set to `false` by default for a quieter production experience.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Overview
|
## Core Features
|
||||||
|
|
||||||
The Async Context Compression filter helps manage token usage in long conversations by:
|
- ✅ **Full i18n Support**: Native localization across 9 languages.
|
||||||
|
- ✅ Automatic compression triggered by token thresholds.
|
||||||
- Intelligently summarizing older messages
|
- ✅ Asynchronous summarization that does not block chat responses.
|
||||||
- Preserving important context
|
- ✅ Persistent storage via Open WebUI's shared database connection (PostgreSQL, SQLite, etc.).
|
||||||
- Reducing API costs
|
- ✅ Flexible retention policy to keep the first and last N messages.
|
||||||
- Maintaining conversation coherence
|
- ✅ Smart injection of historical summaries back into the context.
|
||||||
|
- ✅ Structure-aware trimming that preserves document structure (headers, intro, conclusion).
|
||||||
This is especially useful for:
|
- ✅ Native tool output trimming for cleaner context when using function calling.
|
||||||
|
- ✅ Real-time context usage monitoring with warning notifications (>90%).
|
||||||
- Long-running conversations
|
- ✅ Detailed token logging for precise debugging and optimization.
|
||||||
- Complex multi-turn discussions
|
- ✅ **Smart Model Matching**: Automatically inherits configuration from base models for custom presets.
|
||||||
- Cost optimization
|
- ⚠ **Multimodal Support**: Images are preserved but their tokens are **NOT** calculated. Please adjust thresholds accordingly.
|
||||||
- Token limit management
|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
- :material-arrow-collapse-vertical: **Smart Compression**: AI-powered context summarization
|
|
||||||
- :material-clock-fast: **Async Processing**: Non-blocking background compression
|
|
||||||
- :material-memory: **Context Preservation**: Keeps important information
|
|
||||||
- :material-currency-usd-off: **Cost Reduction**: Minimize token usage
|
|
||||||
- :material-console: **Frontend Debugging**: Debug logs in browser console
|
|
||||||
- :material-alert-circle-check: **Enhanced Error Reporting**: Clear error status notifications
|
|
||||||
- :material-check-all: **Open WebUI v0.7.x Compatibility**: Dynamic DB session handling
|
|
||||||
- :material-account-convert: **Improved Compatibility**: Summary role changed to `assistant`
|
|
||||||
- :material-shield-check: **Enhanced Stability**: Resolved race conditions in state management
|
|
||||||
- :material-ruler: **Preflight Context Check**: Validates context fit before sending
|
|
||||||
- :material-format-align-justify: **Structure-Aware Trimming**: Preserves document structure
|
|
||||||
- :material-content-cut: **Native Tool Output Trimming**: Trims verbose tool outputs (Note: Non-native tool outputs are not fully injected into context)
|
|
||||||
- :material-chart-bar: **Detailed Token Logging**: Granular token breakdown
|
|
||||||
- :material-account-search: **Smart Model Matching**: Inherit config from base models
|
|
||||||
- :material-image-off: **Multimodal Support**: Images are preserved but tokens are **NOT** calculated
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Installation
|
## Installation & Configuration
|
||||||
|
|
||||||
1. Download the plugin file: [`async_context_compression.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters/async-context-compression)
|
### 1) Database (automatic)
|
||||||
2. Upload to OpenWebUI: **Admin Panel** → **Settings** → **Functions**
|
|
||||||
3. Configure compression settings
|
- Uses Open WebUI's shared database connection; no extra configuration needed.
|
||||||
4. Enable the filter
|
- The `chat_summary` table is created on first run.
|
||||||
|
|
||||||
|
### 2) Filter order
|
||||||
|
|
||||||
|
- Recommended order: pre-filters (<10) → this filter (10) → post-filters (>10).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## How It Works
|
## Configuration Parameters
|
||||||
|
|
||||||
```mermaid
|
| Parameter | Default | Description |
|
||||||
graph TD
|
| :----------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
A[Incoming Messages] --> B{Token Count > Threshold?}
|
| `priority` | `10` | Execution order; lower runs earlier. |
|
||||||
B -->|No| C[Pass Through]
|
| `compression_threshold_tokens` | `64000` | Trigger asynchronous summary when total tokens exceed this value. Set to 50%-70% of your model's context window. |
|
||||||
B -->|Yes| D[Summarize Older Messages]
|
| `max_context_tokens` | `128000` | Hard cap for context; older messages (except protected ones) are dropped if exceeded. |
|
||||||
D --> E[Preserve Recent Messages]
|
| `keep_first` | `1` | Always keep the first N messages (protects system prompts). |
|
||||||
E --> F[Combine Summary + Recent]
|
| `keep_last` | `6` | Always keep the last N messages to preserve recent context. |
|
||||||
F --> G[Send to LLM]
|
| `summary_model` | `None` | Model for summaries. Strongly recommended to set a fast, economical model (e.g., `gemini-2.5-flash`, `deepseek-v3`). Falls back to the current chat model when empty. |
|
||||||
```
|
| `summary_model_max_context` | `0` | Max context tokens for the summary model. If 0, falls back to `model_thresholds` or global `max_context_tokens`. |
|
||||||
|
| `max_summary_tokens` | `16384` | Maximum tokens for the generated summary. |
|
||||||
|
| `summary_temperature` | `0.3` | Randomness for summary generation. Lower is more deterministic. |
|
||||||
|
| `model_thresholds` | `{}` | Per-model overrides for `compression_threshold_tokens` and `max_context_tokens` (useful for mixed models). |
|
||||||
|
| `enable_tool_output_trimming` | `false` | When enabled and `function_calling: "native"` is active, trims verbose tool outputs to extract only the final answer. |
|
||||||
|
| `debug_mode` | `false` | Log verbose debug info. Set to `false` in production. |
|
||||||
|
| `show_debug_log` | `false` | Print debug logs to browser console (F12). Useful for frontend debugging. |
|
||||||
|
| `show_token_usage_status` | `true` | Show token usage status notification in the chat interface. |
|
||||||
|
| `token_usage_status_threshold` | `80` | The minimum usage percentage (0-100) required to show a context usage status notification. |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Configuration
|
## ⭐ Support
|
||||||
|
|
||||||
| Option | Type | Default | Description |
|
If this plugin has been useful, a star on [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) is a big motivation for me. Thank you for the support.
|
||||||
|--------|------|---------|-------------|
|
|
||||||
| `compression_threshold_tokens` | integer | `64000` | Trigger compression above this token count |
|
|
||||||
| `max_context_tokens` | integer | `128000` | Hard limit for context |
|
|
||||||
| `keep_first` | integer | `1` | Always keep the first N messages |
|
|
||||||
| `keep_last` | integer | `6` | Always keep the last N messages |
|
|
||||||
| `summary_model` | string | `None` | Model to use for summarization |
|
|
||||||
| `summary_model_max_context` | integer | `0` | Max context tokens for summary model |
|
|
||||||
| `max_summary_tokens` | integer | `16384` | Maximum tokens for the summary |
|
|
||||||
| `enable_tool_output_trimming` | boolean | `false` | Enable trimming of large tool outputs |
|
|
||||||
|
|
||||||
---
|
## Troubleshooting ❓
|
||||||
|
|
||||||
## Example
|
- **Initial system prompt is lost**: Keep `keep_first` greater than 0 to protect the initial message.
|
||||||
|
- **Compression effect is weak**: Raise `compression_threshold_tokens` or lower `keep_first` / `keep_last` to allow more aggressive compression.
|
||||||
|
- **Submit an Issue**: If you encounter any problems, please submit an issue on GitHub: [OpenWebUI Extensions Issues](https://github.com/Fu-Jie/openwebui-extensions/issues)
|
||||||
|
|
||||||
### Before Compression
|
## Changelog
|
||||||
|
|
||||||
```
|
See the full history on GitHub: [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||||
[Message 1] User: Tell me about Python...
|
|
||||||
[Message 2] AI: Python is a programming language...
|
|
||||||
[Message 3] User: What about its history?
|
|
||||||
[Message 4] AI: Python was created by Guido...
|
|
||||||
[Message 5] User: And its features?
|
|
||||||
[Message 6] AI: Python has many features...
|
|
||||||
... (many more messages)
|
|
||||||
[Message 20] User: Current question
|
|
||||||
```
|
|
||||||
|
|
||||||
### After Compression
|
|
||||||
|
|
||||||
```
|
|
||||||
[Summary] Previous conversation covered Python basics,
|
|
||||||
history, features, and common use cases...
|
|
||||||
|
|
||||||
[Message 18] User: Recent question about decorators
|
|
||||||
[Message 19] AI: Decorators in Python are...
|
|
||||||
[Message 20] User: Current question
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Requirements
|
|
||||||
|
|
||||||
!!! note "Prerequisites"
|
|
||||||
- OpenWebUI v0.3.0 or later
|
|
||||||
- Access to an LLM for summarization
|
|
||||||
|
|
||||||
!!! tip "Best Practices"
|
|
||||||
- Set appropriate token thresholds based on your model's context window
|
|
||||||
- Preserve more recent messages for technical discussions
|
|
||||||
- Test compression settings in non-critical conversations first
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Troubleshooting
|
|
||||||
|
|
||||||
??? question "Compression not triggering?"
|
|
||||||
Check if the token count exceeds your configured threshold. Enable debug logging for more details.
|
|
||||||
|
|
||||||
??? question "Important context being lost?"
|
|
||||||
Increase the `preserve_recent` setting or lower the compression ratio.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Source Code
|
|
||||||
|
|
||||||
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters/async-context-compression){ .md-button }
|
|
||||||
|
|||||||
@@ -1,137 +1,119 @@
|
|||||||
# Async Context Compression(异步上下文压缩)
|
# 异步上下文压缩过滤器
|
||||||
|
|
||||||
<span class="category-badge filter">Filter</span>
|
**作者:** [Fu-Jie](https://github.com/Fu-Jie/openwebui-extensions) | **版本:** 1.3.0 | **项目:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **许可证:** MIT
|
||||||
<span class="version-badge">v1.2.2</span>
|
|
||||||
|
|
||||||
通过智能摘要减少长对话的 token 消耗,同时保持对话连贯。
|
> **重要提示**:为了确保所有过滤器的可维护性和易用性,每个过滤器都应附带清晰、完整的文档,以确保其功能、配置和使用方法得到充分说明。
|
||||||
|
|
||||||
|
本过滤器通过智能摘要和消息压缩技术,在保持对话连贯性的同时,显著降低长对话的 Token 消耗。
|
||||||
|
|
||||||
|
## 1.3.0 版本更新
|
||||||
|
|
||||||
|
- **国际化 (i18n) 支持**: 完成了所有用户可见消息的本地化,现已原生支持 9 种语言(含中、英、日、韩及欧洲主要语言)。
|
||||||
|
- **智能状态显示**: 新增 `token_usage_status_threshold` 阀门(默认 80%),可以智能控制何时显示 Token 用量状态,减少不必要的打扰。
|
||||||
|
- **性能大幅优化**: 对前端语言检测和日志处理流程进行了非阻塞重构,完全不影响首字节响应时间(TTFB),保持毫秒级极速推流。
|
||||||
|
- **Copilot SDK 兼容**: 自动检测并跳过基于 `copilot_sdk` 模型的上下文压缩,避免冲突。
|
||||||
|
- **配置项调整**: 为了提供更安静的生产环境体验,`debug_mode` 现已默认设置为 `false`。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 概览
|
## 核心特性
|
||||||
|
|
||||||
Async Context Compression 过滤器通过以下方式帮助管理长对话的 token 使用:
|
- ✅ **全方位国际化**: 原生支持 9 种界面语言。
|
||||||
|
- ✅ **自动压缩**: 基于 Token 阈值自动触发上下文压缩。
|
||||||
|
- ✅ **异步摘要**: 后台生成摘要,不阻塞当前对话响应。
|
||||||
|
- ✅ **持久化存储**: 复用 Open WebUI 共享数据库连接,自动支持 PostgreSQL/SQLite 等。
|
||||||
|
- ✅ **灵活保留策略**: 可配置保留对话头部和尾部消息,确保关键信息连贯。
|
||||||
|
- ✅ **智能注入**: 将历史摘要智能注入到新上下文中。
|
||||||
|
- ✅ **结构感知裁剪**: 智能折叠过长消息,保留文档骨架(标题、首尾)。
|
||||||
|
- ✅ **原生工具输出裁剪**: 支持裁剪冗长的工具调用输出。
|
||||||
|
- ✅ **实时监控**: 实时监控上下文使用情况,超过 90% 发出警告。
|
||||||
|
- ✅ **详细日志**: 提供精确的 Token 统计日志,便于调试。
|
||||||
|
- ✅ **智能模型匹配**: 自定义模型自动继承基础模型的阈值配置。
|
||||||
|
- ⚠ **多模态支持**: 图片内容会被保留,但其 Token **不参与计算**。请相应调整阈值。
|
||||||
|
|
||||||
- 智能总结较早的消息
|
详细的工作原理和流程请参考 [工作流程指南](https://github.com/Fu-Jie/openwebui-extensions/blob/main/plugins/filters/async-context-compression/WORKFLOW_GUIDE_CN.md)。
|
||||||
- 保留关键信息
|
|
||||||
- 降低 API 成本
|
|
||||||
- 保持对话一致性
|
|
||||||
|
|
||||||
特别适用于:
|
|
||||||
|
|
||||||
- 长时间会话
|
|
||||||
- 多轮复杂讨论
|
|
||||||
- 成本优化
|
|
||||||
- 上下文长度控制
|
|
||||||
|
|
||||||
## 功能特性
|
|
||||||
|
|
||||||
- :material-arrow-collapse-vertical: **智能压缩**:AI 驱动的上下文摘要
|
|
||||||
- :material-clock-fast: **异步处理**:后台非阻塞压缩
|
|
||||||
- :material-memory: **保留上下文**:尽量保留重要信息
|
|
||||||
- :material-currency-usd-off: **降低成本**:减少 token 使用
|
|
||||||
- :material-console: **前端调试**:支持浏览器控制台日志
|
|
||||||
- :material-alert-circle-check: **增强错误报告**:清晰的错误状态通知
|
|
||||||
- :material-check-all: **Open WebUI v0.7.x 兼容性**:动态数据库会话处理
|
|
||||||
- :material-account-convert: **兼容性提升**:摘要角色改为 `assistant`
|
|
||||||
- :material-shield-check: **稳定性增强**:解决状态管理竞态条件
|
|
||||||
- :material-ruler: **预检上下文检查**:发送前验证上下文是否超限
|
|
||||||
- :material-format-align-justify: **结构感知裁剪**:保留文档结构的智能裁剪
|
|
||||||
- :material-content-cut: **原生工具输出裁剪**:自动裁剪冗长的工具输出(注意:非原生工具调用输出不会完整注入上下文)
|
|
||||||
- :material-chart-bar: **详细 Token 日志**:提供细粒度的 Token 统计
|
|
||||||
- :material-account-search: **智能模型匹配**:自定义模型自动继承基础模型配置
|
|
||||||
- :material-image-off: **多模态支持**:图片内容保留但 Token **不参与计算**
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 安装
|
## 安装与配置
|
||||||
|
|
||||||
1. 下载插件文件:[`async_context_compression.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters/async-context-compression)
|
### 1. 数据库(自动)
|
||||||
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
|
||||||
3. 配置压缩参数
|
- 自动使用 Open WebUI 的共享数据库连接,**无需额外配置**。
|
||||||
4. 启用过滤器
|
- 首次运行自动创建 `chat_summary` 表。
|
||||||
|
|
||||||
|
### 2. 过滤器顺序
|
||||||
|
|
||||||
|
- 建议顺序:前置过滤器(<10)→ 本过滤器(10)→ 后置过滤器(>10)。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 工作原理
|
## 配置参数
|
||||||
|
|
||||||
```mermaid
|
您可以在过滤器的设置中调整以下参数:
|
||||||
graph TD
|
|
||||||
A[Incoming Messages] --> B{Token Count > Threshold?}
|
### 核心参数
|
||||||
B -->|No| C[Pass Through]
|
|
||||||
B -->|Yes| D[Summarize Older Messages]
|
| 参数 | 默认值 | 描述 |
|
||||||
D --> E[Preserve Recent Messages]
|
| :----------------------------- | :------- | :------------------------------------------------------------------------------------ |
|
||||||
E --> F[Combine Summary + Recent]
|
| `priority` | `10` | 过滤器执行顺序,数值越小越先执行。 |
|
||||||
F --> G[Send to LLM]
|
| `compression_threshold_tokens` | `64000` | **重要**: 当上下文总 Token 超过此值时后台生成摘要,建议设为模型上下文窗口的 50%-70%。 |
|
||||||
|
| `max_context_tokens` | `128000` | **重要**: 上下文硬上限,超过即移除最早消息(保留受保护消息)。 |
|
||||||
|
| `keep_first` | `1` | 始终保留对话开始的 N 条消息,保护系统提示或环境变量。 |
|
||||||
|
| `keep_last` | `6` | 始终保留对话末尾的 N 条消息,确保最近上下文连贯。 |
|
||||||
|
|
||||||
|
### 摘要生成配置
|
||||||
|
|
||||||
|
| 参数 | 默认值 | 描述 |
|
||||||
|
| :-------------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||||
|
| `summary_model` | `None` | 用于生成摘要的模型 ID。**强烈建议**配置快速、经济、上下文窗口大的模型(如 `gemini-2.5-flash`、`deepseek-v3`)。留空则尝试复用当前对话模型。 |
|
||||||
|
| `summary_model_max_context` | `0` | 摘要模型的最大上下文 Token 数。如果为 0,则回退到 `model_thresholds` 或全局 `max_context_tokens`。 |
|
||||||
|
| `max_summary_tokens` | `16384` | 生成摘要时允许的最大 Token 数。 |
|
||||||
|
| `summary_temperature` | `0.1` | 控制摘要生成的随机性,较低的值结果更稳定。 |
|
||||||
|
|
||||||
|
### 高级配置
|
||||||
|
|
||||||
|
#### `model_thresholds` (模型特定阈值)
|
||||||
|
|
||||||
|
这是一个字典配置,可为特定模型 ID 覆盖全局 `compression_threshold_tokens` 与 `max_context_tokens`,适用于混合不同上下文窗口的模型。
|
||||||
|
|
||||||
|
**默认包含 GPT-4、Claude 3.5、Gemini 1.5/2.0、Qwen 2.5/3、DeepSeek V3 等推荐阈值。**
|
||||||
|
|
||||||
|
**配置示例:**
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"gpt-4": {
|
||||||
|
"compression_threshold_tokens": 8000,
|
||||||
|
"max_context_tokens": 32000
|
||||||
|
},
|
||||||
|
"gemini-2.5-flash": {
|
||||||
|
"compression_threshold_tokens": 734000,
|
||||||
|
"max_context_tokens": 1048576
|
||||||
|
}
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
| 参数 | 默认值 | 描述 |
|
||||||
|
| :----------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
## 配置项
|
| `enable_tool_output_trimming` | `false` | 启用时,若 `function_calling: "native"` 激活,将裁剪冗长的工具输出以仅提取最终答案。 |
|
||||||
|
| `debug_mode` | `false` | 是否在 Open WebUI 的控制台日志中打印详细的调试信息。生产环境默认且建议设为 `false`。 |
|
||||||
| 选项 | 类型 | 默认值 | 说明 |
|
| `show_debug_log` | `false` | 是否在浏览器控制台 (F12) 打印调试日志。便于前端调试。 |
|
||||||
|--------|------|---------|-------------|
|
| `show_token_usage_status` | `true` | 是否在对话结束时显示 Token 使用情况的状态通知。 |
|
||||||
| `compression_threshold_tokens` | integer | `64000` | 超过该 token 数触发压缩 |
|
| `token_usage_status_threshold` | `80` | 触发显示上下文用量状态通知的最低百分比阈值 (0-100)。 |
|
||||||
| `max_context_tokens` | integer | `128000` | 上下文硬性上限 |
|
|
||||||
| `keep_first` | integer | `1` | 始终保留的前 N 条消息 |
|
|
||||||
| `keep_last` | integer | `6` | 始终保留的后 N 条消息 |
|
|
||||||
| `summary_model` | string | `None` | 用于摘要的模型 |
|
|
||||||
| `summary_model_max_context` | integer | `0` | 摘要模型的最大上下文 Token 数 |
|
|
||||||
| `max_summary_tokens` | integer | `16384` | 摘要的最大 token 数 |
|
|
||||||
| `enable_tool_output_trimming` | boolean | `false` | 启用长工具输出裁剪 |
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 示例
|
## ⭐ 支持
|
||||||
|
|
||||||
### 压缩前
|
如果这个插件对你有帮助,欢迎到 [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) 点个 Star,这将是我持续改进的动力,感谢支持。
|
||||||
|
|
||||||
```
|
## 故障排除 (Troubleshooting) ❓
|
||||||
[Message 1] User: Tell me about Python...
|
|
||||||
[Message 2] AI: Python is a programming language...
|
|
||||||
[Message 3] User: What about its history?
|
|
||||||
[Message 4] AI: Python was created by Guido...
|
|
||||||
[Message 5] User: And its features?
|
|
||||||
[Message 6] AI: Python has many features...
|
|
||||||
... (many more messages)
|
|
||||||
[Message 20] User: Current question
|
|
||||||
```
|
|
||||||
|
|
||||||
### 压缩后
|
- **初始系统提示丢失**:将 `keep_first` 设置为大于 0。
|
||||||
|
- **压缩效果不明显**:提高 `compression_threshold_tokens`,或降低 `keep_first` / `keep_last` 以增强压缩力度。
|
||||||
|
- **提交 Issue**: 如果遇到任何问题,请在 GitHub 上提交 Issue:[OpenWebUI Extensions Issues](https://github.com/Fu-Jie/openwebui-extensions/issues)
|
||||||
|
|
||||||
```
|
## 更新日志
|
||||||
[Summary] Previous conversation covered Python basics,
|
|
||||||
history, features, and common use cases...
|
|
||||||
|
|
||||||
[Message 18] User: Recent question about decorators
|
完整历史请查看 GitHub 项目: [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||||
[Message 19] AI: Decorators in Python are...
|
|
||||||
[Message 20] User: Current question
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 运行要求
|
|
||||||
|
|
||||||
!!! note "前置条件"
|
|
||||||
- OpenWebUI v0.3.0 及以上
|
|
||||||
- 需要可用的 LLM 用于摘要
|
|
||||||
|
|
||||||
!!! tip "最佳实践"
|
|
||||||
- 根据模型上下文窗口设置合适的 token 阈值
|
|
||||||
- 技术讨论可适当提高 `preserve_recent`
|
|
||||||
- 先在非关键对话中测试压缩效果
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 常见问题
|
|
||||||
|
|
||||||
??? question "没有触发压缩?"
|
|
||||||
检查 token 数是否超过配置的阈值,并开启调试日志了解细节。
|
|
||||||
|
|
||||||
??? question "重要上下文丢失?"
|
|
||||||
提高 `preserve_recent` 或降低压缩比例。
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 源码
|
|
||||||
|
|
||||||
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters/async-context-compression){ .md-button }
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ The Context Enhancement filter automatically enriches your conversations with co
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
1. Download the plugin file: [`context_enhancement_filter.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters/context_enhancement_filter)
|
1. Download the plugin file: [`context_enhancement_filter.py`](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/filters/context_enhancement_filter)
|
||||||
2. Upload to OpenWebUI: **Admin Panel** → **Settings** → **Functions**
|
2. Upload to OpenWebUI: **Admin Panel** → **Settings** → **Functions**
|
||||||
3. Configure enhancement options
|
3. Configure enhancement options
|
||||||
4. Enable the filter
|
4. Enable the filter
|
||||||
@@ -48,4 +48,4 @@ The Context Enhancement filter automatically enriches your conversations with co
|
|||||||
|
|
||||||
## Source Code
|
## Source Code
|
||||||
|
|
||||||
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters/context_enhancement_filter){ .md-button }
|
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/filters/context_enhancement_filter){ .md-button }
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ Context Enhancement 过滤器会自动为会话补充必要的上下文,使模
|
|||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
1. 下载插件文件:[`context_enhancement_filter.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters/context_enhancement_filter)
|
1. 下载插件文件:[`context_enhancement_filter.py`](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/filters/context_enhancement_filter)
|
||||||
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
||||||
3. 配置增强选项
|
3. 配置增强选项
|
||||||
4. 启用过滤器
|
4. 启用过滤器
|
||||||
@@ -48,4 +48,4 @@ Context Enhancement 过滤器会自动为会话补充必要的上下文,使模
|
|||||||
|
|
||||||
## 源码
|
## 源码
|
||||||
|
|
||||||
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters/context_enhancement_filter){ .md-button }
|
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/filters/context_enhancement_filter){ .md-button }
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Folder Memory
|
# Folder Memory
|
||||||
|
|
||||||
**Author:** [Fu-Jie](https://github.com/Fu-Jie/awesome-openwebui) | **Version:** 0.1.0 | **Project:** [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) | **License:** MIT
|
**Author:** [Fu-Jie](https://github.com/Fu-Jie/openwebui-extensions) | **Version:** 0.1.0 | **Project:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **License:** MIT
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@ This ensures that all future conversations within that folder share the same evo
|
|||||||
|
|
||||||
## How It Works
|
## How It Works
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
1. **Trigger**: When a conversation reaches `MESSAGE_TRIGGER_COUNT` (e.g., 10, 20 messages).
|
1. **Trigger**: When a conversation reaches `MESSAGE_TRIGGER_COUNT` (e.g., 10, 20 messages).
|
||||||
2. **Analysis**: The plugin sends the recent conversation + existing rules to the LLM.
|
2. **Analysis**: The plugin sends the recent conversation + existing rules to the LLM.
|
||||||
@@ -54,4 +54,4 @@ This ensures that all future conversations within that folder share the same evo
|
|||||||
|
|
||||||
## Roadmap
|
## Roadmap
|
||||||
|
|
||||||
See [ROADMAP](https://github.com/Fu-Jie/awesome-openwebui/blob/main/plugins/filters/folder-memory/ROADMAP.md) for future plans, including "Project Knowledge" collection.
|
See [ROADMAP](https://github.com/Fu-Jie/openwebui-extensions/blob/main/plugins/filters/folder-memory/ROADMAP.md) for future plans, including "Project Knowledge" collection.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# 文件夹记忆 (Folder Memory)
|
# 文件夹记忆 (Folder Memory)
|
||||||
|
|
||||||
**作者:** [Fu-Jie](https://github.com/Fu-Jie/awesome-openwebui) | **版本:** 0.1.0 | **项目:** [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) | **许可证:** MIT
|
**作者:** [Fu-Jie](https://github.com/Fu-Jie/openwebui-extensions) | **版本:** 0.1.0 | **项目:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **许可证:** MIT
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
## 工作原理
|
## 工作原理
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
1. **触发**:当对话达到 `MESSAGE_TRIGGER_COUNT`(例如 10、20 条消息)时。
|
1. **触发**:当对话达到 `MESSAGE_TRIGGER_COUNT`(例如 10、20 条消息)时。
|
||||||
2. **分析**:插件将最近的对话 + 现有规则发送给 LLM。
|
2. **分析**:插件将最近的对话 + 现有规则发送给 LLM。
|
||||||
@@ -54,4 +54,4 @@
|
|||||||
|
|
||||||
## 路线图
|
## 路线图
|
||||||
|
|
||||||
查看 [ROADMAP](https://github.com/Fu-Jie/awesome-openwebui/blob/main/plugins/filters/folder-memory/ROADMAP.md) 了解未来计划,包括“项目知识”收集功能。
|
查看 [ROADMAP](https://github.com/Fu-Jie/openwebui-extensions/blob/main/plugins/filters/folder-memory/ROADMAP.md) 了解未来计划,包括“项目知识”收集功能。
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ Filters act as middleware in the message pipeline:
|
|||||||
|
|
||||||
Reduces token consumption in long conversations through intelligent summarization while maintaining coherence.
|
Reduces token consumption in long conversations through intelligent summarization while maintaining coherence.
|
||||||
|
|
||||||
**Version:** 1.2.2
|
**Version:** 1.3.0
|
||||||
|
|
||||||
[:octicons-arrow-right-24: Documentation](async-context-compression.md)
|
[:octicons-arrow-right-24: Documentation](async-context-compression.md)
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ Filter 充当消息管线中的中间件:
|
|||||||
|
|
||||||
通过智能总结减少长对话的 token 消耗,同时保持连贯性。
|
通过智能总结减少长对话的 token 消耗,同时保持连贯性。
|
||||||
|
|
||||||
**版本:** 1.2.2
|
**版本:** 1.3.0
|
||||||
|
|
||||||
[:octicons-arrow-right-24: 查看文档](async-context-compression.md)
|
[:octicons-arrow-right-24: 查看文档](async-context-compression.md)
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ A content normalizer filter for Open WebUI that fixes common Markdown formatting
|
|||||||
|
|
||||||
## Troubleshooting ❓
|
## Troubleshooting ❓
|
||||||
|
|
||||||
* **Submit an Issue**: If you encounter any problems, please submit an issue on GitHub: [Awesome OpenWebUI Issues](https://github.com/Fu-Jie/awesome-openwebui/issues)
|
* **Submit an Issue**: If you encounter any problems, please submit an issue on GitHub: [OpenWebUI Extensions Issues](https://github.com/Fu-Jie/openwebui-extensions/issues)
|
||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@
|
|||||||
|
|
||||||
## 故障排除 (Troubleshooting) ❓
|
## 故障排除 (Troubleshooting) ❓
|
||||||
|
|
||||||
* **提交 Issue**: 如果遇到任何问题,请在 GitHub 上提交 Issue:[Awesome OpenWebUI Issues](https://github.com/Fu-Jie/awesome-openwebui/issues)
|
* **提交 Issue**: 如果遇到任何问题,请在 GitHub 上提交 Issue:[OpenWebUI Extensions Issues](https://github.com/Fu-Jie/openwebui-extensions/issues)
|
||||||
|
|
||||||
## 更新日志
|
## 更新日志
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ This filter detects when multiple models have responded in the previous turn (e.
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
1. Download the plugin file: [`multi_model_context_merger.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters)
|
1. Download the plugin file: [`multi_model_context_merger.py`](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/filters)
|
||||||
2. Upload to OpenWebUI: **Admin Panel** → **Settings** → **Functions**
|
2. Upload to OpenWebUI: **Admin Panel** → **Settings** → **Functions**
|
||||||
3. Enable the filter.
|
3. Enable the filter.
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
1. 下载插件文件: [`multi_model_context_merger.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters)
|
1. 下载插件文件: [`multi_model_context_merger.py`](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/filters)
|
||||||
2. 上传到 OpenWebUI: **管理员面板** → **设置** → **函数**
|
2. 上传到 OpenWebUI: **管理员面板** → **设置** → **函数**
|
||||||
3. 启用过滤器。
|
3. 启用过滤器。
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ This plugin enables multimodal processing for any model by leveraging Gemini as
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
1. Download the plugin file: [`web_gemini_multimodel.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters/web_gemini_multimodel_filter)
|
1. Download the plugin file: [`web_gemini_multimodel.py`](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/filters/web_gemini_multimodel_filter)
|
||||||
2. Upload to OpenWebUI: **Admin Panel** → **Settings** → **Functions**
|
2. Upload to OpenWebUI: **Admin Panel** → **Settings** → **Functions**
|
||||||
3. Configure the Gemini Adapter URL and other settings.
|
3. Configure the Gemini Adapter URL and other settings.
|
||||||
4. Enable the filter globally or per chat.
|
4. Enable the filter globally or per chat.
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
1. 下载插件文件: [`web_gemini_multimodel.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters/web_gemini_multimodel_filter)
|
1. 下载插件文件: [`web_gemini_multimodel.py`](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/filters/web_gemini_multimodel_filter)
|
||||||
2. 上传到 OpenWebUI: **管理员面板** → **设置** → **函数**
|
2. 上传到 OpenWebUI: **管理员面板** → **设置** → **函数**
|
||||||
3. 配置 Gemini Adapter URL 和其他设置。
|
3. 配置 Gemini Adapter URL 和其他设置。
|
||||||
4. 启用过滤器。
|
4. 启用过滤器。
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Plugin Center
|
# Plugin Center
|
||||||
|
|
||||||
Welcome to the OpenWebUI Extras Plugin Center! Here you'll find a comprehensive collection of plugins to enhance your OpenWebUI experience.
|
Welcome to the OpenWebUI Extensions Plugin Center! Here you'll find a comprehensive collection of plugins to enhance your OpenWebUI experience.
|
||||||
|
|
||||||
## Plugin Types
|
## Plugin Types
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# 插件中心
|
# 插件中心
|
||||||
|
|
||||||
欢迎来到 OpenWebUI Extras 插件中心!在这里你可以找到完整的插件集合,帮助你强化 OpenWebUI 的体验。
|
欢迎来到 OpenWebUI Extensions 插件中心!在这里你可以找到完整的插件集合,帮助你强化 OpenWebUI 的体验。
|
||||||
|
|
||||||
## 插件类型
|
## 插件类型
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ The MoE Prompt Refiner is an advanced pipeline that optimizes prompts before sen
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
1. Download the pipeline file: [`moe_prompt_refiner.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/pipelines)
|
1. Download the pipeline file: [`moe_prompt_refiner.py`](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/pipelines)
|
||||||
2. Upload to OpenWebUI: **Admin Panel** → **Settings** → **Functions**
|
2. Upload to OpenWebUI: **Admin Panel** → **Settings** → **Functions**
|
||||||
3. Configure expert models and settings
|
3. Configure expert models and settings
|
||||||
4. Enable the pipeline
|
4. Enable the pipeline
|
||||||
@@ -106,4 +106,4 @@ Synthesized recommendations based on expert consensus...
|
|||||||
|
|
||||||
## Source Code
|
## Source Code
|
||||||
|
|
||||||
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/pipelines){ .md-button }
|
[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/pipelines){ .md-button }
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ MoE Prompt Refiner 是一个高级 Pipeline,会在将请求发送给多个专
|
|||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
1. 下载 Pipeline 文件:[`moe_prompt_refiner.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/pipelines)
|
1. 下载 Pipeline 文件:[`moe_prompt_refiner.py`](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/pipelines)
|
||||||
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
||||||
3. 配置专家模型及相关参数
|
3. 配置专家模型及相关参数
|
||||||
4. 启用该 Pipeline
|
4. 启用该 Pipeline
|
||||||
@@ -106,4 +106,4 @@ Synthesized recommendations based on expert consensus...
|
|||||||
|
|
||||||
## 源码
|
## 源码
|
||||||
|
|
||||||
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/pipelines){ .md-button }
|
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/openwebui-extensions/tree/main/plugins/pipelines){ .md-button }
|
||||||
|
|||||||
BIN
docs/plugins/pipes/2026-02-10_165530.png
Normal file
BIN
docs/plugins/pipes/2026-02-10_165530.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 229 KiB |
@@ -1,6 +1,6 @@
|
|||||||
# GitHub Copilot SDK Plugin Deep Dive
|
# GitHub Copilot SDK Plugin Deep Dive
|
||||||
|
|
||||||
**Version:** 0.6.0 | **Author:** [Fu-Jie](https://github.com/Fu-Jie/awesome-openwebui) | **Status:** Production-Ready
|
**Version:** 0.6.0 | **Author:** [Fu-Jie](https://github.com/Fu-Jie/openwebui-extensions) | **Status:** Production-Ready
|
||||||
|
|
||||||
The GitHub Copilot SDK plugin is far more than a simple API proxy; it is a highly integrated **Intelligent Agent Runtime Environment**. This document explores the core features, implementation details, technical architecture, and security design that define its capabilities.
|
The GitHub Copilot SDK plugin is far more than a simple API proxy; it is a highly integrated **Intelligent Agent Runtime Environment**. This document explores the core features, implementation details, technical architecture, and security design that define its capabilities.
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# GitHub Copilot SDK 插件深度解析 (Deep Dive)
|
# GitHub Copilot SDK 插件深度解析 (Deep Dive)
|
||||||
|
|
||||||
**版本:** 0.6.0 | **作者:** [Fu-Jie](https://github.com/Fu-Jie/awesome-openwebui) | **状态:** 生产级
|
**版本:** 0.6.0 | **作者:** [Fu-Jie](https://github.com/Fu-Jie/openwebui-extensions) | **状态:** 生产级
|
||||||
|
|
||||||
GitHub Copilot SDK 插件不仅仅是一个 API 转发器,它是一个高度集成的 **智能 Agent 运行环境**。本文将从功能实现、应用场景、技术架构及安全设计四个维度,深入解析这一插件的强大之处。
|
GitHub Copilot SDK 插件不仅仅是一个 API 转发器,它是一个高度集成的 **智能 Agent 运行环境**。本文将从功能实现、应用场景、技术架构及安全设计四个维度,深入解析这一插件的强大之处。
|
||||||
|
|
||||||
|
|||||||
105
docs/plugins/pipes/github-copilot-sdk-tutorial.md
Normal file
105
docs/plugins/pipes/github-copilot-sdk-tutorial.md
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
# GitHub Copilot SDK Advanced Tutorial
|
||||||
|
|
||||||
|
**Author:** [Fu-Jie](https://github.com/Fu-Jie) | **Version:** 1.0.0 | **Project:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||||
|
|
||||||
|
This tutorial guides you through unleashing the full potential of the GitHub Copilot SDK plugin, specifically focusing on advanced file generation, BYOK customization, and complex task orchestration.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. The 3-Step File Delivery Protocol
|
||||||
|
|
||||||
|
This is one of the most powerful features of this plugin. Agents can generate real physical files (e.g., `.xlsx`, `.pdf`, `.csv`) in their isolated workspace and publish them for you to download.
|
||||||
|
|
||||||
|
### Automated Execution Logic:
|
||||||
|
1. **Write (Local)**: The Agent creates a file using code within its isolated directory (the current directory `.` during Python execution).
|
||||||
|
2. **Publish**: The Agent automatically calls `publish_file_from_workspace(filename='report.xlsx')`.
|
||||||
|
3. **Link**: The plugin handles S3 or local storage mapping, bypasses RAG interference, and returns a secure link like `/api/v1/files/.../content`.
|
||||||
|
|
||||||
|
> [!TIP]
|
||||||
|
> **User Command Tip**: You can simply tell the Agent: "Analyze the previous data and export an Excel sheet for me." It will automatically trigger this entire sequence.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Advanced BYOK (Bring Your Own Key) Mode
|
||||||
|
|
||||||
|
If you don't have a GitHub Copilot subscription or want to use high-end models from OpenAI/Anthropic directly, you can use the BYOK mode.
|
||||||
|
|
||||||
|
### How to Configure:
|
||||||
|
1. **Set Base URL**: e.g., `https://api.openai.com/v1`.
|
||||||
|
2. **Set API Key**: Enter your key in your personal settings (Valves).
|
||||||
|
3. **Real-time Model Refresh**: The plugin features a **Config-Aware Refresh** mechanism. When you modify the API Key or Base URL, simply refresh the model selector in the UI—the plugin will automatically fetch the latest available models from the backend.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Workspace Isolation & Debugging
|
||||||
|
|
||||||
|
Every chat session has a physically isolated folder, ensuring that files from different tasks do not interfere with each other.
|
||||||
|
|
||||||
|
### Physical Path Rules:
|
||||||
|
- **In-Container Path**: `/app/backend/data/copilot_workspace/{user_id}/{chat_id}/`
|
||||||
|
- **Agent's Perspective**: It sees the `.` directory as the path mentioned above.
|
||||||
|
|
||||||
|
### Debugging Pro Tips:
|
||||||
|
1. **Enable DEBUG Valve**: Set `DEBUG` to `True` in the configuration.
|
||||||
|
2. **Check the Console**: Open browser developer tools (F12) -> Console.
|
||||||
|
3. **Capture Paths**: You will see logs like `📂 Workspace Resolved: /.../`, which helps you confirm exactly where the Agent is writing its files.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Deep Analysis Bypassing RAG
|
||||||
|
|
||||||
|
Traditional file uploads in OpenWebUI trigger vectorization (RAG), which might not be precise enough for large-scale data analysis.
|
||||||
|
|
||||||
|
**Advantages of this Plugin**:
|
||||||
|
- When used with the [Files Filter](https://openwebui.com/posts/403a62ee-a596-45e7-be65-fab9cc249dd6) plugin, the Agent can **directly read every byte** of the raw file.
|
||||||
|
- It can analyze every row of a CSV as if it were running a script locally, preventing information loss caused by retrieval-based slicing.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Common Interaction Examples
|
||||||
|
|
||||||
|
- **Data Conversion**: "Convert this JSON content into a beautifully formatted Word document and provide a download link."
|
||||||
|
- **Code Review**: "Read all `.py` files in the workspace, find potential bugs, and publish the suggestions as a Markdown report."
|
||||||
|
- **Chart Generation**: "Generate an Excel report based on the financial data and use Python to draw a trend chart for me."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 Real-world Example: Automated Financial Analysis
|
||||||
|
|
||||||
|
### Scenario
|
||||||
|
A user uploads a raw sales log named `sales_data.csv` and asks the AI to generate a summarized Excel report.
|
||||||
|
|
||||||
|
### 1. User Command
|
||||||
|
> "Analyze `sales_data.csv` in the current directory, calculate total revenue per product category, and export an Excel file named `category_summary.xlsx` for me."
|
||||||
|
|
||||||
|
### 2. Agent Execution Flow
|
||||||
|
The Agent performs the following steps autonomously:
|
||||||
|
|
||||||
|
* **Step 1: Write and Run Python Code**
|
||||||
|
```python
|
||||||
|
import pandas as pd
|
||||||
|
# Direct file access in the isolated workspace (Bypassing RAG for 100% accuracy)
|
||||||
|
df = pd.read_csv('sales_data.csv')
|
||||||
|
summary = df.groupby('Category')['Revenue'].sum().reset_index()
|
||||||
|
# Save the result locally
|
||||||
|
summary.to_excel('category_summary.xlsx', index=False)
|
||||||
|
```
|
||||||
|
* **Step 2: Call the Publishing Tool**
|
||||||
|
The Agent calls: `publish_file_from_workspace(filename="category_summary.xlsx")`
|
||||||
|
* **Step 3: Deliver the Link**
|
||||||
|
The tool returns a `download_url`, which the Agent presents to the user.
|
||||||
|
|
||||||
|
### 3. Final Result
|
||||||
|
The Agent responds:
|
||||||
|
> "Analysis complete! I have summarized the revenue by category. You can download your report here:
|
||||||
|
>
|
||||||
|
> [📊 Download: Category_Summary.xlsx](/api/v1/files/uuid-hash/content)"
|
||||||
|
|
||||||
|
#### Execution Screenshot
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⭐ Continuous Improvement
|
||||||
|
|
||||||
|
If you encounter any issues or have suggestions for new features, feel free to submit an Issue or participate in discussions on [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions).
|
||||||
105
docs/plugins/pipes/github-copilot-sdk-tutorial.zh.md
Normal file
105
docs/plugins/pipes/github-copilot-sdk-tutorial.zh.md
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
# GitHub Copilot SDK 插件进阶实战教程
|
||||||
|
|
||||||
|
**作者:** [Fu-Jie](https://github.com/Fu-Jie) | **版本:** 1.0.0 | **项目:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||||
|
|
||||||
|
本教程旨在指导您如何深度发挥 GitHub Copilot SDK 插件的全部潜力,特别是在自动化文件生成、BYOK 模式自定义以及复杂任务调度方面的进阶用法。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. 核心协议:文件交付三步法 (File Delivery Protocol)
|
||||||
|
|
||||||
|
这是本插件最强大的功能之一。Agent 不再只是“说话”,它可以在其隔离的工作区内生成真正的物理文件(如 `.xlsx`, `.pdf`, `.csv`),并将其发布给您下载。
|
||||||
|
|
||||||
|
### 自动化执行逻辑:
|
||||||
|
1. **本地写入 (Write)**:Agent 在其隔离目录(即 Python 执行的当前目录 `.`)下通过代码生成文件。
|
||||||
|
2. **显式发布 (Publish)**:Agent 自动调用 `publish_file_from_workspace(filename='report.xlsx')`。
|
||||||
|
3. **获取链接 (Link)**:插件会自动处理 S3 或本地存储映射,绕过 RAG 干扰,并返回一个类似 `/api/v1/files/.../content` 的安全链接。
|
||||||
|
|
||||||
|
> [!TIP]
|
||||||
|
> **用户指令技巧**:您可以直接对 Agent 说:“分析刚才的表格并导出一份 Excel 给我”。它会自动触发这一连串动作。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. BYOK (自带 Key) 模式进阶
|
||||||
|
|
||||||
|
如果您没有 GitHub Copilot 订阅,或者希望使用自己购买的 OpenAI/Anthropic 高阶模型,可以使用 BYOK 模式。
|
||||||
|
|
||||||
|
### 如何配置:
|
||||||
|
1. **设置 Base URL**:如 `https://api.openai.com/v1`。
|
||||||
|
2. **设置 API Key**:在个人设置中填入您的密钥。
|
||||||
|
3. **模型实时刷新**:插件具备**配置感知刷新**机制。当您在 Valve 中修改了 API Key 或 Base URL 后,无需重启,只需刷新模型选择器,插件会自动向后端拉取最新的可用模型列表。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. 工作区隔离与调试 (Workspace & Debugging)
|
||||||
|
|
||||||
|
每个聊天会话都有一个物理上隔离的文件夹,确保不同任务的文件互不干扰。
|
||||||
|
|
||||||
|
### 物理路径规则:
|
||||||
|
- **容器内路径**:`/app/backend/data/copilot_workspace/{user_id}/{chat_id}/`
|
||||||
|
- **Agent 的视角**:它看到的 `.` 目录即是上述路径。
|
||||||
|
|
||||||
|
### 调试秘籍:
|
||||||
|
1. **开启 DEBUG Valve**:在配置中将 `DEBUG` 设为 `True`。
|
||||||
|
2. **查看控制台**:打开浏览器开发者工具 (F12) -> Console。
|
||||||
|
3. **捕获路径**:您会看到类似 `📂 Workspace Resolved: /.../` 的日志,这能帮您确认 Agent 到底把文件写到了哪里。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. 绕过 RAG 的深度分析
|
||||||
|
|
||||||
|
传统的 OpenWebUI 文件上传会触发向量化(RAG),这对于大批量数据分析往往不够精确。
|
||||||
|
|
||||||
|
**本插件的优势**:
|
||||||
|
- 配合 [Files Filter](https://openwebui.com/posts/403a62ee-a596-45e7-be65-fab9cc249dd6) 插件使用时,Agent 可以**直接读取**原始文件的每一个字节。
|
||||||
|
- 它能像在本地运行脚本一样分析 CSV 的每一行,而不会因为切片检索(Retrieval)导致信息丢失。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. 常见交互指令示例
|
||||||
|
|
||||||
|
- **数据转换**:“把这个 JSON 内容转换成格式精美的 Word 文档并提供下载链接。”
|
||||||
|
- **代码审查**:“读取工作区内的所有 `.py` 文件,找出潜在的 Bug,并把修改建议发布为 Markdown 报告。”
|
||||||
|
- **图表生成**:“根据刚才的财务数据生成一份 Excel 报表,并用 Python 画一个趋势图给我。”
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 实战示例:全自动财务分析报告
|
||||||
|
|
||||||
|
### 场景描述
|
||||||
|
用户上传了一个名为 `sales_data.csv` 的原始销售清单,要求 AI 进行汇总统计,并生成一份带样式的 Excel 报表。
|
||||||
|
|
||||||
|
### 1. 用户的指令
|
||||||
|
> “请分析当前目录下的 `sales_data.csv`,按产品类别统计总销售额,并导出一份名为 `category_summary.xlsx` 的 Excel 给我就好。”
|
||||||
|
|
||||||
|
### 2. Agent 的自动化执行过程
|
||||||
|
Agent 会在后台连续执行以下动作:
|
||||||
|
|
||||||
|
* **步骤 1: 编写并运行 Python 脚本**
|
||||||
|
```python
|
||||||
|
import pandas as pd
|
||||||
|
# 直接在隔离工作区读取原始文件(绕过 RAG,保证数据 100% 准确)
|
||||||
|
df = pd.read_csv('sales_data.csv')
|
||||||
|
summary = df.groupby('Category')['Revenue'].sum().reset_index()
|
||||||
|
# 保存结果到当前目录
|
||||||
|
summary.to_excel('category_summary.xlsx', index=False)
|
||||||
|
```
|
||||||
|
* **步骤 2: 调用发布工具**
|
||||||
|
Agent 自动执行工具调用:`publish_file_from_workspace(filename="category_summary.xlsx")`
|
||||||
|
* **步骤 3: 交付链接**
|
||||||
|
工具返回 `download_url`,Agent 最终回复用户。
|
||||||
|
|
||||||
|
### 3. 最终交付效果
|
||||||
|
Agent 会向用户展示:
|
||||||
|
> “分析完成!我已经为您统计了产品类别的销售额。您可以点击下方链接下载报表:
|
||||||
|
>
|
||||||
|
> [📊 点击下载:分类销售统计报表.xlsx](/api/v1/files/uuid-hash/content)”
|
||||||
|
|
||||||
|
#### 实际运行截图示例
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⭐ 持续改进
|
||||||
|
|
||||||
|
如果您在使用过程中发现任何问题,或有新的功能建议,欢迎到 [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) 提交 Issue 或参与讨论。
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# GitHub Copilot SDK Pipe for OpenWebUI
|
# GitHub Copilot SDK Pipe for OpenWebUI
|
||||||
|
|
||||||
**Author:** [Fu-Jie](https://github.com/Fu-Jie) | **Version:** 0.6.2 | **Project:** [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) | **License:** MIT
|
**Author:** [Fu-Jie](https://github.com/Fu-Jie) | **Version:** 0.7.0 | **Project:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **License:** MIT
|
||||||
|
|
||||||
This is an advanced Pipe function for [OpenWebUI](https://github.com/open-webui/open-webui) that integrates the official [GitHub Copilot SDK](https://github.com/github/copilot-sdk). It enables you to use **GitHub Copilot models** (e.g., `gpt-5.2-codex`, `claude-sonnet-4.5`,`gemini-3-pro`, `gpt-5-mini`) **AND** your own models via **BYOK** (OpenAI, Anthropic) directly within OpenWebUI, providing a unified agentic experience with **strict User & Chat-level Workspace Isolation**.
|
This is an advanced Pipe function for [OpenWebUI](https://github.com/open-webui/open-webui) that integrates the official [GitHub Copilot SDK](https://github.com/github/copilot-sdk). It enables you to use **GitHub Copilot models** (e.g., `gpt-5.2-codex`, `claude-sonnet-4.5`,`gemini-3-pro`, `gpt-5-mini`) **AND** your own models via **BYOK** (OpenAI, Anthropic) directly within OpenWebUI, providing a unified agentic experience with **strict User & Chat-level Workspace Isolation**.
|
||||||
|
|
||||||
@@ -14,12 +14,13 @@ This is an advanced Pipe function for [OpenWebUI](https://github.com/open-webui/
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ✨ v0.6.2 Updates (What's New)
|
## ✨ v0.7.0 Updates (What's New)
|
||||||
|
|
||||||
- **🛠️ New Workspace Artifacts Tool**: Introduced `publish_file_from_workspace`. Agents can now generate files (e.g., Python-generated Excel/CSV) and provide direct download links for the user to click and save.
|
- **🚀 Integrated CLI Management**: The Copilot CLI is now automatically managed and bundled via the `github-copilot-sdk` pip package. (v0.7.0)
|
||||||
- **⚙️ Workflow Optimization**: Improved reliability of the internal agentic workspace management.
|
- **🧠 Native Tool Call UI**: Full adaptation to **OpenWebUI's native tool call UI** and thinking process visualization. (v0.7.0)
|
||||||
- **🛡️ Enhanced Security**: Refined access control for system resources within the isolated environment.
|
- **🏠 OpenWebUI v0.8.0+ Fix**: Resolved "Error getting file content" download failure by switching to absolute path registration for published files. (v0.7.0)
|
||||||
- **🔧 Performance Tuning**: Optimized stream processing for larger context windows.
|
- **🌐 Comprehensive Multi-language Support**: Native localization for status messages in 11 languages (EN, ZH, JA, KO, FR, DE, ES, IT, RU, VI, ID). (v0.7.0)
|
||||||
|
- **🧹 Architecture Cleanup**: Refactored core setup and optimized reasoning status display for a leaner experience. (v0.7.0)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -31,8 +32,9 @@ This is an advanced Pipe function for [OpenWebUI](https://github.com/open-webui/
|
|||||||
- **♾️ Infinite Session Management**: Smart context window management with automatic compaction for indefinite conversation capability.
|
- **♾️ Infinite Session Management**: Smart context window management with automatic compaction for indefinite conversation capability.
|
||||||
- **🧠 Deep Database Integration**: Real-time persistence of TOD·O lists for long-running workflows.
|
- **🧠 Deep Database Integration**: Real-time persistence of TOD·O lists for long-running workflows.
|
||||||
- **🌊 Advanced Streaming**: Full support for thinking process/Chain of Thought visualization.
|
- **🌊 Advanced Streaming**: Full support for thinking process/Chain of Thought visualization.
|
||||||
- **🖼️ Intelligent Multimodal**: Vision capabilities and raw file analysis support.
|
- **🖼️ Intelligent Multimodal**: Vision capabilities and raw file analysis support (bypasses RAG for direct binary access).
|
||||||
- **⚡ Full-Lifecycle File Agent**: Supports receiving uploaded files for raw bypass analysis and publishing generated results (e.g., analyzed Excel/reports) as downloadable links—a complete closed-loop agentic workflow.
|
- **📤 Workspace Artifacts (`publish_file_from_workspace`)**: Agents can generate files (Excel, CSV, HTML reports, etc.) and provide **persistent download links** directly in the chat.
|
||||||
|
- **🖼️ Interactive Artifacts**: Automatically renders HTML/JS apps generated by the agent directly in the chat interface.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -85,7 +87,7 @@ Standard users can override these settings in their individual Profile/Function
|
|||||||
|
|
||||||
## ⭐ Support
|
## ⭐ Support
|
||||||
|
|
||||||
If this plugin has been useful, a **Star** on [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) would be a great motivation for me. Thank you!
|
If this plugin has been useful, a **Star** on [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) would be a great motivation for me. Thank you!
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -109,10 +111,10 @@ If this plugin has been useful, a **Star** on [Awesome OpenWebUI](https://github
|
|||||||
|
|
||||||
- **Agent ignores files?**: Ensure the Files Filter is enabled, otherwise RAG will interfere with raw binaries.
|
- **Agent ignores files?**: Ensure the Files Filter is enabled, otherwise RAG will interfere with raw binaries.
|
||||||
- **No progress bar?**: The bar only appears when the Agent uses the `update_todo` tool.
|
- **No progress bar?**: The bar only appears when the Agent uses the `update_todo` tool.
|
||||||
- **Dependencies**: This Pipe automatically installs `github-copilot-sdk` (Python) and `github-copilot-cli` (Binary).
|
- **Dependencies**: This Pipe automatically manages `github-copilot-sdk` (Python) and utilizes the bundled binary CLI. No manual install required.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
|
|
||||||
See the full history on GitHub: [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui)
|
See the full history on GitHub: [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# GitHub Copilot SDK 官方管道
|
# GitHub Copilot SDK 官方管道
|
||||||
|
|
||||||
**作者:** [Fu-Jie](https://github.com/Fu-Jie) | **版本:** 0.6.2 | **项目:** [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) | **许可证:** MIT
|
**作者:** [Fu-Jie](https://github.com/Fu-Jie) | **版本:** 0.7.0 | **项目:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **许可证:** MIT
|
||||||
|
|
||||||
这是一个用于 [OpenWebUI](https://github.com/open-webui/open-webui) 的高级 Pipe 函数,深度集成了 **GitHub Copilot SDK**。它不仅支持 **GitHub Copilot 官方模型**(如 `gpt-5.2-codex`, `claude-sonnet-4.5`, `gemini-3-pro`, `gpt-5-mini`),还支持 **BYOK (自带 Key)** 模式对接自定义服务商(OpenAI, Anthropic),并具备**严格的用户与会话级工作区隔离**能力,提供统一且安全的 Agent 交互体验。
|
这是一个用于 [OpenWebUI](https://github.com/open-webui/open-webui) 的高级 Pipe 函数,深度集成了 **GitHub Copilot SDK**。它不仅支持 **GitHub Copilot 官方模型**(如 `gpt-5.2-codex`, `claude-sonnet-4.5`, `gemini-3-pro`, `gpt-5-mini`),还支持 **BYOK (自带 Key)** 模式对接自定义服务商(OpenAI, Anthropic),并具备**严格的用户与会话级工作区隔离**能力,提供统一且安全的 Agent 交互体验。
|
||||||
|
|
||||||
@@ -14,12 +14,13 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ✨ 0.6.2 更新内容 (What's New)
|
## ✨ 0.7.0 更新内容 (What's New)
|
||||||
|
|
||||||
- **🛠️ 新增工作区产物工具**: 引入 `publish_file_from_workspace`。Agent 现在可以生成物理文件(如使用 Python 生成的 Excel/CSV 报表),并直接在聊天界面提供点击下载链接。
|
- **🚀 CLI 免维护集成**: Copilot CLI 现在通过 `github-copilot-sdk` pip 包自动同步管理,彻底告别手动 `curl | bash` 安装问题。(v0.7.0)
|
||||||
- **⚙️ 工作流优化**: 提升了内部 Agent 物理工作区管理的可靠性与原子性。
|
- **🧠 原生工具调用 UI**: 全面适配 **OpenWebUI 原生工具调用 UI** 与模型思考过程(思维链)展示。(v0.7.0)
|
||||||
- **🛡️ 安全增强**: 精细化了隔离环境下系统资源的访问控制策略。
|
- **🏠 OpenWebUI v0.8.0+ 兼容性修复**: 通过切换为绝对路径注册发布文件,彻底解决了“Error getting file content”无法下载到本地的问题。(v0.7.0)
|
||||||
- **🔧 性能微调**: 针对大上下文窗口优化了流式数据处理性能。
|
- **🌐 全面的多语言支持**: 针对状态消息进行了 11 国语言的原生本地化 (中/英/日/韩/法/德/西/意/俄/越/印尼)。(v0.7.0)
|
||||||
|
- **🧹 架构精简**: 重构了初始化逻辑并优化了推理状态显示,提供更轻量稳健的体验。(v0.7.0)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -31,8 +32,9 @@
|
|||||||
- **♾️ 无限会话管理**: 智能上下文窗口管理与自动压缩算法,支持无限时长的对话交互。
|
- **♾️ 无限会话管理**: 智能上下文窗口管理与自动压缩算法,支持无限时长的对话交互。
|
||||||
- **🧠 深度数据库集成**: 实时持久化 TOD·O 列表到 UI 进度条。
|
- **🧠 深度数据库集成**: 实时持久化 TOD·O 列表到 UI 进度条。
|
||||||
- **🌊 深度推理展示**: 完整支持模型思考过程 (Thinking Process) 的流式渲染。
|
- **🌊 深度推理展示**: 完整支持模型思考过程 (Thinking Process) 的流式渲染。
|
||||||
- **🖼️ 智能多模态**: 完整支持图像识别与附件上传分析。
|
- **🖼️ 智能多模态**: 完整支持图像识别与附件上传分析(绕过 RAG 直接访问原始二进制内容)。
|
||||||
- **⚡ 全生命周期文件 Agent**: 支持接收上传文件进行绕过 RAG 的深度分析,并将处理结果(如分析后的 Excel/报告)发布为可下载链接,实现完整的闭环 Agent 工作流。
|
- **📤 工作区产物工具 (`publish_file_from_workspace`)**: Agent 可生成文件(Excel、CSV、HTML 报告等)并直接提供**持久化下载链接**。管理员还可额外获得通过 `/content/html` 接口的**聊天内 HTML 预览**链接。
|
||||||
|
- **🖼️ 交互式伪影 (Artifacts)**: 自动渲染 Agent 生成的 HTML/JS 应用程序,直接在聊天界面交互。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -85,7 +87,7 @@
|
|||||||
|
|
||||||
## ⭐ 支持与交流 (Support)
|
## ⭐ 支持与交流 (Support)
|
||||||
|
|
||||||
如果这个插件对您有所帮助,请在 [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) 项目上点个 **Star** 💫,这是对我最大的鼓励。
|
如果这个插件对您有所帮助,请在 [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) 项目上点个 **Star** 💫,这是对我最大的鼓励。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -94,7 +96,7 @@
|
|||||||
### 1) 导入函数
|
### 1) 导入函数
|
||||||
|
|
||||||
1. 打开 OpenWebUI,前往 **工作区** -> **函数**。
|
1. 打开 OpenWebUI,前往 **工作区** -> **函数**。
|
||||||
2. 点击 **+** (创建函数),完整粘贴 `github_copilot_sdk_cn.py` 的内容。
|
2. 点击 **+** (创建函数),完整粘贴 `github_copilot_sdk.py` 的内容。
|
||||||
3. 点击保存并确保已启用。
|
3. 点击保存并确保已启用。
|
||||||
|
|
||||||
### 2) 获取 Token (Get Token)
|
### 2) 获取 Token (Get Token)
|
||||||
@@ -109,10 +111,10 @@
|
|||||||
|
|
||||||
- **Agent 无法识别文件?**: 请确保已安装并启用了 Files Filter 插件,否则原始文件会被 RAG 干扰。
|
- **Agent 无法识别文件?**: 请确保已安装并启用了 Files Filter 插件,否则原始文件会被 RAG 干扰。
|
||||||
- **看不到 TODO 进度条?**: 进度条仅在 Agent 使用 `update_todo` 工具(通常是处理复杂任务)时出现。
|
- **看不到 TODO 进度条?**: 进度条仅在 Agent 使用 `update_todo` 工具(通常是处理复杂任务)时出现。
|
||||||
- **依赖安装**: 本管道会自动尝试安装 `github-copilot-sdk` (Python 包) 和 `github-copilot-cli` (官方二进制)。
|
- **依赖安装**: 本管道会自动管理 `github-copilot-sdk` (Python 包) 并优先直接使用内置的二进制 CLI,无需手动干预。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 更新日志 (Changelog)
|
## 更新日志 (Changelog)
|
||||||
|
|
||||||
完整历史记录请见 GitHub: [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui)
|
完整历史记录请见 GitHub: [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||||
|
|||||||
@@ -15,7 +15,9 @@ Pipes allow you to:
|
|||||||
|
|
||||||
## Available Pipe Plugins
|
## Available Pipe Plugins
|
||||||
|
|
||||||
- [GitHub Copilot SDK](github-copilot-sdk.md) (v0.6.2) - Official GitHub Copilot SDK integration. Features **Workspace Isolation**, **Database Persistence**, **Zero-config OpenWebUI Tool Bridge**, **BYOK** support, and **dynamic MCP discovery**. Supports streaming, multimodal, and infinite sessions.
|
- [GitHub Copilot SDK](github-copilot-sdk.md) (v0.7.0) - Official GitHub Copilot SDK integration. Features **Workspace Isolation**, **Database Persistence**, **Zero-config OpenWebUI Tool Bridge**, **BYOK** support, and **dynamic MCP discovery**. Supports streaming, multimodal, and infinite sessions. [View Deep Dive](github-copilot-sdk-deep-dive.md) | [**View Advanced Tutorial**](github-copilot-sdk-tutorial.md).
|
||||||
|
- **[Case Study: GitHub 100 Star Growth Analysis](star-prediction-example.md)** - Learn how to use the GitHub Copilot SDK Pipe with Minimax 2.1 to automatically analyze CSV data and generate project growth reports.
|
||||||
|
- **[Case Study: High-Quality Video to GIF Conversion](video-processing-example.md)** - See how the model uses system-level FFmpeg to accelerate, scale, and optimize colors for screen recordings.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,9 @@ Pipes 可以用于:
|
|||||||
|
|
||||||
## 可用的 Pipe 插件
|
## 可用的 Pipe 插件
|
||||||
|
|
||||||
- [GitHub Copilot SDK](github-copilot-sdk.zh.md) (v0.6.2) - GitHub Copilot SDK 官方集成。具备**工作区安全隔离**、**数据库持久化**、**零配置工具桥接**与**BYOK (自带 Key) 支持**。支持流式输出、打字机思考过程及无限会话。[查看深度架构解析](github-copilot-sdk-deep-dive.zh.md)。
|
- [GitHub Copilot SDK](github-copilot-sdk.zh.md) (v0.7.0) - GitHub Copilot SDK 官方集成。具备**工作区安全隔离**、**数据库持久化**、**零配置工具桥接**与**BYOK (自带 Key) 支持**。支持流式输出、打字机思考过程及无限会话。[查看深度架构解析](github-copilot-sdk-deep-dive.zh.md) | [**查看进阶实战教程**](github-copilot-sdk-tutorial.zh.md)。
|
||||||
|
- **[实战案例:GitHub 100 Star 增长预测](star-prediction-example.zh.md)** - 展示如何使用 GitHub Copilot SDK Pipe 结合 Minimax 2.1 模型,自动编写脚本分析 CSV 数据并生成详细的项目增长报告。
|
||||||
|
- **[实战案例:视频高质量 GIF 转换与加速](video-processing-example.zh.md)** - 演示模型如何通过底层 FFmpeg 工具对录屏进行加速、缩放及双阶段色彩优化处理。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
1
docs/plugins/pipes/star-prediction-chat.json
Normal file
1
docs/plugins/pipes/star-prediction-chat.json
Normal file
File diff suppressed because one or more lines are too long
BIN
docs/plugins/pipes/star-prediction-demo.gif
Normal file
BIN
docs/plugins/pipes/star-prediction-demo.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 MiB |
98
docs/plugins/pipes/star-prediction-example.md
Normal file
98
docs/plugins/pipes/star-prediction-example.md
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
# Case Study: GitHub 100 Star Growth Analysis
|
||||||
|
|
||||||
|
This case study demonstrates how to use the **GitHub Copilot SDK Pipe** with the **Minimax 2.1** model to perform a deep analysis of project growth data and predict the milestone of reaching 100 stars.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎥 Recording
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
> **Scenario**: The user uploaded project traffic CSVs and star history data for the last 14 days. The model automatically wrote a Python script for regression analysis, generated an interactive visualization, and provided a detailed growth projection report.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🛠️ Implementation
|
||||||
|
|
||||||
|
- **Plugin Type**: Pipe (GitHub Copilot SDK)
|
||||||
|
- **Base Model**: Minimax 2.1 (via Pipe integration)
|
||||||
|
- **Key Capabilities**:
|
||||||
|
- **File Processing**: Automatically reads and parses multiple CSV data files.
|
||||||
|
- **Code Generation & Execution**: On-the-fly Python scripting to calculate growth rates, conversion rates, and median trends.
|
||||||
|
- **Multimodal Output**: Generates Markdown reports, interactive HTML dashboards, and Mermaid timeline charts.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💬 Conversation Highlights
|
||||||
|
|
||||||
|
### 📥 Import Conversation
|
||||||
|
|
||||||
|
You can download the raw chat data and import it into your Open WebUI to see the full tool calls and analysis logic:
|
||||||
|
[:material-download: Download Chat JSON](./star-prediction-chat.json)
|
||||||
|
|
||||||
|
> **How to Import?**
|
||||||
|
> In Open WebUI, click your **User Avatar** (bottom of left sidebar) -> **Settings** -> **Data** -> **Import Chats**, then select the downloaded file.
|
||||||
|
|
||||||
|
### 1. Data Submission
|
||||||
|
|
||||||
|
The **User** provided traffic source distribution and uploaded:
|
||||||
|
|
||||||
|
- `Unique visitors in last 14 days.csv`
|
||||||
|
- `Total views in last 14 days.csv`
|
||||||
|
- `star-history.csv`
|
||||||
|
|
||||||
|
### 2. Analysis Execution
|
||||||
|
|
||||||
|
**Minimax 2.1** received the data and immediately formulated an analysis plan:
|
||||||
|
|
||||||
|
1. Calculate star growth trajectory and rates.
|
||||||
|
2. Analyze visitor-to-star conversion rates.
|
||||||
|
3. Build linear and median projection models.
|
||||||
|
4. Generate a milestone timeline.
|
||||||
|
|
||||||
|
### 3. Report Generation
|
||||||
|
|
||||||
|
The model produced a comprehensive report. Here are the core projections:
|
||||||
|
|
||||||
|
#### 🎯 Key Projections
|
||||||
|
|
||||||
|
| Metric | Value | Insight |
|
||||||
|
| :--- | :--- | :--- |
|
||||||
|
| **Current Stars** | 62 | 62% of the goal reached |
|
||||||
|
| **Projected Goal Date** | **March 10, 2026** | ~28 days remaining |
|
||||||
|
| **Avg Growth Rate** | 1.35 stars/day | Highly stable and predictable |
|
||||||
|
| **Recent Acceleration** | 1.92 stars/day | Growth accelerated by 42% in last 14 days |
|
||||||
|
| **Conversion Rate** | 4.19% | Significantly higher than the OS average of 1-2% |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📈 Growth Milestone Timeline
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
gantt
|
||||||
|
title 🎯 Path to 100 Stars Timeline
|
||||||
|
dateFormat YYYY-MM-DD
|
||||||
|
axisFormat %m/%d
|
||||||
|
|
||||||
|
section Completed
|
||||||
|
Launch (0 Stars) :done, 2025-12-26, 1d
|
||||||
|
Hit 50 Stars :done, 2026-02-01, 1d
|
||||||
|
|
||||||
|
section Projected
|
||||||
|
75 Stars (Proj) :active, 2026-02-19, 5d
|
||||||
|
80 Stars (Proj) : 2026-02-23, 4d
|
||||||
|
90 Stars (Proj) : 2026-03-02, 4d
|
||||||
|
🎯 100 Stars Reach :crit, 2026-03-10, 4d
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 Strategic Recommendations
|
||||||
|
|
||||||
|
1. **Strengthen OpenWebUI Partnership**: 41% of traffic comes from `openwebui.com`. Maintain high visibility on this channel.
|
||||||
|
2. **SEO Optimization**: Organic search accounts for only 6%. There is massive potential for keyword optimization in the README.
|
||||||
|
3. **Milestone Momentum**: Plan a social media push around Feb 23 (at the 80-star mark) to leverage the 42% acceleration trend.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
> [View GitHub Copilot SDK Pipe Documentation](./github-copilot-sdk.md)
|
||||||
98
docs/plugins/pipes/star-prediction-example.zh.md
Normal file
98
docs/plugins/pipes/star-prediction-example.zh.md
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
# 案例展示:GitHub 100 Star 增长预测分析
|
||||||
|
|
||||||
|
本案例展示了如何使用 **GitHub Copilot SDK Pipe** 配合 **Minimax 2.1** 模型,对项目的增长数据进行深度分析并预测达到 100 Star 的里程碑时间。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎥 效果录屏
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
> **场景描述**:用户上传了过去 14 天的项目访问流量 CSV 和 Star 历史数据。模型自动编写 Python 脚本进行回归分析,生成了可视化看板和详细的增长预测报告。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🛠️ 技术实现
|
||||||
|
|
||||||
|
- **插件类型**: Pipe (GitHub Copilot SDK)
|
||||||
|
- **底层模型**: Minimax 2.1 (通过 Pipe 接入)
|
||||||
|
- **核心能力**:
|
||||||
|
- **文件处理**: 自动读取并解析多份 CSV 数据文件。
|
||||||
|
- **代码生成与执行**: 现场编写 Python 分析代码并执行,计算增长率、转化率及中位趋势。
|
||||||
|
- **多模态输出**: 生成 Markdown 报告、HTML 交互看板以及 Mermaid 时间轴图表。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💬 对话实录
|
||||||
|
|
||||||
|
### 📥 导入对话记录
|
||||||
|
|
||||||
|
你可以下载原始对话数据并导入到你的 Open WebUI 中,查看完整的工具调用和分析逻辑:
|
||||||
|
[:material-download: 下载原始对话 JSON](./star-prediction-chat.json)
|
||||||
|
|
||||||
|
> **如何导入?**
|
||||||
|
> 在 Open WebUI 首页点击 **左侧侧边栏底部个人头像** -> **设置** -> **数据** -> **导入记录**,选择下载的文件即可。
|
||||||
|
|
||||||
|
### 1. 提交原始数据
|
||||||
|
|
||||||
|
**用户**提供了项目的流量来源分布表,并上传了:
|
||||||
|
|
||||||
|
- `Unique visitors in last 14 days.csv`
|
||||||
|
- `Total views in last 14 days.csv`
|
||||||
|
- `star-history.csv`
|
||||||
|
|
||||||
|
### 2. 模型执行分析
|
||||||
|
|
||||||
|
**Minimax 2.1** 接收到数据后,立即制定了分析计划:
|
||||||
|
|
||||||
|
1. 计算 Star 增长轨迹和增长率。
|
||||||
|
2. 分析访问者到 Star 的转化率。
|
||||||
|
3. 构建线性与中位增长模型进行预测。
|
||||||
|
4. 生成里程碑时间轴。
|
||||||
|
|
||||||
|
### 3. 生成分析报告
|
||||||
|
|
||||||
|
模型输出了一份详尽的报告,以下是其核心预测:
|
||||||
|
|
||||||
|
#### 🎯 关键预测结果
|
||||||
|
|
||||||
|
| 指标 | 数值 | 洞察 |
|
||||||
|
| :--- | :--- | :--- |
|
||||||
|
| **当前 Star 数** | 62 | 已完成目标的 62% |
|
||||||
|
| **预测达成日期** | **2026年3月10日** | 预计还有 28 天 |
|
||||||
|
| **平均增长率** | 1.35 stars/day | 极其稳定且可预测 |
|
||||||
|
| **近期加速** | 1.92 stars/day | 过去 14 天增长加速了 42% |
|
||||||
|
| **Star 转化率** | 4.19% | 远高于开源项目 1-2% 的平均水平 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📈 增长里程碑预演
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
gantt
|
||||||
|
title 🎯 冲刺 100 Stars 路径图
|
||||||
|
dateFormat YYYY-MM-DD
|
||||||
|
axisFormat %m/%d
|
||||||
|
|
||||||
|
section 已完成
|
||||||
|
项目启动 (0 Star) :done, 2025-12-26, 1d
|
||||||
|
突破 50 Star :done, 2026-02-01, 1d
|
||||||
|
|
||||||
|
section 预测中
|
||||||
|
75 Stars (预测) :active, 2026-02-19, 5d
|
||||||
|
80 Stars (预测) : 2026-02-23, 4d
|
||||||
|
90 Stars (预测) : 2026-03-02, 4d
|
||||||
|
🎯 100 Stars 达成 :crit, 2026-03-10, 4d
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 模型给出的建议
|
||||||
|
|
||||||
|
1. **强化 OpenWebUI 社区合作**:41% 的流量来自 `openwebui.com`,应持续在该渠道保持活跃。
|
||||||
|
2. **SEO 优化**:目前搜索流入仅占 6%,Readme 的关键词优化空间巨大。
|
||||||
|
3. **关键节点冲刺**:建议在 2 月 23 日(80 Star 节点)发起社交媒体宣传,利用近期 42% 的加速趋势冲刺百星。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
> [查看 GitHub Copilot SDK Pipe 开发文档](./github-copilot-sdk.zh.md)
|
||||||
1
docs/plugins/pipes/video-processing-chat.json
Normal file
1
docs/plugins/pipes/video-processing-chat.json
Normal file
File diff suppressed because one or more lines are too long
BIN
docs/plugins/pipes/video-processing-demo.gif
Normal file
BIN
docs/plugins/pipes/video-processing-demo.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 MiB |
80
docs/plugins/pipes/video-processing-example.md
Normal file
80
docs/plugins/pipes/video-processing-example.md
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
# Case Study: High-Quality Video to GIF Conversion
|
||||||
|
|
||||||
|
This case study demonstrates how to use the **GitHub Copilot SDK Pipe** with **Minimax 2.1** to perform professional-grade video processing: accelerating a video by 1.4x and converting it into a high-quality GIF under 20MB.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎥 Recording
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
> **Scenario**: The user uploaded a 38MB `.mov` recording and requested a 1.4x speed increase, 1280px width, and a file size limit of 20MB. The model automatically formulated, executed, and verified a two-pass FFmpeg workflow.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🛠️ Implementation
|
||||||
|
|
||||||
|
- **Plugin Type**: Pipe (GitHub Copilot SDK)
|
||||||
|
- **Base Model**: Minimax 2.1
|
||||||
|
- **Key Capabilities**:
|
||||||
|
- **System Tool Access**: Automatically detects and invokes `ffmpeg` within the container.
|
||||||
|
- **Two-Pass Optimization**:
|
||||||
|
1. **Pass 1**: Analyzes all frames to generate a custom 256-color palette (`palettegen`).
|
||||||
|
2. **Pass 2**: Applies the palette for superior quantization and dithering (`paletteuse`).
|
||||||
|
- **Precision Parameters**: Implements 1.4x PTS scaling, Lanczos scaling, and 20fps rate control.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💬 Conversation Highlights
|
||||||
|
|
||||||
|
### 📥 Import Conversation
|
||||||
|
|
||||||
|
You can download the raw chat data and import it into your Open WebUI to see how the model debugs and optimizes the FFmpeg parameters:
|
||||||
|
[:material-download: Download Chat JSON](./video-processing-chat.json)
|
||||||
|
|
||||||
|
> **How to Import?**
|
||||||
|
> In Open WebUI, click your **User Avatar** (bottom of left sidebar) -> **Settings** -> **Data** -> **Import Chats**, then select the downloaded file.
|
||||||
|
|
||||||
|
### 1. Processing Requirements
|
||||||
|
|
||||||
|
The **User** provided an input file and specific parameters:
|
||||||
|
|
||||||
|
- Speed: 1.4x (setpts=PTS/1.4)
|
||||||
|
- Resolution: 1280px width, auto height
|
||||||
|
- Optimization: Must use palette generation technology
|
||||||
|
- Constraint: File size < 20MB
|
||||||
|
|
||||||
|
### 2. Analysis Execution
|
||||||
|
|
||||||
|
**Minimax 2.1** generated and executed the following core logic:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Pass 1: Generate optimal palette
|
||||||
|
ffmpeg -i input.mov -vf "fps=20,scale=1280:-1:flags=lanczos,setpts=PTS/1.4,palettegen" palette.png
|
||||||
|
# Pass 2: Generate final high-quality GIF
|
||||||
|
ffmpeg -i input.mov -i palette.png -lavfi "[0:v]fps=20,scale=1280:-1:flags=lanczos,setpts=PTS/1.4[v];[v][1:v]paletteuse" output.gif
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Result Summary
|
||||||
|
|
||||||
|
| Metric | Original Video | Processed GIF | Status |
|
||||||
|
| :--- | :--- | :--- | :--- |
|
||||||
|
| **File Size** | 38 MB | **14 MB** | ✅ Success |
|
||||||
|
| **Resolution** | 3024x1898 | 1280x803 | ✅ Smooth |
|
||||||
|
| **Speed** | 1.0x | 1.4x | ✅ Accurate |
|
||||||
|
| **Color Quality** | N/A | Optimal 256-color | ✨ Crystal Clear |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 Why This Case Matters
|
||||||
|
|
||||||
|
Standard LLMs can only "tell you" how to use FFmpeg. However, a Pipe powered by the **GitHub Copilot SDK** can:
|
||||||
|
|
||||||
|
1. **Interpret** complex multimedia processing parameters.
|
||||||
|
2. **Access** raw files within the filesystem.
|
||||||
|
3. **Execute** resource-intensive binary tool tasks.
|
||||||
|
4. **Validate** that the output (size, resolution) meets the user's hard constraints.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
> [View GitHub Copilot SDK Pipe Documentation](./github-copilot-sdk.md)
|
||||||
80
docs/plugins/pipes/video-processing-example.zh.md
Normal file
80
docs/plugins/pipes/video-processing-example.zh.md
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
# 案例展示:视频高质量 GIF 转换与加速处理
|
||||||
|
|
||||||
|
本案例展示了如何使用 **GitHub Copilot SDK Pipe** 配合 **Minimax 2.1** 模型,通过底层工具(FFmpeg)对视频文件进行精细化处理:加速 1.4 倍并压缩至 20MB 以内的超高质量 GIF。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎥 效果录屏
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
> **场景描述**:用户上传了一个 38MB 的 `.mov` 录屏文件,要求加速 1.4 倍,并转换为 1280px 宽度、大小在 20MB 以内的高质量 GIF。模型自动分析了需求,编写并执行了双工作流 FFmpeg 指令。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🛠️ 技术实现
|
||||||
|
|
||||||
|
- **插件类型**: Pipe (GitHub Copilot SDK)
|
||||||
|
- **底层模型**: Minimax 2.1
|
||||||
|
- **核心能力**:
|
||||||
|
- **底层系统访问**: 自动检测并调用容器内的 `ffmpeg` 工具。
|
||||||
|
- **双阶段优化 (Two-Pass Optimization)**:
|
||||||
|
1. **阶段一**: 分析全视频帧生成 256 色最优调色板 (`palettegen`)。
|
||||||
|
2. **阶段二**: 应用调色板进行高质量量化和抖动处理 (`paletteuse`)。
|
||||||
|
- **参数精准控制**: 实现 1.4 倍 PTS 缩放、Lanczos 滤镜缩放及 20fps 帧率控制。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💬 对话实录
|
||||||
|
|
||||||
|
### 📥 导入对话记录
|
||||||
|
|
||||||
|
你可以下载原始对话数据并导入到你的 Open WebUI 中,查看模型如何一步步调试 FFmpeg 参数:
|
||||||
|
[:material-download: 下载原始对话 JSON](./video-processing-chat.json)
|
||||||
|
|
||||||
|
> **如何导入?**
|
||||||
|
> 在 Open WebUI 首页点击 **左侧侧边栏底部个人头像** -> **设置** -> **数据** -> **导入记录**,选择下载的文件即可。
|
||||||
|
|
||||||
|
### 1. 提交处理需求
|
||||||
|
|
||||||
|
**用户**指定了输入文件和详细参数:
|
||||||
|
|
||||||
|
- 加速:1.4x (setpts=PTS/1.4)
|
||||||
|
- 分辨率:宽度 1280px,等比例缩放
|
||||||
|
- 质量优化:必须使用调色板生成技术
|
||||||
|
- 约束:文件体积 < 20MB
|
||||||
|
|
||||||
|
### 2. 模型执行处理
|
||||||
|
|
||||||
|
**Minimax 2.1** 自动编写并执行了以下核心逻辑:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 生成优化调色板
|
||||||
|
ffmpeg -i input.mov -vf "fps=20,scale=1280:-1:flags=lanczos,setpts=PTS/1.4,palettegen" palette.png
|
||||||
|
# 生成最终高质量 GIF
|
||||||
|
ffmpeg -i input.mov -i palette.png -lavfi "[0:v]fps=20,scale=1280:-1:flags=lanczos,setpts=PTS/1.4[v];[v][1:v]paletteuse" output.gif
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 处理结果摘要
|
||||||
|
|
||||||
|
| 指标 | 原始视频 | 处理后 GIF | 状态 |
|
||||||
|
| :--- | :--- | :--- | :--- |
|
||||||
|
| **文件大小** | 38 MB | **14 MB** | ✅ 达标 |
|
||||||
|
| **分辨率** | 3024x1898 | 1280x803 | ✅ 缩放平滑 |
|
||||||
|
| **播放速度** | 1.0x | 1.4x | ✅ 节奏紧凑 |
|
||||||
|
| **色彩质量** | N/A | 256色最优量化 | ✨ 极其清晰 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 为什么这个案例很有意义?
|
||||||
|
|
||||||
|
传统的 LLM 只能“告诉你”怎么做,而基于 **GitHub Copilot SDK** 的 Pipe 能够:
|
||||||
|
|
||||||
|
1. **理解** 复杂的多媒体处理参数。
|
||||||
|
2. **感知** 文件系统中的原始素材。
|
||||||
|
3. **执行** 耗时、耗能的二进制工具任务。
|
||||||
|
4. **验证** 产出物(体积、分辨率)是否符合用户的最终约束。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
> [查看 GitHub Copilot SDK Pipe 开发文档](./github-copilot-sdk.zh.md)
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# Prompt Library
|
# Prompt Library
|
||||||
|
|
||||||
Welcome to the OpenWebUI Extras Prompt Library! Find carefully crafted prompts for various use cases.
|
Welcome to the OpenWebUI Extensions Prompt Library! Find carefully crafted prompts for various use cases.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# 提示词库
|
# 提示词库
|
||||||
|
|
||||||
欢迎来到 OpenWebUI Extras 提示词库!在这里可以找到针对不同场景精心设计的提示词。
|
欢迎来到 OpenWebUI Extensions 提示词库!在这里可以找到针对不同场景精心设计的提示词。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -190,4 +190,4 @@ python scripts/extract_plugin_versions.py --json --output versions.json
|
|||||||
## Author
|
## Author
|
||||||
|
|
||||||
Fu-Jie
|
Fu-Jie
|
||||||
GitHub: [Fu-Jie/awesome-openwebui](https://github.com/Fu-Jie/awesome-openwebui)
|
GitHub: [Fu-Jie/openwebui-extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||||
|
|||||||
@@ -188,4 +188,4 @@ python scripts/extract_plugin_versions.py --json --output versions.json
|
|||||||
## 作者
|
## 作者
|
||||||
|
|
||||||
Fu-Jie
|
Fu-Jie
|
||||||
GitHub: [Fu-Jie/awesome-openwebui](https://github.com/Fu-Jie/awesome-openwebui)
|
GitHub: [Fu-Jie/openwebui-extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||||
|
|||||||
344
docs/stats-history.json
Normal file
344
docs/stats-history.json
Normal file
@@ -0,0 +1,344 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"date": "2026-01-05",
|
||||||
|
"total_downloads": 748,
|
||||||
|
"total_views": 7896,
|
||||||
|
"total_upvotes": 54,
|
||||||
|
"total_saves": 44,
|
||||||
|
"followers": 35,
|
||||||
|
"points": 63
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-06",
|
||||||
|
"total_downloads": 830,
|
||||||
|
"total_views": 8847,
|
||||||
|
"total_upvotes": 54,
|
||||||
|
"total_saves": 48,
|
||||||
|
"followers": 45,
|
||||||
|
"points": 62
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-07",
|
||||||
|
"total_downloads": 915,
|
||||||
|
"total_views": 9637,
|
||||||
|
"total_upvotes": 55,
|
||||||
|
"total_saves": 50,
|
||||||
|
"followers": 50,
|
||||||
|
"points": 63
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-08",
|
||||||
|
"total_downloads": 972,
|
||||||
|
"total_views": 10200,
|
||||||
|
"total_upvotes": 60,
|
||||||
|
"total_saves": 53,
|
||||||
|
"followers": 54,
|
||||||
|
"points": 68
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-09",
|
||||||
|
"total_downloads": 1016,
|
||||||
|
"total_views": 10831,
|
||||||
|
"total_upvotes": 62,
|
||||||
|
"total_saves": 56,
|
||||||
|
"followers": 59,
|
||||||
|
"points": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-10",
|
||||||
|
"total_downloads": 1087,
|
||||||
|
"total_views": 11853,
|
||||||
|
"total_upvotes": 68,
|
||||||
|
"total_saves": 67,
|
||||||
|
"followers": 75,
|
||||||
|
"points": 77
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-11",
|
||||||
|
"total_downloads": 1182,
|
||||||
|
"total_views": 13045,
|
||||||
|
"total_upvotes": 79,
|
||||||
|
"total_saves": 77,
|
||||||
|
"followers": 82,
|
||||||
|
"points": 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-12",
|
||||||
|
"total_downloads": 1256,
|
||||||
|
"total_views": 13998,
|
||||||
|
"total_upvotes": 87,
|
||||||
|
"total_saves": 85,
|
||||||
|
"followers": 91,
|
||||||
|
"points": 98
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-13",
|
||||||
|
"total_downloads": 1343,
|
||||||
|
"total_views": 15618,
|
||||||
|
"total_upvotes": 88,
|
||||||
|
"total_saves": 96,
|
||||||
|
"followers": 99,
|
||||||
|
"points": 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-14",
|
||||||
|
"total_downloads": 1460,
|
||||||
|
"total_views": 17211,
|
||||||
|
"total_upvotes": 93,
|
||||||
|
"total_saves": 109,
|
||||||
|
"followers": 104,
|
||||||
|
"points": 106
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-15",
|
||||||
|
"total_downloads": 1527,
|
||||||
|
"total_views": 18153,
|
||||||
|
"total_upvotes": 93,
|
||||||
|
"total_saves": 109,
|
||||||
|
"followers": 108,
|
||||||
|
"points": 106
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-16",
|
||||||
|
"total_downloads": 1598,
|
||||||
|
"total_views": 19406,
|
||||||
|
"total_upvotes": 94,
|
||||||
|
"total_saves": 121,
|
||||||
|
"followers": 114,
|
||||||
|
"points": 108
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-17",
|
||||||
|
"total_downloads": 1668,
|
||||||
|
"total_views": 20118,
|
||||||
|
"total_upvotes": 99,
|
||||||
|
"total_saves": 127,
|
||||||
|
"followers": 120,
|
||||||
|
"points": 113
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-18",
|
||||||
|
"total_downloads": 1766,
|
||||||
|
"total_views": 20931,
|
||||||
|
"total_upvotes": 119,
|
||||||
|
"total_saves": 131,
|
||||||
|
"followers": 129,
|
||||||
|
"points": 133
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-19",
|
||||||
|
"total_downloads": 1834,
|
||||||
|
"total_views": 21730,
|
||||||
|
"total_upvotes": 120,
|
||||||
|
"total_saves": 143,
|
||||||
|
"followers": 135,
|
||||||
|
"points": 134
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-20",
|
||||||
|
"total_downloads": 1922,
|
||||||
|
"total_views": 22431,
|
||||||
|
"total_upvotes": 121,
|
||||||
|
"total_saves": 150,
|
||||||
|
"followers": 140,
|
||||||
|
"points": 135
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-21",
|
||||||
|
"total_downloads": 1998,
|
||||||
|
"total_views": 23327,
|
||||||
|
"total_upvotes": 121,
|
||||||
|
"total_saves": 154,
|
||||||
|
"followers": 146,
|
||||||
|
"points": 135
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-22",
|
||||||
|
"total_downloads": 2066,
|
||||||
|
"total_views": 24204,
|
||||||
|
"total_upvotes": 129,
|
||||||
|
"total_saves": 164,
|
||||||
|
"followers": 152,
|
||||||
|
"points": 143
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-23",
|
||||||
|
"total_downloads": 2182,
|
||||||
|
"total_views": 25156,
|
||||||
|
"total_upvotes": 129,
|
||||||
|
"total_saves": 165,
|
||||||
|
"followers": 154,
|
||||||
|
"points": 143
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-24",
|
||||||
|
"total_downloads": 2257,
|
||||||
|
"total_views": 25853,
|
||||||
|
"total_upvotes": 129,
|
||||||
|
"total_saves": 173,
|
||||||
|
"followers": 156,
|
||||||
|
"points": 143
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-25",
|
||||||
|
"total_downloads": 2334,
|
||||||
|
"total_views": 26665,
|
||||||
|
"total_upvotes": 133,
|
||||||
|
"total_saves": 176,
|
||||||
|
"followers": 157,
|
||||||
|
"points": 147
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-26",
|
||||||
|
"total_downloads": 2448,
|
||||||
|
"total_views": 28274,
|
||||||
|
"total_upvotes": 141,
|
||||||
|
"total_saves": 188,
|
||||||
|
"followers": 163,
|
||||||
|
"points": 157
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-27",
|
||||||
|
"total_downloads": 2538,
|
||||||
|
"total_views": 29641,
|
||||||
|
"total_upvotes": 150,
|
||||||
|
"total_saves": 197,
|
||||||
|
"followers": 165,
|
||||||
|
"points": 166
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-28",
|
||||||
|
"total_downloads": 2629,
|
||||||
|
"total_views": 30952,
|
||||||
|
"total_upvotes": 153,
|
||||||
|
"total_saves": 202,
|
||||||
|
"followers": 167,
|
||||||
|
"points": 170
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-29",
|
||||||
|
"total_downloads": 2780,
|
||||||
|
"total_views": 32888,
|
||||||
|
"total_upvotes": 165,
|
||||||
|
"total_saves": 213,
|
||||||
|
"followers": 171,
|
||||||
|
"points": 186
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-30",
|
||||||
|
"total_downloads": 2877,
|
||||||
|
"total_views": 34134,
|
||||||
|
"total_upvotes": 167,
|
||||||
|
"total_saves": 219,
|
||||||
|
"followers": 175,
|
||||||
|
"points": 194
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-01-31",
|
||||||
|
"total_downloads": 2979,
|
||||||
|
"total_views": 35248,
|
||||||
|
"total_upvotes": 167,
|
||||||
|
"total_saves": 221,
|
||||||
|
"followers": 176,
|
||||||
|
"points": 197
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-02-01",
|
||||||
|
"total_downloads": 3030,
|
||||||
|
"total_views": 35805,
|
||||||
|
"total_upvotes": 167,
|
||||||
|
"total_saves": 222,
|
||||||
|
"followers": 177,
|
||||||
|
"points": 197
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-02-02",
|
||||||
|
"total_downloads": 3168,
|
||||||
|
"total_views": 37424,
|
||||||
|
"total_upvotes": 169,
|
||||||
|
"total_saves": 235,
|
||||||
|
"followers": 181,
|
||||||
|
"points": 200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-02-03",
|
||||||
|
"total_downloads": 3236,
|
||||||
|
"total_views": 38133,
|
||||||
|
"total_upvotes": 169,
|
||||||
|
"total_saves": 235,
|
||||||
|
"followers": 183,
|
||||||
|
"points": 202
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-02-04",
|
||||||
|
"total_downloads": 3374,
|
||||||
|
"total_views": 39440,
|
||||||
|
"total_upvotes": 210,
|
||||||
|
"total_saves": 239,
|
||||||
|
"followers": 188,
|
||||||
|
"points": 243
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-02-05",
|
||||||
|
"total_downloads": 3522,
|
||||||
|
"total_views": 40964,
|
||||||
|
"total_upvotes": 211,
|
||||||
|
"total_saves": 248,
|
||||||
|
"followers": 196,
|
||||||
|
"points": 244
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-02-06",
|
||||||
|
"total_downloads": 3663,
|
||||||
|
"total_views": 43171,
|
||||||
|
"total_upvotes": 213,
|
||||||
|
"total_saves": 253,
|
||||||
|
"followers": 202,
|
||||||
|
"points": 246
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-02-07",
|
||||||
|
"total_downloads": 3779,
|
||||||
|
"total_views": 44354,
|
||||||
|
"total_upvotes": 221,
|
||||||
|
"total_saves": 258,
|
||||||
|
"followers": 205,
|
||||||
|
"points": 258
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-02-08",
|
||||||
|
"total_downloads": 3872,
|
||||||
|
"total_views": 45255,
|
||||||
|
"total_upvotes": 221,
|
||||||
|
"total_saves": 263,
|
||||||
|
"followers": 207,
|
||||||
|
"points": 259
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-02-09",
|
||||||
|
"total_downloads": 3996,
|
||||||
|
"total_views": 46645,
|
||||||
|
"total_upvotes": 224,
|
||||||
|
"total_saves": 267,
|
||||||
|
"followers": 214,
|
||||||
|
"points": 262
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-02-10",
|
||||||
|
"total_downloads": 4131,
|
||||||
|
"total_views": 48876,
|
||||||
|
"total_upvotes": 230,
|
||||||
|
"total_saves": 273,
|
||||||
|
"followers": 220,
|
||||||
|
"points": 270
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-02-11",
|
||||||
|
"total_downloads": 4161,
|
||||||
|
"total_views": 45988,
|
||||||
|
"total_upvotes": 231,
|
||||||
|
"total_saves": 274,
|
||||||
|
"followers": 220,
|
||||||
|
"points": 271
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
/* Custom styles for OpenWebUI Extras Documentation */
|
/* Custom styles for OpenWebUI Extensions Documentation */
|
||||||
|
|
||||||
/* Hero Section */
|
/* Hero Section */
|
||||||
.hero-section {
|
.hero-section {
|
||||||
|
|||||||
14
mkdocs.yml
14
mkdocs.yml
@@ -1,17 +1,17 @@
|
|||||||
# MkDocs Configuration for OpenWebUI Extras
|
# MkDocs Configuration for OpenWebUI Extras
|
||||||
# Site Information
|
# Site Information
|
||||||
site_name: OpenWebUI Extras
|
site_name: OpenWebUI Extensions
|
||||||
site_description: A collection of enhancements, plugins, and prompts for OpenWebUI
|
site_description: A collection of enhancements, plugins, and prompts for OpenWebUI
|
||||||
site_author: Fu-Jie
|
site_author: Fu-Jie
|
||||||
site_url: https://fu-jie.github.io/awesome-openwebui/
|
site_url: https://fu-jie.github.io/openwebui-extensions/
|
||||||
|
|
||||||
# Repository
|
# Repository
|
||||||
repo_name: Fu-Jie/awesome-openwebui
|
repo_name: Fu-Jie/openwebui-extensions
|
||||||
repo_url: https://github.com/Fu-Jie/awesome-openwebui
|
repo_url: https://github.com/Fu-Jie/openwebui-extensions
|
||||||
edit_uri: edit/main/docs/
|
edit_uri: edit/main/docs/
|
||||||
|
|
||||||
# Copyright
|
# Copyright
|
||||||
copyright: Copyright © 2024 OpenWebUI Extras Contributors
|
copyright: Copyright © 2024 OpenWebUI Extensions Contributors
|
||||||
|
|
||||||
# Theme Configuration
|
# Theme Configuration
|
||||||
theme:
|
theme:
|
||||||
@@ -142,7 +142,7 @@ markdown_extensions:
|
|||||||
normalize_issue_symbols: true
|
normalize_issue_symbols: true
|
||||||
repo_url_shorthand: true
|
repo_url_shorthand: true
|
||||||
user: Fu-Jie
|
user: Fu-Jie
|
||||||
repo: awesome-openwebui
|
repo: openwebui-extensions
|
||||||
- pymdownx.mark
|
- pymdownx.mark
|
||||||
- pymdownx.smartsymbols
|
- pymdownx.smartsymbols
|
||||||
- pymdownx.snippets
|
- pymdownx.snippets
|
||||||
@@ -162,7 +162,7 @@ markdown_extensions:
|
|||||||
extra:
|
extra:
|
||||||
social:
|
social:
|
||||||
- icon: fontawesome/brands/github
|
- icon: fontawesome/brands/github
|
||||||
link: https://github.com/Fu-Jie/awesome-openwebui
|
link: https://github.com/Fu-Jie/openwebui-extensions
|
||||||
|
|
||||||
generator: false
|
generator: false
|
||||||
|
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ Each plugin should include:
|
|||||||
## Author
|
## Author
|
||||||
|
|
||||||
Fu-Jie
|
Fu-Jie
|
||||||
GitHub: [Fu-Jie/awesome-openwebui](https://github.com/Fu-Jie/awesome-openwebui)
|
GitHub: [Fu-Jie/openwebui-extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ plugins/
|
|||||||
## 作者
|
## 作者
|
||||||
|
|
||||||
Fu-Jie
|
Fu-Jie
|
||||||
GitHub: [Fu-Jie/awesome-openwebui](https://github.com/Fu-Jie/awesome-openwebui)
|
GitHub: [Fu-Jie/openwebui-extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -229,4 +229,4 @@ except Exception as e:
|
|||||||
## Author
|
## Author
|
||||||
|
|
||||||
Fu-Jie
|
Fu-Jie
|
||||||
GitHub: [Fu-Jie/awesome-openwebui](https://github.com/Fu-Jie/awesome-openwebui)
|
GitHub: [Fu-Jie/openwebui-extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||||
|
|||||||
@@ -228,4 +228,4 @@ except Exception as e:
|
|||||||
## 作者
|
## 作者
|
||||||
|
|
||||||
Fu-Jie
|
Fu-Jie
|
||||||
GitHub: [Fu-Jie/awesome-openwebui](https://github.com/Fu-Jie/awesome-openwebui)
|
GitHub: [Fu-Jie/openwebui-extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# 🌊 Deep Dive
|
# 🌊 Deep Dive
|
||||||
|
|
||||||
**Author:** [Fu-Jie](https://github.com/Fu-Jie/awesome-openwebui) | **Version:** 1.0.0 | **Project:** [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) | **License:** MIT
|
**Author:** [Fu-Jie](https://github.com/Fu-Jie/openwebui-extensions) | **Version:** 1.0.0 | **Project:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **License:** MIT
|
||||||
|
|
||||||
A comprehensive thinking lens that dives deep into any content - from context to logic, insights, and action paths.
|
A comprehensive thinking lens that dives deep into any content - from context to logic, insights, and action paths.
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ A comprehensive thinking lens that dives deep into any content - from context to
|
|||||||
|
|
||||||
## ⭐ Support
|
## ⭐ Support
|
||||||
|
|
||||||
If this plugin has been useful, a star on [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) is a big motivation for me. Thank you for the support.
|
If this plugin has been useful, a star on [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) is a big motivation for me. Thank you for the support.
|
||||||
|
|
||||||
## 🌗 Theme Support
|
## 🌗 Theme Support
|
||||||
|
|
||||||
@@ -91,8 +91,8 @@ The plugin generates a structured thinking timeline:
|
|||||||
- **Plugin not working?**: Check if the filter/action is enabled in the model settings.
|
- **Plugin not working?**: Check if the filter/action is enabled in the model settings.
|
||||||
- **Debug Logs**: Enable `SHOW_STATUS` in Valves to see progress updates.
|
- **Debug Logs**: Enable `SHOW_STATUS` in Valves to see progress updates.
|
||||||
- **Error Messages**: If you see an error, please copy the full error message and report it.
|
- **Error Messages**: If you see an error, please copy the full error message and report it.
|
||||||
- **Submit an Issue**: If you encounter any problems, please submit an issue on GitHub: [Awesome OpenWebUI Issues](https://github.com/Fu-Jie/awesome-openwebui/issues)
|
- **Submit an Issue**: If you encounter any problems, please submit an issue on GitHub: [OpenWebUI Extensions Issues](https://github.com/Fu-Jie/openwebui-extensions/issues)
|
||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
|
|
||||||
See the full history on GitHub: [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui)
|
See the full history on GitHub: [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# 📖 精读
|
# 📖 精读
|
||||||
|
|
||||||
**作者:** [Fu-Jie](https://github.com/Fu-Jie/awesome-openwebui) | **版本:** 1.0.0 | **项目:** [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) | **许可证:** MIT
|
**作者:** [Fu-Jie](https://github.com/Fu-Jie/openwebui-extensions) | **版本:** 1.0.0 | **项目:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **许可证:** MIT
|
||||||
|
|
||||||
全方位的思维透镜 —— 从背景全景到逻辑脉络,从深度洞察到行动路径。
|
全方位的思维透镜 —— 从背景全景到逻辑脉络,从深度洞察到行动路径。
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
|
|
||||||
## ⭐ 支持
|
## ⭐ 支持
|
||||||
|
|
||||||
如果这个插件对你有帮助,欢迎到 [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) 点个 Star,这将是我持续改进的动力,感谢支持。
|
如果这个插件对你有帮助,欢迎到 [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) 点个 Star,这将是我持续改进的动力,感谢支持。
|
||||||
|
|
||||||
## 🌗 主题支持
|
## 🌗 主题支持
|
||||||
|
|
||||||
@@ -91,8 +91,8 @@
|
|||||||
- **插件不工作?**: 请检查是否在模型设置中启用了该过滤器/动作。
|
- **插件不工作?**: 请检查是否在模型设置中启用了该过滤器/动作。
|
||||||
- **调试日志**: 在 Valves 中启用 `SHOW_STATUS` 以查看进度更新。
|
- **调试日志**: 在 Valves 中启用 `SHOW_STATUS` 以查看进度更新。
|
||||||
- **错误信息**: 如果看到错误,请复制完整的错误信息并报告。
|
- **错误信息**: 如果看到错误,请复制完整的错误信息并报告。
|
||||||
- **提交 Issue**: 如果遇到任何问题,请在 GitHub 上提交 Issue:[Awesome OpenWebUI Issues](https://github.com/Fu-Jie/awesome-openwebui/issues)
|
- **提交 Issue**: 如果遇到任何问题,请在 GitHub 上提交 Issue:[OpenWebUI Extensions Issues](https://github.com/Fu-Jie/openwebui-extensions/issues)
|
||||||
|
|
||||||
## 更新日志
|
## 更新日志
|
||||||
|
|
||||||
完整历史请查看 GitHub 项目: [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui)
|
完整历史请查看 GitHub 项目: [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
"""
|
"""
|
||||||
title: Deep Dive
|
title: Deep Dive
|
||||||
author: Fu-Jie
|
author: Fu-Jie
|
||||||
author_url: https://github.com/Fu-Jie/awesome-openwebui
|
author_url: https://github.com/Fu-Jie/openwebui-extensions
|
||||||
funding_url: https://github.com/open-webui
|
funding_url: https://github.com/open-webui
|
||||||
version: 1.0.0
|
version: 1.0.0
|
||||||
icon_url: data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiA3djE0Ii8+PHBhdGggZD0iTTMgMThhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNWE0IDQgMCAwIDEgNCA0IDQgNCAwIDAgMSA0LTRoNWExIDEgMCAwIDEgMSAxdjEzYTEgMSAwIDAgMS0xIDFoLTZhMyAzIDAgMCAwLTMgMyAzIDMgMCAwIDAtMy0zeiIvPjxwYXRoIGQ9Ik02IDEyaDIiLz48cGF0aCBkPSJNMTYgMTJoMiIvPjwvc3ZnPg==
|
icon_url: data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiA3djE0Ii8+PHBhdGggZD0iTTMgMThhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNWE0IDQgMCAwIDEgNCA0IDQgNCAwIDAgMSA0LTRoNWExIDEgMCAwIDEgMSAxdjEzYTEgMSAwIDAgMS0xIDFoLTZhMyAzIDAgMCAwLTMgMyAzIDMgMCAwIDAtMy0zeiIvPjxwYXRoIGQ9Ik02IDEyaDIiLz48cGF0aCBkPSJNMTYgMTJoMiIvPjwvc3ZnPg==
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
"""
|
"""
|
||||||
title: 精读
|
title: 精读
|
||||||
author: Fu-Jie
|
author: Fu-Jie
|
||||||
author_url: https://github.com/Fu-Jie/awesome-openwebui
|
author_url: https://github.com/Fu-Jie/openwebui-extensions
|
||||||
funding_url: https://github.com/open-webui
|
funding_url: https://github.com/open-webui
|
||||||
version: 1.0.0
|
version: 1.0.0
|
||||||
icon_url: data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiA3djE0Ii8+PHBhdGggZD0iTTMgMThhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNWE0IDQgMCAwIDEgNCA0IDQgNCAwIDAgMSA0LTRoNWExIDEgMCAwIDEgMSAxdjEzYTEgMSAwIDAgMS0xIDFoLTZhMyAzIDAgMCAwLTMgMyAzIDMgMCAwIDAtMy0zeiIvPjxwYXRoIGQ9Ik02IDEyaDIiLz48cGF0aCBkPSJNMTYgMTJoMiIvPjwvc3ZnPg==
|
icon_url: data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiA3djE0Ii8+PHBhdGggZD0iTTMgMThhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNWE0IDQgMCAwIDEgNCA0IDQgNCAwIDAgMSA0LTRoNWExIDEgMCAwIDEgMSAxdjEzYTEgMSAwIDAgMS0xIDFoLTZhMyAzIDAgMCAwLTMgMyAzIDMgMCAwIDAtMy0zeiIvPjxwYXRoIGQ9Ik02IDEyaDIiLz48cGF0aCBkPSJNMTYgMTJoMiIvPjwvc3ZnPg==
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# 📝 Export to Word (Enhanced)
|
# 📝 Export to Word (Enhanced)
|
||||||
|
|
||||||
**Author:** [Fu-Jie](https://github.com/Fu-Jie/awesome-openwebui) | **Version:** 0.4.4 | **Project:** [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) | **License:** MIT
|
**Author:** [Fu-Jie](https://github.com/Fu-Jie/openwebui-extensions) | **Version:** 0.4.4 | **Project:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **License:** MIT
|
||||||
|
|
||||||
Export conversation to Word (.docx) with **syntax highlighting**, **native math equations**, **Mermaid diagrams**, **citations**, and **enhanced table formatting**.
|
Export conversation to Word (.docx) with **syntax highlighting**, **native math equations**, **Mermaid diagrams**, **citations**, and **enhanced table formatting**.
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@ Export conversation to Word (.docx) with **syntax highlighting**, **native math
|
|||||||
|
|
||||||
## ⭐ Support
|
## ⭐ Support
|
||||||
|
|
||||||
If this plugin has been useful, a star on [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) is a big motivation for me. Thank you for the support.
|
If this plugin has been useful, a star on [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) is a big motivation for me. Thank you for the support.
|
||||||
|
|
||||||
## 🛠️ Supported Markdown Syntax
|
## 🛠️ Supported Markdown Syntax
|
||||||
|
|
||||||
@@ -81,8 +81,8 @@ If this plugin has been useful, a star on [Awesome OpenWebUI](https://github.com
|
|||||||
- **Plugin not working?**: Check if the filter/action is enabled in the model settings.
|
- **Plugin not working?**: Check if the filter/action is enabled in the model settings.
|
||||||
- **Debug Logs**: Check the browser console (F12) for detailed logs if available.
|
- **Debug Logs**: Check the browser console (F12) for detailed logs if available.
|
||||||
- **Error Messages**: If you see an error, please copy the full error message and report it.
|
- **Error Messages**: If you see an error, please copy the full error message and report it.
|
||||||
- **Submit an Issue**: If you encounter any problems, please submit an issue on GitHub: [Awesome OpenWebUI Issues](https://github.com/Fu-Jie/awesome-openwebui/issues)
|
- **Submit an Issue**: If you encounter any problems, please submit an issue on GitHub: [OpenWebUI Extensions Issues](https://github.com/Fu-Jie/openwebui-extensions/issues)
|
||||||
|
|
||||||
## 📝 Changelog
|
## 📝 Changelog
|
||||||
|
|
||||||
See the full history on GitHub: [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui)
|
See the full history on GitHub: [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# 📝 导出为 Word (增强版)
|
# 📝 导出为 Word (增强版)
|
||||||
|
|
||||||
**Author:** [Fu-Jie](https://github.com/Fu-Jie/awesome-openwebui) | **Version:** 0.4.4 | **Project:** [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) | **许可证:** MIT
|
**Author:** [Fu-Jie](https://github.com/Fu-Jie/openwebui-extensions) | **Version:** 0.4.4 | **Project:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **许可证:** MIT
|
||||||
|
|
||||||
将对话导出为 Word (.docx),支持**代码语法高亮**、**原生数学公式**、**Mermaid 图表**、**引用参考**和**增强表格格式**。
|
将对话导出为 Word (.docx),支持**代码语法高亮**、**原生数学公式**、**Mermaid 图表**、**引用参考**和**增强表格格式**。
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
|
|
||||||
## ⭐ 支持
|
## ⭐ 支持
|
||||||
|
|
||||||
如果这个插件对你有帮助,欢迎到 [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) 点个 Star,这将是我持续改进的动力,感谢支持。
|
如果这个插件对你有帮助,欢迎到 [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) 点个 Star,这将是我持续改进的动力,感谢支持。
|
||||||
|
|
||||||
## 🛠️ 支持的 Markdown 语法
|
## 🛠️ 支持的 Markdown 语法
|
||||||
|
|
||||||
@@ -81,8 +81,8 @@
|
|||||||
- **插件不工作?**: 请检查是否在模型设置中启用了该过滤器/动作。
|
- **插件不工作?**: 请检查是否在模型设置中启用了该过滤器/动作。
|
||||||
- **调试日志**: 请查看浏览器控制台 (F12) 获取详细日志(如果可用)。
|
- **调试日志**: 请查看浏览器控制台 (F12) 获取详细日志(如果可用)。
|
||||||
- **错误信息**: 如果看到错误,请复制完整的错误信息并报告。
|
- **错误信息**: 如果看到错误,请复制完整的错误信息并报告。
|
||||||
- **提交 Issue**: 如果遇到任何问题,请在 GitHub 上提交 Issue:[Awesome OpenWebUI Issues](https://github.com/Fu-Jie/awesome-openwebui/issues)
|
- **提交 Issue**: 如果遇到任何问题,请在 GitHub 上提交 Issue:[OpenWebUI Extensions Issues](https://github.com/Fu-Jie/openwebui-extensions/issues)
|
||||||
|
|
||||||
## 📝 更新日志
|
## 📝 更新日志
|
||||||
|
|
||||||
完整历史请查看 GitHub 项目: [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui)
|
完整历史请查看 GitHub 项目: [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
"""
|
"""
|
||||||
title: Export to Word Enhanced
|
title: Export to Word Enhanced
|
||||||
author: Fu-Jie
|
author: Fu-Jie
|
||||||
author_url: https://github.com/Fu-Jie/awesome-openwebui
|
author_url: https://github.com/Fu-Jie/openwebui-extensions
|
||||||
funding_url: https://github.com/open-webui
|
funding_url: https://github.com/open-webui
|
||||||
version: 0.4.4
|
version: 0.4.4
|
||||||
openwebui_id: fca6a315-2a45-42cc-8c96-55cbc85f87f2
|
openwebui_id: fca6a315-2a45-42cc-8c96-55cbc85f87f2
|
||||||
icon_url: data:image/svg+xml;base64,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgZmlsbD0ibm9uZSIKICBzdHJva2U9ImN1cnJlbnRDb2xvciIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAgOUg4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxM0g4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxN0g4IiAvPgo8L3N2Zz4K
|
icon_url: data:image/svg+xml;base64,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgZmlsbD0ibm9uZSIKICBzdHJva2U9ImN1cnJlbnRDb2xvciIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAgOUg4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxM0g4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxN0g4IiAvPgo8L3N2Zz4K
|
||||||
requirements: python-docx, Pygments, latex2mathml, mathml2omml
|
requirements: python-docx, Pygments, latex2mathml, mathml2omml
|
||||||
description: Export current conversation from Markdown to Word (.docx) with Mermaid diagrams rendered client-side (Mermaid.js, SVG+PNG), LaTeX math, real hyperlinks, improved tables, syntax highlighting, and blockquote support.
|
description: Export current conversation from Markdown to Word (.docx) with Mermaid diagrams rendered client-side (Mermaid.js, SVG+PNG), LaTeX math, real hyperlinks, improved tables, syntax highlighting, and blockquote support.
|
||||||
notes: Enhanced version based on rbb-dev's fork (https://github.com/rbb-dev/awesome-openwebui). Added i18n support, configurable fonts/colors, and parallel PNG rendering optimization.
|
notes: Enhanced version based on rbb-dev's fork (https://github.com/rbb-dev/openwebui-extensions). Added i18n support, configurable fonts/colors, and parallel PNG rendering optimization.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
"""
|
"""
|
||||||
title: 导出为Word增强版
|
title: 导出为Word增强版
|
||||||
author: Fu-Jie
|
author: Fu-Jie
|
||||||
author_url: https://github.com/Fu-Jie/awesome-openwebui
|
author_url: https://github.com/Fu-Jie/openwebui-extensions
|
||||||
funding_url: https://github.com/open-webui
|
funding_url: https://github.com/open-webui
|
||||||
version: 0.4.4
|
version: 0.4.4
|
||||||
openwebui_id: 8a6306c0-d005-4e46-aaae-8db3532c9ed5
|
openwebui_id: 8a6306c0-d005-4e46-aaae-8db3532c9ed5
|
||||||
icon_url: data:image/svg+xml;base64,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgZmlsbD0ibm9uZSIKICBzdHJva2U9ImN1cnJlbnRDb2xvciIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAgOUg4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxM0g4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxN0g4IiAvPgo8L3N2Zz4K
|
icon_url: data:image/svg+xml;base64,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgZmlsbD0ibm9uZSIKICBzdHJva2U9ImN1cnJlbnRDb2xvciIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAgOUg4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxM0g4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxN0g4IiAvPgo8L3N2Zz4K
|
||||||
requirements: python-docx, Pygments, latex2mathml, mathml2omml
|
requirements: python-docx, Pygments, latex2mathml, mathml2omml
|
||||||
description: 将对话导出为 Word (.docx),支持 Mermaid 图表 (客户端渲染 SVG+PNG)、LaTeX 数学公式、真实超链接、增强表格格式、代码高亮和引用块。
|
description: 将对话导出为 Word (.docx),支持 Mermaid 图表 (客户端渲染 SVG+PNG)、LaTeX 数学公式、真实超链接、增强表格格式、代码高亮和引用块。
|
||||||
notes: 基于 rbb-dev 增强版 (https://github.com/rbb-dev/awesome-openwebui) 进一步优化。新增多语言支持、可配置字体/颜色、并行 PNG 渲染优化。
|
notes: 基于 rbb-dev 增强版 (https://github.com/rbb-dev/openwebui-extensions) 进一步优化。新增多语言支持、可配置字体/颜色、并行 PNG 渲染优化。
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user