# 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**。