agentic_huge_data_base / wiki
页面 Open WebUI · 1 总览·DeepWiki 中文全文译文

1 · 总览(Overview)

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

项目Open WebUI 章节1 状态全文译文 模块系统架构、测试、发布与运维、工具、记忆与模型调用、检索、召回与知识系统
源码线索
  • CHANGELOG.md
  • README.md
  • TROUBLESHOOTING.md
  • package-lock.json
  • package.json
  • src/app.css
  • src/lib/apis/images/index.ts
  • src/lib/apis/index.ts
  • src/lib/components/chat/Settings/About.svelte
  • src/lib/components/common/RichTextInput.svelte
模块标签
  • 系统架构
  • 测试、发布与运维
  • 工具、记忆与模型调用
  • 检索、召回与知识系统
  • 接口与服务契约

中文译文

总览(中文译文)

原始 DeepWiki 页面:https://deepwiki.com/open-webui/open-webui/1-overview
翻译时间:2026-06-09T16:07:23.353Z
翻译模型:deepseek-chat
原文字符数:9334
项目:Open WebUI (open-webui)

---

概述

相关源文件

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

  • CHANGELOG.md
  • LICENSE
  • README.md
  • TROUBLESHOOTING.md
  • package-lock.json
  • package.json
  • src/app.css
  • src/lib/apis/images/index.ts
  • src/lib/apis/index.ts
  • src/lib/components/chat/Settings/About.svelte
  • src/lib/components/common/RichTextInput.svelte
  • src/lib/components/playground/Images.svelte
  • src/lib/stores/index.ts
  • src/routes/(app)/playground/images/+page.svelte/playground/images/+page.svelte)
  • src/routes/+layout.svelte
  • static/manifest.json

目的与范围

Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 AI 平台,旨在完全离线运行,同时为多个 LLM 运行器提供统一接口 README.md:1-15。它作为一个全面的 AI 部署解决方案,将 Ollama 等本地推理引擎与 OpenAI 兼容 API(包括 LMStudio、GroqCloud、Mistral 和 OpenRouter)集成在一起 README.md:15-33

该平台旨在处理复杂的 AI 工作流,包括检索增强生成(RAG)、原生 Python 函数调用和实时协作功能,使其既适合个人高级用户,也适用于企业环境 README.md:46-67

---

核心能力

Open WebUI 通过广泛的功能集脱颖而出,弥合了原始模型推理与精致用户体验之间的差距。

AI 界面与模型管理
  • 多模型对话:轻松与多个模型同时交互,比较各自的优势和回答 README.md:58-59
  • 模型构建器:直接通过 Web UI 创建和自定义 Ollama 模型,包括自定义角色和代理 README.md:44-45
  • 提供商聚合:系统通过 getModels 发现并聚合来自多个后端的模型 src/lib/apis/index.ts:9-14,支持代理和直接 OpenAI 连接 src/lib/apis/index.ts:48-55
检索增强生成(RAG)
  • 向量数据库支持:集成 9 种向量数据库选项,包括 ChromaDBPGVectorQdrantMilvus README.md:64-65
  • 文档导入:支持多种内容提取引擎,包括新增的 PaddleOCR-vl CHANGELOG.md:12 和用于网页加载的 Firecrawl v2 API CHANGELOG.md:13
  • 网络搜索集成:将来自 15 个以上提供商(SearXNG、Brave、Google PSE 等)的实时结果注入聊天体验 README.md:52-53
高级工具与可扩展性
  • 原生 Python 函数调用:工具工作区中的内置代码编辑器允许用户“自带函数”(BYOF) README.md:46-47
  • 定时聊天自动化:可使用 iCalendar RRULE 语法安排重复性 AI 任务,并可通过 AUTOMATION_MAX_COUNT 等管理员配置限制 CHANGELOG.md:41
  • 代码执行:代码块执行系统,允许通过 Pyodide 直接从聊天消息中运行 Python 代码 package.json:138,通过持久化工作线程管理以保留虚拟文件系统 src/routes/+layout.svelte:213-220
企业级与协作
  • 基于角色的访问控制(RBAC):为用户和组提供细粒度权限,确保对模型和管理功能的安全访问 README.md:34-35, 60-61
  • 身份验证:完全支持 LDAP/Active Directory、SCIM 2.0 配置,以及通过 OAuth 或受信任标头的 SSO README.md:66-67。可配置 CUSTOM_API_KEY_HEADER 以兼容反向代理 CHANGELOG.md:15
  • 笔记与频道:基于 TipTap 的全面富文本编辑系统 package.json:67-85,以及频道中用于群组消息的实时通信 src/lib/stores/index.ts:58-59

来源README.md:1-80CHANGELOG.md:12-45package.json:54-162src/lib/apis/index.ts:9-40

---

系统架构

Open WebUI 采用现代全栈架构,旨在实现高响应性和水平可扩展性。

高层组件交互

下图将逻辑组件映射到其特定的代码实体。

