97 lines
5.2 KiB
Markdown
97 lines
5.2 KiB
Markdown
|
|
# OpenWebUI 核心概念指南:模型与提示词
|
|||
|
|
|
|||
|
|
在 OpenWebUI 中,**System Prompt (系统提示词)** 和 **User Prompt (用户提示词)** 是两个截然不同但紧密协作的概念。正确理解它们的区别对于配置和使用插件至关重要。
|
|||
|
|
|
|||
|
|
## 1. 模型 (Model) vs 提示词 (Prompt)
|
|||
|
|
|
|||
|
|
| 概念 | 对应术语 | 核心作用 | 形象比喻 |
|
|||
|
|
| :--- | :--- | :--- | :--- |
|
|||
|
|
| **Model (模型)** | System Prompt | 定义**身份**与**能力** | **“大脑”** 或 **“专家人设”** |
|
|||
|
|
| **Prompt (提示词)** | User Prompt | 定义**指令**与**交互** | **“快捷指令”** 或 **“工具表单”** |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 2. 深度解析
|
|||
|
|
|
|||
|
|
### 🧠 Model (模型)
|
|||
|
|
* **定义源**: `System Prompt` (系统提示词)
|
|||
|
|
* **文件示例**: `system_prompt_cn.md`
|
|||
|
|
* **功能**:
|
|||
|
|
* 告诉 AI “你是谁”(例如:你是一个信息图设计专家)。
|
|||
|
|
* 规定 AI “必须做什么”(例如:必须输出 HTML 代码,不能有废话)。
|
|||
|
|
* 赋予 AI “专业技能”(例如:掌握 AntV 的语法映射规则)。
|
|||
|
|
* **在 OpenWebUI 中配置**:
|
|||
|
|
* 位置: **Workspace** -> **Models** -> **Create Model**
|
|||
|
|
* 操作: 将 `system_prompt_cn.md` 的内容粘贴到 **System Prompt** 区域。
|
|||
|
|
* **结果**: 创建出一个新的模型实体(如“智能信息图助手”),你可以在聊天列表的下拉菜单中选择它。
|
|||
|
|
|
|||
|
|
### ⚡ Prompt (提示词/命令)
|
|||
|
|
* **定义源**: `User Prompt` (用户提示词)
|
|||
|
|
* **文件示例**: `user_prompt_cn.md`
|
|||
|
|
* **功能**:
|
|||
|
|
* 为用户提供便捷的 **“触发命令”**(例如:`/infographic-cn`)。
|
|||
|
|
* 提供 **“交互表单”**(例如:选择模板、风格、配色)。
|
|||
|
|
* 将用户的简单输入包装成符合模型要求的 **“最终指令”**。
|
|||
|
|
* **在 OpenWebUI 中配置**:
|
|||
|
|
* 位置: **Workspace** -> **Prompts** -> **Create Prompt**
|
|||
|
|
* 操作: 将 `user_prompt_cn.md` 的内容粘贴到 **Content** 区域,并设置 **Command** (如 `/infographic-cn`)。
|
|||
|
|
* **结果**: 创建出一个快捷命令,你在聊天输入框输入 `/` 时可以调用它。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 3. 协同工作流程 (以信息图插件为例)
|
|||
|
|
|
|||
|
|
1. **选择模型**: 用户在聊天框左上角选择 **“智能信息图助手”** (Model)。
|
|||
|
|
* *此时,AI 已经加载了 `System Prompt`,准备好以“信息图专家”的身份工作。*
|
|||
|
|
2. **调用命令**: 用户在输入框输入 `/infographic-cn` (Prompt)。
|
|||
|
|
* *此时,OpenWebUI 弹出表单,用户填写内容、选择模板和风格。*
|
|||
|
|
3. **发送指令**: 用户点击发送。
|
|||
|
|
* *OpenWebUI 将用户填写的表单内容,按照 `User Prompt` 定义的格式(包含英文 key)组装好,发送给 AI。*
|
|||
|
|
4. **生成结果**: AI (Model) 接收到指令。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4. Function (功能/插件)
|
|||
|
|
|
|||
|
|
在 OpenWebUI 中,**Function** (有时也称为 Plugins) 是指扩展系统能力的 Python 脚本。主要分为三种类型:
|
|||
|
|
|
|||
|
|
| 类型 | 英文术语 | 核心作用 | 典型示例 |
|
|||
|
|
| :--- | :--- | :--- | :--- |
|
|||
|
|
| **管道** | **Pipe** | 自定义模型逻辑 | 接入 Claude/Gemini API,或自定义处理流程 |
|
|||
|
|
| **过滤器** | **Filter** | 拦截/修改消息 | 敏感词过滤、自动添加上下文、PDF 解析 |
|
|||
|
|
| **动作** | **Action** | 交互式工具/按钮 | **信息图插件**、生成 Excel、思维导图 |
|
|||
|
|
|
|||
|
|
### 🔍 详细说明
|
|||
|
|
|
|||
|
|
1. **Pipe (管道)**:
|
|||
|
|
* 作为一个 **“模型”** 出现在模型列表中。
|
|||
|
|
* 接收用户输入,经过自定义逻辑处理后,返回结果。
|
|||
|
|
* 常用于接入外部未原生支持的模型,或构建复杂的处理工作流。
|
|||
|
|
|
|||
|
|
2. **Filter (过滤器)**:
|
|||
|
|
* 作为一个 **“中间件”** 隐形工作。
|
|||
|
|
* **Inlet (入口)**: 在用户发送消息给模型 **之前** 拦截并修改(如:给提示词加前缀)。
|
|||
|
|
* **Outlet (出口)**: 在模型返回消息给用户 **之后** 拦截并修改(如:格式化输出)。
|
|||
|
|
|
|||
|
|
3. **Action (动作/工具)**:
|
|||
|
|
* 作为一个 **“工具”** 或 **“按钮”** 存在。
|
|||
|
|
* **Tool (工具)**: 模型可以主动调用的函数 (Function Calling),如联网搜索、计算器。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5. Pipelines (外部管道系统)
|
|||
|
|
|
|||
|
|
**Pipelines** 是 OpenWebUI 的一个独立扩展系统(通常作为一个单独的 Docker 容器运行),它与 **Functions** 有所区别但功能重叠。
|
|||
|
|
|
|||
|
|
| 特性 | **Functions (内置功能)** | **Pipelines (外部管道)** |
|
|||
|
|
| :--- | :--- | :--- |
|
|||
|
|
| **运行位置** | OpenWebUI 主程序内部 | 独立的 Docker 容器 / 服务 |
|
|||
|
|
| **安装方式** | 在界面上直接导入/编写 Python 脚本 | 需要部署额外的服务,通过 URL 连接 |
|
|||
|
|
| **依赖管理** | 依赖 OpenWebUI 环境,受限 | 独立环境,可随意安装任意 Python 库 |
|
|||
|
|
| **适用场景** | 轻量级工具、简单的逻辑处理、UI 交互 | 复杂的 AI 代理、重型计算、依赖特定库的任务 |
|
|||
|
|
|
|||
|
|
**关系说明**:
|
|||
|
|
* **Functions** 中的 **Pipe** 类型,实际上就是受到 **Pipelines** 启发而开发的“内置轻量版”。
|
|||
|
|
* 如果你只需要简单的逻辑(如接入一个 API),使用 **Functions (Pipe)** 即可。
|
|||
|
|
* 如果你需要运行复杂的 Python 代码(如使用 Pandas 分析数据、运行本地小模型),建议使用 **Pipelines**。
|