Skip to main content

环境变量配置

概览

Open WebUI 提供了大量的环境变量,允许您自定义和配置应用程序的各个方面。本页面作为所有可用环境变量的详尽参考,提供了它们的类型、默认值和描述。 随着新变量的引入,本页面将持续更新以反映不断增长的配置选项。

info

本页面内容与 Open WebUI v0.6.42 版本保持同步。我们仍在持续完善中,后续将提供更准确的描述、列出环境变量的可用选项、默认值,并优化描述。

关于持久化配置 (PersistentConfig) 环境变量的重要说明

note

首次启动 Open WebUI 时,所有环境变量都会被读取并用于初始化应用程序。但是,对于标记为 PersistentConfig 的环境变量,它们的值会被持久化并存储在内部数据库中。

在初始启动后,如果您重启容器,标记为 PersistentConfig 的变量将优先使用数据库中存储的值,而忽略外部环境变量的更改。

相比之下,普通环境变量在每次重启时仍会继续应用外部环境中的最新值。

您可以直接在 Open WebUI 的管理员界面中更新 PersistentConfig 变量的值,这些更改将实时存储在数据库中。这允许您在不重启容器的情况下独立管理这些配置。

请注意,在下文的文档中,PersistentConfig 环境变量已被明确标记,以便您了解它们的行为差异。

如果您希望禁用此行为,强制 Open WebUI 始终使用环境变量(忽略数据库中的存储值),请将 ENABLE_PERSISTENT_CONFIG 设置为 False

关键警告:ENABLE_PERSISTENT_CONFIGFalse 时,您仍能在管理员 UI 中修改设置。但是,这些更改不会被持久化。它们仅在当前运行会话中有效,一旦重启容器,系统将恢复为环境变量中定义的值,之前的 UI 更改将全部丢失

应用/后端 (App/Backend)

以下环境变量由 backend/open_webui/config.py 使用,提供 Open WebUI 的启动配置。请注意,某些变量的默认值可能会根据您是直接运行 Open WebUI 还是通过 Docker 运行而有所不同。有关日志记录环境变量的更多信息,请参阅我们的 日志文档

通用设置

WEBUI_URL

  • 类型: str
  • 默认值: http://localhost:3000
  • 描述: 指定您的 Open WebUI 安装的可访问 URL。搜索引擎支持和 OAuth/SSO 需要此设置。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。
warning

在开始使用 OAuth/SSO 进行身份验证之前,必须设置此变量。 由于这是一个持久化配置环境变量,您只能通过以下选项之一对其进行更改:

  • 使用 ENABLE_PERSISTENT_CONFIG 临时禁用持久化配置
  • 在 管理员面板 > 设置 中更改 "WebUI URL"。

在使用 OAuth/SSO 之前未能正确设置 WEBUI_URL 将导致登录失败。

ENABLE_SIGNUP

  • 类型: bool
  • 默认值: True
  • 描述: 开启或关闭用户注册功能。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

ENABLE_SIGNUP_PASSWORD_CONFIRMATION

  • 类型: bool
  • 默认值: False
  • 描述: 如果设置为 True,注册页面将增加“确认密码”字段,帮助用户避免创建密码时的拼写错误。

ENABLE_LOGIN_FORM

  • 类型: bool
  • 默认值: True
  • 描述: 开启或关闭邮箱、密码、登录按钮以及“或”分隔符(仅当 ENABLE_OAUTH_SIGNUP 设置为 True 时显示)。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

ENABLE_PASSWORD_AUTH

  • 类型: bool
  • 默认值: True
  • 描述: 启用或禁用基于密码的身份验证。
    • True (默认): 允许用户使用邮箱和密码登录。如果同时配置了 OAuth/SSO,则两者可以共存。
    • False: 禁用所有基于密码的登录尝试(包括 /signin/ldap 端点),强制执行严格的仅 SSO 登录。
  • 建议: 在完全配置并测试好 SSO 的生产环境中,建议将其设置为 False 以防止撞库攻击或凭据泄露风险。
danger

只有ENABLE_OAUTH_SIGNUP 已启用并设置为 True 时,才应将此项设置为 False如果未配置或未启用 OAUTH/SSO,切勿禁用此项,否则将导致所有用户(包括管理员)无法登录。

DEFAULT_LOCALE

  • 类型: str
  • 默认值: en
  • 描述: 设置应用程序的默认语言区域。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

DEFAULT_MODELS

  • 类型: str
  • 默认值: 空字符串 (' '),即 None
  • 描述: 设置默认的语言模型。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

DEFAULT_PINNED_MODELS

  • 类型: str
  • 默认值: 空字符串 (' ')
  • 描述: 以逗号分隔的模型 ID 列表,作为未自定义固定模型的用户的默认固定模型。这为新账户在模型选择器中提供了一组预选的常用模型。
  • 示例: gpt-4,claude-3-opus,llama-3-70b
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

DEFAULT_USER_ROLE

  • 类型: str
  • 可选值:
    • pending - 新用户处于待定状态,直到管理员手动激活。
    • user - 新用户自动激活并拥有普通用户权限。
    • admin - 新用户自动激活并拥有管理员权限。
  • 默认值: pending
  • 描述: 设置分配给新用户的默认角色。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

DEFAULT_GROUP_ID

  • 类型: str
  • 默认值: 空字符串 (' ')
  • 描述: 设置新用户注册时分配的默认组 ID。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

PENDING_USER_OVERLAY_TITLE

  • 类型: str
  • 默认值: 空字符串 (' ')
  • 描述: 为待定用户遮罩层设置自定义标题。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

PENDING_USER_OVERLAY_CONTENT

  • 类型: str
  • 默认值: 空字符串 (' ')
  • 描述: 为待定用户遮罩层设置自定义文本内容。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

ENABLE_CHANNELS

  • 类型: bool
  • 默认值: False
  • 描述: 启用或禁用频道支持。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

WEBHOOK_URL

  • 类型: str
  • 描述: 设置用于集成 Discord/Slack/Microsoft Teams 的 Webhook。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

ENABLE_ADMIN_EXPORT

  • 类型: bool
  • 默认值: True
  • 描述: 控制管理员是否可以在管理员面板中导出数据、聊天记录和数据库。目前数据库导出仅适用于 SQLite 数据库。

ENABLE_ADMIN_CHAT_ACCESS

  • 类型: bool
  • 默认值: True
  • 描述: 允许管理员直接访问其他用户的聊天记录。禁用后,管理员无法再在管理员面板中访问用户的聊天。如果您禁用了此项,且正在使用 SQLite,请考虑同时也禁用 ENABLE_ADMIN_EXPORT,因为导出的数据也包含用户聊天。

BYPASS_ADMIN_ACCESS_CONTROL

  • 类型: bool
  • 默认值: True
  • 描述: 禁用后,管理员在工作区访问(模型、知识、提示词和工具)方面被视为普通用户,仅能看到他们通过现有访问控制系统拥有显式访问权限的项目。这也适用于模型选择器中模型的可见性——管理员将被视为普通用户:他们没有显式访问权限的基础模型和自定义模型将被隐藏。如果设置为 True(默认值),管理员可以访问工作区区域中所有创建的项目以及模型选择器中的所有模型,无论访问权限如何

ENABLE_USER_WEBHOOKS

  • 类型: bool
  • 默认值: True
  • 描述: 启用或禁用用户 Webhook。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

RESPONSE_WATERMARK

  • 类型: str
  • 默认值: 空字符串 (' ')
  • 描述: 设置在聊天中复制消息时包含的自定义文本。例如,"此文本由 AI 生成" -> 复制每条消息时都会添加“此文本由 AI 生成”。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

THREAD_POOL_SIZE

  • 类型: int
  • 默认值: 0
  • 描述: 设置 FastAPI/AnyIO 阻塞调用的线程池大小。默认情况下(设置为 0 时),FastAPI/AnyIO 使用 40 个线程。对于大型实例和大量并发用户,可能需要增加 THREAD_POOL_SIZE 以防止阻塞。
info

如果您运行的是大型实例,您需要将此值设置为更高的值,如几百甚至上千(例如 1000),否则当默认线程池(40 个线程)占满时,您的应用可能会卡死且不再响应。

ENABLE_CUSTOM_MODEL_FALLBACK

  • 类型: bool
  • 默认值: False
  • 描述: 控制当自定义模型分配的基础模型缺失时,是否应回退到默认模型。当设置为 True 时,如果找不到自定义模型的基础模型,系统将使用配置的 DEFAULT_MODELS 列表中的第一个模型,而不是返回错误。

MODELS_CACHE_TTL

  • 类型: int
  • 默认值: 1
  • 描述: 为来自 OpenAI 和 Ollama 端点的模型列表响应设置缓存生存时间(秒)。这通过在指定时间内缓存可用模型列表来减少 API 调用。设置为空字符串可完全禁用缓存。
info

此项缓存的是从配置的 OpenAI 兼容和 Ollama API 端点检索到的外部模型列表(而非 Open WebUI 的内部模型配置)。较高的值通过减少对外部提供商的冗余 API 请求来提高性能,但可能会延迟这些端点上新添加或移除模型的显示。值为 0 会禁用缓存并强制每次都进行新的 API 调用。在高流量场景中,增加此值(例如设置为 300 秒)可以显著减轻外部 API 端点的负载,同时仍能提供较为及时的模型数据。

SHOW_ADMIN_DETAILS

  • 类型: bool
  • 默认值: True
  • 描述: 切换是否在界面中显示管理员详细信息。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

ENABLE_PUBLIC_ACTIVE_USERS_COUNT

  • 类型: bool
  • 默认值: True
  • 描述: 控制活跃用户计数是对所有用户可见,还是仅限于管理员。当设置为 False 时,只有管理员可以看到当前活跃的用户数,从而减轻后端负载并在大型部署中解决隐私疑虑。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

ADMIN_EMAIL

  • 类型: str
  • 描述: 设置由 SHOW_ADMIN_DETAILS 显示的管理员邮箱。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

ENV

  • 类型: str
  • 可选值:
    • dev - 在 /docs 路径开启 FastAPI API 文档。
    • prod - 自动配置多个环境变量。
  • 默认值:
    • 后端默认: dev
    • Docker 默认: prod
  • 描述: 环境设置。

ENABLE_PERSISTENT_CONFIG

  • 类型: bool
  • 默认值: True
  • 描述: 控制系统是否优先使用保存在数据库中的配置,而非环境变量。
    • True (默认): 保存在数据库中(通过管理员 UI)的值具有更高优先级。如果在 UI 中设置了某个值,该设置对应的环境变量将被忽略。
    • False: 环境变量具有更高优先级。如果存在环境变量,系统在启动时将不会从数据库加载配置(或者将使用默认值)。
      • 关键警告: 当设置为 False 时,您似乎仍能在管理员 UI 中“更改”设置。这些更改将应用于当前运行的会话,但在重启后将丢失。每次启动时,系统都会恢复为环境变量(或默认值)中定义的值。
      • 使用场景: 如果您希望严格通过 docker-compose.yaml.env 文件管理配置,并防止 UI 更改在重启后持久存在,请将此项设置为 False

CUSTOM_NAME

  • 类型: str
  • 描述: 设置 WEBUI_NAME,但会向 api.openwebui.com 轮询元数据。

WEBUI_NAME

  • 类型: str
  • 默认值: Open WebUI
  • 描述: 设置主 WebUI 名称。如果被覆盖,则会追加 (Open WebUI)

PORT

  • 类型: int
  • 默认值: 8080
  • 描述: 设置运行 Open WebUI 的端口。
info

如果您通过 Python 运行应用程序并使用 open-webui serve 命令,则无法使用 PORT 配置来设置端口。相反,您必须使用 --port 标志直接将其指定为命令行参数。例如:

open-webui serve --port 9999

