agentic_huge_data_base / wiki
页面 Open WebUI · 16.1 后端依赖·DeepWiki 中文全文译文

16.1 · 后端依赖(Backend Dependencies)

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

项目Open WebUI 章节16.1 状态全文译文 模块检索、召回与知识系统、接口与服务契约、认证、权限与安全、工具、记忆与模型调用
源码线索
  • 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
  • pyproject.toml
模块标签
  • 检索、召回与知识系统
  • 接口与服务契约
  • 认证、权限与安全
  • 工具、记忆与模型调用
  • 测试、发布与运维

中文译文

后端依赖(中文译文)

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

---

后端依赖

相关源文件

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

  • .github/workflows/integration-test.disabled
  • 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
  • pyproject.toml
  • uv.lock

目的与范围

本文档按功能类别组织,涵盖 Open WebUI 后端所需的所有 Python 依赖。它解释了每个主要依赖的作用、依赖在配置文件中的组织方式,以及哪些依赖是可选的、哪些是必需的。前端 JavaScript/TypeScript 依赖请参见前端依赖。控制依赖激活的环境配置请参见环境配置

依赖管理结构

Open WebUI 使用多个主要文件来管理后端依赖,并逐步向 pyproject.tomluv.lock 等现代标准迁移。

配置文件:

  • backend/requirements.txt:完整的生产依赖 backend/requirements.txt:1-161
  • pyproject.toml:项目元数据和 pip 可安装包定义 pyproject.toml:1-251
  • backend/requirements-min.txt:基本功能的最小依赖子集 backend/requirements-min.txt:1-60
  • uv.lock:包含精确解析版本的锁定文件,用于可重现构建 uv.lock:1-15

依赖声明模式:

# pyproject.toml 定义核心依赖
[project]
dependencies = [
    "fastapi==0.135.1",
    "uvicorn[standard]==0.41.0",
    ...
]

# 特定功能的可选依赖
[project.optional-dependencies]
postgres = [
    "psycopg2-binary==2.9.11",
    "pgvector==0.4.2",
]

来源:pyproject.toml:8-124, backend/requirements.txt:1-161, backend/requirements-min.txt:4-60

依赖类别概览

graph TB
    subgraph "核心框架"
        FastAPI["fastapi==0.135.1<br/>Web 框架"]
        Uvicorn["uvicorn[standard]==0.41.0<br/>ASGI 服务器"]
        Pydantic["pydantic==2.12.5<br/>数据验证"]
    end

    subgraph "安全与认证"
        JWT["PyJWT[crypto]==2.11.0"]
        Authlib["authlib==1.6.10<br/>OAuth 支持"]
        Bcrypt["bcrypt==5.0.0"]
        Argon2["argon2-cffi==25.1.0"]
        LDAP["ldap3==2.9.1"]
    end

    subgraph "数据库层"
        SQLAlchemy["sqlalchemy==2.0.48<br/>ORM"]
        Alembic["alembic==1.18.4<br/>迁移"]
        Peewee["peewee==3.19.0<br/>遗留 ORM"]
        Redis["redis==7.4.0<br/>缓存/会话"]
    end

    subgraph "AI/LLM 集成"
        OpenAI["openai==2.29.0<br/>OpenAI API"]
        Anthropic["anthropic==0.86.0<br/>Claude API"]
        GoogleAI["google-genai==1.66.0<br/>Gemini API"]
        Transformers["transformers==5.5.4<br/>本地模型"]
        SentenceTransformers["sentence-transformers==5.4.0<br/>嵌入"]
        LangChain["langchain==1.2.10<br/>LLM 框架"]
        MCP["mcp==1.26.0<br/>模型上下文协议"]
    end

    subgraph "向量数据库"
        ChromaDB["chromadb==1.5.2"]
        Qdrant["qdrant-client==1.17.0"]
        Milvus["pymilvus==2.6.9"]
        Weaviate["weaviate-client==4.20.3"]
        OpenSearch["opensearch-py==3.1.0"]
        PGVector["pgvector==0.4.2"]
        Pinecone["pinecone==6.0.2"]
    end

    subgraph "文档处理"
        PyPDF["pypdf==6.7.5"]
        Docx2txt["docx2txt==0.9"]
        PythonPPTX["python-pptx==1.0.2"]
        Unstructured["unstructured==0.18.31"]
        Pandas["pandas==3.0.1"]
        Openpyxl["openpyxl==3.1.5"]
        RapidOCR["rapidocr-onnxruntime==1.4.4"]
    end

    subgraph "云存储"
        Boto3["boto3==1.42.62<br/>AWS S3"]
        GCS["google-cloud-storage==3.9.0"]
        AzureBlob["azure-storage-blob==12.28.0"]
    end

    subgraph "音频处理"
        FasterWhisper["faster-whisper==1.2.1<br/>语音转文字"]
        Pydub["pydub==0.25.1<br/>音频工具"]
        Soundfile["soundfile==0.13.1"]
    end

    FastAPI --> Pydantic
    FastAPI --> Uvicorn
    SQLAlchemy --> Alembic

