用户云卷云舒 发表于 5 天前

【2025保姆级】Open-WebUI五大功能区首曝!第二篇:工作空间区打造AI协作中枢,手把手搭建多模态作战室&团队协作全流程拆解

一、引言

在首篇《【2025保姆级】Open-WebUI五大功能区首曝!第一篇:管理员面板深度拆解,手把手讲解&设置AI管理中枢》中,我们完成了 Open-WebUI 的 “中枢神经” 设置——从用户权限到模型质检,从安全防线到多源模型接入,你的AI管理背景已具备全局掌控力。但正如当代战争必要 “指挥中枢” 与 “前线作战室” 的协同,工作空间区正是 Open-WebUI 赋予团队的"多模态作战室",让AI协作从单向指令升级为立体化生产力闭环。
从 “单兵作战” 到 “团体军协同”
如果说管理员面板是体系的 “战略指挥部”,那么工作空间区则是AI协作的战术执行层。这里汇聚了文件管理、知识库增强(RAG)、工具链扩展(Tools/Pipes)等焦点模块,支持:


[*]多模态作战: 图文混合输入、多工具链调用,让AI处置处罚复杂任务时"眼观六路,耳听八方";
[*]团队沙盒: 通过权限组分别(如研发组、数据分析组),实现敏感操作隔离与资源安全共享;
[*]流程工业化: 从知识库动态更新到主动化流水线(Pipeline),将零散AI交互固化为可复用的生产流程;
二 、提示词

https://i-blog.csdnimg.cn/direct/321ff9ec75514f39bd75d15f19a4a5cf.png


[*] 功能定位: 也叫提示词模版管理区,通过模板化、社区化设计理念,将零散的提示词调试升级为可复用、可协作的工业化体系,彻底解决 “重复造轮子” 与 “团队知识孤岛” 题目。
[*] 如何创建: Open-WebUI 提供了三种方式进行创建:

[*]手动创建:点击右上角的 + 号,会进入到下图所示的创建页面,就可以编写标题、命令、提示词内容信息,最后点击 生存并创建 就会创建我们的提示词模版啦;
https://i-blog.csdnimg.cn/direct/5eba34b46df74925a95c136f2154fd0f.png
[*]手动导出导入:在其它体系导出提示词模版(如下图1所示的 .json 文件,格式内容为下图2所示格式),然后在这里导入;
https://i-blog.csdnimg.cn/direct/6856dbe75bd246a39a059e20cab72a5e.png
https://i-blog.csdnimg.cn/direct/242909c760b6442eac59355f508e0232.png
[*]社区导入: 在 Open-WebUI 官方社区 探求适合你的提示词模版
https://i-blog.csdnimg.cn/direct/b9202fb4efac412da89194ec2d4cd2cc.png
然后点击 Get
https://i-blog.csdnimg.cn/direct/d777b6bf49804085b747d2a04ff4c335.png
输入你 Open-WebUI 的地址,并点击 Import to WebUI
https://i-blog.csdnimg.cn/direct/2eb76303d0244a1087bd27db8bc271bc.png
它会跳转到你的 Open-WebUI 提示词创建页面,点击 生存并创建 即可完成导入
https://i-blog.csdnimg.cn/direct/b7652efe4bff4f98844423cc9245fc24.png
注: 访问控制选择 private 只有管理员可见,选择 public 所有人可见;命名规则如下图二所示
https://i-blog.csdnimg.cn/direct/52d0aded162840f3aec120d83cec6577.png
https://i-blog.csdnimg.cn/direct/b7a6cba0965d4843954af913446154aa.png

[*] 如何使用: 在聊天中,使用 / 即可选择创建好的提示词模版
https://i-blog.csdnimg.cn/direct/af66568bff934a5d995cf910f6779f54.png
选择好提示词模版后,直接发送或者填充模版中的必要信息,就可以与大模型交互了
https://i-blog.csdnimg.cn/direct/3ffc794890fc4973830802c1afad5725.png
三 、知识库

https://i-blog.csdnimg.cn/direct/161f915d12854c0ca9a85e535f702ef7.png