这将在端口 9999 上运行 Open WebUI。在此模式下,PORT 环境变量会被忽略。

ENABLE_REALTIME_CHAT_SAVE

  • 类型: bool
  • 默认值: False
  • 描述: 启用后,系统会实时将流式聊天数据的每个分块保存到数据库中,以确保最大程度的数据持久性。此功能提供了强大的数据恢复能力,并允许准确的会话跟踪。然而,代价是延迟增加,因为保存到数据库会引入延迟。禁用此功能可以提高性能并减少延迟,但在系统故障或崩溃时存在潜在的数据丢失风险。请根据您的应用需求和可接受的权衡进行选择。

ENABLE_CHAT_RESPONSE_BASE64_IMAGE_URL_CONVERSION

  • 类型: bool
  • 默认值: False
  • 描述: 设置为 true 时,它会自动上传 markdown 中超过 1KB 的 base64 编码图像,并将其转换为图像文件 URL,以减小响应文本的大小。某些多模态模型直接在 Markdown 内容中输出 Base64 字符串形式的图像。这会导致响应体过大,给 CPU、网络、Redis 和数据库资源带来压力。

CHAT_RESPONSE_STREAM_DELTA_CHUNK_SIZE

  • 类型: int
  • 默认值: 1
  • 描述: 设置系统级最小值,用于在流式响应期间发送给客户端之前批量处理的 token 数量。这允许管理员通过防止可能导致高 CPU 负载的过小分块大小,在整个系统中强制执行性能和稳定性的基准水平。响应使用的最终分块大小将是此全局变量、模型的进阶参数或单次聊天设置中的最高值。默认值为 1,表示在全局级别不应用最小批量处理。

CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE

  • 类型: int
  • 默认值: 空字符串 (' '),即禁用限制(相当于 None)。
  • 描述: 设置处理流式响应分块的最大缓冲区大小(字节)。当单个分块超过此限制时,系统会返回一个空 JSON 对象并跳过随后的超大数据,直到遇到大小正常的分块。这可以防止在处理来自某些提供商(例如 gemini-2.5-flash-image 等模型或返回大量网页搜索数据的服务)的超大响应时出现内存问题。设置为空字符串或负值可完全禁用分块大小限制。建议值为 16-20 MB (16777216),或根据图像生成模型的图像大小设置更大值(4K 图像可能需要更大)。
info

如果您在高并发、多用户且使用极快流式模型的情况下运行 Open WebUI,建议将此值设置为高个位数或低两位数(MB)。

BYPASS_MODEL_ACCESS_CONTROL

  • 类型: bool
  • 默认值: False
  • 描述: 绕过模型访问控制。设置为 true 时,所有用户(包括管理员)都可以访问所有模型,无论模型的隐私设置如何(私有、公开、与特定组共享)。这对于不需要模型访问限制的小型或个人 Open WebUI 安装非常有用。

WEBUI_BUILD_HASH

  • 类型: str
  • 默认值: dev-build
  • 描述: 用于标识发布版本的 Git SHA。

WEBUI_BANNERS

  • 类型: list of dict
  • 默认值: []
  • 描述: 要向用户显示的横幅列表。横幅的格式为:
[{"id": "string", "type": "string [info, success, warning, error]", "title": "string", "content": "string", "dismissible": false, "timestamp": 1000}]
  • 持久化: 此环境变量是一个 PersistentConfig 变量。
info