来源:backend/requirements.txt:1-161, pyproject.toml:9-124

核心 Web 框架依赖

HTTP 框架栈
包名版本用途必需
fastapi0.135.1支持 OpenAPI 的现代异步 Web 框架
uvicorn[standard]0.41.0支持 WebSocket 和 watchfiles 的 ASGI 服务器
pydantic2.12.5数据验证和设置管理
python-multipart0.0.22文件上传的多部分表单数据解析
starlette-compress1.7.0Gzip/Brotli 响应压缩中间件
itsdangerous2.2.0加密签名的会话数据

来源:backend/requirements.txt:1-5, backend/requirements.txt:20-21, pyproject.toml:9-13

HTTP 客户端库
包名版本用途
requests2.33.1用于外部 API 的同步 HTTP 客户端
aiohttp3.13.5异步 HTTP 客户端(注意:明确避免使用 3.13.3 版本)
httpx[socks,http2,zstd,cli,brotli]0.28.1支持 HTTP/2 和 SOCKS 的现代 HTTP 客户端
async-timeout5.0.1异步操作的超时上下文管理器

来源:backend/requirements.txt:15-17, backend/requirements.txt:23, pyproject.toml:23-25, pyproject.toml:31

实时通信
包名版本用途
python-socketio5.16.1用于 WebSocket 的 Socket.IO 服务器实现
starsessions[redis]2.2.1支持 Redis 后端的会话中间件
pycrdt0.12.47用于协作编辑的 CRDT 数据结构
redis7.4.0用于缓存和发布/订阅的 Redis 客户端

来源:backend/requirements.txt:7, backend/requirements.txt:24, backend/requirements.txt:34-35, pyproject.toml:15, pyproject.toml:32, pyproject.toml:42-43

认证与安全依赖

graph LR
    subgraph "令牌管理"
        JWT["PyJWT[crypto]==2.11.0<br/>JWT 编码/解码"]
        Jose["python-jose==3.5.0<br/>遗留 JWT 支持"]
        Cryptography["cryptography==46.0.5<br/>加密原语"]
    end

    subgraph "密码哈希"
        Bcrypt["bcrypt==5.0.0<br/>Bcrypt 算法"]
        Argon2["argon2-cffi==25.1.0<br/>Argon2 算法"]
    end

    subgraph "OAuth/LDAP"
        Authlib["authlib==1.6.10<br/>OAuth 2.1 客户端"]
        LDAP3["ldap3==2.9.1<br/>LDAP 认证"]
    end

    JWT --> AuthUtils["认证工具"]
    Jose --> AuthUtils
    Bcrypt --> AuthUtils
    Argon2 --> AuthUtils
    Authlib --> OAuthRoutes["OAuth 路由"]
    LDAP3 --> OAuthRoutes

来源:backend/requirements.txt:8-13, backend/requirements.txt:146, pyproject.toml:16-21, pyproject.toml:123

安全包角色

