【2025保姆级】Open-WebUI五大功能区首曝!第二篇:工作空间区打造AI协作中枢,手把手搭建多模态作战室&团队协作全流程拆解
一、引言
在首篇《【2025保姆级】Open-WebUI五大功能区首曝!第一篇:管理员面板深度拆解,手把手讲解&配置AI管理中枢》中,我们完成了 Open-WebUI 的 “中枢神经” 配置——从用户权限到模型质检,从安全防线到多源模型接入,你的AI管理后台已具备全局掌控力。但正如现代战争需要 “指挥中枢” 与 “前线作战室” 的协同,工作空间区正是 Open-WebUI 赋予团队的"多模态作战室",让AI协作从单向指令升级为立体化生产力闭环。
从 “单兵作战” 到 “集团军协同”
如果说管理员面板是系统的 “战略指挥部”,那么工作空间区则是AI协作的战术执行层。这里汇聚了文件管理、知识库增强(RAG)、工具链扩展(Tools/Pipes)等核心模块,支持:
- 多模态作战: 图文混合输入、多工具链调用,让AI处理复杂任务时"眼观六路,耳听八方";
- 团队沙盒: 通过权限组划分(如研发组、数据分析组),实现敏感操作隔离与资源安全共享;
- 流程工业化: 从知识库动态更新到自动化流水线(Pipeline),将零散AI交互固化为可复用的生产流程;
二 、提示词
-
功能定位: 也叫提示词模版管理区,通过模板化、社区化设计理念,将零散的提示词调试升级为可复用、可协作的工业化体系,彻底解决 “重复造轮子” 与 “团队知识孤岛” 问题。
-
如何创建: Open-WebUI 提供了三种方式进行创建:
- 手动创建:点击右上角的 + 号,会进入到下图所示的创建页面,就可以编写标题、命令、提示词内容信息,最后点击 保存并创建 就会创建我们的提示词模版啦;
- 手动导出导入:在其它系统导出提示词模版(如下图1所示的 .json 文件,格式内容为下图2所示格式),然后在这里导入;
- 社区导入: 在 Open-WebUI 官方社区 寻找适合你的提示词模版
然后点击 Get
输入你 Open-WebUI 的地址,并点击 Import to WebUI
它会跳转到你的 Open-WebUI 提示词创建页面,点击 保存并创建 即可完成导入
注: 访问控制选择 private 只有管理员可见,选择 public 所有人可见;命名规则如下图二所示
- 手动创建:点击右上角的 + 号,会进入到下图所示的创建页面,就可以编写标题、命令、提示词内容信息,最后点击 保存并创建 就会创建我们的提示词模版啦;
-
如何使用: 在聊天中,使用 / 即可选择创建好的提示词模版
选择好提示词模版后,直接发送或者填充模版中的必要信息,就可以与大模型交互了
三 、知识库
-
功能定位: 知识库是团队的 “第二大脑”——它不仅存储结构化数据,更能通过 RAG(检索增强生成)技术实时增强AI的认知边界,让模型回答提升精准度。Open-WebUI 的工作空间区将知识库从传统的 “文件仓库” 升级为多模态、自进化、可编程的记忆中枢,彻底打破 “文档孤岛” 与 “知识断层”。
-
如何配置: Open-WebUI 提供了三种方式;第一种是 集成 Google 云端硬盘,第二种是 集成 OneDrive,第三种是手动配置,如下:
-
创建知识库目录: 点击右上角的 + 号,会进入到下图所示的创建页面,就可以编写知识库名、知识库描述、可见性信息,最后点击 创建知识 就创建好我们的知识库目录啦;
注: 可见性选择 private 只有管理员可见,选择 public 所有人可见;
-
上传文档: 进入知识库目录,点击右上角的 + 号,选择对应选项(即可选择单个文件,也可选择整个目录,也可同步之前上传过的目录)
选择好文件后,会进行文档加载过程(这个过程会对文档切片、向量化、存储)
加载完成后,会提示 文件成功添加;如果文件加载失败,可以删除文件后多试几次
点击文件,我们也能看到解析后的文件内容
-
修改文档: 如果对上述解析后的文件内容不满意,可以手动修改解析后的文档内容,最后点击 保存 就完成了文档的修改;
-
-
如何使用: 在聊天中,使用 # 即可选择创建好的知识库目录或单个文件。
使用效果如下:
注: Open-WebUI 专注于做模型集成和插件扩展功能,对于 RAG 功能其实不是很理想,特别是在非纯文本的文档内容上;目前开源 RAG 项目公认最好最全的是 RAGFlow,后面等 Open-WebUI 的内容讲完,我会专门讲一档 Open-WebUI 集成 RAGFlow 的内容,打造功能、画面双齐全的系统。
四 、工具
4.1 什么是工具?
工具的本质 是 Python 脚本或预封装服务接口,通过 函数调用(Function Calling) 机制与LLM协作。其核心价值在于:
- 能力扩展: 突破LLM的纯文本交互限制,支持代码执行、API调用、硬件控制等物理操作(如控制智能家居、调用摄像头)
- 动态感知: 实时获取外部数据(如股票行情、天气信息),弥补模型静态知识的滞后性
- 流程自动化: 将多步骤任务(如“爬取网页→数据清洗→生成报告”)固化为原子化工具链
4.2 工作原理
4.3 作用
工具通过提供广泛的功能来支持交互式对话的多样化用例,例如:
- Web 搜索: 执行实时 Web 搜索以获取实时信息。
- Image Generation: 根据用户提示生成图像。
- 外部语音合成: 在聊天中提出 API 请求,以集成外部语音合成服务 ElevenLabs,并根据 LLM 输出生成音频。
4.4 工具创建
Open-WebUI 提供了三种方式进行创建:
- 手动创建:点击右上角的 + 号,会进入到下图所示的创建页面,就可以编写工具ID、工具名称、工具描述、具体代码(可以自己提需求,让 DeepSeek 帮写,然后复制到这里)信息,最后点击 保存 就会创建我们的工具啦;
注: Open-WebuUI 在工具代码上下文中提供了 Valves 和 UserValves 等参数,如果有需要或者想详细了解的,可以参考官网说明
- 社区导入: 在 Open-WebUI 官方社区 寻找你中意的工具,接下来的操作步骤与提示词中的步骤一致;
这里补充一点,如果无法通过 Import to WebUI 自动创建,可以点击下图一中的 Download as JSON export ,会导出一个下图二所示的 .json 文件,最后通过第三种方式导入也是可以的;
- 手动导出导入:在其它系统导出工具或通过上述第二种方式导出 .json 文件,然后在这里导入;
注: 访问控制选择 private 只有管理员可见,选择 public 所有人可见;
4.5 工具使用
在聊天中,点击聊天框左下角的 + ,然后根据场景开启合适的工具(可多选),就可在接下来的聊天中使用这些启用的工具;
4.6 使用案例
原始的大模型是不能捕获当前时间的
但在提问的时,如果勾选上获取当前时间的工具,就可以实时获取当前时间啦;
而且通过日志也能看到,在处理聊天时有调用工具进行处理的日志记录
五 、函数
5.1 什么是函数?
函数 是 Open-WebUI 的轻量级插件,通过预定义逻辑与动态执行环境实现三大核心价值:
- 交互增强: 通过输入输出过滤、上下文修饰,提升用户与模型的沟通效率(如自动补全代码、格式化响应)
- 流程工业化: 将多步骤任务封装为原子化操作单元,形成可复用的AI工作流(如"数据清洗→模型推理→报告生成"管道)
- 生态扩展: 支持第三方函数库的即插即用,快速集成 HuggingFace、GitHub 等平台的优质资源
5.2 函数类型
5.2.1 管道函数
- 功能定位: 构建多模型/多工具协作流水线,形成"虚拟代理";
- 工作原理: 如下图:
从图中看出,管道函数,可以干预 调用大模型前的逻辑处理、流式响应中的逻辑处理、最终响应后的逻辑处理 - 代码框架:
from pydantic import BaseModel, Field class Pipe: class Valves(BaseModel): MODEL_ID: str = Field(default="") def __init__(self): self.valves = self.Valves() def pipe(self, body: dict): # Logic goes here print(self.valves, body) # This will print the configuration options and the input body return "Hello, World!"
5.2.2 过滤器函数
- 功能定位: 动态修饰输入提示词与输出结果,实现交互优化;
- 工作原理: 如下图:
从图中看出,过滤器函数,可以干预 调用大模型前的逻辑处理、流式响应中的逻辑处理、最终响应后的逻辑处理 - 代码框架:
from pydantic import BaseModel from typing import Optional class Filter: # Valves: Configuration options for the filter class Valves(BaseModel): pass def __init__(self): # Initialize valves (optional configuration for the Filter) self.valves = self.Valves() def inlet(self, body: dict) -> dict: # This is where you manipulate user inputs. print(f"inlet called: {body}") return body def stream(self, event: dict) -> dict: # This is where you modify streamed chunks of model output. print(f"stream event: {event}") return event def outlet(self, body: dict) -> None: # This is where you manipulate model outputs. print(f"outlet called: {body}")
注: 通过上述管道函数和过滤器函数的工作原理及代码框架,不难发现,过滤器是将管道函数细分成更小的功能块;管道函数能完成的功能过滤器函数也是可以做到的,反之亦然;但是官方拆成两个函数一定是有意义的(功能职责划分),所以还是推荐按照职责划分使用(过滤器函数的职责是对输入输出内容进行敏感词等过滤;管道函数的职责是对本次交互过程进行增强,如集成外部 API、自定义模型行为和创建创新功能等)
5.2.3 操作函数
- 功能定位: 在 UI 界面添加自定义按钮,扩展用户侧快捷操作;
- 代码框架:
""" title: Example Action author: open-webui author_url: https://github.com/open-webui funding_url: https://github.com/open-webui version: 0.1.0 required_open_webui_version: 0.3.9 """ from pydantic import BaseModel, Field from typing import Optional, Union, Generator, Iterator import os import requests import asyncio class Action: class Valves(BaseModel): pass def __init__(self): self.valves = self.Valves() pass async def action( self, body: dict, __user__=None, __event_emitter__=None, __event_call__=None, ) -> Optional[dict]: print(f"action:{__name__}") response = await __event_call__( { "type": "input", "data": { "title": "write a message", "message": "here write a message to append", "placeholder": "enter your message", }, } ) print(response) if __event_emitter__: await __event_emitter__( { "type": "status", "data": {"description": "adding message", "done": False}, } ) await asyncio.sleep(1) await __event_emitter__({"type": "message", "data": {"content": response}}) await __event_emitter__( { "type": "status", "data": {"description": "added message", "done": True}, } )
5.3 函数创建
Open-WebUI 提供了三种方式进行创建:
-
手动创建:点击右上角的 + 号,会进入到下图所示的创建页面(默认是过滤器函数的代码框架,如果要改成其它函数,可以复制上面对应的函数代码框架),然后完成相应的代码编写(可以自己提需求,让 DeepSeek 帮写,然后复制到这里),最后点击 保存 就成功创建我们的函数啦;
注: Open-WebuUI 在函数代码上下文中提供了 Valves 和 UserValves 等参数,如果有需要或者想详细了解的,可以参考官网说明
-
社区导入: 在 Open-WebUI 官方社区 寻找你中意的函数,接下来的操作步骤与提示词中的步骤一致;
注: Open-WebUI 官方社区 提供了非常丰富的函数供大家选择,强烈建议一定去逛逛(可能打开新世界的大门额😏)我这里推荐几个实用的:- Dynamic Vision Router: 在聊天中,如果有图片,会使用视觉模型解析图片,实现多模态。
- RAGFLOW_COT: 解决集成 RagFlow 后的思维链问题。
- Dify Workflow: 集成 Dify 工作流。
-
手动导出导入:在其它系统导出函数或通过上述第二种方式导出 .json 文件,然后在这里导入;
5.4 函数使用
5.4.1 管道函数
- 管道函数本身会创建一个新模型,然后在聊天时直接选择使用,如:
RAGFLOW-COT 这个管道函数会创建了一个 ragflow-cot 的新模型
然后在聊天窗口中,会多出来 ragflow-cot 这个模型,直接选择使用即可
5.4.2 过滤器函数
过滤器函数的使用也提供两种方式:
- 第一种:全局启用,所有的模型都会使用到这个过滤器函数;如下图中,将全局开关打开就表示全局启用;
- 第二种:在后续 六、模型 中引用过滤器函数,请查看具体内容;
5.4.3 操作函数
操作函数的使用与过滤器函数一致,也是同样两种方式,这里就不赘述了;
注: 所有的函数都可以设置一些配置参数,点击 设置 按钮查看,是否需要填写必要参数;
如:RAGFLOW_COT 这个函数,需要填写以下三个参数,否则函数无法使用;
5.5 使用案例
5.5.1 管道函数
使用管道函数集成 RAGFLOW 的知识库助手,会创建 ragflow-sop-cot 的新模型
然后在聊天窗口中,选择 ragflow-sop-cot 模型就行交互,正常输出内容,且效果杠杠的👍
5.5.2 过滤器函数
全局启用动态视觉路由过滤器函数,且将视觉模型改为 Pro/Qwen/Qwen2-VL-7B-Instruct
DeepSeek-R1是不具备图片解释功能的,但因全局启用了动态视觉路由过滤器函数,它会自动路由到 Pro/Qwen/Qwen2-VL-7B-Instruct 视觉模型,进行处理
5.5.3 操作函数
全局启用官方模版操作函数(作用是在模型回复消息末尾追加自定义文本)
所有的模型回复消息下方,都有操作函数按钮
加上自定义消息,点击 确认 后,消息末尾会追加自定义消息
六 、模型
-
功能定位: 模型 模块不仅是 AI 能力的核心载体,更是实现业务场景深度适配的 “原子单元”。作为工作空间区的核心组件,模型 模块通过模块化封装、动态调度与混合增强技术,将传统的大语言模型(LLM)升级为可编程、可协作、可进化的智能体集群(大白话:利用各种接入的原始大模型,配置的函数、工具、知识库搭建一个新的模型<智能体>)。
-
模型创建: Open-WebUI 提供了三种方式进行模型创建:手动创建、社区导入、导出导入;其中社区导入、导出导入方式与前面的内容高度相似,这里就不展开讲解,这里重点讲解手动创建的内容:
- 模型图像: 可上传本地图片作为模型图像;
- 模型名称: 模型的名称;
- 模型ID: 模型唯一标识;
- 模型描述: 模型的详情描述;
- 添加标签: 对模型添加标签,供搜索模型时使用;
- 可见性: public(所有人可见)、 private(与权限组一起使用,不配置权限组将只有管理员可见);
- 系统提示词: 模型的系统提示词;
- 高级参数: 与模型聊天时各种调优参数;对话区有相同配置,我们放到对话区一起详细讲解;
- 提示词建议: 给模型添加默认提示词模版;效果如下:
- 知识库: 给模型添加 三、知识库 中的知识库;使用这个模型时,一定会在关联的知识库中检索内容,作为提问的背景(RAG);
- 工具: 给模型添加 四、工具 中启用的工具;使用这个模型时,会选择性使用关联的工具辅助大模型完成回答任务;
- 过滤器: 给模型添加 5.4.2 过滤器函数 中启用的过滤器; 使用这个模型时,一定会使用关联的过滤器函数;
- 自动化(PIPE): 给模型添加 5.4.3 操作函数 中启用的操作函数;使用这个模型时,一定会使用关联的自动化;
- 能力: Vision(是否支持图像输入)、Usage(是否展示本次响应的 Token 使用信息)、Citations(是否展示知识库引用)
-
模型使用: 上述模型创建会在模型列表中新增一个对应模型,直接选择使用即可;如:上述创建了一个具有生图功能,并关联MySQL知识库的模型 DeepSeek-R1-Plus ,直接在聊天模型中选择使用即可;
七 、Pipeline
7.1 什么是Pipeline?
Pipeline 是 Open-WebUI 生态中一个独立且模块化的插件框架 ,旨在为任何支持 OpenAI API 规范的 UI 客户端提供可定制的工作流扩展能力。其核心理念是允许开发者通过编写轻量级代码,在用户与大型语言模型(LLM)的交互过程中注入自定义逻辑,实现从简单过滤到复杂多模型协作的全流程控制。
7.2 Pipeline与函数的区别
维度 | 函数(Functions) | 管道(Pipelines) |
---|---|---|
运行环境 | 内嵌于 Open-WebUI 服务器,依赖其运行时环境 | 作为独立服务运行(需单独部署 Pipelines 服务器) |
功能范围 | 轻量级插件,侧重单一功能(如按钮、简单逻辑) | 复杂工作流,支持多步骤处理(如 RAG、多模型协作) |
灵活性 | 受限于 Open-WebUI 的 API 和沙盒环境 | 几乎无限制,可调用任意 Python 库和外部服务 |
用户交互 | 通过界面直接配置(如过滤器或管道函数) | 需在客户端设置 OpenAI URL 指向 Pipelines 服务 |
安全性 | 相对安全(运行在受控环境中) | 需谨慎管理(因支持任意代码执行,存在安全风险) |
7.3 Pipeline服务部署
- docker部署: 请使用以下命令:
docker run -d -p 9099:9099 --add-host=host.docker.internal:host-gateway -v pipelines:/app/pipelines --name pipelines --restart always swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/open-webui/pipelines:main
- docker-compose部署: 在 docker-compose.yml 文件中添加如下配置:
pipelines: image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/open-webui/pipelines:main container_name: pipelines ports: - "9099:9099" volumes: - pipelines:/app/pipelines extra_hosts: - host.docker.internal:host-gateway restart: always
- 裸机部署:
- 安装python: 参考这篇文章
注: python推荐版本为3.11.x,官方有说明
- 克隆 Pipelines 存储库:
git clone https://github.com/open-webui/pipelines.git cd pipelines
- 安装所需的依赖项:
pip install -r requirements.txt
- 启动管道服务器:
sh ./start.sh
- 安装python: 参考这篇文章
7.4 Pipeline连接
在外部连接中添加新的连接,URL填写:docker部署:http://pipelines:9099,裸机部署:http://localhost:9099;秘匙:0p3n-w3bu!(固定)
添加成功后,密匙旁边会有 Pipeline 图标
7.5 Pipeline安装使用
上述 Pipeline 连接成功后,进入到 Pipeline 页面后,管道 URL 自动选择上述外部连接中配置的 URL(如果配置了多个连接,就可以自有选择了)
Open-WebUI 提供了两种方式进行 Pipeline 安装:
- 手动安装:点击 点击此处选择py文件,会让你选择一个本地编写好的 python 文件,然后点击右边的 上传符号,它会加载到下面 Pipeline 值中,填写好 Pipeline 需要的参数值,就可以使用了;
- Github URL 安装:在 Github 上选择一个 python 文件(如下图一,选择 Open-WebUI 官方pipelins项目中的示例python文件google_translation_filter_pipeline.py),然后点击右边的 下载符号,它会加载到下面 Pipeline 值中,填写好 Pipeline 需要的参数值,就可以使用了;
八 、总结
至此,Open-WebUI 工作空间区的“多模态作战室”已全面竣工!🎉🎉🎉 通过提示词工业化、知识库动态化、工具链原子化、函数协同化、模型场景化五大核心模块的深度配置,你的团队将实现从“人机对话”到“人-机-知识三元融合”的质变升级。
💡 趣味冷知识
当工作空间区的所有模块均完成配置时,系统会生成一枚《头号玩家》风格的虚拟勋章,隐藏在工作空间右上角的齿轮图标中——这是 Open-WebUI 对“完全体数字指挥官”的终极认证!🎮
🚧 下一站预告
《【2025保姆级】Open-WebUI五大功能区首曝!第三篇:用户设置区——个性化定义与隐私控制,打造你的专属AI人格》即将上线!