graph TB
    subgraph "前端 (SvelteKit SPA)"
        Layout["+layout.svelte<br/>(Socket & Worker 初始化)"]
        RichText["RichTextInput.svelte<br/>(TipTap & Turndown)"]
        About["About.svelte<br/>(版本与更新)"]
    end

    subgraph "状态管理 (Svelte Stores)"
        Stores["lib/stores/index.ts<br/>(chats, models, user, socket)"]
    end

    subgraph "后端 (FastAPI)"
        CoreAPI["main.py<br/>(FastAPI 应用核心)"]
        SocketServer["Socket.IO 服务器<br/>(实时通信)"]
        AuthAPI["lib/apis/auths.ts<br/>(会话 & JWT)"]
    end

    subgraph "持久化与服务"
        DB["SQLite / PostgreSQL<br/>(psycopg v3 异步驱动)"]
        VectorDB["Chroma / Qdrant / 等<br/>(向量存储层)"]
        Redis["Redis<br/>(分布式发布/订阅与同步)"]
    end

    Layout --> Stores
    Layout --> RichText
    RichText -- "turndownService" --> Layout
    Layout -- "io()" --> SocketServer
    CoreAPI --> AuthAPI
    CoreAPI --> DB
    CoreAPI --> VectorDB
    SocketServer --> Redis

来源src/routes/+layout.svelte:115-125src/lib/components/common/RichTextInput.svelte:34-50src/lib/stores/index.ts:13-41CHANGELOG.md:30, 45src/lib/apis/auths.ts:55

---

技术栈

按层级划分的核心技术
层级技术关键代码实体
前端Svelte 5 / Tailwind CSS 4package.json:44, 47src/app.css:1
实时通信Socket.IOlib/stores/index.ts:31 中的 socket store,package.json:140 中的 socket.io-client
后端驱动psycopg (v3)CHANGELOG.md:30, 49
编辑器TipTap / ProsemirrorRichTextInput.sveltepackage.json:67-85
MarkdownMarked / Turndownpackage.json:121, 145RichTextInput.svelte:2, 32
RAGChromaDB, Weaviate, 等README.md:64-65
执行引擎Pyodide (Wasm Python)package.json:138src/routes/+layout.svelte:4
代码实体空间:数据流与连接

前端通过反向代理设计与后端通信,以处理 CORS 和安全问题。

graph LR
    subgraph "客户端 (浏览器)"
        UI["Svelte 组件"]
        LStore["localStorage.token"]
    end

    subgraph "Open WebUI 后端 (FastAPI)"
        Proxy["反向代理路由<br/>(/ollama, /api)"]
        Auth["认证中间件<br/>(JWT 验证)"]
        PConfig["PersistentConfig<br/>(数据库设置)"]
    end

    subgraph "外部提供商"
        Ollama["Ollama API<br/>(OLLAMA_BASE_URL)"]
        OpenAI["OpenAI 兼容 API"]
    end

    UI -- "fetch() 携带认证头" --> Proxy
    Proxy -- "验证 JWT" --> Auth
    Auth -- "检查设置" --> PConfig
    Proxy -- "转发请求" --> Ollama
    Proxy -- "转发请求" --> OpenAI

来源TROUBLESHOOTING.md:7-9src/lib/apis/index.ts:21-30src/routes/+layout.svelte:123, 179

---

用户配置与个性化

用户通过全面的设置系统管理其体验:

  • 界面自定义:控制 UI 缩放(--app-text-scale)、聊天方向和高对比度模式 src/app.css:33-42, 226
  • 富文本偏好:使用 TurndownService 将 TipTap HTML 转换回 Markdown 的自定义规则,包括针对任务列表和提及的特定规则 src/lib/components/common/RichTextInput.svelte:97-119
  • 性能稳定性:流式响应使用高效的清理机制,防止 Markdown 更新期间的内存泄漏 CHANGELOG.md:21
  • 浏览器原生虚拟化:长对话使用 CSS content-visibility: auto 实现高效渲染,无需销毁组件树 CHANGELOG.md:44

来源src/app.css:33-42src/lib/components/common/RichTextInput.svelte:97-119CHANGELOG.md:21, 44

---

部署与可扩展性

Open WebUI 专为灵活的部署场景而构建:

  • 容器化:使用 Docker 或 Kubernetes(kubectl、kustomize 或 helm)无缝安装 README.md:30
  • 可扩展性:基于 Redis 的会话管理和 WebSocket 支持,适用于多工作线程和多节点部署 README.md:72-73
  • 数据库迁移:近期迁移至 psycopg (v3),改进了 SSL 参数处理并原生支持 libpq 连接字符串 CHANGELOG.md:30
  • Docker 可靠性:在 Dockerfile 中使用 UV_LINK_MODE=copy,确保在 ARM64 架构上可靠安装文件 CHANGELOG.md:31

来源README.md:30, 72-73CHANGELOG.md:30-31