JWT 令牌库:

  • PyJWT[crypto] (2.11.0):主要 JWT 实现。
  • python-jose (3.5.0):替代 JWT 库,支持更广泛的 JOSE 标准。
  • cryptography (46.0.5):核心加密原语。

认证协议:

  • authlib (1.6.10):全面的 OAuth 2.1 和 OpenID Connect 客户端实现。
  • ldap3 (2.9.1):纯 Python LDAP v3 客户端,用于企业目录集成。

来源:backend/requirements.txt:8-13, backend/requirements.txt:146, pyproject.toml:16-21, pyproject.toml:123

数据库与 ORM 依赖

主要数据库栈
包名版本用途
sqlalchemy[asyncio]2.0.48支持异步的现代 ORM(主要)
alembic1.18.4数据库迁移管理
peewee3.19.0轻量级 ORM(遗留/迁移)
peewee-migrate1.14.3Peewee 的迁移工具

来源:backend/requirements.txt:27-32, pyproject.toml:35-40

数据库驱动依赖

PostgreSQL 支持(可选):

  • psycopg[binary] (3.2.9):现代 PostgreSQL 驱动。
  • psycopg2-binary (2.9.11):遗留 PostgreSQL 驱动。
  • pgvector (0.4.2):支持 PostgreSQL 向量相似性搜索。

其他数据库:

  • PyMySQL (1.1.2):MySQL 客户端。
  • mariadb (1.1.14):MariaDB 连接器(可选)。
  • pymongo (4.16.0):MongoDB 客户端。
  • pymilvus (2.6.9):Milvus 向量数据库客户端。
  • qdrant-client (1.17.0):Qdrant 客户端。
  • elasticsearch (9.3.0):Elasticsearch 客户端。
  • oracledb (3.4.2):Oracle 数据库驱动。
  • pinecone (6.0.2):Pinecone 向量数据库客户端。

来源:backend/requirements.txt:120-134, pyproject.toml:139-167

AI 与 LLM 集成依赖

LLM 提供商 SDK
包名版本用途
openai2.29.0OpenAI API 客户端(及兼容 API)
anthropic0.86.0Anthropic Claude API 客户端
google-genai1.66.0Google Gemini API SDK
mcp1.26.0用于工具集成的模型上下文协议
tiktoken0.12.0OpenAI 模型的 BPE 分词器

来源:backend/requirements.txt:45-50, pyproject.toml:52-57

LangChain 生态系统
包名版本用途
langchain1.2.10LLM 编排框架
langchain-community0.4.1社区集成
langchain-classic1.0.1经典 LangChain 组件
langchain-text-splitters1.1.1文档分块工具

来源:backend/requirements.txt:52-55, pyproject.toml:59-62

本地模型与嵌入
包名版本用途
transformers5.5.4Hugging Face Transformers
sentence-transformers5.4.0嵌入生成
accelerate1.13.0模型推理优化
onnxruntime1.24.3ONNX 模型执行

来源:backend/requirements.txt:62-64, backend/requirements.txt:96, pyproject.toml:70-72, pyproject.toml:103

文档处理依赖

内容提取引擎
包名版本支持格式
pypdf6.7.5PDF 解析
docx2txt0.9Microsoft Word
python-pptx1.0.2PowerPoint
unstructured0.18.31通用文档加载
pandas3.0.1CSV/Excel 数据处理
openpyxl3.1.5Excel (.xlsx) 支持
pyxlsb1.0.10Excel (.xlsb) 支持
xlrd2.0.2遗留 Excel (.xls) 支持

来源:backend/requirements.txt:70-85, pyproject.toml:78-91

专用处理
  • rapidocr-onnxruntime (1.4.4):本地 OCR 支持。
  • faster-whisper (1.2.1):本地语音转文字。
  • youtube-transcript-api (1.2.4):YouTube 字幕提取。
  • pytube (15.0.0):YouTube 元数据和下载。
  • pydub (0.25.1):音频处理。
  • ddgs (9.11.3):DuckDuckGo 搜索 API。

