agentic_huge_data_base / wiki
页面 Open WebUI · 19 工作区·DeepWiki 中文全文译文

19 · 工作区(Workspace)

多模型对话工作台与知识应用入口 · 本章是 Open WebUI DeepWiki 中文译文的独立章节页,保留原始链接、源码锚点、模块标签和章节层级。

项目Open WebUI 章节19 状态全文译文 模块工具、记忆与模型调用、频道、笔记与协作、界面与交互、系统架构
源码线索
  • src/lib/components/admin/Functions.svelte
  • src/lib/components/icons/PagePlus.svelte
  • src/lib/components/notes/utils.ts
  • src/lib/components/workspace/Knowledge.svelte
  • src/lib/components/workspace/Models.svelte
  • src/lib/components/workspace/Prompts.svelte
  • src/lib/components/workspace/Tools.svelte
模块标签
  • 工具、记忆与模型调用
  • 频道、笔记与协作
  • 界面与交互
  • 系统架构
  • 检索、召回与知识系统

中文译文

工作区(中文译文)

原始 DeepWiki 页面:https://deepwiki.com/open-webui/open-webui/19-workspace
翻译时间:2026-06-09T16:12:30.011Z
翻译模型:deepseek-chat
原文字符数:9265
项目:Open WebUI (open-webui)

---

工作区

相关源文件

以下文件被用作生成此 wiki 页面的上下文:

  • src/lib/components/admin/Functions.svelte
  • src/lib/components/icons/PagePlus.svelte
  • src/lib/components/notes/utils.ts
  • src/lib/components/workspace/Knowledge.svelte
  • src/lib/components/workspace/Models.svelte
  • src/lib/components/workspace/Prompts.svelte
  • src/lib/components/workspace/Tools.svelte
  • src/routes/(app)/admin/+layout.svelte/admin/+layout.svelte)
  • src/routes/(app)/admin/+page.svelte/admin/+page.svelte)
  • src/routes/(app)/home/+layout.svelte/home/+layout.svelte)
  • src/routes/(app)/notes/+page.svelte/notes/+page.svelte)
  • [src/routes/(app)/notes/[id]/+page.svelte](src/routes/(app)/notes/[id]/+page.svelte)
  • src/routes/(app)/notes/new/+page.svelte/notes/new/+page.svelte)
  • src/routes/(app)/playground/+layout.svelte/playground/+layout.svelte)
  • src/routes/(app)/workspace/+layout.svelte/workspace/+layout.svelte)

工作区是自定义和扩展 Open WebUI 体验的核心管理枢纽。它提供了管理模型、知识库、提示词、工具、函数和技能的结构化界面,使用户和管理员能够构建复杂的 AI 工作流。

工作区由几个关键模块组成,每个模块由特定的 Svelte 组件和后端 API 处理:

  • 模型:自定义模型定义和配置。
  • 知识:RAG(检索增强生成)数据管理。
  • 提示词:可复用的系统提示词和命令库。
  • 工具与函数:基于 Python 的自定义扩展,用于增强模型能力。
  • 技能:基于 frontmatter 元数据的可复用 AI 技能定义。
  • 自动化与日历:定时任务和基于事件的触发器(v0.9.0+)。

组件架构

工作区采用模块化组件结构构建,将列表视图与专用编辑器分离。大多数组件使用 viewOption(例如 "all"、"created"、"shared")来过滤显示的项目 src/lib/components/workspace/Models.svelte:79-81src/lib/components/workspace/Tools.svelte:77-91。对这些模块的访问由用户角色和特定的工作区权限控制 src/routes/(app)/workspace/+layout.svelte:23-41

工作区实体关系

此图展示了自然语言概念如何映射到特定的代码实体和 API 处理器。

graph TD
    subgraph "自然语言空间"
        W["工作区"] --> M["模型"]
        W --> K["知识库"]
        W --> P["提示词库"]
        W --> T["工具与函数"]
    end

    subgraph "代码实体空间(前端)"
        M --> M_Comp["Models.svelte"]
        K --> K_Comp["Knowledge.svelte"]
        P --> P_Comp["Prompts.svelte"]
        T --> T_Comp["Tools.svelte / Functions.svelte"]

        M_Comp --> M_Edit["ModelEditor.svelte"]
        K_Comp --> K_Base["KnowledgeBase.svelte"]
        P_Comp --> P_Edit["PromptEditor.svelte"]
        T_Comp --> T_Edit["ToolkitEditor.svelte / FunctionEditor.svelte"]
    end

    subgraph "后端 API 空间"
        M_Edit -- "createNewModel" --> M_API["/api/v1/models"]
        K_Base -- "uploadFile" --> F_API["/api/v1/files"]
        K_Base -- "searchKnowledgeBases" --> K_API["/api/v1/knowledge"]
        P_Edit -- "getPromptItems" --> P_API["/api/v1/prompts"]
        T_Edit -- "getToolById" --> T_API["/api/v1/tools"]
        T_Edit -- "getFunctionList" --> Func_API["/api/v1/functions"]
    end

    M_API --> DB[("SQL 数据库")]
    K_API --> VDB[("向量数据库")]