.env 文件中设置此环境变量时,请确保通过将整个值包裹在双引号中并对内部引号使用转义引号 (\") 来转义引号。示例:

WEBUI_BANNERS="[{\"id\": \"1\", \"type\": \"warning\", \"title\": \"您的消息将被存储。\", \"content\": \"您的消息已被存储,并可能由人工审核。LLM 容易产生幻觉,请检查来源。\", \"dismissible\": true, \"timestamp\": 1000}]"

USE_CUDA_DOCKER

  • 类型: bool
  • 默认值: False
  • 描述: 构建支持 NVIDIA CUDA 的 Docker 镜像。为本地 Whisper 和嵌入(Embeddings)启用 GPU 加速。

DOCKER

  • 类型: bool
  • 默认值: False
  • 描述: 指示 Open WebUI 是否在 Docker 容器内运行。内部用于环境检测。

USE_CUDA

  • 类型: bool
  • 默认值: False
  • 描述: 控制是否为本地模型使用 CUDA 加速。设置为 true 时,尝试检测并使用可用的 NVIDIA GPU。代码通过读取环境变量 USE_CUDA_DOCKER 来设置此内部布尔变量。

DEVICE_TYPE

  • 类型: str
  • 默认值: cpu
  • 描述: 指定模型执行的设备类型。如果 CUDA 可用并已启用,则自动设置为 cuda;对于 Apple Silicon 则设置为 mps

EXTERNAL_PWA_MANIFEST_URL

  • 类型: str
  • 默认值: 空字符串 (' '),因为默认设置为 None
  • 描述: 当定义为完全限定的 URL(例如 https://path/to/manifest.webmanifest)时,发送到 /manifest.json 的请求将使用该外部清单文件。未定义时,将使用默认的 manifest.json 文件。

ENABLE_TITLE_GENERATION

  • 类型: bool
  • 默认值: True
  • 描述: 启用或禁用聊天标题生成。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

LICENSE_KEY

  • 类型: str
  • 默认值: None
  • 描述: 指定要使用的许可证密钥(仅限企业版用户)。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

SSL_ASSERT_FINGERPRINT

  • 类型: str
  • 默认值: 空字符串 (' '),因为默认设置为 None
  • 描述: 指定要使用的 SSL 断言指纹。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

ENABLE_COMPRESSION_MIDDLEWARE

  • 类型: bool
  • 默认值: True
  • 描述: 为 HTTP 响应启用 gzip 压缩中间件,减少带宽使用并提高加载速度。

DEFAULT_PROMPT_SUGGESTIONS

  • 类型: list of dict
  • 默认值: [](表示使用内置的默认提示词建议)
  • 描述: 提示词建议列表。格式为:
[{"title": ["标题第 1 部分", "标题第 2 部分"], "content": "提示词内容"}]
  • 持久化: 此环境变量是一个 PersistentConfig 变量。
warning

在生产环境中,切勿将此环境变量设置为 debug

AIOHTTP 客户端 (AIOHTTP Client)

AIOHTTP_CLIENT_TIMEOUT

  • 类型: int
  • 默认值: 300
  • 描述: 指定 AIOHTTP 客户端的超时时间(秒)。这会影响与 Ollama 和 OpenAI 端点的连接。
info

这是客户端在超时前等待响应的最长时间。如果设置为空字符串 (' '),超时将设置为 None,从而有效地禁用超时并允许客户端无限期等待。

AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST

  • 类型: int
  • 默认值: 10
  • 描述: 设置获取模型列表的超时时间(秒)。当网络延迟需要更长的超时时间才能成功检索模型列表时,这很有用。
note

AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST 默认设置为 10 秒,以确保在打开 Web UI 时所有必要的连接都可用。即使在网络延迟较高的情况下,此持续时间也允许足够的时间检索模型列表。如果您希望更短的超时,可以降低此值,但请记住,这样做可能会导致某些连接断开,具体取决于您的网络状况。

AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST

  • 类型: int
  • 描述: 设置获取 OpenAI 模型列表的超时时间(秒)。当网络延迟需要更长的超时时间才能成功检索模型列表时,这很有用。

AIOHTTP_CLIENT_SESSION_SSL

  • 类型: bool
  • 默认值: True
  • 描述: 控制 AIOHTTP 客户端会话在连接到外部 API 时的 SSL/TLS 验证。

AIOHTTP_CLIENT_TIMEOUT_TOOL_SERVER_DATA

  • 类型: int
  • 默认值: 10
  • 描述: 设置通过 AIOHTTP 客户端从工具服务器检索数据的超时时间(秒)。

AIOHTTP_CLIENT_SESSION_TOOL_SERVER_SSL

  • 类型: bool
  • 默认值: True
  • 描述: 专门控制通过 AIOHTTP 客户端连接工具服务器时的 SSL/TLS 验证。

目录 (Directories)

DATA_DIR

  • 类型: str
  • 默认值: ./data
  • 描述: 指定数据存储的根目录,包括上传文件、缓存、向量数据库等。

FONTS_DIR

  • 类型: str
  • 描述: 指定字体目录。

FRONTEND_BUILD_DIR

  • 类型: str
  • 默认值: ../build
  • 描述: 指定构建后的前端文件所在位置。

STATIC_DIR

  • 类型: str
  • 默认值: ./static
  • 描述: 指定静态文件目录,例如 favicon 图标。

日志 (Logging)

GLOBAL_LOG_LEVEL

  • 类型: str
  • 默认值: INFO
  • 描述: 设置所有 Open WebUI 组件的全局日志级别。有效值:DEBUGINFOWARNINGERRORCRITICAL

AUDIT_LOGS_FILE_PATH

  • 类型: str
  • 默认值: ${DATA_DIR}/audit.log
  • 描述: 配置审计日志文件的存储位置。支持将日志存储在独立的卷或自定义位置,以便更好地管理和持久化。
  • 示例: /var/log/openwebui/audit.log, /mnt/logs/audit.log

AUDIT_LOG_FILE_ROTATION_SIZE

  • 类型: str
  • 默认值: 10MB
  • 描述: 指定审计日志文件在轮转前的最大大小(例如 10MB100MB1GB)。

AUDIT_UVICORN_LOGGER_NAMES

  • 类型: str
  • 默认值: uvicorn.access
  • 描述: 以逗号分隔的日志记录器名称列表,用于捕获审计日志。默认为 Uvicorn 的访问日志记录器。

AUDIT_LOG_LEVEL

  • 类型: str
  • 默认值: NONE
  • 可选值: NONE, METADATA, REQUEST, REQUEST_RESPONSE
  • 描述: 控制审计日志的详细程度。METADATA 记录基本请求信息,REQUEST 包含请求体,REQUEST_RESPONSE 包含请求和响应体。

MAX_BODY_LOG_SIZE

  • 类型: int
  • 默认值: 2048
  • 描述: 设置审计日志中请求/响应体的最大字节数。超过此大小的内容将被截断。

AUDIT_EXCLUDED_PATHS

  • 类型: str
  • 默认值: /chats,/chat,/folders
  • 描述: 以逗号分隔的 URL 路径列表,用于从审计日志中排除。路径匹配时不带前导斜杠。

Ollama

ENABLE_OLLAMA_API

  • 类型: bool
  • 默认值: True
  • 描述: 启用 Ollama API 的使用。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

OLLAMA_BASE_URL (OLLAMA_API_BASE_URL 已弃用)

  • 类型: str
  • 默认值: http://localhost:11434
  • Docker 默认值:
    • 如果设置了 K8S_FLAG: http://ollama-service.open-webui.svc.cluster.local:11434
    • 如果 USE_OLLAMA_DOCKER=True: http://localhost:11434
    • 否则: http://host.docker.internal:11434
  • 描述: 配置 Ollama 后端 URL。

OLLAMA_BASE_URLS

  • 类型: str
  • 描述: 配置负载均衡的 Ollama 后端主机,以 ; 分隔。参见 OLLAMA_BASE_URL。优先级高于 OLLAMA_BASE_URL
  • 示例: http://host-one:11434;http://host-two:11434
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

USE_OLLAMA_DOCKER

  • 类型: bool
  • 默认值: False
  • 描述: 在构建 Docker 镜像时捆绑 Ollama 实例。

K8S_FLAG

  • 类型: bool
  • 默认值: False
  • 描述: 如果设置,则假定为 Helm chart 部署,并将 OLLAMA_BASE_URL 设置为 http://ollama-service.open-webui.svc.cluster.local:11434

OpenAI

ENABLE_OPENAI_API

  • 类型: bool
  • 默认值: True
  • 描述: 启用 OpenAI API 的使用。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

OPENAI_API_BASE_URL

  • 类型: str
  • 默认值: https://api.openai.com/v1
  • 描述: 配置 OpenAI 基础 API URL。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

OPENAI_API_BASE_URLS

  • 类型: str
  • 描述: 支持负载均衡的 OpenAI 基础 API URL,以分号分隔。
  • 示例: http://host-one:11434;http://host-two:11434
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

OPENAI_API_KEY

  • 类型: str
  • 描述: 设置 OpenAI API 密钥。
  • 示例: sk-124781258123
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

OPENAI_API_KEYS

  • 类型: str
  • 描述: 支持多个 OpenAI API 密钥,以分号分隔。
  • 示例: sk-124781258123;sk-4389759834759834
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

任务 (Tasks)

TASK_MODEL

  • 类型: str
  • 描述: 使用 Ollama 模型时,用于标题生成和网页搜索查询生成等任务的默认模型。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

TASK_MODEL_EXTERNAL

  • 类型: str
  • 描述: 使用 OpenAI 兼容端点时,用于标题生成和网页搜索查询生成等任务的默认模型。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

TITLE_GENERATION_PROMPT_TEMPLATE

  • 类型: str
  • 描述: 生成聊天标题时使用的提示词。
  • 默认值: 环境变量 DEFAULT_TITLE_GENERATION_PROMPT_TEMPLATE 的值。

DEFAULT_TITLE_GENERATION_PROMPT_TEMPLATE:


### 任务:
根据聊天记录生成一个简洁的、包含 3-5 个单词及一个表情符号的标题。

### 指南:
- 标题应清晰地体现对话的主题或内容。
- 使用有助于理解主题的表情符号,但避免使用引号或特殊格式。
- 使用聊天的主要语言编写标题;如果是多语言,则默认为英语。
- 准确性优先于过度创意;保持简洁明了。

### 输出:
JSON 格式:{ "title": "此处为您的简洁标题" }

### 示例:
- { "title": "📉 股市趋势" },
- { "title": "🍪 完美的巧克力曲奇配方" },
- { "title": "音乐流媒体的演变" },
- { "title": "远程工作效率技巧" },
- { "title": "医疗保健中的人工智能" },
- { "title": "🎮 视频游戏开发见解" }

### 聊天记录:
<chat_history>
{{MESSAGES:END:2}}
</chat_history>
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

ENABLE_FOLLOW_UP_GENERATION

  • 类型: bool
  • 默认值: True
  • 描述: 启用或禁用后续问题生成。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

FOLLOW_UP_GENERATION_PROMPT_TEMPLATE

  • 类型: str
  • 描述: 用于生成几个相关后续问题的提示词。
  • 默认值: 环境变量 DEFAULT_FOLLOW_UP_GENERATION_PROMPT_TEMPLATE 的值。

DEFAULT_FOLLOW_UP_GENERATION_PROMPT_TEMPLATE:


### 任务:
根据聊天记录,以**用户**的角度建议 3-5 个用户可能自然会问到的相关后续问题或提示,以帮助继续或深入讨论。

### 指南:
- 从用户的视角出发编写所有后续问题,并指向助手。
- 问题应简洁、清晰,并与讨论的主题直接相关。
- 仅建议符合聊天内容逻辑且不重复已涉及内容的后续问题。
- 如果对话非常简短或不具体,建议一些用户可能会问的更通用的(但相关的)后续问题。
- 使用对话的主要语言;如果是多语言,则默认为英语。
- 响应必须是字符串的 JSON 数组,不含额外的文本或格式。

### 输出:
JSON 格式:{ "follow_ups": ["问题 1?", "问题 2?", "问题 3?"] }

### 聊天记录:
<chat_history>
{{MESSAGES:END:6}}
</chat_history>
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE

  • 类型: str
  • 描述: 调用工具时使用的提示词。
  • 默认值: 环境变量 DEFAULT_TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE 的值。

DEFAULT_TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE:

可用工具:{{TOOLS}}

您的任务是根据查询从可用工具列表中选择并返回正确的工具。请遵循以下指南:

- 仅返回 JSON 对象,不含任何额外的文本或解释。

- 如果没有工具匹配查询,则返回一个空数组:
{
"tool_calls": []
}
- 持久化: 此环境变量是一个 `PersistentConfig` 变量。

### 代码执行 (Code Execution)

#### `ENABLE_CODE_EXECUTION`

- 类型: `bool`
- 默认值: `True`
- 描述: 启用或禁用代码执行。
- 持久化: 此环境变量是一个 `PersistentConfig` 变量。

#### `CODE_EXECUTION_ENGINE`

- 类型: `str`
- 默认值: `pyodide`
- 描述: 指定要使用的代码执行引擎。
- 持久化: 此环境变量是一个 `PersistentConfig` 变量。

#### `CODE_EXECUTION_JUPYTER_URL`

- 类型: `str`
- 默认值: `None`
- 描述: 指定用于代码执行的 Jupyter URL。
- 持久化: 此环境变量是一个 `PersistentConfig` 变量。

#### `CODE_EXECUTION_JUPYTER_AUTH`

- 类型: `str`
- 默认值: `None`
- 描述: 指定用于代码执行的 Jupyter 身份验证方法。
- 持久化: 此环境变量是一个 `PersistentConfig` 变量。

#### `CODE_EXECUTION_JUPYTER_AUTH_TOKEN`

- 类型: `str`
- 默认值: `None`
- 描述: 指定用于代码执行的 Jupyter 身份验证令牌。
- 持久化: 此环境变量是一个 `PersistentConfig` 变量。

#### `CODE_EXECUTION_JUPYTER_AUTH_PASSWORD`

- 类型: `str`
- 默认值: `None`
- 描述: 指定用于代码执行的 Jupyter 身份验证密码。
- 持久化: 此环境变量是一个 `PersistentConfig` 变量。

#### `CODE_EXECUTION_JUPYTER_TIMEOUT`

- 类型: `str`
- 默认值: 空字符串 (' '),因为默认设置为 `None`。
- 描述: 指定 Jupyter 代码执行的超时时间。
- 持久化: 此环境变量是一个 `PersistentConfig` 变量。

### 代码解释器 (Code Interpreter)

#### `ENABLE_CODE_INTERPRETER`

- 类型: `bool`
- 默认值: `True`
- 描述: 启用或禁用代码解释器。
- 持久化: 此环境变量是一个 `PersistentConfig` 变量。

#### `CODE_INTERPRETER_ENGINE`

- 类型: `str`
- 默认值: `pyodide`
- 描述: 指定要使用的代码解释器引擎。
- 持久化: 此环境变量是一个 `PersistentConfig` 变量。

#### `CODE_INTERPRETER_BLACKLISTED_MODULES`

- 类型: `str` (以逗号分隔的模块名称列表)
- 默认值: None
- 描述: 指定 Python 模块的黑名单(逗号分隔),这些模块不能在代码解释器中导入或使用。这通过防止访问潜在敏感或系统级功能来增强安全性。

#### `CODE_INTERPRETER_PROMPT_TEMPLATE`

- 类型: `str`
- 默认值: `None`
- 描述: 指定用于代码解释器的提示词模板。
- 持久化: 此环境变量是一个 `PersistentConfig` 变量。

#### `CODE_INTERPRETER_JUPYTER_URL`

- 类型: `str`
- 默认值: 空字符串 (' '),因为默认设置为 `None`。
- 描述: 指定用于代码解释器的 Jupyter URL。
- 持久化: 此环境变量是一个 `PersistentConfig` 变量。

#### `CODE_INTERPRETER_JUPYTER_AUTH`

- 类型: `str`
- 默认值: 空字符串 (' '),因为默认设置为 `None`。
- 描述: 指定用于代码解释器的 Jupyter 身份验证方法。
- 持久化: 此环境变量是一个 `PersistentConfig` 变量。

#### `CODE_INTERPRETER_JUPYTER_AUTH_TOKEN`

- 类型: `str`
- 默认值: 空字符串 (' '),因为默认设置为 `None`。
- 描述: 指定用于代码解释器的 Jupyter 身份验证令牌。
- 持久化: 此环境变量是一个 `PersistentConfig` 变量。

#### `CODE_INTERPRETER_JUPYTER_AUTH_PASSWORD`

- 类型: `str`
- 默认值: 空字符串 (' '),因为默认设置为 `None`。
- 描述: 指定用于代码解释器的 Jupyter 身份验证密码。
- 持久化: 此环境变量是一个 `PersistentConfig` 变量。

#### `CODE_INTERPRETER_JUPYTER_TIMEOUT`

- 类型: `str`
- 默认值: 空字符串 (' '),因为默认设置为 `None`。
- 描述: 指定 Jupyter 代码解释器的超时时间。
- 持久化: 此环境变量是一个 `PersistentConfig` 变量。

### 直接连接 (Direct Connections) (OpenAPI/MCPO 工具服务器)

#### `ENABLE_DIRECT_CONNECTIONS`

- 类型: `bool`
- 默认值: `True`
- 描述: 启用或禁用直接连接。
- 持久化: 此环境变量是一个 `PersistentConfig` 变量。

#### `TOOL_SERVER_CONNECTIONS`

- 类型: `str` (JSON 数组)
- 默认值: `[]`
- 描述: 指定工具服务器连接配置的 JSON 数组。每个连接应定义连接到实现 OpenAPI/MCPO 协议的外部工具服务器所需的参数。JSON 必须格式正确,否则将回退到空数组。
- 示例:
```json
[
{
"type": "openapi",
"url": "example-url",
"spec_type": "url",
"spec": "",
"path": "openapi.json",
"auth_type": "none",
"key": "",
"config": { "enable": true },
"info": {
"id": "",
"name": "example-server",
"description": "MCP 服务器描述。"
}
}
]
  • 持久化: 此环境变量是一个 PersistentConfig 变量。
warning

TOOL_SERVER_CONNECTIONS 的 JSON 数据结构可能会随着新功能的添加而演变。

自动补全 (Autocomplete)

ENABLE_AUTOCOMPLETE_GENERATION

  • 类型: bool
  • 默认值: True
  • 描述: 启用或禁用自动补全生成。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。
info

启用 ENABLE_AUTOCOMPLETE_GENERATION 时,请确保也相应地配置了 AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTHAUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE

AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH

  • 类型: int
  • 默认值: -1
  • 描述: 设置自动补全生成的最大输入长度。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE

  • 类型: str
  • 默认值: 环境变量 DEFAULT_AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE 的值。

DEFAULT_AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE:


### 任务:
你是一个自动补全系统。根据 `<type>` 中的**补全类型**和给定语言,继续补充 `<text>` 中的文本。

### **说明**:
1. 分析 `<text>` 的上下文和含义。
2. 使用 `<type>` 指导你的输出:
- **常规 (General)**:提供自然、简洁的续写。
- **搜索查询 (Search Query)**:像生成真实的搜索查询一样完成。
3. 就像直接续写 `<text>` 一样开始。**不要**重复、改写或作为模型进行响应。只需完成文本。
4. 确保续写:
- 与 `<text>` 衔接自然。
- 避免重复、过度解释或无关的想法。
5. 如果不确定,返回:`{ "text": "" }`。

### **输出规则**:
- 仅以 JSON 格式响应:`{ "text": "<你的补全内容>" }`。

### **示例**:

#### 示例 1:
输入:
<type>General</type>
<text>太阳正从地平线落下,天空被染成了</text>
输出:
{ "text": "充满活力的橙色和粉色调。" }

#### 示例 2:
输入:
<type>Search Query</type>
<text>评价最高的餐厅,位于</text>
输出:
{ "text": "纽约市,意大利菜。" }

---

### 上下文:
<chat_history>
{{MESSAGES:END:6}}
</chat_history>
<type>{{TYPE}}</type>
<text>{{PROMPT}}</text>

#### 输出:
  • 描述: 设置自动补全生成的提示词模板。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

评估竞技场模型 (Evaluation Arena Model)

ENABLE_EVALUATION_ARENA_MODELS

  • 类型: bool
  • 默认值: True
  • 描述: 启用或禁用评估竞技场模型。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

ENABLE_MESSAGE_RATING

  • 类型: bool
  • 默认值: True
  • 描述: 启用消息评分功能。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

ENABLE_COMMUNITY_SHARING

  • 类型: bool
  • 默认值: True
  • 描述: 控制是否向用户显示“分享到社区”按钮。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

标签生成 (Tags Generation)

ENABLE_TAGS_GENERATION

  • 类型: bool
  • 默认值: True
  • 描述: 启用或禁用标签生成。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

TAGS_GENERATION_PROMPT_TEMPLATE

  • 类型: str
  • 默认值: 环境变量 DEFAULT_TAGS_GENERATION_PROMPT_TEMPLATE 的值。

DEFAULT_TAGS_GENERATION_PROMPT_TEMPLATE:


### 任务:
生成 1-3 个涵盖聊天记录主要主题的宽泛标签,以及 1-3 个更具体的子主题标签。

### 指南:
- 从高级领域开始(例如:科学、技术、哲学、艺术、政治、商业、健康、体育、娱乐、教育)
- 如果在整个对话中得到了有力体现,请考虑包含相关的子领域/子域
- 如果内容太短(少于 3 条消息)或太杂乱,仅使用 ["常规"]
- 使用聊天的主要语言;如果是多语言,则默认为英语
- 准确性优先于具体性

### 输出:
JSON 格式:{ "tags": ["标签 1", "标签 2", "标签 3"] }

### 聊天记录:
<chat_history>
{{MESSAGES:END:6}}
</chat_history>
  • 描述: 设置标签生成的提示词模板。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

API 密钥端点限制 (API Key Endpoint Restrictions)

ENABLE_API_KEYS

  • 类型: bool
  • 默认值: False
  • 描述: 启用 API 密钥创建功能,允许用户生成 API 密钥以便以编程方式访问 Open WebUI。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。
info

此变量取代了已弃用的 ENABLE_API_KEY 环境变量。

info

要使 API 密钥创建(以及 API 密钥本身)正常工作,您不仅需要全局启用它,还需要向特定的用户组授予相应的权限。

ENABLE_API_KEYS_ENDPOINT_RESTRICTIONS

  • 类型: bool
  • 默认值: False
  • 描述: 启用 API 密钥端点限制以增加安全性和可配置性,允许管理员限制可以使用 API 密钥访问的端点。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。
info

此变量取代了已弃用的 ENABLE_API_KEY_ENDPOINT_RESTRICTIONS 环境变量。

API_KEYS_ALLOWED_ENDPOINTS

  • 类型: str
  • 描述: 当启用 API 密钥端点限制时,指定允许的 API 端点(以逗号分隔的列表)。
  • 示例: /api/v1/messages,/api/v1/channels,/api/v1/chat/completions
  • 持久化: 此环境变量是一个 PersistentConfig 变量。
note

API_KEYS_ALLOWED_ENDPOINTS 的值应为以逗号分隔的端点 URL 列表,例如 /api/v1/messages, /api/v1/channels

info

此变量取代了已弃用的 API_KEY_ALLOWED_ENDPOINTS 环境变量。

JWT_EXPIRES_IN

  • 类型: str
  • 默认值: 4w
  • 描述: 设置 JWT 过期时间(秒)。有效的时间单位:smhdw-1 表示永不过期。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。
warning

JWT_EXPIRES_IN 设置为 -1 会禁用 JWT 过期,使发出的令牌永久有效。这在生产环境中极其危险,如果令牌泄露或被入侵,会使您的系统面临严重的安全风险。

在生产环境中务必设置合理的过期时间(例如 3600s1h7d 等),以限制身份验证令牌的寿命。

切勿在生产环境中使用 -1

如果您已经使用 JWT_EXPIRES_IN=-1 进行了部署,可以轮换或更改您的 WEBUI_SECRET_KEY 以立即失效所有现有令牌。

安全变量 (Security Variables)

ENABLE_FORWARD_USER_INFO_HEADERS

  • 类型: bool
  • 默认值: False
  • 描述: 将用户信息(名称、ID、电子邮件、角色和聊天 ID)作为 X-header 转发到 OpenAI API 和 Ollama API。 如果启用,将转发以下标头:
    • X-OpenWebUI-User-Name
    • X-OpenWebUI-User-Id
    • X-OpenWebUI-User-Email
    • X-OpenWebUI-User-Role
    • X-OpenWebUI-Chat-Id

ENABLE_WEB_LOADER_SSL_VERIFICATION

  • 类型: bool
  • 默认值: True
  • 描述: 为网站上的 RAG 绕过 SSL 验证。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。
  • 类型: str
  • 选项:
    • lax - 将 SameSite 属性设置为 lax,允许在由第三方网站发起的请求中发送会话 Cookie。
    • strict - 将 SameSite 属性设置为 strict,阻止在由第三方网站发起的请求中发送会话 Cookie。
    • none - 将 SameSite 属性设置为 none,允许在由第三方网站发起的请求中发送会话 Cookie,但仅限通过 HTTPS。
  • 默认值: lax
  • 描述: 设置会话 Cookie 的 SameSite 属性。
warning

当启用 ENABLE_OAUTH_SIGNUP 时,将 WEBUI_SESSION_COOKIE_SAME_SITE 设置为 strict 可能会导致登录失败。这是因为 Open WebUI 使用会话 Cookie 来验证来自 OAuth 提供者的回调,这有助于防止 CSRF 攻击。

但是,strict 会话 Cookie 不会随回调请求一起发送,从而导致潜在的登录问题。如果您遇到此问题,请改用默认的 lax 值。

  • 类型: bool
  • 默认值: False
  • 描述: 如果设置为 True,则为会话 Cookie 设置 Secure 属性。
  • 类型: str
  • 选项:
    • lax - 将 SameSite 属性设置为 lax,允许在由第三方网站发起的请求中发送身份验证 Cookie。
    • strict - 将 SameSite 属性设置为 strict,阻止在由第三方网站发起的请求中发送身份验证 Cookie。
    • none - 将 SameSite 属性设置为 none,允许在由第三方网站发起的请求中发送身份验证 Cookie,但仅限通过 HTTPS。
  • 默认值: lax
  • 描述: 设置身份验证 Cookie 的 SameSite 属性。
info

如果未设置该值,将使用 WEBUI_SESSION_COOKIE_SAME_SITE 作为回退。

  • 类型: bool
  • 默认值: False
  • 描述: 如果设置为 True,则为身份验证 Cookie 设置 Secure 属性。
info

如果未设置该值,将使用 WEBUI_SESSION_COOKIE_SECURE 作为回退。

WEBUI_AUTH

  • 类型: bool
  • 默认值: True
  • 描述: 此设置启用或禁用身份验证。
danger

如果设置为 False,您的 Open WebUI 实例将禁用身份验证。但是,请注意,仅对于没有任何现有用户的全新安装,才可能关闭身份验证。如果已经有注册用户,您无法直接禁用身份验证。如果您打算关闭 WEBUI_AUTH,请确保数据库中不存在任何用户。

ENABLE_PASSWORD_VALIDATION

  • 类型: bool
  • 默认值: False
  • 描述: 启用用户帐户的密码复杂度验证。启用后,在注册、密码更新和用户创建操作期间,密码必须符合 PASSWORD_VALIDATION_REGEX_PATTERN 定义的复杂度要求。这有助于在整个应用程序中执行更强大的密码策略。
info

密码验证适用于:

  • 新用户注册
  • 通过用户设置更改密码
  • 管理员发起的用户创建
  • 密码重置

密码不符合新要求的现有用户不会被自动强制更新密码,但在下次更改密码时需要符合要求。

PASSWORD_VALIDATION_REGEX_PATTERN

  • 类型: str
  • 默认值: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\w\s]).{8,}$
  • 描述: 当启用 ENABLE_PASSWORD_VALIDATION 时,用于验证密码复杂度的正则表达式模式。默认模式要求密码至少 8 个字符长,且包含至少一个大写字母、一个小写字母、一个数字和一个特殊字符。
warning

自定义模式注意事项

定义自定义正则模式时,请确保它:

  • 是 Python 的 re 模块可以编译的有效正则表达式
  • 平衡安全要求与用户体验
  • 在部署前经过彻底测试,以避免将用户锁在门外

无效的正则模式将导致密码验证失败,可能导致用户无法注册和更改密码。

WEBUI_SECRET_KEY

  • 类型: str
  • 默认值: t0p-s3cr3t
  • Docker 默认值: 首次启动时随机生成
  • 描述: 覆盖用于 JSON Web Token 和敏感数据加密(如 MCP 的 OAuth 令牌)的随机生成字符串。
对于 Docker/生产环境至关重要

必须WEBUI_SECRET_KEY 设置为一个安全的、持久的值。

如果您不设置此项:

  1. 每次容器重启/重新创建时,它都会随机生成。
  2. 所有 OAuth 会话都将失效。
  3. MCP 工具将损坏(错误:Error decrypting tokens),因为它们无法解密使用之前密钥存储的令牌。
  4. 您将被注销。

不要在生产环境中保留此项未设置。

warning

多工作进程 (Multi-Worker) 和多节点 (Multi-Node) 部署所需,且在单工作进程环境中强烈推荐

在使用 UVICORN_WORKERS > 1 或在使用负载均衡器的多节点/工作集群(例如 helm/kubectl/kubernetes/k8s)中部署 Open WebUI 时,您必须设置此变量。如果没有它,将会出现以下问题:

  • 跨工作进程的会话管理将失败
  • 实例之间的应用程序状态将不一致
  • 在分布式设置中,Websocket 连接将无法正常工作
  • 用户可能会遇到间歇性的身份验证失败

ENABLE_VERSION_UPDATE_CHECK

  • 类型: bool
  • 默认值: True
  • 描述: 启用后,应用程序会进行自动更新检查,并向您发送有关版本更新的通知。
info

如果启用了 OFFLINE_MODE,此 ENABLE_VERSION_UPDATE_CHECK 标志将自动始终设置为 false

OFFLINE_MODE

  • 类型: bool
  • 默认值: False
  • 描述: 禁用 Open WebUI 的 network 链接。
info

启用后禁用的功能:

  • 自动版本更新检查(参见标志 ENABLE_VERSION_UPDATE_CHECK
  • 从 Hugging Face Hub 下载嵌入模型
    • 如果您在激活 OFFLINE_MODE 之前未下载嵌入模型,任何 RAG、网页搜索和文档分析功能可能无法正常工作
  • UI 中的更新通知(参见标志 ENABLE_VERSION_UPDATE_CHECK

仍然可用的功能:

  • 外部 LLM API 连接(OpenAI 等)
  • OAuth 身份验证提供者
  • 使用外部 API 的网页搜索和 RAG

离线模式指南中阅读更多关于 离线模式 (offline mode) 的信息。

HF_HUB_OFFLINE

  • 类型: int
  • 默认值: 0
  • 描述: 告诉 Hugging Face 我们是否要在离线模式下启动,从而不连接 Hugging Face 并防止所有自动模型下载。
info

当此项设置为 1 时,模型、sentence transformers 和其他可配置项目的下载将无法工作。 如果在默认安装中将此项设置为 True,RAG 也将无法工作。

RESET_CONFIG_ON_START

  • 类型: bool
  • 默认值: False
  • 描述: 启动时重置 config.json 文件。

SAFE_MODE

  • 类型: bool
  • 默认值: False
  • 描述: 启用安全模式,这将禁用潜在的不安全功能,停用所有函数 (Functions)。

CORS_ALLOW_ORIGIN

  • 类型: str
  • 默认值: *
  • 描述: 设置跨源资源共享 (CORS) 的允许来源。以分号 ';' 分隔的允许来源列表。

必须设置此变量,否则您可能会遇到 Websocket 问题和奇怪的 "{}" 响应,或者 "Unexpected token 'd', "data: {"id"... is not valid JSON" 错误。

:::

info

如果您遇到 Websocket 问题,请检查 Open WebUI 的日志。 如果您看到类似这样的行:engineio.base_server:_log_error_once:354 - https://yourdomain.com is not an accepted origin.,那么您需要更广泛地配置您的 CORS_ALLOW_ORIGIN

示例: CORS_ALLOW_ORIGIN: "https://yourdomain.com;http://yourdomain.com;https://yourhostname;http://youripaddress;http://localhost:3000"

将所有可能访问您的 Open WebUI 的有效 IP、域名和主机名添加到该变量中。 完成后,控制台中不应再出现 Websocket 问题或警告。

CORS_ALLOW_CUSTOM_SCHEME

  • 类型: str
  • 默认值: ""(空字符串)
  • 描述: 为跨源资源共享 (CORS) 设置进一步允许的方案。允许您指定除标准 httphttps 之外的其他自定义 URL 方案,这些方案被允许作为 CORS 的有效来源。
info

这在以下场景中特别有用:

  • 与使用自定义协议的桌面应用程序集成(例如 app://custom-app-scheme://)。
  • 可能采用非标准方案的本地开发环境或测试设置(例如 file://(如果适用)或 electron://)。

提供以分号分隔的方案名称列表,不带 ://。例如:app;file;electron;my-custom-scheme

配置后,这些自定义方案将与 httphttps 一起,针对 CORS_ALLOW_ORIGIN 中指定的任何来源进行验证。

RAG_EMBEDDING_MODEL_TRUST_REMOTE_CODE

  • 类型: bool
  • 默认值: False
  • 描述: 决定是否允许 Hub 上在其自己的建模文件中定义的自定义模型。

RAG_RERANKING_MODEL_TRUST_REMOTE_CODE

  • 类型: bool
  • 默认值: False
  • 描述: 决定是否允许 Hub 上在其自己的建模文件中定义的自定义模型进行重排序。

RAG_EMBEDDING_MODEL_AUTO_UPDATE

  • 类型: bool
  • 默认值: True
  • 描述: 切换 Sentence-Transformer 模型的自动更新。

RAG_RERANKING_MODEL_AUTO_UPDATE

  • 类型: bool
  • 默认值: True
  • 描述: 切换重排序模型的自动更新。

向量数据库 (Vector Database)

VECTOR_DB

  • 类型: str
  • 可选项:
  • chroma, elasticsearch, milvus, opensearch, pgvector, qdrant, pinecone, s3vector, oracle23ai, weaviate
  • 默认值: chroma
  • 描述: 指定要使用的向量数据库系统。此设置决定了用于管理嵌入的向量存储系统。
note

PostgreSQL 依赖项 要使用 pgvector,请确保您已安装 PostgreSQL 依赖项:

pip install open-webui[all]
info

只有 PGVector 和 ChromaDB 会由 Open WebUI 团队持续维护。 其他向量存储是由社区添加的向量数据库。

ChromaDB

CHROMA_TENANT

  • 类型: str
  • 默认值: chromadb.DEFAULT_TENANT 的值(chromadb 模块中的常量)
  • 描述: 设置 ChromaDB 用于 RAG 嵌入的租户。

CHROMA_DATABASE

  • 类型: str
  • 默认值: chromadb.DEFAULT_DATABASE 的值(chromadb 模块中的常量)
  • 描述: 设置 ChromaDB 租户中用于 RAG 嵌入的数据库。

CHROMA_HTTP_HOST

  • 类型: str
  • 描述: 指定远程 ChromaDB 服务器的主机名。如果未设置,则使用本地 ChromaDB 实例。

CHROMA_HTTP_PORT

  • 类型: int
  • 默认值: 8000
  • 描述: 指定远程 ChromaDB 服务器的端口。

CHROMA_HTTP_HEADERS

  • 类型: str
  • 描述: 包含在每个 ChromaDB 请求中的 HTTP 标头列表,以逗号分隔。
  • 示例: Authorization=Bearer heuhagfuahefj,User-Agent=OpenWebUI

CHROMA_HTTP_SSL

  • 类型: bool
  • 默认值: False
  • 描述: 控制是否对 ChromaDB 服务器连接使用 SSL。

CHROMA_CLIENT_AUTH_PROVIDER

  • 类型: str
  • 描述: 指定远程 ChromaDB 服务器的身份验证提供程序。
  • 示例: chromadb.auth.basic_authn.BasicAuthClientProvider

CHROMA_CLIENT_AUTH_CREDENTIALS

  • 类型: str
  • 描述: 指定远程 ChromaDB 服务器的身份验证凭据。
  • 示例: username:password

Elasticsearch

ELASTICSEARCH_API_KEY

  • 类型: str
  • 默认值: 空字符串 (' '),因为 None 被设置为默认值。
  • 描述: 指定 Elasticsearch API 密钥。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

ELASTICSEARCH_CA_CERTS

  • 类型: str
  • 默认值: 空字符串 (' '),因为 None 被设置为默认值。
  • 描述: 指定 Elasticsearch CA 证书的路径。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

ELASTICSEARCH_CLOUD_ID

  • 类型: str
  • 默认值: 空字符串 (' '),因为 None 被设置为默认值。
  • 描述: 指定 Elasticsearch Cloud ID。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

ELASTICSEARCH_INDEX_PREFIX

  • 类型: str
  • 默认值: open_webui_collections
  • 描述: 指定 Elasticsearch 索引的前缀。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

ELASTICSEARCH_PASSWORD

  • 类型: str
  • 默认值: 空字符串 (' '),因为 None 被设置为默认值。
  • 描述: 指定 Elasticsearch 的密码。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

ELASTICSEARCH_URL

  • 类型: str
  • 默认值: https://localhost:9200
  • 描述: 指定 Elasticsearch 实例的 URL。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

ELASTICSEARCH_USERNAME

  • 类型: str
  • 默认值: 空字符串 (' '),因为 None 被设置为默认值。
  • 描述: 指定 Elasticsearch 的用户名。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

Milvus

warning

Milvus 不由 Open WebUI 团队积极维护。它是社区的补充,由社区维护。 如果您想使用 Milvus,在升级 Open WebUI 时请务必小心(创建备份和快照以便回滚),以防 Open WebUI 的内部更改导致破坏。

MILVUS_URI (必填)

  • 类型: str
  • 默认值: ${DATA_DIR}/vector_db/milvus.db
  • 示例 (远程): http://your-server-ip:19530
  • 描述: 指定连接到 Milvus 向量数据库的 URI。根据部署配置,这可以指向本地或远程 Milvus 服务器。

MILVUS_DB

  • 类型: str
  • 默认值: default
  • 示例: default
  • 描述: 指定在 Milvus 实例中连接的数据库。

MILVUS_TOKEN (远程连接且启用身份验证时必填)

  • 类型: str
  • 默认值: None
  • 示例: root:password (格式: username:password)
  • 描述: 指定 Milvus 的可选连接令牌。当连接到启用了身份验证的远程 Milvus 服务器时需要。格式为 username:password

MILVUS_INDEX_TYPE

  • 类型: str
  • 默认值: HNSW
  • 可选项: AUTOINDEX, FLAT, IVF_FLAT, HNSW, DISKANN
  • 描述: 指定在 Milvus 中创建新集合时使用的索引类型。对于 Milvus standalone,通常推荐使用 AUTOINDEXHNSW 可能提供更好的性能,但需要集群化的 Milvus 设置,不适用于 standalone 设置。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

MILVUS_METRIC_TYPE

  • 类型: str
  • 默认值: COSINE
  • 可选项: COSINE, IP, L2
  • 描述: 指定 Milvus 中向量相似度搜索的度量类型。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

MILVUS_HNSW_M

  • 类型: int
  • 默认值: 16
  • 描述: 指定 Milvus 中 HNSW 索引类型的 M 参数。这会影响在构建期间为每个新元素创建的双向链接数量。仅在 MILVUS_INDEX_TYPEHNSW 时适用。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

MILVUS_HNSW_EFCONSTRUCTION

  • 类型: int
  • 默认值: 100
  • 描述: 指定 Milvus 中 HNSW 索引类型的 efConstruction 参数。这会影响索引构建期间最近邻动态列表的大小。仅在 MILVUS_INDEX_TYPEHNSW 时适用。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

MILVUS_IVF_FLAT_NLIST

  • 类型: int
  • 默认值: 128
  • 描述: 指定 Milvus 中 IVF_FLAT 索引类型的 nlist 参数。这是聚类单元的数量。仅在 MILVUS_INDEX_TYPEIVF_FLAT 时适用。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

MILVUS_DISKANN_MAX_DEGREE

  • 类型: int
  • 默认值: 56
  • 描述: 如果 Milvus 处于 DISKANN 索引模式,设置其最大度数。通常建议保持原样。

MILVUS_DISKANN_SEARCH_LIST_SIZE

  • 类型: int
  • 默认值: 100
  • 描述: 设置 Milvus DISKANN 搜索列表大小。通常建议保持原样。

ENABLE_MILVUS_MULTITENANCY_MODE

  • 类型: bool
  • 默认值: false
  • 描述: 启用 Milvus 集合管理的多租户模式,通过整合相似的向量数据结构,显著减少内存使用和计算开销。控制 Milvus 是否使用多租户集合架构。启用后,所有向量数据将合并到 5 个共享集合中(memories, knowledge, files, web_search, hash_based),而不是为每个资源创建单独的集合。数据隔离通过 resource_id 字段而非集合级分离来实现。
info

多租户模式的好处:

  • 显著降低内存消耗(5 个集合 vs 潜在的数百个)
  • 降低集合管理的计算开销
  • 更快的冷启动时间
  • 减轻索引维护负担

技术实现:

  • 所有记忆 (Memories) 进入 {prefix}_memories
  • 所有知识库 (Knowledge bases) 进入 {prefix}_knowledge
  • 所有上传的文件进入 {prefix}_files
  • 网页搜索结果进入 {prefix}_web_search
  • 基于哈希的集合进入 {prefix}_hash_based
  • 每个条目都包含一个匹配原始集合名称的 resource_id 字段
  • 查询会自动按 resource_id 过滤以保持数据隔离
集合变量默认名称 (后缀)代码中的触发 / 路由逻辑用途
HASH_BASED_COLLECTION_hash_based集合名称是 63 位十六进制字符串 (SHA256 哈希)。使用 # 功能缓存直接获取的 URL(网站)。
MEMORY_COLLECTION_memories集合名称以 user-memory- 开头。存储实验性记忆系统中用户特定的长期记忆。
WEB_SEARCH_COLLECTION_web_search集合名称以 web-search- 开头。存储来自搜索引擎查询的临时结果。
KNOWLEDGE_COLLECTION_knowledge其他所有内容 (默认回退)。存储显式创建的知识库。
info

从旧模式迁移到多租户模式

当您在已有数据的普通 Milvus 数据库中启用多租户模式时会发生什么:

  • 现有集合(模式:open_webui_{collection_name})仍保留在 Milvus 中,但 Open WebUI 无法再访问 它们。
  • 新数据将写入 5 个共享的多租户集合中。
  • 在重新索引之前,应用程序会将知识库视为空。
  • 文件和记忆不会自动迁移到新的集合架构,且会显示为缺失。

从普通 Milvus 到多租户 Milvus 的清理迁移路径:

  • 在启用多租户之前,如果可能,请从 UI 导出任何关键的知识库内容。
  • 设置 ENABLE_MILVUS_MULTITENANCY_MODE=true 并重启 Open WebUI。
  • 导航至 管理员设置 > 文档 > 点击 重新索引知识库

这仅会将知识库向量重建到新的多租户集合中 此操作不会迁移文件、用户记忆和网页搜索历史

验证知识库是否可访问且功能正常

  • 如果基于文件的检索至关重要,请重新上传文件(文件元数据保留,但向量未迁移)。
  • 用户聊天记忆将需要通过新的对话重新生成。

清理旧集合: 成功迁移(从 Milvus 到多租户 Milvus)后,旧集合仍会消耗资源。请手动移除它们:

  • 使用原生客户端(pymilvus 或 Attu UI)连接到 Milvus。
  • 删除所有旧集合。

当前 UI 限制:

  • 不存在一键式“迁移并清理”按钮。
  • 从 UI 进行向量数据库重置(管理员设置 > 文档 > 重置向量存储/知识库)仅影响当前激活模式的集合。
  • 旧集合需要通过 Milvus 客户端工具手动清理。
warning

关键注意事项

在现有安装上启用多租户之前:

  • 数据丢失风险:文件向量和用户记忆向量不会自动迁移。只有知识库内容可以重新索引(迁移)。
  • 集合命名依赖:多租户依赖于 Open WebUI 内部的集合命名约定(user-memory-、file-、web-search-、hash 模式)。如果 Open WebUI 在未来的更新中更改了这些约定,多租户路由可能会中断,导致跨隔离资源的数据损坏或不正确的数据检索。
  • 无自动回滚:在写入数据后禁用多租户将无法恢复对共享集合的访问。数据需要手动提取并重新导入。

对于全新安装,不存在迁移问题。

对于拥有重要数据的现有安装:

  • 如果您不想处理迁移问题并承担数据丢失风险,请不要迁移到多租户模式。
  • 请理解文件和记忆需要重新上传/重新生成。
  • 请先在备份/分段环境中测试迁移。
  • 考虑节省的内存是否值得为您的情况付出迁移努力。

要执行完整重置并切换到多租户:

  • 在外部备份任何关键知识库内容。
  • 导航至 管理员设置 > 文档
  • 点击 重置向量存储/知识库(这将删除所有激活模式的集合和存储的知识库元数据)。
  • 设置 ENABLE_MILVUS_MULTITENANCY_MODE=true
  • 重启 Open WebUI。
  • 从头开始重新上传/重新创建知识库。
warning

多租户的映射依赖于当前 Open WebUI 的集合命名约定。

如果 Open WebUI 更改了其生成集合名称的方式(例如:"user-memory-" 前缀、"file-" 前缀、网页搜索模式或哈希格式),此映射将中断并将数据路由到错误的集合。 这可能会导致严重的数据损坏、数据一致性问题以及数据库内部的数据映射错误。

如果您使用多租户模式,在升级前应始终检查集合名称和数据映射是否有任何更改,并谨慎升级(使用快照和备份以便回滚)!

MILVUS_COLLECTION_PREFIX

  • 类型: str
  • 默认值: open_webui
  • 描述: 为 Milvus 集合名称设置前缀。在多租户模式下,集合变为 {prefix}_memories{prefix}_knowledge 等。在旧模式下,集合为 {prefix}_{collection_name}。更改此值会创建一个完全独立的命名空间——具有旧前缀的现有集合对 Open WebUI 变得不可见,但仍保留在 Milvus 中消耗资源。这用于共享 Milvus 服务器上的真正多实例隔离,而不是用于模式之间的迁移。Milvus 仅接受下划线,不能使用连字符/短横线,否则会导致错误。

OpenSearch

OPENSEARCH_CERT_VERIFY

  • 类型: bool
  • 默认值: False
  • 描述: 启用或禁用 OpenSearch 证书验证。

OPENSEARCH_PASSWORD

  • 类型: str
  • 默认值: None
  • 描述: 为 OpenSearch 设置密码。

OPENSEARCH_SSL

  • 类型: bool
  • 默认值: True
  • 描述: 为 OpenSearch 启用或禁用 SSL。

OPENSEARCH_URI

  • 类型: str
  • 默认值: https://localhost:9200
  • 描述: 为 OpenSearch 设置 URI。

OPENSEARCH_USERNAME

  • 类型: str
  • 默认值: None
  • 描述: 为 OpenSearch 设置用户名。

PGVector

note

PostgreSQL 依赖项 要使用 pgvector,请确保您已安装 PostgreSQL 依赖项:

pip install open-webui[all]

PGVECTOR_DB_URL

  • 类型: str
  • 默认值: DATABASE_URL 环境变量的值
  • 描述: 设置用于模型存储的数据库 URL。

PGVECTOR_INITIALIZE_MAX_VECTOR_LENGTH

  • 类型: str
  • 默认值: 1536
  • 描述: 指定 PGVector 初始化的最大向量长度。

PGVECTOR_CREATE_EXTENSION

  • 类型: str
  • 默认值: true
  • 描述: 在数据库中创建 vector 扩展。
info

如果设置为 false,Open WebUI 将假定存储嵌入的 PostgreSQL 数据库已预先配置了 vector 扩展。这也允许 Open WebUI 以非超级用户身份运行。

PGVECTOR_INDEX_METHOD

  • 类型: str
  • 可选项:
    • ivfflat - 使用带有平面压缩的倒排文件,更适合维度较多的数据集。
    • hnsw - 使用分层导航小世界 (Hierarchical Navigable Small World) 图,通常提供更好的查询性能。
  • 默认值: 未指定 (pgvector 将使用其默认值)
  • 描述: 指定 pgvector 的索引方法。选择会影响查询性能和索引构建时间。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。
info

在选择索引方法时,请考虑您的数据集大小和查询模式。HNSW 通常提供更好的查询性能但使用更多内存,而 IVFFlat 对于较大的数据集可能更节省内存。

PGVECTOR_HNSW_M

  • 类型: int
  • 默认值: 16
  • 描述: HNSW 索引参数,控制索引构建期间每层最大双向连接数。较高的值可提高召回率,但会增加索引大小和构建时间。仅在 PGVECTOR_INDEX_METHOD 设置为 hnsw 时适用。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

PGVECTOR_HNSW_EF_CONSTRUCTION

  • 类型: int
  • 默认值: 64
  • 描述: HNSW 索引参数,控制索引构建期间动态候选列表的大小。较高的值可提高索引质量,但会增加构建时间。仅在 PGVECTOR_INDEX_METHOD 设置为 hnsw 时适用。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

PGVECTOR_IVFFLAT_LISTS

  • 类型: int
  • 默认值: 100
  • 描述: IVFFlat 索引参数,指定要创建的倒排列表(聚类)数量。一个好的起点是:对于多达 100 万行,使用 rows / 1000;对于超过 100 万行,使用 sqrt(rows)。仅在 PGVECTOR_INDEX_METHOD 设置为 ivfflat 时适用。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。
info

对于 IVFFlat 索引,选择合适的列表数量对于查询性能至关重要。列表太少会导致查询缓慢,而列表太多会增加索引大小,且没有明显的性能提升。

PGVECTOR_USE_HALFVEC

  • 类型: bool
  • 默认值: False
  • 描述: 启用使用 halfvec 数据类型而不是 vector 来存储嵌入。当 PGVECTOR_INITIALIZE_MAX_VECTOR_LENGTH 超过 2000 维时需要,因为 vector 类型有 2000 维的限制。

PGVECTOR_PGCRYPTO

  • 类型: bool
  • 默认值: False
  • 描述: 启用 pgcrypto 扩展以在 PGVector 中加密敏感数据。启用后,必须设置 PGVECTOR_PGCRYPTO_KEY

PGVECTOR_PGCRYPTO_KEY

  • 类型: str
  • 默认值: None
  • 描述: 当启用 PGVECTOR_PGCRYPTO 时,指定 pgcrypto 的加密密钥。必须是安全的、随机生成的密钥。

PGVECTOR_POOL_SIZE

  • 类型: int
  • 默认值: None
  • 描述: 设置要在 PGVector 数据库连接池中维持的连接数。如果未设置,则使用 SQLAlchemy 默认值。

PGVECTOR_POOL_MAX_OVERFLOW

  • 类型: int
  • 默认值: 0
  • 描述: 指定当连接池耗尽时,可以在 PGVECTOR_POOL_SIZE 之外创建的最大连接数。

PGVECTOR_POOL_TIMEOUT

  • 类型: int
  • 默认值: 30
  • 描述: 设置从 PGVector 连接池获取连接的超时时间(秒)。

PGVECTOR_POOL_RECYCLE

  • 类型: int
  • 默认值: 3600
  • 描述: 指定 PGVector 连接池中连接回收的时间(秒),以防止连接失效。

Qdrant

warning

Qdrant 不由 Open WebUI 团队积极维护。它是社区的补充,由社区维护。 如果您想使用 Qdrant,在升级 Open WebUI 时请务必小心(创建备份和快照以便回滚),以防 Open WebUI 的内部更改导致破坏。

QDRANT_API_KEY

  • 类型: str
  • 描述: 为 Qdrant 设置 API 密钥。

QDRANT_URI

  • 类型: str
  • 描述: 为 Qdrant 设置 URI。

QDRANT_ON_DISK

  • 类型: bool
  • 默认值: False
  • 描述: 启用 memmap(也称为磁盘存储)的使用。

QDRANT_PREFER_GRPC

  • 类型: bool
  • 默认值: False
  • 描述: 尽可能使用 gRPC 接口。
info

如果设置为 True,且 QDRANT_URI 指向带有 TLS 启用且证书由私有 CA 签名的自托管服务器,请将环境变量 GRPC_DEFAULT_SSL_ROOTS_FILE_PATH 设置为您的 PEM 编码 CA 证书文件的路径。更多信息请参见 gRPC 核心文档

QDRANT_GRPC_PORT

  • 类型: int
  • 默认值: 6334
  • 描述: 为 Qdrant 设置 gRPC 端口号。

QDRANT_TIMEOUT

  • 类型: int
  • 默认值: 5
  • 描述: 为向 Qdrant 服务器发出的所有请求设置超时时间(秒),有助于防止长时间运行的查询使应用程序停滞。

QDRANT_HNSW_M

  • 类型: int
  • 默认值: 16
  • 描述: 控制 HNSW (Hierarchical Navigable Small World) 索引构建。在标准模式下,这设置 m 参数。在多租户模式下,按照 Qdrant 最佳实践,由于出于性能考虑禁用了全局 m,此值用于 payload_m 参数以在有效载荷上构建索引。

ENABLE_QDRANT_MULTITENANCY_MODE

  • 类型: bool
  • 默认值: True
  • 描述: 启用 Qdrant 集合管理的多租户模式,通过整合相似的向量数据结构,显著减少内存使用和计算开销。建议开启。
info

这将断开以之前模式(非多租户)创建的所有 Qdrant 集合。请前往 管理员设置 > 文档 > 重新索引知识库 以迁移现有的知识。

  • 持久化: 此环境变量是一个 PersistentConfig 变量。

Pinecone

当使用 Pinecone 作为向量库时,以下环境变量用于控制其行为。请确保在 .env 文件或部署环境中设置这些变量。

PINECONE_API_KEY

  • 类型: str
  • 默认值: None
  • 描述: 设置用于向 Pinecone 服务进行身份验证的 API 密钥。

PINECONE_ENVIRONMENT

  • 类型: str
  • 默认值: None
  • 描述: 指定要连接的 Pinecone 环境(例如:us-west1-gcp, gcp-starter 等)。

PINECONE_INDEX_NAME

  • 类型: str
  • 默认值: open-webui-index
  • 描述: 定义用于存储和查询向量嵌入的 Pinecone 索引名称。

PINECONE_DIMENSION

  • 类型: int
  • 默认值: 1536
  • 描述: 向量嵌入的维度。必须与索引预期的维度匹配(根据所使用的模型,通常为 768, 1024, 1536 或 3072)。

PINECONE_METRIC

  • 类型: str
  • 默认值: cosine
  • 选项: cosine, dotproduct, euclidean
  • 描述: 指定在 Pinecone 索引内进行向量比较时使用的相似度指标。

PINECONE_CLOUD

  • 类型: str
  • 默认值: aws
  • 选项: aws, gcp, azure
  • 描述: 指定托管 Pinecone 索引的云服务提供商。

Weaviate

WEAVIATE_HTTP_HOST

  • 类型: str
  • 默认值: 空字符串 (' ')
  • 描述: 指定用于 HTTP 连接的 Weaviate 服务器主机名。

WEAVIATE_HTTP_PORT

  • 类型: int
  • 默认值: 8080
  • 描述: 指定连接 Weaviate 服务器的 HTTP 端口。

WEAVIATE_GRPC_PORT

  • 类型: int
  • 默认值: 50051
  • 描述: 指定连接 Weaviate 服务器的 gRPC 端口。

WEAVIATE_API_KEY

  • 类型: str
  • 默认值: None
  • 描述: 设置向 Weaviate 服务器进行身份验证的 API 密钥。

ORACLE_DB_USE_WALLET

  • 类型: bool
  • 默认值: false
  • 描述: 确定连接 Oracle 数据库的方法。
    • 设置为 false 用于直接连接(例如:连接到 Oracle Database 23ai Free 或 DBCS 实例),使用 ORACLE_DB_DSN 中的主机、端口和服务名。
    • 设置为 true 用于基于钱包 (Wallet) 的连接(例如:连接到 Oracle Autonomous Database (ADW/ATP))。当为 true 时,还必须配置 ORACLE_WALLET_DIRORACLE_WALLET_PASSWORD

ORACLE_DB_USER

  • 类型: str
  • 默认值: DEMOUSER
  • 描述: 指定用于连接 Oracle 数据库的用户名。

ORACLE_DB_PASSWORD

  • 类型: str
  • 默认值: Welcome123456
  • 描述: 指定 ORACLE_DB_USER 的密码。

ORACLE_DB_DSN

  • 类型: str
  • 默认值: localhost:1521/FREEPDB1
  • 描述: 定义 Oracle 数据库连接的数据源名称 (DSN)。
    • 如果 ORACLE_DB_USE_WALLETfalse,格式应为 hostname:port/service_name(例如:localhost:1521/FREEPDB1)。
    • 如果 ORACLE_DB_USE_WALLETtrue,可以是 TNS 别名(例如:ADW/ATP 的 medium),或者是完整的连接字符串。

ORACLE_WALLET_DIR

  • 类型: str
  • 默认值: 空字符串 (' ')
  • 描述: ORACLE_DB_USE_WALLETtrue 时必填。指定包含 Oracle Cloud 钱包文件(例如:cwallet.sso, sqlnet.ora, tnsnames.ora)的目录的绝对路径。

ORACLE_WALLET_PASSWORD

  • 类型: str
  • 默认值: 空字符串 (' ')
  • 描述: ORACLE_DB_USE_WALLETtrue 时必填。指定 Oracle Cloud 钱包的密码。

ORACLE_VECTOR_LENGTH

  • 类型: int
  • 默认值: 768
  • 描述: 设置存储在 Oracle 数据库中的向量嵌入的预期维度或长度。这必须与使用的嵌入模型匹配。

ORACLE_DB_POOL_MIN

  • 类型: int
  • 默认值: 2
  • 描述: Oracle 数据库连接池中维护的最小连接数。

ORACLE_DB_POOL_MAX

  • 类型: int
  • 默认值: 10
  • 描述: Oracle 数据库连接池中允许的最大连接数。

ORACLE_DB_POOL_INCREMENT

  • 类型: int
  • 默认值: 1
  • 描述: 当连接池需要增长时创建的连接数。

S3 向量存储桶 (S3 Vector Bucket)

使用 S3 向量存储桶作为向量库时,以下环境变量用于控制其行为。请确保在 .env 文件或部署环境中设置这些变量。

info

注意:此配置假设您的 Open WebUI 环境可以使用 AWS 凭证。这可以通过环境变量如 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 实现,也可以通过 IAM 角色权限实现。

S3_VECTOR_BUCKET_NAME

  • 类型: str
  • 描述: 指定用于存储向量的 S3 存储桶 (Bucket) 名称。

S3_VECTOR_REGION

  • 类型: str
  • 描述: 指定托管 S3 向量存储桶的 AWS 区域 (Region)。

RAG 内容提取引擎 (RAG Content Extraction Engine)

CONTENT_EXTRACTION_ENGINE

  • 类型: str
  • 选项:
    • 留空使用默认
    • external - 使用外部加载器
    • tika - 使用本地 Apache Tika 服务器
    • docling - 使用 Docling 引擎
    • document_intelligence - 使用 Document Intelligence 引擎
    • mistral_ocr - 使用 Mistral OCR 引擎
    • mineru
  • 描述: 设置用于文档摄取的内容提取引擎。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

MISTRAL_OCR_API_KEY

  • 类型: str
  • 默认值: None
  • 描述: 指定要使用的 Mistral OCR API 密钥。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

MISTRAL_OCR_API_BASE_URL

  • 类型: str
  • 默认值: https://api.mistral.ai/v1
  • 描述: 配置自定义 Mistral OCR API 端点,支持灵活部署,允许用户指向自托管或替代的 Mistral OCR 实例。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

EXTERNAL_DOCUMENT_LOADER_URL

  • 类型: str
  • 默认值: None
  • 描述: 设置外部文档加载器服务的 URL。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

EXTERNAL_DOCUMENT_LOADER_API_KEY

  • 类型: str
  • 默认值: None
  • 描述: 设置用于向外部文档加载器服务进行身份验证的 API 密钥。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

TIKA_SERVER_URL

  • 类型: str
  • 默认值: http://localhost:9998
  • 描述: 设置 Apache Tika 服务器的 URL。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

DOCLING_SERVER_URL

  • 类型: str
  • 默认值: http://docling:5001
  • 描述: 指定 Docling 服务器的 URL。需要 Docling 2.0.0 或更高版本以完全兼容新的基于参数的配置系统。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。
warning

需要 Docling 2.0.0+

Docling 集成已重构为使用服务器端参数传递。如果您正在使用 Docling:

  1. 升级到 Docling 服务器版本 2.0.0 或更高版本
  2. 将所有单独的 DOCLING_* 配置变量迁移到 DOCLING_PARAMS JSON 对象
  3. 从配置中删除所有已弃用的 DOCLING_* 环境变量
  4. 如果您的服务器需要身份验证,请添加 DOCLING_API_KEY

旧的单个环境变量(DOCLING_OCR_ENGINEDOCLING_OCR_LANG 等)不再受支持,将被忽略。

DOCLING_API_KEY

  • 类型: str
  • 默认值: None
  • 描述: 设置向 Docling 服务器进行身份验证的 API 密钥。当 Docling 服务器启用身份验证时需要。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

DOCLING_PARAMS

  • 类型: str (JSON)

  • 默认值: {}

  • 描述: 以 JSON 格式指定所有 Docling 处理参数。这是 Docling 处理选项的主要配置方法。所有以前单独的 Docling 设置现在都通过此单个 JSON 对象进行配置。

    支持的参数:

    • do_ocr (bool): 启用 OCR 处理。
    • force_ocr (bool): 即使存在文本层也强制进行 OCR。
    • ocr_engine (str): 要使用的 OCR 引擎。选项: tesseract, easyocr, ocrmac, rapidocr, tesserocr
    • ocr_lang (list[str]): OCR 语言代码。注意:格式取决于引擎(例如:Tesseract 为 ["eng", "fra"];EasyOCR 为 ["en", "fr"])。
    • pdf_backend (str): PDF 处理后端。选项: dlparse_v1, dlparse_v2, dlparse_v4, pypdfium2
    • table_mode (str): 表格提取模式。选项: fast, accurate
    • pipeline (str): 要使用的处理流水线。选项: fast, standard
    • do_picture_description (bool): 启用图像描述生成。
    • picture_description_mode (str): 图像描述模式。选项: local, api
    • picture_description_local (str): 图像描述的本地模型配置对象。
    • picture_description_api (str): 图像描述的 API 端点配置对象。
    • vlm_pipeline_model_api (str): 视觉语言模型 API 配置(例如:openai://gpt-4o)。
  • 示例:

{
"do_ocr": true,
"ocr_engine": "tesseract",
"ocr_lang": ["eng", "fra", "deu", "spa"],
"force_ocr": false,
"pdf_backend": "dlparse_v4",
"table_mode": "accurate",
"do_picture_description": true,
"picture_description_mode": "api",
"vlm_pipeline_model_api": "openai://gpt-4o"
}
tip

dlparse vs dbparse: 请注意,后端名称使用 dlparse (Deep Learning Parse),而不是 dbparse。对于现代 Docling (v2+),通常建议使用 dlparse_v4 以获得最佳功能平衡。

  • 持久化: 此环境变量是一个 PersistentConfig 变量。
info

从单个 Docling 变量迁移

如果您之前使用单个 DOCLING_* 环境变量(如 DOCLING_OCR_ENGINEDOCLING_OCR_LANG 等),这些现在已弃用。您必须迁移到使用 DOCLING_PARAMS 作为单个 JSON 配置对象。

迁移示例:

# 旧配置 (已弃用)
DOCLING_OCR_ENGINE=tesseract
DOCLING_OCR_LANG=eng,fra
DOCLING_DO_OCR=true

# 新配置 (必填)
DOCLING_PARAMS='{"do_ocr": true, "ocr_engine": "tesseract", "ocr_lang": "eng,fra"}'
warning

.env 文件中设置此环境变量时,请确保 JSON 格式正确并根据需要转义引号:

DOCLING_PARAMS="{\"do_ocr\": true, \"ocr_engine\": \"tesseract\", \"ocr_lang\": \"eng,fra,deu,spa\"}"

MINERU_API_TIMEOUT

  • 类型: str
  • 默认值: 300
  • 描述: 设置文档处理期间 MinerU API 请求的超时时间(秒)。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

检索增强生成 (RAG) (Retrieval Augmented Generation (RAG))

核心配置 (Core Configuration)

RAG_EMBEDDING_ENGINE

  • 类型: str
  • 选项:
    • 留空使用 Default (SentenceTransformers) - 使用 SentenceTransformers 进行嵌入。
    • ollama - 使用 Ollama API 进行嵌入。
    • openai - 使用 OpenAI API 进行嵌入。
    • azure_openai - 使用 Azure OpenAI 服务进行嵌入。
  • 描述: 选择用于 RAG 的嵌入引擎。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

RAG_EMBEDDING_MODEL

  • 类型: str
  • 默认值: sentence-transformers/all-MiniLM-L6-v2
  • 描述: 设置嵌入模型。在本地使用 Sentence-Transformer 模型。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

RAG_TOP_K

  • 类型: int
  • 默认值: 3
  • 描述: 设置使用 RAG 时嵌入考虑的默认结果数。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

RAG_TOP_K_RERANKER

  • 类型: int
  • 默认值: 3
  • 描述: 设置使用 RAG 时重排序器考虑的默认结果数。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

RAG_RELEVANCE_THRESHOLD

  • 类型: float
  • 默认值: 0.0
  • 描述: 设置在使用重排序时考虑文档的相关性阈值。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。
  • 类型: bool
  • 默认值: False
  • 描述: 启用 BM25 + ChromaDB 的混合搜索,并使用 sentence_transformers 模型进行重排序。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

RAG_HYBRID_BM25_WEIGHT

  • 类型: float
  • 默认值: 0.5
  • 描述: 设置混合搜索期间给予关键词搜索 (BM25) 的权重。1 表示仅关键词搜索,0 表示仅向量搜索。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

ENABLE_RAG_HYBRID_SEARCH_ENRICHED_TEXTS

  • 类型: bool
  • 默认值: False
  • 描述: 通过使用包含文件名、标题、章节和片段的文档元数据丰富索引文本来增强 BM25 混合搜索。这提高了基于元数据的查询的关键词召回率,允许搜索匹配文档名称和结构元素以及内容。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。
info

启用此功能会增加 BM25 索引的文本量,这可能会影响存储需求和索引性能。但是,当用户根据文档名称、标题或结构元素(而不仅仅是内容)进行查询时,它会显著改善搜索结果。

RAG_TEMPLATE

  • 类型: str
  • 默认值: 环境变量 DEFAULT_RAG_TEMPLATE 的值。

DEFAULT_RAG_TEMPLATE:


### 任务:
使用提供的上下文回答用户查询,**仅当 <source> 标签包含显式 id 属性时**(例如:<source id="1">),以 [id] 格式加入行内引用。

### 指导方针:
- 如果你不知道答案,请明确说明。
- 如果不确定,请要求用户澄清。
- 使用与用户查询相同的语言进行回答。
- 如果上下文不可读或质量较差,请告知用户并尽力提供最佳答案。
- **仅当 <source> 标签包含 id 属性时**,才使用 [id](例如:[1], [2])加入行内引用。
- 如果 <source> 标签不包含 id 属性,请勿引用。
- 不要在回答中使用 XML 标签。
- 确保引用简洁并与所提供的信息直接相关。

### 引用示例:
如果用户询问特定主题,并且在提供的带有 id 属性的源中找到了信息,则回答应包含如下示例中的引用:
* “根据研究,所提出的方法将效率提高了 20% [1]。”

### 输出:
对用户的查询提供清晰直接的回答,仅当上下文中存在带有 id 属性的 <source> 标签时,才以 [id] 格式加入行内引用。

<context>
{{CONTEXT}}
</context>

<user_query>
{{QUERY}}
</user_query>
  • 描述: 在将 RAG 文档注入聊天完成时使用的模板。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

文档处理 (Document Processing)

CHUNK_SIZE

  • 类型: int
  • 默认值: 1000
  • 描述: 设置用于嵌入的文档块大小。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

CHUNK_OVERLAP

  • 类型: int
  • 默认值: 100
  • 描述: 指定块之间应有多少重叠。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

RAG_TEXT_SPLITTER

  • 类型: str
  • 选项:
    • character
    • token
    • markdown_header
  • 默认值: character
  • 描述: 为 RAG 模型设置文本分割器。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

TIKTOKEN_CACHE_DIR

  • 类型: str
  • 默认值: {CACHE_DIR}/tiktoken
  • 描述: 设置 TikToken 缓存的目录。

TIKTOKEN_ENCODING_NAME

  • 类型: str
  • 默认值: cl100k_base
  • 描述: 为 TikToken 设置编码名称。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

PDF_EXTRACT_IMAGES

  • 类型: bool
  • 默认值: False
  • 描述: 在加载文档时使用 OCR 从 PDF 中提取图像。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

RAG_FILE_MAX_SIZE

  • 类型: int
  • 描述: 设置可以上传进行文档摄取的文件的最大大小(MB)。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

RAG_FILE_MAX_COUNT

  • 类型: int
  • 描述: 设置一次可以上传进行文档摄取的最大文件数量。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

RAG_ALLOWED_FILE_EXTENSIONS

  • 类型: list of str
  • 默认值: [](表示允许所有支持的文件类型)
  • 描述: 指定允许上传的文件扩展名。
["pdf,docx,txt"]
  • 持久化: 此环境变量是一个 PersistentConfig 变量。
info

在配置 RAG_FILE_MAX_SIZERAG_FILE_MAX_COUNT 时,请确保设置的值合理,以防止过多的文件上传和潜在的性能问题。

  • 类型: bool
  • 默认值: False
  • 描述: 启用网页搜索开关。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

ENABLE_SEARCH_QUERY_GENERATION

  • 类型: bool
  • 默认值: True
  • 描述: 启用或禁用搜索查询生成。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

WEB_SEARCH_TRUST_ENV

  • 类型: bool
  • 默认值: False
  • 描述: 在网页搜索内容获取期间,启用由 http_proxyhttps_proxy 设置的代理。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

WEB_FETCH_FILTER_LIST

  • 类型: string (逗号分隔列表)
  • 默认值: "" (为空,但始终应用默认黑名单)
  • 描述: 为网页抓取操作配置额外的 URL 过滤规则,以防止服务端请求伪造 (SSRF) 攻击。系统包含一个默认黑名单,用于防止访问云元数据端点(AWS、Google Cloud、Azure、阿里云)。没有 ! 前缀的条目被视为白名单(仅允许这些域名),而带有 ! 前缀的条目被添加到黑名单(这些域名始终被拒绝)。默认黑名单包括 !169.254.169.254, !fd00:ec2::254, !metadata.google.internal, !metadata.azure.com, 和 !100.100.100.200。自定义条目将与默认黑名单合并。
info

示例:

阻止其他域名:WEB_FETCH_FILTER_LIST="!internal.company.com,!192.168.1.1" 仅允许特定域名:WEB_FETCH_FILTER_LIST="example.com,trusted-site.org"

WEB_SEARCH_DOMAIN_FILTER_LIST

  • 类型: list of str
  • 默认值: []
  • 描述: 用于过滤网页搜索结果的域名逗号分隔列表。带 ! 前缀的域名将被阻止;不带前缀的域名将创建一个白名单(仅允许这些域名)。
  • 示例: wikipedia.org,github.com,!malicious-site.com
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

WEB_SEARCH_RESULT_COUNT

  • 类型: int
  • 默认值: 3
  • 描述: 要抓取的最大搜索结果数量。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

WEB_SEARCH_CONCURRENT_REQUESTS

  • 类型: int
  • 默认值: 0
  • 描述: 限制对搜索引擎提供商的并发搜索请求数量。设置为 0 表示不限制并发(默认)。设置为 1 表示顺序执行,以防止频率限制错误(例如,Brave 免费层级)。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

WEB_LOADER_CONCURRENT_REQUESTS

  • 类型: int
  • 默认值: 10
  • 描述: 指定网页加载器用于从搜索结果返回的网页中获取内容的并发请求数量。这直接影响可以同时抓取的页面数量。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。
info

"WEB_LOADER_CONCURRENT_REQUESTS" 以前名为 "WEB_SEARCH_CONCURRENT_REQUESTS"。"WEB_SEARCH_CONCURRENT_REQUESTS" 变量已被重新用于控制搜索引擎请求的并发性(见上文)。要控制网页 加载器 的并发性(从结果中获取内容),您必须使用 "WEB_LOADER_CONCURRENT_REQUESTS"。

WEB_SEARCH_ENGINE

  • 类型: str
  • 选项:
    • searxng - 使用 SearXNG 搜索引擎。
    • google_pse - 使用 Google Programmable Search Engine
    • brave - 使用 Brave 搜索引擎
    • kagi - 使用 Kagi 搜索引擎。
    • mojeek - 使用 Mojeek 搜索引擎。
    • bocha - 使用 Bocha 搜索引擎。
    • serpstack - 使用 Serpstack 搜索引擎。
    • serper - 使用 Serper 搜索引擎。
    • serply - 使用 Serply 搜索引擎。
    • searchapi - 使用 SearchAPI 搜索引擎。
    • serpapi - 使用 SerpApi 搜索引擎。
    • duckduckgo - 使用 DuckDuckGo 搜索引擎。
    • tavily - 使用 Tavily 搜索引擎。
    • jina - 使用 Jina 搜索引擎。
    • bing - 使用 Bing 搜索引擎。
    • exa - 使用 Exa 搜索引擎。
    • perplexity - 使用 Perplexity API 访问 Perplexity 的 AI 模型。调用它们的 AI 模型,这些模型会执行搜索并返回完整响应。
    • perplexity_search - 使用 Perplexity Search API 搜索引擎。与 perplexity 选项不同,这使用 Perplexity 的网页搜索 API 进行搜索并检索结果。
    • sougou - 使用 搜狗 (Sougou) 搜索引擎。
    • ollama_cloud - 使用 Ollama Cloud 搜索引擎。
    • azure_ai_search
    • yacy
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

BYPASS_WEB_SEARCH_EMBEDDING_AND_RETRIEVAL

  • 类型: bool
  • 默认值: False
  • 描述: 跳过网页搜索的嵌入和检索过程。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

SEARXNG_QUERY_URL

  • 类型: str
  • 描述: 支持 JSON 输出的 SearXNG 搜索 API URL。<query> 将被替换为搜索查询。示例:http://searxng.local/search?q=<query>
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

SEARXNG_LANGUAGE

  • 类型: str
  • 默认值: all
  • 描述: 此变量在对 SearXNG 的请求中用作“搜索语言”(参数 "language")。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

GOOGLE_PSE_API_KEY

  • 类型: str
  • 描述: 设置 Google Programmable Search Engine (PSE) 服务的 API 密钥。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

GOOGLE_PSE_ENGINE_ID

  • 类型: str
  • 描述: Google Programmable Search Engine (PSE) 服务的引擎 ID。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

BRAVE_SEARCH_API_KEY

  • 类型: str
  • 描述: 设置 Brave Search API 的 API 密钥。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

KAGI_SEARCH_API_KEY

  • 类型: str
  • 描述: 设置 Kagi Search API 的 API 密钥。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

MOJEEK_SEARCH_API_KEY

  • 类型: str
  • 描述: 设置 Mojeek Search API 的 API 密钥。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

SERPSTACK_API_KEY

  • 类型: str
  • 描述: 设置 Serpstack 搜索 API 的 API 密钥。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

SERPSTACK_HTTPS

  • 类型: bool
  • 默认值: True
  • 描述: 配置 Serpstack 请求是否使用 HTTPS。免费层级请求仅限 HTTP。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

SERPER_API_KEY

  • 类型: str
  • 描述: 设置 Serper 搜索 API 的 API 密钥。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

SERPLY_API_KEY

  • 类型: str
  • 描述: 设置 Serply 搜索 API 的 API 密钥。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

SEARCHAPI_API_KEY

  • 类型: str
  • 描述: 设置 SearchAPI 的 API 密钥。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

SEARCHAPI_ENGINE

  • 类型: str
  • 描述: 设置 SearchAPI 引擎。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

TAVILY_API_KEY

  • 类型: str
  • 描述: 设置 Tavily 搜索 API 的 API 密钥。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

JINA_API_KEY

  • 类型: str
  • 描述: 设置 Jina 的 API 密钥。
  • 持久化: 此环境变量是一个 PersistentConfig 变量。

数据库 (Database)

DATABASE_URL

  • 类型: str
  • 默认值: sqlite:///data/webui.db
  • 描述: 数据库连接字符串。

DATABASE_TYPE

  • 类型: str
  • 默认值: sqlite
  • 描述: 数据库类型。

WebSocket

ENABLE_WEBSOCKET_SUPPORT

  • 类型: bool
  • 默认值: True
  • 描述: 启用 WebSocket 支持。

WEBSOCKET_MANAGER

  • 类型: str
  • 默认值: ""
  • 描述: WebSocket 管理器。

WEBSOCKET_REDIS_URL

  • 类型: str
  • 默认值: ${REDIS_URL}
  • 描述: WebSocket Redis URL。