来源:backend/requirements.txt:93, backend/requirements.txt:97, backend/requirements.txt:100-105, pyproject.toml:100, pyproject.toml:104, pyproject.toml:110-111

云存储与服务集成

graph TB
    subgraph "存储提供商"
        S3["boto3==1.42.62<br/>AWS S3 客户端"]
        GCS["google-cloud-storage==3.9.0<br/>GCP 存储客户端"]
        Azure["azure-storage-blob==12.28.0<br/>Azure Blob 客户端"]
    end

    subgraph "实现"
        ProviderBase["backend/open_webui/storage/provider.py<br/>StorageProvider 抽象基类"]
        S3Provider["S3StorageProvider"]
        GCSProvider["GCSStorageProvider"]
        AzureProvider["AzureStorageProvider"]
    end

    S3 --> S3Provider
    GCS --> GCSProvider
    Azure --> AzureProvider
    ProviderBase --> S3Provider
    ProviderBase --> GCSProvider
    ProviderBase --> AzureProvider

来源:backend/open_webui/storage/provider.py:40-375, backend/requirements.txt:112-118, backend/requirements.txt:106-109

云集成包详情
  • boto3 (1.42.62):用于 S3 存储的 AWS SDK。在 S3StorageProvider 中用于管理云文件持久化 backend/open_webui/storage/provider.py:101-131
  • google-api-python-client (2.193.0)、google-auth-httplib2 (0.3.0)、google-auth-oauthlib (1.3.0)、googleapis-common-protos (1.72.0)、google-cloud-storage (3.9.0):GCS 客户端和认证。在 GCSStorageProvider 中使用 backend/open_webui/storage/provider.py:222-250
  • azure-ai-documentintelligence (1.0.2)、azure-identity (1.25.2)、azure-storage-blob (12.28.0)、azure-search-documents (11.6.0):Azure 存储客户端和 AI 服务。在 AzureStorageProvider 中使用 backend/open_webui/storage/provider.py:304-332

来源:backend/requirements.txt:106-118, backend/open_webui/storage/provider.py:101-332

可观测性与追踪

Open WebUI 实现了 OpenTelemetry 用于分布式追踪和监控。

包名版本用途
opentelemetry-api1.40.0核心 OTel API
opentelemetry-sdk1.40.0SDK 实现
opentelemetry-exporter-otlp1.40.0用于追踪和指标的 OTLP 导出器
opentelemetry-instrumentation0.61b0基础仪表化包
opentelemetry-instrumentation-fastapi0.61b0FastAPI 自动仪表化
opentelemetry-instrumentation-sqlalchemy0.61b0数据库查询追踪
opentelemetry-instrumentation-redis0.61b0Redis 追踪
opentelemetry-instrumentation-requests0.61b0Requests 库追踪
opentelemetry-instrumentation-logging0.61b0日志仪表化
opentelemetry-instrumentation-httpx0.61b0httpx 库追踪
opentelemetry-instrumentation-aiohttp-client0.61b0aiohttp 客户端追踪
opentelemetry-instrumentation-system-metrics0.61b0系统指标收集

来源:backend/requirements.txt:149-160

测试依赖

  • pytest (8.4.1):核心测试框架 backend/requirements.txt:142
  • pytest-docker (3.2.5):在集成测试中管理 Docker 容器 backend/requirements.txt:143
  • docker (~=7.1.0):Docker 的 Python 客户端 backend/requirements.txt:141

来源:backend/requirements.txt:141-143, pyproject.toml:156-158

平台特定约束

  • pyarrow==20.0.0:为树莓派兼容性固定版本 backend/requirements.txt:65
  • av==14.0.1:因 FATAL FIPS SELFTEST FAILURE 固定版本 backend/requirements.txt:135
  • playwright==1.58.0:必须与 docker-compose.playwright.yaml 中的版本匹配 backend/requirements.txt:130, docker-compose.playwright.yaml:3

来源:backend/requirements.txt:65, backend/requirements.txt:130, backend/requirements.txt:135, docker-compose.playwright.yaml:3