来源:src/lib/components/workspace/Models.svelte:16-23src/lib/components/workspace/Tools.svelte:12-20src/lib/components/admin/Functions.svelte:10-20src/lib/components/workspace/Knowledge.svelte:11-15src/routes/(app)/workspace/+layout.svelte:87-146

模型管理

模型编辑器允许用户创建基于基础模型的自定义定义。这些定义包括系统提示词、特定的参数覆盖以及附加的知识或工具。

  • 能力:模型可以切换特定功能,如视觉、网络搜索和图像生成。
  • 访问控制:模型通过 groupIdsaccess_grants 支持细粒度权限,允许创建者与特定用户或组共享 src/lib/components/workspace/Models.svelte:65
  • 操作:工作区支持克隆 src/lib/components/workspace/Models.svelte:136-143、固定 src/lib/components/workspace/Models.svelte:218-229 和切换可见性 src/lib/components/workspace/Models.svelte:163-191

详情请参见模型编辑器

知识库管理

知识部分管理用于检索增强生成(RAG)的数据。它允许创建集合,将多个文件或网页 URL 组合在一起。

  • 导入:支持创建新的知识库 src/lib/components/workspace/Knowledge.svelte:179-187 和管理现有集合。
  • 内容管理:可以搜索 src/lib/components/workspace/Knowledge.svelte:199-204、更新或删除 src/lib/components/workspace/Knowledge.svelte:116-125 知识库中的文件。
  • 导出:通过 exportKnowledgeById 可以将整个知识库导出为 .zip 文件 src/lib/components/workspace/Knowledge.svelte:127-144

详情请参见知识库管理

提示词、工具和函数

工作区提供了一个复杂的环境,用于通过模板和 Python 代码扩展 AI 的逻辑。

扩展逻辑流程

此图展示了工作区中用户定义的工具或函数如何与系统交互。

sequenceDiagram
    participant U as "用户(工作区 UI)"
    participant S as "Svelte Store(工具/函数)"
    participant E as "ToolkitEditor / FunctionEditor"
    participant B as "后端(FastAPI)"

    U->>E: "输入 Python 代码(class Tools / Filter)"
    E->>B: "createNewTool / createNewFunction"
    B->>B: "验证并存储到数据库"
    B-->>E: "成功响应"
    E->>S: "更新前端 stores"
    S-->>U: "UI 更新,显示新能力"

来源:src/lib/components/workspace/Tools.svelte:159-162src/lib/components/admin/Functions.svelte:160-179src/lib/components/workspace/Prompts.svelte:251-262

提示词

提示词库管理可复用的模板。它支持:

  • 导入/导出:提示词可以导出为 JSON src/lib/components/workspace/Prompts.svelte:143-148 并批量导入 src/lib/components/workspace/Prompts.svelte:240-270
  • 命令触发:提示词与特定的 / 命令关联,用于快速调用 src/lib/components/workspace/Prompts.svelte:134-137
工具和函数
  • 工具:基于 Python 的扩展。它们可以包含用于配置的 Valves src/lib/components/workspace/Tools.svelte:27Manifest 元数据 src/lib/components/workspace/Tools.svelte:28
  • 函数:主要在管理面板中管理 src/lib/components/admin/Functions.svelte:1-20,允许更低层次的扩展,如 Filters(入口/出口钩子)或 Pipes。它们可以全局启用 src/lib/components/admin/Functions.svelte:181-207

详情请参见提示词和工具管理

技能系统

技能系统允许创建和管理可复用的 AI 技能定义。这些定义通常通过基于 frontmatter 的元数据进行共享和导入,从而实现包含访问控制和版本控制的可移植 AI 能力。根据权限,用户可以管理自己的技能或访问共享的技能 src/routes/(app)/workspace/+layout.svelte:122-133

详情请参见技能系统

共享基础设施

访问控制

工作区实体利用访问控制机制来管理权限。这定义了哪些用户或组对特定模型、工具或知识库具有 readwrite 权限 src/routes/(app)/workspace/+layout.svelte:23-41

社区集成

工作区允许与 Open WebUI 社区共享自定义模型、工具和函数。组件使用 window.postMessage 将数据传输到 openwebui.com src/lib/components/workspace/Models.svelte:145-161src/lib/components/workspace/Tools.svelte:93-115src/lib/components/admin/Functions.svelte:102-127

来源:

  • src/lib/components/workspace/Models.svelte
  • src/lib/components/workspace/Knowledge.svelte
  • src/lib/components/workspace/Tools.svelte
  • src/lib/components/workspace/Prompts.svelte
  • src/lib/components/admin/Functions.svelte
  • src/routes/(app)/workspace/+layout.svelte