[*] 功能定位: 知识库是团队的 “第二大脑”——它不仅存储结构化数据,更能通过 RAG(检索增强天生)技能实时增强AI的认知边界,让模型答复提升精准度。Open-WebUI 的工作空间区将知识库从传统的 “文件仓库” 升级为多模态、自进化、可编程的记忆中枢,彻底打破 “文档孤岛” 与 “知识断层”。
[*] 如何设置: Open-WebUI 提供了三种方式;第一种是 集成 Google 云端硬盘,第二种是 集成 OneDrive,第三种是手动设置,如下:

[*] 创建知识库目录: 点击右上角的 + 号,会进入到下图所示的创建页面,就可以编写知识库名、知识库描述、可见性信息,最后点击 创建知识 就创建好我们的知识库目录啦;
注: 可见性选择 private 只有管理员可见,选择 public 所有人可见;
https://i-blog.csdnimg.cn/direct/bd933500a3fd4536bbbf6005cad958f4.png
[*] 上传文档: 进入知识库目录,点击右上角的 + 号,选择对应选项(即可选择单个文件,也可选择整个目录,也可同步之前上传过的目录)
https://i-blog.csdnimg.cn/direct/05ae47021c64436a81f3bca89df0542a.png
选择好文件后,会进行文档加载过程(这个过程会对文档切片、向量化、存储)
https://i-blog.csdnimg.cn/direct/a4bc131b85964f498c92f77c319f7826.png
加载完成后,会提示 文件成功添加;如果文件加载失败,可以删除文件后多试频频
https://i-blog.csdnimg.cn/direct/2ce7520b415a47fcab4992c1dc887a50.png
点击文件,我们也能看到剖析后的文件内容
https://i-blog.csdnimg.cn/direct/ef040b39f2784c3bbfc06ee29326fb00.png
[*] 修改文档: 如果对上述剖析后的文件内容不满足,可以手动修改剖析后的文档内容,最后点击 生存 就完成了文档的修改;

[*] 如何使用: 在聊天中,使用 # 即可选择创建好的知识库目录或单个文件。
https://i-blog.csdnimg.cn/direct/f957a9a1777c470489e69a8cef501b21.png
使用效果如下:
https://i-blog.csdnimg.cn/direct/00ec4d0c9a45438989ac3c258fcdce53.png
注: Open-WebUI 专注于做模型集成和插件扩展功能,对于 RAG 功能实在不是很抱负,特别是在非纯文本的文档内容上;目前开源 RAG 项目公认最好最全的是 RAGFlow,背面等 Open-WebUI 的内容讲完,我会专门讲一档 Open-WebUI 集成 RAGFlow 的内容,打造功能、画面双齐备的体系。
四 、工具

https://i-blog.csdnimg.cn/direct/a9ce61c694de4151860f353282650399.png
4.1 什么是工具?

工具的本质 是 Python 脚本或预封装服务接口,通过 函数调用(Function Calling) 机制与LLM协作。其焦点价值在于:


[*]能力扩展: 突破LLM的纯文本交互限制,支持代码执行、API调用、硬件控制等物理操作(如控制智能家居、调用摄像头)
[*]动态感知: 实时获取外部数据(如股票行情、天气信息),弥补模型静态知识的滞后性
[*]流程主动化: 将多步骤任务(如“爬取网页→数据清洗→天生报告”)固化为原子化工具链
4.2 工作原理

https://i-blog.csdnimg.cn/direct/8000acf055ec4a38923810f98ee9fa04.png
4.3 作用

工具通过提供广泛的功能来支持交互式对话的多样化用例,比方:


[*]Web 搜刮: 执行实时 Web 搜刮以获取实时信息。
[*]Image Generation: 根据用户提示天生图像。
[*]外部语音合成: 在聊天中提出 API 请求,以集成外部语音合成服务 ElevenLabs,并根据 LLM 输出天生音频。
4.4 工具创建

Open-WebUI 提供了三种方式进行创建:


