docs: add full zh translations for site
Co-authored-by: Fu-Jie <33599649+Fu-Jie@users.noreply.github.com>
This commit is contained in:
67
docs/plugins/actions/export-to-excel.zh.md
Normal file
67
docs/plugins/actions/export-to-excel.zh.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# Export to Excel(导出到 Excel)
|
||||
|
||||
<span class="category-badge action">Action</span>
|
||||
<span class="version-badge">v1.0.0</span>
|
||||
|
||||
将聊天记录导出为 Excel 表格,便于分析、归档和分享。
|
||||
|
||||
---
|
||||
|
||||
## 概览
|
||||
|
||||
Export to Excel 插件可以把你的聊天记录下载为 Excel 文件,适用于:
|
||||
|
||||
- 归档重要对话
|
||||
- 分析聊天数据
|
||||
- 与同事共享对话内容
|
||||
- 将 AI 辅助的研究整理成文档
|
||||
|
||||
## 功能特性
|
||||
|
||||
- :material-file-excel: **Excel 导出**:标准 `.xlsx` 格式
|
||||
- :material-table: **格式化输出**:整洁的表格结构
|
||||
- :material-download: **一键下载**:即时生成文件
|
||||
- :material-history: **完整历史**:导出完整会话内容
|
||||
|
||||
---
|
||||
|
||||
## 安装
|
||||
|
||||
1. 下载插件文件:[`export_to_excel.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/export_to_excel)
|
||||
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
||||
3. 启用插件
|
||||
|
||||
---
|
||||
|
||||
## 使用方法
|
||||
|
||||
1. 打开想要导出的对话
|
||||
2. 点击消息操作栏中的 **Export** 按钮
|
||||
3. Excel 文件会自动下载
|
||||
|
||||
---
|
||||
|
||||
## 导出格式
|
||||
|
||||
生成的 Excel 文件包含:
|
||||
|
||||
| 列 | 说明 |
|
||||
|--------|-------------|
|
||||
| Timestamp | 消息发送时间 |
|
||||
| Role | 角色(用户 / 助手) |
|
||||
| Content | 消息文本内容 |
|
||||
| Model | 使用的模型(助手消息) |
|
||||
|
||||
---
|
||||
|
||||
## 运行要求
|
||||
|
||||
!!! note "前置条件"
|
||||
- OpenWebUI v0.3.0 及以上
|
||||
- 无需额外 Python 依赖(使用内置库)
|
||||
|
||||
---
|
||||
|
||||
## 源码
|
||||
|
||||
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/export_to_excel){ .md-button }
|
||||
151
docs/plugins/actions/index.zh.md
Normal file
151
docs/plugins/actions/index.zh.md
Normal file
@@ -0,0 +1,151 @@
|
||||
# Action 插件
|
||||
|
||||
Action 插件会在聊天界面的消息下方添加自定义按钮,让你一键触发特定功能。
|
||||
|
||||
## 什么是 Actions?
|
||||
|
||||
Actions 是交互式插件,能够:
|
||||
|
||||
- :material-gesture-tap: 在消息操作栏添加按钮
|
||||
- :material-export: 生成并导出内容(思维导图、图表、文件等)
|
||||
- :material-api: 与外部服务和 API 交互
|
||||
- :material-animation-play: 创建可视化或交互内容
|
||||
|
||||
---
|
||||
|
||||
## 可用的 Action 插件
|
||||
|
||||
<div class="grid cards" markdown>
|
||||
|
||||
- :material-brain:{ .lg .middle } **Smart Mind Map**
|
||||
|
||||
---
|
||||
|
||||
智能分析文本并生成交互式、精美的思维导图。
|
||||
|
||||
**版本:** 0.7.2
|
||||
|
||||
[:octicons-arrow-right-24: 查看文档](smart-mind-map.md)
|
||||
|
||||
- :material-chart-bar:{ .lg .middle } **Smart Infographic**
|
||||
|
||||
---
|
||||
|
||||
使用 AntV 可视化引擎,将文本转成专业的信息图。
|
||||
|
||||
**版本:** 1.0.0
|
||||
|
||||
[:octicons-arrow-right-24: 查看文档](smart-infographic.md)
|
||||
|
||||
- :material-card-text:{ .lg .middle } **Knowledge Card**
|
||||
|
||||
---
|
||||
|
||||
快速生成精美的学习记忆卡片,适合学习与记忆。
|
||||
|
||||
**版本:** 0.2.0
|
||||
|
||||
[:octicons-arrow-right-24: 查看文档](knowledge-card.md)
|
||||
|
||||
- :material-file-excel:{ .lg .middle } **Export to Excel**
|
||||
|
||||
---
|
||||
|
||||
将聊天记录导出为 Excel 电子表格,方便分析或归档。
|
||||
|
||||
**版本:** 1.0.0
|
||||
|
||||
[:octicons-arrow-right-24: 查看文档](export-to-excel.md)
|
||||
|
||||
- :material-text-box-search:{ .lg .middle } **Summary**
|
||||
|
||||
---
|
||||
|
||||
对长文本进行精简总结,提取要点。
|
||||
|
||||
**版本:** 1.0.0
|
||||
|
||||
[:octicons-arrow-right-24: 查看文档](summary.md)
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
## 快速安装
|
||||
|
||||
1. 下载需要的 `.py` 插件文件
|
||||
2. 前往 **Admin Panel** → **Settings** → **Functions**
|
||||
3. 上传文件并完成配置
|
||||
4. 在聊天消息中使用对应的 Action 按钮
|
||||
|
||||
---
|
||||
|
||||
## 开发模板
|
||||
|
||||
想要自己编写 Action 插件?可以参考下面的模板:
|
||||
|
||||
```python
|
||||
"""
|
||||
title: My Custom Action
|
||||
author: Your Name
|
||||
version: 1.0.0
|
||||
description: Description of your action plugin
|
||||
"""
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
from typing import Optional, Dict, Any
|
||||
|
||||
class Action:
|
||||
class Valves(BaseModel):
|
||||
# 在这里添加你的配置项
|
||||
show_status: bool = Field(
|
||||
default=True,
|
||||
description="Show status updates during processing"
|
||||
)
|
||||
|
||||
def __init__(self):
|
||||
self.valves = self.Valves()
|
||||
|
||||
async def action(
|
||||
self,
|
||||
body: dict,
|
||||
__user__: Optional[Dict[str, Any]] = None,
|
||||
__event_emitter__: Optional[Any] = None,
|
||||
__request__: Optional[Any] = None,
|
||||
) -> Optional[dict]:
|
||||
"""
|
||||
当用户点击 Action 按钮时触发的主方法。
|
||||
|
||||
Args:
|
||||
body: 包含会话数据的消息体
|
||||
__user__: 当前用户信息
|
||||
__event_emitter__: 用于发送通知或状态更新
|
||||
__request__: FastAPI 请求对象
|
||||
|
||||
Returns:
|
||||
修改后的 body 字典或 None
|
||||
"""
|
||||
# 发送状态更新
|
||||
if __event_emitter__ and self.valves.show_status:
|
||||
await __event_emitter__({
|
||||
"type": "status",
|
||||
"data": {"description": "Processing...", "done": False}
|
||||
})
|
||||
|
||||
# 插件逻辑
|
||||
messages = body.get("messages", [])
|
||||
if messages:
|
||||
last_message = messages[-1].get("content", "")
|
||||
# 在这里处理消息...
|
||||
|
||||
# 完成状态
|
||||
if __event_emitter__ and self.valves.show_status:
|
||||
await __event_emitter__({
|
||||
"type": "status",
|
||||
"data": {"description": "Done!", "done": True}
|
||||
})
|
||||
|
||||
return body
|
||||
```
|
||||
|
||||
更多详情可查看 [插件开发指南](../../development/plugin-guide.md)。
|
||||
88
docs/plugins/actions/knowledge-card.zh.md
Normal file
88
docs/plugins/actions/knowledge-card.zh.md
Normal file
@@ -0,0 +1,88 @@
|
||||
# Knowledge Card(知识卡片)
|
||||
|
||||
<span class="category-badge action">Action</span>
|
||||
<span class="version-badge">v0.2.0</span>
|
||||
|
||||
快速生成精美的学习记忆卡片,适合学习和速记。
|
||||
|
||||
---
|
||||
|
||||
## 概览
|
||||
|
||||
Knowledge Card 插件(又名 Flash Card / 闪记卡)会把内容转成视觉友好的记忆卡片,帮助你高效学习和记忆。无论备考、理解新概念或复习要点,都能用它快速生成学习素材。
|
||||
|
||||
## 功能特性
|
||||
|
||||
- :material-card-text: **精美卡片**:现代简洁的版式,便于阅读
|
||||
- :material-animation-play: **可交互**:点击翻转查看答案
|
||||
- :material-export: **可导出**:支持保存离线学习
|
||||
- :material-palette: **可定制**:多种主题与样式
|
||||
- :material-translate: **多语言**:支持多语言内容
|
||||
|
||||
---
|
||||
|
||||
## 安装
|
||||
|
||||
1. 下载插件文件:[`knowledge_card.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/knowledge-card)
|
||||
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
||||
3. 启用插件
|
||||
|
||||
---
|
||||
|
||||
## 使用方法
|
||||
|
||||
1. 与 AI 就你想学习的主题进行对话
|
||||
2. 点击消息操作栏的 **Flash Card** 按钮
|
||||
3. 插件会分析内容并生成卡片
|
||||
4. 点击卡片翻面查看答案
|
||||
|
||||
---
|
||||
|
||||
## 配置项
|
||||
|
||||
| 选项 | 类型 | 默认值 | 说明 |
|
||||
|--------|------|---------|-------------|
|
||||
| `cards_per_message` | integer | `5` | 每条消息最多生成的卡片数量 |
|
||||
| `theme` | string | `"modern"` | 视觉主题 |
|
||||
| `show_hints` | boolean | `true` | 是否在卡片上显示提示 |
|
||||
|
||||
---
|
||||
|
||||
## 示例
|
||||
|
||||
=== "问题面"
|
||||
```
|
||||
┌─────────────────────────────┐
|
||||
│ │
|
||||
│ What is the capital of │
|
||||
│ France? │
|
||||
│ │
|
||||
│ [Click to flip] │
|
||||
└─────────────────────────────┘
|
||||
```
|
||||
|
||||
=== "答案面"
|
||||
```
|
||||
┌─────────────────────────────┐
|
||||
│ │
|
||||
│ Paris │
|
||||
│ │
|
||||
│ The city of lights, │
|
||||
│ located on the Seine │
|
||||
│ │
|
||||
└─────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 运行要求
|
||||
|
||||
!!! note "前置条件"
|
||||
- OpenWebUI v0.3.0 及以上
|
||||
- 无需额外 Python 依赖
|
||||
|
||||
---
|
||||
|
||||
## 源码
|
||||
|
||||
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/knowledge-card){ .md-button }
|
||||
107
docs/plugins/actions/smart-infographic.zh.md
Normal file
107
docs/plugins/actions/smart-infographic.zh.md
Normal file
@@ -0,0 +1,107 @@
|
||||
# Smart Infographic(智能信息图)
|
||||
|
||||
<span class="category-badge action">Action</span>
|
||||
<span class="version-badge">v1.0.0</span>
|
||||
|
||||
基于 AntV 信息图引擎,将长文本一键转成专业、美观的信息图。
|
||||
|
||||
---
|
||||
|
||||
## 概览
|
||||
|
||||
Smart Infographic 使用 AI 分析文本,并基于 AntV 可视化引擎生成专业的信息图。它会自动提取要点,并用合适的图表/结构呈现。
|
||||
|
||||
## 功能特性
|
||||
|
||||
- :material-robot: **AI 转换**:自动分析文本逻辑,提取要点并生成结构化图表
|
||||
- :material-palette: **专业模板**:内置 AntV 官方模板:列表、树、思维导图、对比表、流程图、统计图等
|
||||
- :material-magnify: **自动匹配图标**:根据内容自动选择最合适的 Material Design Icons
|
||||
- :material-download: **多格式导出**:支持下载 **SVG**、**PNG**、**独立 HTML**
|
||||
- :material-theme-light-dark: **主题支持**:适配深色/浅色模式
|
||||
- :material-cellphone-link: **响应式**:桌面与移动端都能良好展示
|
||||
|
||||
---
|
||||
|
||||
## 安装
|
||||
|
||||
1. 下载插件文件:[`infographic.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/infographic)
|
||||
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
||||
3. 可选:根据需要配置插件选项
|
||||
4. 启用插件
|
||||
|
||||
---
|
||||
|
||||
## 支持的模板类型
|
||||
|
||||
| 分类 | 模板名称 | 典型场景 |
|
||||
|:---------|:--------------|:---------|
|
||||
| **列表与层级** | `list-grid`, `tree-vertical`, `mindmap` | 特性列表、组织结构、头脑风暴 |
|
||||
| **序列与关系** | `sequence-roadmap`, `relation-circle` | 路线图、循环流程、步骤拆解 |
|
||||
| **对比与分析** | `compare-binary`, `compare-swot`, `quadrant-quarter` | 优劣势、SWOT、象限分析 |
|
||||
| **图表与数据** | `chart-bar`, `chart-line`, `chart-pie` | 趋势、分布、指标对比 |
|
||||
|
||||
---
|
||||
|
||||
## 使用方法
|
||||
|
||||
1. 在聊天中输入需要可视化的文本
|
||||
2. 点击消息操作栏的 **Infographic**(📊)按钮
|
||||
3. 等待 AI 分析并生成信息图
|
||||
4. 预览结果,可用下载按钮保存
|
||||
|
||||
---
|
||||
|
||||
## 配置项
|
||||
|
||||
| 选项 | 类型 | 默认值 | 说明 |
|
||||
|--------|------|---------|-------------|
|
||||
| `SHOW_STATUS` | boolean | `true` | 是否展示实时的分析/生成状态 |
|
||||
| `MODEL_ID` | string | `""` | 指定用于分析的 LLM 模型,留空则使用当前会话模型 |
|
||||
| `MIN_TEXT_LENGTH` | integer | `100` | 触发分析的最小字符数 |
|
||||
| `CLEAR_PREVIOUS_HTML` | boolean | `false` | 是否清空之前生成的图表 |
|
||||
| `MESSAGE_COUNT` | integer | `1` | 参与分析的最近消息条数 |
|
||||
|
||||
---
|
||||
|
||||
## 语法示例(高级用法)
|
||||
|
||||
也可以直接输入信息图语法进行渲染:
|
||||
|
||||
```infographic
|
||||
infographic list-grid
|
||||
data
|
||||
title 🚀 Plugin Benefits
|
||||
desc Why use the Smart Infographic plugin
|
||||
items
|
||||
- label Fast Generation
|
||||
desc Convert text to charts in seconds
|
||||
- label Beautiful Design
|
||||
desc Uses AntV professional design standards
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 运行要求
|
||||
|
||||
!!! note "前置条件"
|
||||
- OpenWebUI v0.3.0 及以上
|
||||
- 无需额外 Python 依赖(使用 OpenWebUI 内置依赖)
|
||||
|
||||
---
|
||||
|
||||
## 常见问题
|
||||
|
||||
??? question "没有生成信息图?"
|
||||
请确认文本长度至少 100 字符(可通过 `MIN_TEXT_LENGTH` 调整)。
|
||||
|
||||
??? question "模板与内容不匹配?"
|
||||
AI 会根据内容结构自动选择模板,如需指定可使用高级语法。
|
||||
|
||||
??? question "导出失败?"
|
||||
确认浏览器支持 HTML5 Canvas 和 SVG,尝试刷新页面。
|
||||
|
||||
---
|
||||
|
||||
## 源码
|
||||
|
||||
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/infographic){ .md-button }
|
||||
91
docs/plugins/actions/smart-mind-map.zh.md
Normal file
91
docs/plugins/actions/smart-mind-map.zh.md
Normal file
@@ -0,0 +1,91 @@
|
||||
# Smart Mind Map(智能思维导图)
|
||||
|
||||
<span class="category-badge action">Action</span>
|
||||
<span class="version-badge">v0.7.2</span>
|
||||
|
||||
智能分析文本内容,生成交互式思维导图,帮助你更直观地理解信息结构。
|
||||
|
||||
---
|
||||
|
||||
## 概览
|
||||
|
||||
Smart Mind Map 会将文本转换成漂亮的交互式思维导图。插件会用 AI 分析内容结构,生成层级化的可视化,帮助快速梳理复杂信息。
|
||||
|
||||
## 功能特性
|
||||
|
||||
- :material-brain: **AI 分析**:智能提取关键概念与关联关系
|
||||
- :material-gesture-swipe: **交互导航**:支持缩放、平移、展开/折叠
|
||||
- :material-palette: **精美样式**:现代化配色,支持自定义主题
|
||||
- :material-download: **导出**:可保存为图片或结构化数据
|
||||
- :material-translate: **多语言**:支持多语言文本分析
|
||||
|
||||
---
|
||||
|
||||
## 安装
|
||||
|
||||
1. 下载插件文件:[`smart_mind_map.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/smart-mind-map)
|
||||
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
||||
3. 启用插件
|
||||
|
||||
---
|
||||
|
||||
## 使用方法
|
||||
|
||||
1. 先与 AI 对话并生成回复
|
||||
2. 点击消息操作栏中的 **Mind Map** 按钮
|
||||
3. 等待思维导图生成
|
||||
4. 交互使用:
|
||||
- **缩放**:滚轮缩放
|
||||
- **平移**:按住拖动
|
||||
- **展开/折叠**:点击节点显示或隐藏子节点
|
||||
|
||||
---
|
||||
|
||||
## 配置项
|
||||
|
||||
| 选项 | 类型 | 默认值 | 说明 |
|
||||
|--------|------|---------|-------------|
|
||||
| `show_status` | boolean | `true` | 是否显示处理状态更新 |
|
||||
| `max_depth` | integer | `5` | 思维导图的最大层级 |
|
||||
| `theme` | string | `"default"` | 可视化的主题配色 |
|
||||
|
||||
---
|
||||
|
||||
## 输出示例
|
||||
|
||||
插件会在聊天中嵌入交互式 HTML 思维导图:
|
||||
|
||||
```
|
||||
📊 Mind Map Generated
|
||||
├── Main Topic
|
||||
│ ├── Subtopic 1
|
||||
│ │ ├── Detail A
|
||||
│ │ └── Detail B
|
||||
│ ├── Subtopic 2
|
||||
│ └── Subtopic 3
|
||||
└── Related Concepts
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 运行要求
|
||||
|
||||
!!! note "前置条件"
|
||||
- OpenWebUI v0.3.0 及以上
|
||||
- 无需额外 Python 依赖
|
||||
|
||||
---
|
||||
|
||||
## 常见问题
|
||||
|
||||
??? question "思维导图不显示?"
|
||||
请确认浏览器支持 HTML5 Canvas,并且已开启 JavaScript。
|
||||
|
||||
??? question "生成时间过长?"
|
||||
对超长文本,AI 分析会更耗时。建议拆分内容后再生成。
|
||||
|
||||
---
|
||||
|
||||
## 源码
|
||||
|
||||
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/smart-mind-map){ .md-button }
|
||||
82
docs/plugins/actions/summary.zh.md
Normal file
82
docs/plugins/actions/summary.zh.md
Normal file
@@ -0,0 +1,82 @@
|
||||
# Summary(摘要)
|
||||
|
||||
<span class="category-badge action">Action</span>
|
||||
<span class="version-badge">v1.0.0</span>
|
||||
|
||||
为长文本生成简洁摘要,并提取关键要点。
|
||||
|
||||
---
|
||||
|
||||
## 概览
|
||||
|
||||
Summary 插件可以快速理解长文本,生成精炼摘要并列出关键点,适合:
|
||||
|
||||
- 总结长文章或文档
|
||||
- 从对话中提炼要点
|
||||
- 为复杂主题制作快速概览
|
||||
|
||||
## 功能特性
|
||||
|
||||
- :material-text-box-search: **智能摘要**:AI 驱动的内容分析
|
||||
- :material-format-list-bulleted: **关键点**:提取重要信息
|
||||
- :material-content-copy: **便捷复制**:一键复制摘要
|
||||
- :material-tune: **长度可调**:可选择摘要详略程度
|
||||
|
||||
---
|
||||
|
||||
## 安装
|
||||
|
||||
1. 下载插件文件:[`summary.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/summary)
|
||||
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
||||
3. 启用插件
|
||||
|
||||
---
|
||||
|
||||
## 使用方法
|
||||
|
||||
1. 获取一段较长的 AI 回复或粘贴长文本
|
||||
2. 点击消息操作栏的 **Summary** 按钮
|
||||
3. 查看生成的摘要与关键点
|
||||
|
||||
---
|
||||
|
||||
## 配置项
|
||||
|
||||
| 选项 | 类型 | 默认值 | 说明 |
|
||||
|--------|------|---------|-------------|
|
||||
| `summary_length` | string | `"medium"` | 摘要长度(short/medium/long) |
|
||||
| `include_key_points` | boolean | `true` | 是否提取并列出关键点 |
|
||||
| `language` | string | `"auto"` | 输出语言 |
|
||||
|
||||
---
|
||||
|
||||
## 输出示例
|
||||
|
||||
```markdown
|
||||
## Summary
|
||||
|
||||
This document discusses the implementation of a new feature
|
||||
for the application, focusing on user experience improvements
|
||||
and performance optimizations.
|
||||
|
||||
### Key Points
|
||||
|
||||
- ✅ New user interface design improves accessibility
|
||||
- ✅ Backend optimizations reduce load times by 40%
|
||||
- ✅ Mobile responsiveness enhanced
|
||||
- ✅ Integration with third-party services simplified
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 运行要求
|
||||
|
||||
!!! note "前置条件"
|
||||
- OpenWebUI v0.3.0 及以上
|
||||
- 使用当前会话的 LLM 模型进行摘要
|
||||
|
||||
---
|
||||
|
||||
## 源码
|
||||
|
||||
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/summary){ .md-button }
|
||||
122
docs/plugins/filters/async-context-compression.zh.md
Normal file
122
docs/plugins/filters/async-context-compression.zh.md
Normal file
@@ -0,0 +1,122 @@
|
||||
# Async Context Compression(异步上下文压缩)
|
||||
|
||||
<span class="category-badge filter">Filter</span>
|
||||
<span class="version-badge">v1.0.0</span>
|
||||
|
||||
通过智能摘要减少长对话的 token 消耗,同时保持对话连贯。
|
||||
|
||||
---
|
||||
|
||||
## 概览
|
||||
|
||||
Async Context Compression 过滤器通过以下方式帮助管理长对话的 token 使用:
|
||||
|
||||
- 智能总结较早的消息
|
||||
- 保留关键信息
|
||||
- 降低 API 成本
|
||||
- 保持对话一致性
|
||||
|
||||
特别适用于:
|
||||
|
||||
- 长时间会话
|
||||
- 多轮复杂讨论
|
||||
- 成本优化
|
||||
- 上下文长度控制
|
||||
|
||||
## 功能特性
|
||||
|
||||
- :material-arrow-collapse-vertical: **智能压缩**:AI 驱动的上下文摘要
|
||||
- :material-clock-fast: **异步处理**:后台非阻塞压缩
|
||||
- :material-memory: **保留上下文**:尽量保留重要信息
|
||||
- :material-currency-usd-off: **降低成本**:减少 token 使用
|
||||
|
||||
---
|
||||
|
||||
## 安装
|
||||
|
||||
1. 下载插件文件:[`async_context_compression.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters/async-context-compression)
|
||||
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
||||
3. 配置压缩参数
|
||||
4. 启用过滤器
|
||||
|
||||
---
|
||||
|
||||
## 工作原理
|
||||
|
||||
```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]
|
||||
F --> G[Send to LLM]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 配置项
|
||||
|
||||
| 选项 | 类型 | 默认值 | 说明 |
|
||||
|--------|------|---------|-------------|
|
||||
| `token_threshold` | integer | `4000` | 超过该 token 数触发压缩 |
|
||||
| `preserve_recent` | integer | `5` | 保留不压缩的最近消息数量 |
|
||||
| `summary_model` | string | `"auto"` | 用于摘要的模型 |
|
||||
| `compression_ratio` | float | `0.3` | 目标压缩比例 |
|
||||
|
||||
---
|
||||
|
||||
## 示例
|
||||
|
||||
### 压缩前
|
||||
|
||||
```
|
||||
[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
|
||||
```
|
||||
|
||||
### 压缩后
|
||||
|
||||
```
|
||||
[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
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 运行要求
|
||||
|
||||
!!! 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 }
|
||||
51
docs/plugins/filters/context-enhancement.zh.md
Normal file
51
docs/plugins/filters/context-enhancement.zh.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# Context Enhancement(上下文增强)
|
||||
|
||||
<span class="category-badge filter">Filter</span>
|
||||
<span class="version-badge">v1.0.0</span>
|
||||
|
||||
为聊天自动补充上下文信息,让 LLM 回复更相关、更准确。
|
||||
|
||||
---
|
||||
|
||||
## 概览
|
||||
|
||||
Context Enhancement 过滤器会自动为会话补充必要的上下文,使模型回答更加贴切。
|
||||
|
||||
## 功能特性
|
||||
|
||||
- :material-text-box-plus: **自动增强**:智能添加相关上下文
|
||||
- :material-clock: **时间感知**:包含当前日期/时间信息
|
||||
- :material-account: **用户上下文**:加入用户偏好或姓名等信息
|
||||
- :material-cog: **可定制**:可配置要附加的上下文内容
|
||||
|
||||
---
|
||||
|
||||
## 安装
|
||||
|
||||
1. 下载插件文件:[`context_enhancement_filter.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters/context_enhancement_filter)
|
||||
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
||||
3. 配置增强选项
|
||||
4. 启用过滤器
|
||||
|
||||
---
|
||||
|
||||
## 配置项
|
||||
|
||||
| 选项 | 类型 | 默认值 | 说明 |
|
||||
|--------|------|---------|-------------|
|
||||
| `include_datetime` | boolean | `true` | 是否添加当前日期时间 |
|
||||
| `include_user_info` | boolean | `true` | 是否添加用户名和偏好 |
|
||||
| `custom_context` | string | `""` | 始终附加的自定义上下文 |
|
||||
|
||||
---
|
||||
|
||||
## 运行要求
|
||||
|
||||
!!! note "前置条件"
|
||||
- OpenWebUI v0.3.0 及以上
|
||||
|
||||
---
|
||||
|
||||
## 源码
|
||||
|
||||
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters/context_enhancement_filter){ .md-button }
|
||||
54
docs/plugins/filters/gemini-manifold-companion.zh.md
Normal file
54
docs/plugins/filters/gemini-manifold-companion.zh.md
Normal file
@@ -0,0 +1,54 @@
|
||||
# Gemini Manifold Companion
|
||||
|
||||
<span class="category-badge filter">Filter</span>
|
||||
<span class="version-badge">v1.0.0</span>
|
||||
|
||||
Gemini Manifold Pipe 的伴随过滤器,用于增强 Gemini 集成的处理效果。
|
||||
|
||||
---
|
||||
|
||||
## 概览
|
||||
|
||||
Gemini Manifold Companion 与 [Gemini Manifold Pipe](../pipes/gemini-manifold.md) 搭配使用,为 Gemini 模型集成提供额外的处理与优化。
|
||||
|
||||
## 功能特性
|
||||
|
||||
- :material-handshake: **无缝协同**:与 Gemini Manifold Pipe 配合工作
|
||||
- :material-format-text: **消息格式化**:针对 Gemini 优化消息
|
||||
- :material-shield: **错误处理**:更友好的 API 异常处理
|
||||
- :material-tune: **精细配置**:提供额外调优选项
|
||||
|
||||
---
|
||||
|
||||
## 安装
|
||||
|
||||
1. 先安装 [Gemini Manifold Pipe](../pipes/gemini-manifold.md)
|
||||
2. 下载伴随过滤器:[`gemini_manifold_companion.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters/gemini_manifold_companion)
|
||||
3. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
||||
4. 启用过滤器
|
||||
|
||||
---
|
||||
|
||||
## 配置项
|
||||
|
||||
| 选项 | 类型 | 默认值 | 说明 |
|
||||
|--------|------|---------|-------------|
|
||||
| `auto_format` | boolean | `true` | 为 Gemini 自动格式化消息 |
|
||||
| `handle_errors` | boolean | `true` | 开启错误处理 |
|
||||
|
||||
---
|
||||
|
||||
## 运行要求
|
||||
|
||||
!!! warning "依赖"
|
||||
本过滤器需要先安装并配置 **Gemini Manifold Pipe**。
|
||||
|
||||
!!! note "前置条件"
|
||||
- OpenWebUI v0.3.0 及以上
|
||||
- 已安装 Gemini Manifold Pipe
|
||||
|
||||
---
|
||||
|
||||
## 源码
|
||||
|
||||
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters/gemini_manifold_companion){ .md-button }
|
||||
155
docs/plugins/filters/index.zh.md
Normal file
155
docs/plugins/filters/index.zh.md
Normal file
@@ -0,0 +1,155 @@
|
||||
# Filter 插件
|
||||
|
||||
Filter 插件会在消息发送到 LLM 之前或响应生成之后处理和修改内容。
|
||||
|
||||
## 什么是 Filters?
|
||||
|
||||
Filter 充当消息管线中的中间件:
|
||||
|
||||
- :material-arrow-right-bold: **Inlet**:在消息到达 LLM 前处理用户消息
|
||||
- :material-arrow-left-bold: **Outlet**:在展示前处理 LLM 响应
|
||||
- :material-stream: **Stream**:对流式响应进行实时处理
|
||||
|
||||
---
|
||||
|
||||
## 可用的 Filter 插件
|
||||
|
||||
<div class="grid cards" markdown>
|
||||
|
||||
- :material-compress:{ .lg .middle } **Async Context Compression**
|
||||
|
||||
---
|
||||
|
||||
通过智能总结减少长对话的 token 消耗,同时保持连贯性。
|
||||
|
||||
**版本:** 1.0.0
|
||||
|
||||
[:octicons-arrow-right-24: 查看文档](async-context-compression.md)
|
||||
|
||||
- :material-text-box-plus:{ .lg .middle } **Context Enhancement**
|
||||
|
||||
---
|
||||
|
||||
为聊天增加额外信息,提升回复质量。
|
||||
|
||||
**版本:** 1.0.0
|
||||
|
||||
[:octicons-arrow-right-24: 查看文档](context-enhancement.md)
|
||||
|
||||
- :material-google:{ .lg .middle } **Gemini Manifold Companion**
|
||||
|
||||
---
|
||||
|
||||
Gemini Manifold Pipe 插件的伴随过滤器。
|
||||
|
||||
**版本:** 1.0.0
|
||||
|
||||
[:octicons-arrow-right-24: 查看文档](gemini-manifold-companion.md)
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
## Filter 工作流程
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
A[User Message] --> B[Inlet Filter]
|
||||
B --> C[LLM]
|
||||
C --> D[Outlet Filter]
|
||||
D --> E[Display to User]
|
||||
```
|
||||
|
||||
### Inlet 处理
|
||||
|
||||
`inlet` 方法在消息到达 LLM 前处理:
|
||||
|
||||
```python
|
||||
async def inlet(self, body: dict, __metadata__: dict) -> dict:
|
||||
# 在发送到 LLM 前修改请求
|
||||
messages = body.get("messages", [])
|
||||
# 添加上下文、调整 prompt 等
|
||||
return body
|
||||
```
|
||||
|
||||
### Outlet 处理
|
||||
|
||||
`outlet` 方法在响应生成后处理:
|
||||
|
||||
```python
|
||||
async def outlet(self, body: dict, __metadata__: dict) -> dict:
|
||||
# 在展示前修改响应
|
||||
messages = body.get("messages", [])
|
||||
# 格式化输出、追加引用等
|
||||
return body
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 快速安装
|
||||
|
||||
1. 下载需要的 Filter `.py` 文件
|
||||
2. 前往 **Admin Panel** → **Settings** → **Functions**
|
||||
3. 上传文件并配置
|
||||
4. 在聊天设置或全局启用该过滤器
|
||||
|
||||
---
|
||||
|
||||
## 开发模板
|
||||
|
||||
```python
|
||||
"""
|
||||
title: My Custom Filter
|
||||
author: Your Name
|
||||
version: 1.0.0
|
||||
description: Description of your filter plugin
|
||||
"""
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
from typing import Optional
|
||||
|
||||
class Filter:
|
||||
class Valves(BaseModel):
|
||||
priority: int = Field(
|
||||
default=0,
|
||||
description="Filter priority (lower = earlier execution)"
|
||||
)
|
||||
enabled: bool = Field(
|
||||
default=True,
|
||||
description="Enable/disable this filter"
|
||||
)
|
||||
|
||||
def __init__(self):
|
||||
self.valves = self.Valves()
|
||||
|
||||
async def inlet(
|
||||
self,
|
||||
body: dict,
|
||||
__user__: Optional[dict] = None,
|
||||
__metadata__: Optional[dict] = None
|
||||
) -> dict:
|
||||
"""Process messages before sending to LLM."""
|
||||
if not self.valves.enabled:
|
||||
return body
|
||||
|
||||
# 你的 inlet 逻辑
|
||||
messages = body.get("messages", [])
|
||||
|
||||
return body
|
||||
|
||||
async def outlet(
|
||||
self,
|
||||
body: dict,
|
||||
__user__: Optional[dict] = None,
|
||||
__metadata__: Optional[dict] = None
|
||||
) -> dict:
|
||||
"""Process responses before displaying."""
|
||||
if not self.valves.enabled:
|
||||
return body
|
||||
|
||||
# 你的 outlet 逻辑
|
||||
|
||||
return body
|
||||
```
|
||||
|
||||
更多细节见 [插件开发指南](../../development/plugin-guide.md)。
|
||||
93
docs/plugins/index.zh.md
Normal file
93
docs/plugins/index.zh.md
Normal file
@@ -0,0 +1,93 @@
|
||||
# 插件中心
|
||||
|
||||
欢迎来到 OpenWebUI Extras 插件中心!在这里你可以找到完整的插件集合,帮助你强化 OpenWebUI 的体验。
|
||||
|
||||
## 插件类型
|
||||
|
||||
OpenWebUI 支持四种类型的插件,每种都有不同的用途:
|
||||
|
||||
<div class="grid cards" markdown>
|
||||
|
||||
- :material-gesture-tap:{ .lg .middle } **Actions(动作)**
|
||||
|
||||
---
|
||||
|
||||
在消息下方添加自定义按钮,一键触发思维导图、数据导出或可视化等操作。
|
||||
|
||||
[:octicons-arrow-right-24: 浏览 Actions](actions/index.md)
|
||||
|
||||
- :material-filter:{ .lg .middle } **Filters(过滤器)**
|
||||
|
||||
---
|
||||
|
||||
在请求到达 LLM 之前或响应生成之后处理和修改消息,适合做上下文增强和压缩。
|
||||
|
||||
[:octicons-arrow-right-24: 浏览 Filters](filters/index.md)
|
||||
|
||||
- :material-pipe:{ .lg .middle } **Pipes(管道)**
|
||||
|
||||
---
|
||||
|
||||
创建自定义模型集成或转换 LLM 响应,可连接外部 API 或自定义模型逻辑。
|
||||
|
||||
[:octicons-arrow-right-24: 浏览 Pipes](pipes/index.md)
|
||||
|
||||
- :material-pipe-wrench:{ .lg .middle } **Pipelines(流水线)**
|
||||
|
||||
---
|
||||
|
||||
将多步处理组合为复杂工作流,适合需要多阶段转换的高级场景。
|
||||
|
||||
[:octicons-arrow-right-24: 浏览 Pipelines](pipelines/index.md)
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
## 插件总览
|
||||
|
||||
| 插件 | 类型 | 描述 | 版本 |
|
||||
|--------|------|-------------|---------|
|
||||
| [Smart Mind Map(智能思维导图)](actions/smart-mind-map.md) | Action | 从文本生成交互式思维导图 | 0.7.2 |
|
||||
| [Smart Infographic(智能信息图)](actions/smart-infographic.md) | Action | 将文本转成专业信息图 | 1.0.0 |
|
||||
| [Knowledge Card(知识卡片)](actions/knowledge-card.md) | Action | 生成精美学习卡片 | 0.2.0 |
|
||||
| [Export to Excel(导出到 Excel)](actions/export-to-excel.md) | Action | 导出聊天记录为 Excel | 1.0.0 |
|
||||
| [Summary(摘要)](actions/summary.md) | Action | 文本摘要工具 | 1.0.0 |
|
||||
| [Async Context Compression(异步上下文压缩)](filters/async-context-compression.md) | Filter | 智能上下文压缩 | 1.0.0 |
|
||||
| [Context Enhancement(上下文增强)](filters/context-enhancement.md) | Filter | 提升对话上下文 | 1.0.0 |
|
||||
| [Gemini Manifold Companion](filters/gemini-manifold-companion.md) | Filter | Gemini Manifold 伴侣 | 1.0.0 |
|
||||
| [Gemini Manifold](pipes/gemini-manifold.md) | Pipe | Gemini 模型集成 | 1.0.0 |
|
||||
| [MoE Prompt Refiner](pipelines/moe-prompt-refiner.md) | Pipeline | 多模型提示词优化 | 1.0.0 |
|
||||
|
||||
---
|
||||
|
||||
## 安装指南
|
||||
|
||||
### 步骤 1:下载插件
|
||||
|
||||
点击上方任意插件,查看文档并下载对应的 `.py` 文件。
|
||||
|
||||
### 步骤 2:上传到 OpenWebUI
|
||||
|
||||
1. 打开 OpenWebUI,进入 **Admin Panel** → **Settings** → **Functions**
|
||||
2. 点击 **+** 按钮添加新的 Function
|
||||
3. 上传下载好的 `.py` 文件
|
||||
4. 配置必要的设置(如 API Key、选项等)
|
||||
|
||||
### 步骤 3:启用并使用
|
||||
|
||||
1. 上传后刷新页面
|
||||
2. **Actions**:在消息操作栏中找到插件按钮
|
||||
3. **Filters**:在聊天设置或全局启用
|
||||
4. **Pipes**:在模型下拉中选择自定义模型
|
||||
5. **Pipelines**:在流水线设置中配置并启用
|
||||
|
||||
---
|
||||
|
||||
## 兼容性提示
|
||||
|
||||
!!! info "OpenWebUI 版本"
|
||||
本仓库的大多数插件面向 **OpenWebUI v0.3.0** 及以上版本。具体要求请查看各插件文档。
|
||||
|
||||
!!! warning "依赖说明"
|
||||
部分插件可能需要额外的 Python 依赖,请查看对应插件文档确认。
|
||||
63
docs/plugins/pipelines/index.zh.md
Normal file
63
docs/plugins/pipelines/index.zh.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# Pipeline 插件
|
||||
|
||||
Pipeline 是组合多步处理的复杂工作流,适用于高级场景。
|
||||
|
||||
## 什么是 Pipelines?
|
||||
|
||||
Pipelines 不仅是简单转换,还可以实现:
|
||||
|
||||
- :material-workflow: 多步骤处理流程
|
||||
- :material-source-merge: 模型编排
|
||||
- :material-robot-industrial: 高级智能体行为
|
||||
- :material-cog-box: 复杂业务逻辑
|
||||
|
||||
---
|
||||
|
||||
## 可用的 Pipeline 插件
|
||||
|
||||
<div class="grid cards" markdown>
|
||||
|
||||
- :material-view-module:{ .lg .middle } **MoE Prompt Refiner**
|
||||
|
||||
---
|
||||
|
||||
为 Mixture of Experts(MoE)汇总请求优化提示词,生成高质量综合报告。
|
||||
|
||||
**版本:** 1.0.0
|
||||
|
||||
[:octicons-arrow-right-24: 查看文档](moe-prompt-refiner.md)
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
## Pipelines 的区别
|
||||
|
||||
| 特性 | Filters | Pipes | Pipelines |
|
||||
|---------|---------|-------|-----------|
|
||||
| 复杂度 | 低 | 中 | 高 |
|
||||
| 主要用途 | 消息处理 | 模型集成 | 多步工作流 |
|
||||
| 执行方式 | LLM 前后 | 作为 LLM | 自定义编排 |
|
||||
| 依赖 | 极少 | API 访问 | 往往多个服务 |
|
||||
|
||||
---
|
||||
|
||||
## 快速安装
|
||||
|
||||
1. 下载 Pipeline `.py` 文件
|
||||
2. 前往 **Admin Panel** → **Settings** → **Functions**
|
||||
3. 上传并配置所需服务
|
||||
4. 启用该 Pipeline
|
||||
|
||||
---
|
||||
|
||||
## 开发注意事项
|
||||
|
||||
Pipeline 通常需要:
|
||||
|
||||
- 多个 API 集成
|
||||
- 跨步骤的状态管理
|
||||
- 每一步的错误处理
|
||||
- 性能优化
|
||||
|
||||
详见 [插件开发指南](../../development/plugin-guide.md)。
|
||||
109
docs/plugins/pipelines/moe-prompt-refiner.zh.md
Normal file
109
docs/plugins/pipelines/moe-prompt-refiner.zh.md
Normal file
@@ -0,0 +1,109 @@
|
||||
# MoE Prompt Refiner
|
||||
|
||||
<span class="category-badge pipeline">Pipeline</span>
|
||||
<span class="version-badge">v1.0.0</span>
|
||||
|
||||
为 Mixture of Experts(MoE)汇总请求优化提示词,生成高质量的综合报告。
|
||||
|
||||
---
|
||||
|
||||
## 概览
|
||||
|
||||
MoE Prompt Refiner 是一个高级 Pipeline,会在将请求发送给多个专家模型前先优化提示词,然后综合各模型回复,输出结构化的高质量报告。
|
||||
|
||||
## 功能特性
|
||||
|
||||
- :material-view-module: **多模型**:同时利用多个 AI 模型
|
||||
- :material-text-search: **提示词优化**:在发送前优化 prompt 获得更好结果
|
||||
- :material-merge: **结果合成**:整合专家回复
|
||||
- :material-file-document: **报告生成**:输出结构化报告
|
||||
|
||||
---
|
||||
|
||||
## 安装
|
||||
|
||||
1. 下载 Pipeline 文件:[`moe_prompt_refiner.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/pipelines)
|
||||
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
||||
3. 配置专家模型及相关参数
|
||||
4. 启用该 Pipeline
|
||||
|
||||
---
|
||||
|
||||
## 工作流程
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
A[User Prompt] --> B[Prompt Refiner]
|
||||
B --> C[Expert Model 1]
|
||||
B --> D[Expert Model 2]
|
||||
B --> E[Expert Model N]
|
||||
C --> F[Response Synthesizer]
|
||||
D --> F
|
||||
E --> F
|
||||
F --> G[Comprehensive Report]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 配置项
|
||||
|
||||
| 选项 | 类型 | 默认值 | 说明 |
|
||||
|--------|------|---------|-------------|
|
||||
| `expert_models` | list | `[]` | 需要咨询的模型列表 |
|
||||
| `synthesis_model` | string | `"auto"` | 用于综合回复的模型 |
|
||||
| `report_format` | string | `"markdown"` | 输出格式 |
|
||||
|
||||
---
|
||||
|
||||
## 适用场景
|
||||
|
||||
- **研究报告**:从多个 AI 视角收集洞见
|
||||
- **综合分析**:多角度问题拆解
|
||||
- **决策支持**:获得多模型的平衡建议
|
||||
- **内容创作**:生成多视角的丰富内容
|
||||
|
||||
---
|
||||
|
||||
## 示例
|
||||
|
||||
**输入 Prompt:**
|
||||
```
|
||||
Analyze the pros and cons of microservices architecture
|
||||
```
|
||||
|
||||
**输出报告:**
|
||||
```markdown
|
||||
# Microservices Architecture Analysis
|
||||
|
||||
## Executive Summary
|
||||
Based on analysis from multiple expert perspectives...
|
||||
|
||||
## Advantages
|
||||
1. **Scalability** (Expert A)...
|
||||
2. **Technology Flexibility** (Expert B)...
|
||||
|
||||
## Disadvantages
|
||||
1. **Complexity** (Expert A)...
|
||||
2. **Distributed System Challenges** (Expert C)...
|
||||
|
||||
## Recommendations
|
||||
Synthesized recommendations based on expert consensus...
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 运行要求
|
||||
|
||||
!!! note "前置条件"
|
||||
- OpenWebUI v0.3.0 及以上
|
||||
- 可以访问多个 LLM 模型
|
||||
- 有足够的 API 配额支撑多模型请求
|
||||
|
||||
!!! warning "资源消耗"
|
||||
此 Pipeline 每次请求会进行多次 API 调用,请关注用量与成本。
|
||||
|
||||
---
|
||||
|
||||
## 源码
|
||||
|
||||
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/pipelines){ .md-button }
|
||||
106
docs/plugins/pipes/gemini-manifold.zh.md
Normal file
106
docs/plugins/pipes/gemini-manifold.zh.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# Gemini Manifold
|
||||
|
||||
<span class="category-badge pipe">Pipe</span>
|
||||
<span class="version-badge">v1.0.0</span>
|
||||
|
||||
面向 Google Gemini 模型的集成流水线,支持完整流式返回。
|
||||
|
||||
---
|
||||
|
||||
## 概览
|
||||
|
||||
Gemini Manifold Pipe 提供与 Google Gemini AI 模型的无缝集成。它会将 Gemini 模型作为可选项暴露在 OpenWebUI 中,你可以像使用其他模型一样使用它们。
|
||||
|
||||
## 功能特性
|
||||
|
||||
- :material-google: **完整 Gemini 支持**:可使用所有 Gemini 模型变体
|
||||
- :material-stream: **流式输出**:实时流式响应
|
||||
- :material-image: **多模态**:支持图像与文本
|
||||
- :material-shield: **错误处理**:健壮的错误管理
|
||||
- :material-tune: **可配置**:可自定义模型参数
|
||||
|
||||
---
|
||||
|
||||
## 安装
|
||||
|
||||
1. 下载插件文件:[`gemini_manifold.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/pipes/gemini_mainfold)
|
||||
2. 上传到 OpenWebUI:**Admin Panel** → **Settings** → **Functions**
|
||||
3. 配置你的 Gemini API Key
|
||||
4. 在模型下拉中选择 Gemini 模型
|
||||
|
||||
---
|
||||
|
||||
## 配置
|
||||
|
||||
| 选项 | 类型 | 是否必填 | 说明 |
|
||||
|--------|------|----------|-------------|
|
||||
| `GEMINI_API_KEY` | string | 是 | 你的 Google AI Studio API Key |
|
||||
| `DEFAULT_MODEL` | string | 否 | 默认使用的 Gemini 模型 |
|
||||
| `TEMPERATURE` | float | 否 | 输出温度(0-1) |
|
||||
| `MAX_TOKENS` | integer | 否 | 最大回复 token 数 |
|
||||
|
||||
---
|
||||
|
||||
## 可用模型
|
||||
|
||||
配置完成后,你可以选择以下模型:
|
||||
|
||||
- `gemini-pro` —— 纯文本模型
|
||||
- `gemini-pro-vision` —— 多模态模型
|
||||
- `gemini-1.5-pro` —— 最新 Pro 模型
|
||||
- `gemini-1.5-flash` —— 快速响应模型
|
||||
|
||||
---
|
||||
|
||||
## 使用方法
|
||||
|
||||
1. 安装后进入任意对话
|
||||
2. 打开模型选择下拉
|
||||
3. 查找以 Pipe 名称前缀的模型
|
||||
4. 选择 Gemini 模型
|
||||
5. 开始聊天!
|
||||
|
||||
---
|
||||
|
||||
## 获取 API Key
|
||||
|
||||
1. 访问 [Google AI Studio](https://makersuite.google.com/app/apikey)
|
||||
2. 创建新的 API Key
|
||||
3. 复制并粘贴到插件配置中
|
||||
|
||||
!!! warning "API Key 安全"
|
||||
请妥善保管你的 API Key,不要公开或提交到版本库。
|
||||
|
||||
---
|
||||
|
||||
## 伴随过滤器
|
||||
|
||||
如需增强功能,可安装 [Gemini Manifold Companion](../filters/gemini-manifold-companion.md) 过滤器。
|
||||
|
||||
---
|
||||
|
||||
## 运行要求
|
||||
|
||||
!!! note "前置条件"
|
||||
- OpenWebUI v0.3.0 及以上
|
||||
- 有效的 Gemini API Key
|
||||
- 可访问 Google AI API 的网络
|
||||
|
||||
---
|
||||
|
||||
## 常见问题
|
||||
|
||||
??? question "模型没有出现?"
|
||||
请确认 API Key 配置正确且插件已启用。
|
||||
|
||||
??? question "出现 API 错误?"
|
||||
检查 Google AI Studio 中的 Key 有效性和额度限制。
|
||||
|
||||
??? question "响应较慢?"
|
||||
可尝试使用 `gemini-1.5-flash` 获得更快速度。
|
||||
|
||||
---
|
||||
|
||||
## 源码
|
||||
|
||||
[:fontawesome-brands-github: 在 GitHub 查看](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/pipes/gemini_mainfold){ .md-button }
|
||||
133
docs/plugins/pipes/index.zh.md
Normal file
133
docs/plugins/pipes/index.zh.md
Normal file
@@ -0,0 +1,133 @@
|
||||
# Pipe 插件
|
||||
|
||||
Pipe 插件用于创建自定义模型集成或转换 LLM 响应,会在 OpenWebUI 的模型下拉中显示。
|
||||
|
||||
## 什么是 Pipes?
|
||||
|
||||
Pipes 可以用于:
|
||||
|
||||
- :material-api: 连接外部 AI API(Gemini、Claude 等)
|
||||
- :material-robot: 创建自定义模型封装
|
||||
- :material-cog-transfer: 变换请求与响应
|
||||
- :material-middleware: 实现中间件逻辑
|
||||
|
||||
---
|
||||
|
||||
## 可用的 Pipe 插件
|
||||
|
||||
<div class="grid cards" markdown>
|
||||
|
||||
- :material-google:{ .lg .middle } **Gemini Manifold**
|
||||
|
||||
---
|
||||
|
||||
面向 Google Gemini 的集成流水线,支持完整流式返回。
|
||||
|
||||
**版本:** 1.0.0
|
||||
|
||||
[:octicons-arrow-right-24: 查看文档](gemini-manifold.md)
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
## Pipe 工作原理
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
A[User selects Pipe as Model] --> B[Pipe receives request]
|
||||
B --> C[Transform/Route request]
|
||||
C --> D[External API / Custom Logic]
|
||||
D --> E[Return response]
|
||||
E --> F[Display to User]
|
||||
```
|
||||
|
||||
### `pipes` 方法
|
||||
|
||||
定义此 Pipe 提供的模型列表:
|
||||
|
||||
```python
|
||||
def pipes(self):
|
||||
return [
|
||||
{"id": "my-model", "name": "My Custom Model"},
|
||||
{"id": "my-model-fast", "name": "My Custom Model (Fast)"}
|
||||
]
|
||||
```
|
||||
|
||||
### `pipe` 方法
|
||||
|
||||
负责处理实际请求:
|
||||
|
||||
```python
|
||||
def pipe(self, body: dict) -> Generator:
|
||||
# 处理请求
|
||||
messages = body.get("messages", [])
|
||||
|
||||
# 调用外部 API 或自定义逻辑
|
||||
response = call_external_api(messages)
|
||||
|
||||
# 返回响应(可流式)
|
||||
return response
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 快速安装
|
||||
|
||||
1. 下载需要的 Pipe `.py` 文件
|
||||
2. 前往 **Admin Panel** → **Settings** → **Functions**
|
||||
3. 上传并配置 API Key
|
||||
4. 该 Pipe 会作为模型选项出现
|
||||
|
||||
---
|
||||
|
||||
## 开发模板
|
||||
|
||||
```python
|
||||
"""
|
||||
title: My Custom Pipe
|
||||
author: Your Name
|
||||
version: 1.0.0
|
||||
description: Description of your pipe plugin
|
||||
"""
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
from typing import Generator, Iterator, Union
|
||||
|
||||
class Pipe:
|
||||
class Valves(BaseModel):
|
||||
API_KEY: str = Field(
|
||||
default="",
|
||||
description="API key for the external service"
|
||||
)
|
||||
API_URL: str = Field(
|
||||
default="https://api.example.com",
|
||||
description="API endpoint URL"
|
||||
)
|
||||
|
||||
def __init__(self):
|
||||
self.valves = self.Valves()
|
||||
|
||||
def pipes(self) -> list[dict]:
|
||||
"""Define available models."""
|
||||
return [
|
||||
{"id": "my-model", "name": "My Custom Model"},
|
||||
]
|
||||
|
||||
def pipe(
|
||||
self,
|
||||
body: dict
|
||||
) -> Union[str, Generator, Iterator]:
|
||||
"""Process the request and return response."""
|
||||
messages = body.get("messages", [])
|
||||
model = body.get("model", "")
|
||||
|
||||
# 自定义逻辑
|
||||
# 返回值可以是:
|
||||
# - str:单次响应
|
||||
# - Generator/Iterator:流式响应
|
||||
|
||||
return "Response from custom pipe"
|
||||
```
|
||||
|
||||
更多细节见 [插件开发指南](../../development/plugin-guide.md)。
|
||||
Reference in New Issue
Block a user