工作区(中文译文)
原始 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.sveltesrc/lib/components/icons/PagePlus.sveltesrc/lib/components/notes/utils.tssrc/lib/components/workspace/Knowledge.sveltesrc/lib/components/workspace/Models.sveltesrc/lib/components/workspace/Prompts.sveltesrc/lib/components/workspace/Tools.sveltesrc/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-81、src/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-23、src/lib/components/workspace/Tools.svelte:12-20、src/lib/components/admin/Functions.svelte:10-20、src/lib/components/workspace/Knowledge.svelte:11-15、src/routes/(app)/workspace/+layout.svelte:87-146
模型管理
模型编辑器允许用户创建基于基础模型的自定义定义。这些定义包括系统提示词、特定的参数覆盖以及附加的知识或工具。
- 能力:模型可以切换特定功能,如视觉、网络搜索和图像生成。
- 访问控制:模型通过
groupIds和access_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-162、src/lib/components/admin/Functions.svelte:160-179、src/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 的扩展。它们可以包含用于配置的
Valvessrc/lib/components/workspace/Tools.svelte:27和Manifest元数据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。
详情请参见技能系统。
共享基础设施
访问控制
工作区实体利用访问控制机制来管理权限。这定义了哪些用户或组对特定模型、工具或知识库具有 read 或 write 权限 src/routes/(app)/workspace/+layout.svelte:23-41。
社区集成
工作区允许与 Open WebUI 社区共享自定义模型、工具和函数。组件使用 window.postMessage 将数据传输到 openwebui.com src/lib/components/workspace/Models.svelte:145-161、src/lib/components/workspace/Tools.svelte:93-115、src/lib/components/admin/Functions.svelte:102-127。
来源:
src/lib/components/workspace/Models.sveltesrc/lib/components/workspace/Knowledge.sveltesrc/lib/components/workspace/Tools.sveltesrc/lib/components/workspace/Prompts.sveltesrc/lib/components/admin/Functions.sveltesrc/routes/(app)/workspace/+layout.svelte