[*]手动创建:点击右上角的 + 号,会进入到下图所示的创建页面,就可以编写工具ID、工具名称、工具描述、具体代码(可以自己提需求,让 DeepSeek 帮写,然后复制到这里)信息,最后点击 生存 就会创建我们的工具啦;
注: Open-WebuUI 在工具代码上下文中提供了 Valves 和 UserValves 等参数,如果有必要或者想详细了解的,可以参考官网说明
https://i-blog.csdnimg.cn/direct/4fabfb8ec6fa4b14ab467ee147749666.png
[*]社区导入: 在 Open-WebUI 官方社区 探求你中意的工具,接下来的操作步骤与提示词中的步骤一致;
https://i-blog.csdnimg.cn/direct/af48c41ef33c4a62903b90ceab9bef77.png
这里补充一点,如果无法通过 Import to WebUI 主动创建,可以点击下图一中的 Download as JSON export ,会导出一个下图二所示的 .json 文件,最后通过第三种方式导入也是可以的;
https://i-blog.csdnimg.cn/direct/70831b75b54442aabeac5057b04906b2.pnghttps://i-blog.csdnimg.cn/direct/53ea8568f6434b0e8f915a0e4c8d02df.png
[*]手动导出导入:在其它体系导出工具或通过上述第二种方式导出 .json 文件,然后在这里导入;
https://i-blog.csdnimg.cn/direct/dde9f236ebb64152ab50c1248d80bbdc.png
注: 访问控制选择 private 只有管理员可见,选择 public 所有人可见;
4.5 工具使用

在聊天中,点击聊天框左下角的 + ,然后根据场景开启符合的工具(可多选),就可在接下来的聊天中使用这些启用的工具;
https://i-blog.csdnimg.cn/direct/f7cd3b6099c74c7689c6ff4e462bfba3.png
4.6 使用案例

原始的大模型是不能捕获当前时间的
https://i-blog.csdnimg.cn/direct/70c3c60a3fd04fd3ae69376972d50d2d.png
但在提问的时,如果勾选上获取当前时间的工具,就可以实时获取当前时间啦;
https://i-blog.csdnimg.cn/direct/1e9cef54d12c4ab18aed81183423cf8b.png
https://i-blog.csdnimg.cn/direct/edd5e8a6f3a048b6bd5ede4a7d10faba.png
而且通过日记也能看到,在处置处罚聊天时有调用工具进行处置处罚的日记记载
https://i-blog.csdnimg.cn/direct/0af5d822c3344a1e83f6f0099ecfcd75.png
五 、函数

https://i-blog.csdnimg.cn/direct/6e1f01b6d2bc4476a1e68145c0514536.png
5.1 什么是函数?

函数 是 Open-WebUI 的轻量级插件,通过预定义逻辑与动态执行环境实现三大焦点价值:


[*]交互增强: 通过输入输出过滤、上下文修饰,提升用户与模型的沟通效率(如主动补全代码、格式化相应)
[*]流程工业化: 将多步骤任务封装为原子化操作单位,形成可复用的AI工作流(如"数据清洗→模型推理→报告天生"管道)
[*]生态扩展: 支持第三方函数库的即插即用,快速集成 HuggingFace、GitHub 等平台的优质资源
5.2 函数类型

5.2.1 管道函数



[*]功能定位: 构建多模型/多工具协作流水线,形成"虚拟署理";
[*]工作原理: 如下图:
https://i-blog.csdnimg.cn/direct/764aca3950d54e80b1c7c0cf1179137b.png
从图中看出,管道函数,可以干预 调用大模型前的逻辑处置处罚、流式相应中的逻辑处置处罚、最终相应后的逻辑处置处罚
[*]代码框架: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 过滤器函数



[*]功能定位: 动态修饰输入提示词与输出效果,实现交互优化;
[*]工作原理: 如下图:
https://i-blog.csdnimg.cn/direct/33de66514bff41a09d744949a61fb276.png
从图中看出,过滤器函数,可以干预 调用大模型前的逻辑处置处罚、流式相应中的逻辑处置处罚、最终相应后的逻辑处置处罚
[*]代码框架: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:
      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 等参数,如果有必要或者想详细了解的,可以参考官网说明
https://i-blog.csdnimg.cn/direct/7fd2a48fa12f4ac3970347ed2ec684ea.png
[*] 社区导入: 在 Open-WebUI 官方社区 探求你中意的函数,接下来的操作步骤与提示词中的步骤一致;
https://i-blog.csdnimg.cn/direct/1c281f60246a45adaf41e54b04a9408c.png
注: Open-WebUI 官方社区 提供了非常丰富的函数供大家选择,强烈建议一定去逛逛(可能打开新天下的大门额
页: [1]
查看完整版本: 【2025保姆级】Open-WebUI五大功能区首曝!第二篇:工作空间区打造AI协作中枢,手把手搭建多模态作战室&团队协作全流程拆解