agentic_huge_data_base / wiki
页面 Open WebUI · 16 依赖管理·DeepWiki 中文全文译文

16 · 依赖管理(Dependency Management)

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

项目Open WebUI 章节16 状态全文译文 模块系统架构、测试、发布与运维、接口与服务契约、界面与交互
源码线索
  • CHANGELOG.md
  • backend/open_webui/retrieval/web/firecrawl.py
  • backend/open_webui/retrieval/web/utils.py
  • backend/open_webui/storage/provider.py
  • backend/open_webui/test/apps/webui/storage/test_provider.py
  • docker-compose.playwright.yaml
  • package-lock.json
  • package.json
  • pyproject.toml
  • src/app.css
模块标签
  • 系统架构
  • 测试、发布与运维
  • 接口与服务契约
  • 界面与交互
  • 检索、召回与知识系统

中文译文

依赖管理(中文译文)

原始 DeepWiki 页面:https://deepwiki.com/open-webui/open-webui/16-dependency-management
翻译时间:2026-06-09T16:11:45.145Z
翻译模型:deepseek-chat
原文字符数:6701
项目:Open WebUI (open-webui)

---

依赖管理

相关源文件

以下文件为本 wiki 页面的生成提供了上下文:

  • .github/workflows/integration-test.disabled
  • CHANGELOG.md
  • backend/open_webui/retrieval/web/firecrawl.py
  • backend/open_webui/retrieval/web/utils.py
  • backend/open_webui/storage/provider.py
  • backend/open_webui/test/apps/webui/storage/test_provider.py
  • backend/requirements-min.txt
  • backend/requirements.txt
  • docker-compose.playwright.yaml
  • package-lock.json
  • package.json
  • pyproject.toml
  • src/app.css
  • src/lib/components/common/RichTextInput.svelte
  • uv.lock

本文档记录了 Open WebUI 前端和后端的项目依赖、构建系统及包管理。它从宏观层面概述了项目如何管理其由 AI/ML 库、Web 框架和协作工具构成的复杂生态系统。

关于具体依赖列表的详细技术细节,请参阅子页面:

  • 后端依赖 — FastAPI 服务器、AI 集成和 RAG 管道的 Python 依赖项详细列表。
  • 前端依赖 — SvelteKit、TipTap、Socket.IO-client 和 UI 库的文档。
  • 构建系统与包管理 — 构建过程、pyproject.toml 配置、Vite/SvelteKit 构建及包分发的技术细节。

系统级依赖架构

Open WebUI 采用解耦架构,前端和后端各自独立管理其依赖树。后端使用基于 Python 的工具(pipuvhatch),而前端则依赖 Node.js 工具(npmvite)。

依赖生态图谱
graph TB
    subgraph "前端 (Node.js/SvelteKit)"
        packagejson["package.json"]
        packagelock["package-lock.json"]
        svelte["Svelte 5 / SvelteKit"]
        tiptap["TipTap 编辑器"]
        socketio_client["socket.io-client"]
    end

    subgraph "后端 (Python/FastAPI)"
        pyproject["pyproject.toml"]
        reqtxt["requirements.txt"]
        uvlock["uv.lock"]
        fastapi["fastapi"]
        langchain["langchain"]
        providers["AI 客户端 (openai, anthropic 等)"]
    end

    subgraph "共享基础设施"
        docker["Docker / Docker Compose"]
        pyodide["Pyodide (浏览器中的 Python)"]
    end

    packagejson -->|"构建产物"| fastapi
    pyodide -->|"由 package.json 获取"| packagejson
    docker -->|"编排"| svelte
    docker -->|"编排"| fastapi

来源: package.json:1-161, pyproject.toml:1-215, backend/requirements.txt:1-160, uv.lock:1-15

后端依赖

后端是一个 FastAPI 应用,集成了大量 AI 和数据处理库。依赖项主要在 pyproject.toml pyproject.toml:9-124 中定义,并在 requirements.txt backend/requirements.txt:1-135 中镜像,以确保部署稳定性。

关键后端子系统
  • Web 框架: 基于 fastapi backend/requirements.txt:1uvicorn backend/requirements.txt:2 构建。
  • AI/ML 集成: 包含 openai backend/requirements.txt:48anthropic backend/requirements.txt:49google-genai backend/requirements.txt:50 的原生客户端,以及用于 RAG 编排的 langchain backend/requirements.txt:52-55
  • 数据库与向量操作: 使用 sqlalchemy backend/requirements.txt:27 处理 SQL,chromadb backend/requirements.txt:58 作为主要向量存储。最近的更新将异步驱动迁移到了 psycopg(v3)CHANGELOG.md:30,49
  • 存储提供程序: 通过 StorageProvider 抽象层 backend/open_webui/storage/provider.py:40-56,支持本地、S3(boto3)、GCS(google-cloud-storage)和 Azure(azure-storage-blob)存储。

完整分类列表请参见后端依赖

来源: backend/requirements.txt:1-161, pyproject.toml:9-172, CHANGELOG.md:30,49, backend/open_webui/storage/provider.py:1-35

前端依赖

前端是一个现代的 Svelte 5 应用 package.json:44,负责处理富文本编辑、实时协作和 LaTeX 渲染等复杂的 UI 任务。

关键前端库
  • 核心框架: svelte package.json:44@sveltejs/kit package.json:27
  • 富文本编辑: 大量使用 @tiptap 扩展实现笔记系统 package.json:67-85,集成在 RichTextInput.svelte 等组件中 src/lib/components/common/RichTextInput.svelte:130-153
  • 实时与协作: socket.io-client package.json:140 用于事件处理,yjs package.json:156 用于共享编辑状态。
  • 数据可视化: mermaid package.json:122 用于图表,chart.js package.json:93 用于分析。

JS/Node.js 库的详细信息请参见前端依赖

来源: package.json:54-157, src/lib/components/common/RichTextInput.svelte:121-171

构建系统与包管理

Open WebUI 使用复杂的构建流水线来桥接 Python 后端和 JavaScript 前端。

构建流程概览

项目使用 hatchling 作为构建后端 pyproject.toml:178-179。构建的一个独特之处在于将前端集成到 Python 包中。pyproject.toml 配置通过 force-include pyproject.toml:207 强制将编译后的前端构建产物包含到 Python wheel 中。

构建生命周期图
graph LR
    subgraph "前端构建 (package.json)"
        npm_i["npm install"]
        py_fetch["npm run pyodide:fetch"]
        vite_build["npm run build"]
    end

    subgraph "后端打包 (pyproject.toml)"
        hatch_build["hatch build"]
        wheel["open_webui.whl"]
    end

    npm_i --> py_fetch
    py_fetch --> vite_build
    vite_build -->|"产物输出到 build/"| hatch_build
    hatch_build --> wheel

来源: package.json:5-23, pyproject.toml:174-208

关于构建脚本、pyodide 获取和 Docker 镜像构建的详细信息,请参见构建系统与包管理