🌍 环境变量配置
概览
Open WebUI 提供了大量的环境变量,允许您自定义和配置应用程序的各个方面。本页面作为所有可用环境变量的综合参考,提供它们的类型、默认值和描述。随着新变量的引入,本页面将更新以反映不断增长的配置选项。
本页面与 Open WebUI 发布版本 v0.6.9 保持同步,但仍在进行中,以便稍后包含更准确的描述、列出环境变量的可用选项、默认值和改进描述。
关于 PersistentConfig
环境变量的重要说明
当首次启动 Open WebUI 时,所有环境变量都被平等对待,可以用来配置应用程序。但是,对于标记为 PersistentConfig
的环境变量,它们的值会被持久化并存储在内部。
在初始启动后,如果您重启容器,PersistentConfig
环境变量将不再使用外部环境变量值。相反,它们将使用内部存储的值。
相比之下,常规环境变量将在每次后续重启时继续更新和应用。
您可以直接从 Open WebUI 内部更新 PersistentConfig
环境变量的值,这些更改将存储在内部。这允许您独立于外部环境变量管理这些配置设置。
请注意,PersistentConfig
环境变量在下面的文档中明确标记为这样,因此您可以了解它们的行为方式。
要禁用 PersistentConfig
并让 Open WebUI 平等对待所有变量,您可以将 ENABLE_PERSISTENT_CONFIG
设置为 False
。
应用程序/后端
以下环境变量由 backend/open_webui/config.py
使用,为 Open WebUI 启动配置提供支持。请注意,某些变量可能根据您是直接运行 Open WebUI 还是通过 Docker 运行而有不同的默认值。有关日志环境变量的更多信息,请参阅我们的日志文档。
常规
WEBUI_URL
- 类型:
str
- 默认值:
http://localhost:3000
- 描述: 指定您的 Open WebUI 安装可访问的 URL。搜索引擎支持和 OAuth/SSO 需要此设置。
- 持久性: 此环境变量是
PersistentConfig
变量。
此变量必须在您开始使用 OAuth/SSO 进行身份验证之前设置。 由于这是一个持久配置环境变量,您只能通过以下选项之一更改它:
- 使用
ENABLE_PERSISTENT_CONFIG
临时禁用持久配置 - 在管理面板 > 设置中更改
WEBUI_URL
并更改"WebUI URL"。
在使用 OAuth/SSO 之前未能设置 WEBUI_URL 将导致登录失败。
ENABLE_SIGNUP
- 类型:
bool
- 默认值:
True
- 描述: 切换用户账户创建。
- 持久性: 此环境变量是
PersistentConfig
变量。
ENABLE_LOGIN_FORM
- 类型:
bool
- 默认值:
True
- 描述: 切换电子邮件、密码、登录和"或"(仅当
ENABLE_OAUTH_SIGNUP
设置为 True 时)元素。 - 持久性: 此环境变量是
PersistentConfig
变量。
这应该仅在同时使用 ENABLE_OAUTH_SIGNUP 并设置为 True
时设置为 False
。否则将导致无法登录。
DEFAULT_LOCALE
- 类型:
str
- 默认值:
en
- 描述: 设置应用程序的默认语言环境。
- 持久性: 此环境变量是
PersistentConfig
变量。
DEFAULT_MODELS
- 类型:
str
- 默认值: 空字符串 (' '),因为
None
。 - 描述: 设置默认语言模型。
- 持久性: 此环境变量是
PersistentConfig
变量。
DEFAULT_USER_ROLE
- 类型:
str
- 选项:
pending
- 新用户处于待定状态,直到管理员手动激活其账户。user
- 新用户自动激活,具有常规用户权限。admin
- 新用户自动激活,具有管理员权限。
- 默认值:
pending
- 描述: 设置分配给新用户的默认角色。
- 持久性: 此环境变量是
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
- 描述: 控制管理员用户是否可以导出数据。
ENABLE_ADMIN_CHAT_ACCESS
- 类型:
bool
- 默认值:
True
- 描述: 启用管理员用户访问所有聊天。
ENABLE_USER_WEBHOOKS
- 类型:
bool
- 默认值:
True
- 描述: 启用或禁用用户 webhooks。
- 持久性: 此环境变量是
PersistentConfig
变量。
RESPONSE_WATERMARK
- 类型:
str
- 默认值: 空字符串 (' ')
- 描述: 设置在聊天中复制消息时将包含的自定义文本。例如
"此文本由 AI 生成"
-> 将在复制时为每条消息添加"此文本由 AI 生成"。 - 持久性: 此环境变量是
PersistentConfig
变量。
THREAD_POOL_SIZE
- 类型:
int
- 默认值:
0
- 描述: 设置 FastAPI/AnyIO 阻塞调用的线程池大小。默认情况下(当设置为
0
时)FastAPI/AnyIO 使用40
个线程。在大型实例和许多并发用户的情况下,可能需要增加THREAD_POOL_SIZE
以防止阻塞。
SHOW_ADMIN_DETAILS
- 类型:
bool
- 默认值:
True
- 描述: 切换是否在界面中显示管理员用户详细信息。
- 持久性: 此环境变量是
PersistentConfig
变量。
ADMIN_EMAIL
- 类型:
str
- 描述: 设置
SHOW_ADMIN_DETAILS
显示的管理员电子邮件 - 持久性: 此环境变量是
PersistentConfig
变量。
ENV
- 类型:
str
- 选项:
dev
- 在/docs
上启用 FastAPI API 文档prod
- 自动配置几个环境变量
- 默认值:
- 后端默认:
dev
- Docker 默认:
prod
- 后端默认:
- 描述: 环境设置。
ENABLE_PERSISTENT_CONFIG
- 类型:
bool
- 默认值:
True
- 描述: 如果设置为
False
,所有PersistentConfig
变量都被视为常规变量。
CUSTOM_NAME
- 类型:
str
- 描述: 设置
WEBUI_NAME
但会轮询 api.openwebui.com 获取元数据。
WEBUI_NAME
- 类型:
str
- 默认值:
Open WebUI
- 描述: 设置主要的 WebUI 名称。如果被覆盖,会附加
(Open WebUI)
。
PORT
- 类型:
int
- 默认值:
8080
- 描述: 设置运行 Open WebUI 的端口。
如果您通过 Python 运行应用程序并使用 open-webui serve
命令,您无法使用 PORT
配置设置端口。相反,您必须使用 --port
标志直接指定为命令行参数。例如:
open-webui serve --port 9999
这将在端口 9999
上运行 Open WebUI。在此模式下,PORT
环境变量将被忽略。
ENABLE_REALTIME_CHAT_SAVE
- 类型:
bool
- 默认值:
False
- 描述: 启用时,系统会实时将每个流式聊天数据块保存到数据库,以确保最大的数据持久性。此功能提供了强大的数据恢复能力,并允许准确的会话跟踪。但是,代价是增加了延迟,因为保存到数据库会引入延迟。禁用此功能可以提高性能并减少延迟,但在系统故障或崩溃时存在潜在的数据丢失风险。根据您的应用程序要求和可接受的权衡来使用。
BYPASS_MODEL_ACCESS_CONTROL
- 类型:
bool
- 默认值:
False
- 描述: 绕过模型访问控制。
WEBUI_BUILD_HASH
- 类型:
str
- 默认值:
dev-build
- 描述: 用于识别发布版本的 Git SHA。
WEBUI_BANNERS
- 类型:
list
ofdict
- 默认值:
[]
- 描述: 向用户显示的横幅列表。横幅的格式为:
[{"id": "string", "type": "string [info, success, warning, error]", "title": "string", "content": "string", "dismissible": false, "timestamp": 1000}]
- 持久性: 此环境变量是
PersistentConfig
变量。
在 .env
文件中设置此环境变量时,请确保通过将整个值包装在双引号中并对内部引号使用转义引号 (\"
) 来转义引号。示例:
WEBUI_BANNERS="[{\"id\": \"1\", \"type\": \"warning\", \"title\": \"Your messages are stored.\", \"content\": \"Your messages are stored and may be reviewed by human people. LLM's are prone to hallucinations, check sources.\", \"dismissible\": true, \"timestamp\": 1000}]"
USE_CUDA_DOCKER
- 类型:
bool
- 默认值:
False
- 描述: 使用 NVIDIA CUDA 支持构建 Docker 镜像。启用本地 Whisper 和嵌入的 GPU 加速。
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
变量。
DEFAULT_PROMPT_SUGGESTIONS
- 类型:
list
ofdict
- 默认值:
[]
(意味着使用内置的默认提示建议) - 描述: 提示建议列表。提示建议的格式为:
[{"title": ["Title part 1", "Title part 2"], "content": "prompt"}]
AIOHTTP 客户端
AIOHTTP_CLIENT_TIMEOUT
- 类型:
int
- 默认值:
300
- 描述: 指定 AIOHTTP 客户端的超时持续时间(秒)。这会影响诸如连接到 Ollama 和 OpenAI 端点等事务。
这是客户端在超时之前等待响应的最长时间。
如果设置为空字符串 (' '),超时将设置为 None
,有效地禁用超时并允许客户端无限期等待。
AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST
- 类型:
int
- 默认值:
10
- 描述: 设置获取模型列表的超时时间(秒)。在网络延迟需要更长超时持续时间才能成功检索模型列表的情况下,这会很有用。
AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST 默认设置为 10 秒,以帮助确保在打开 Web UI 时所有必要的连接都可用。此持续时间允许有足够的时间检索模型列表,即使在较高网络延迟的情况下也是如此。如果您希望更快的超时,可以降低此值,但请记住,这样做可能会导致某些连接被断开,具体取决于您的网络条件。
AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST
- 类型:
int
- 描述: 设置获取模型列表的超时时间(秒)。在网络延迟需要更长超时持续时间才能成功检索模型列表的情况下,这会很有用。
目录
DATA_DIR
- 类型:
str
- 默认值:
./data
- 描述: 指定数据存储的基本目录,包括上传、缓存、向量数据库等。
FONTS_DIR
- 类型:
str
- 描述: 指定字体目录。
FRONTEND_BUILD_DIR
- 类型:
str
- 默认值:
../build
- 描述: 指定构建的前端文件的位置。
STATIC_DIR
- 类型:
str
- 默认值:
./static
- 描述: 指定静态文件目录,例如网站图标。
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
- 描述: 使用捆绑的 Ollama 实例构 建 Docker 镜像。
K8S_FLAG
- 类型:
bool
- 默认值:
False
- 描述: 如果设置,假设 Helm 图表部署并将
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
变量。
任务
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": "your concise title here" }
### 示例:
- { "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": ["Question 1?", "Question 2?", "Question 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": []
}
- 如果一个或多个工具匹配查询,构造一个包含"tool_calls"数组的 JSON 响应,其中包含对象:
- "name": 工具的名称。
- "parameters": 必需参数及其对应值的字典。
JSON 响应的格式严格为:
{
"tool_calls": [
{"name": "toolName1", "parameters": {"key1": "value1"}},
{"name": "toolName2", "parameters": {"key2": "value2"}}
]
}
- 持久性: 此环境变量是
PersistentConfig
变量。
代码执行
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
变量。
代码解释器
ENABLE_CODE_INTERPRETER
- 类型:
bool
- 默认值:
True
- 描述: 启用或禁用代码解释器。
- 持久性: 此环境变量是
PersistentConfig
变量。
CODE_INTERPRETER_ENGINE
- 类型:
str
- 默认值:
pyodide
- 描述: 指定要使用的代码解释器引擎。
- 持久性: 此环境变量是
PersistentConfig
变量。
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
变量。