一、引言
在首篇《【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 官方社区 提供了非常丰富的函数供大家选择,强烈建议一定去逛逛(可能打开新天下的大门额
|