简介
Open WebUI
Open WebUI 是一个扩展良好、功能丰富且用户友好的自托管 WebUI,支持完全离线运行。 它兼容各种 LLM ,包括 Ollama 以及 OpenAI API。
简单上手
复制样板
官方 样板页,依次点击右上角 三点 - Duplicate this Space - Duplicate space
环境变量
点击settings,下滑找到 Variables and secrets,点击 New variable 或 New secrect 添加环境变量
- 非加密变量 (Variables):这些变量在编辑后是可见的,并且可以在界面上查看和修改。
- 加密变量 (Secrets):这些变量在编辑后是不可见的,编辑之后将无法在界面上查看其具体值但可以修改。
- 官方文档页
中文版
环境变量
-
ENV
- 选项:
dev
:开发模式。启用FastAPI的API文档,地址是/docs
。prod
:生产模式。自动配置多个环境变量。
- 默认值:
- 如果直接启动:
dev
- 如果通过Docker启动:
prod
- 如果直接启动:
- 描述:这个变量用于设置应用程序的运行环境。
- 选项:
-
WEBUI_AUTH
- 默认值:
True
- 描述:启用或禁用认证。如果设置为
False
,则禁用认证。但是,如果数据库中已经有用户注册,则不能直接禁用认证。要关闭认证,确保数据库中没有任何用户。
- 默认值:
-
WEBUI_NAME
- 默认值:
Open WebUI
- 描述:设置WebUI的名称。如果覆盖了默认值,仍会附加
(Open WebUI)
。
- 默认值:
-
WEBUI_URL
- 默认值:
http://localhost:3000
- 描述:指定Open WebUI的访问URL,目前用于搜索引擎支持。
- 默认值:
-
DATA_DIR
- 默认值:
./data
- 描述:指定数据存储的基础目录,包括上传文件、缓存、向量数据库等。
- 默认值:
-
FRONTEND_BUILD_DIR
- 默认值:
../build
- 描述:指定前端文件的构建位置。
- 默认值:
-
STATIC_DIR
- 默认值:
./static
- 描述:指定静态文件目录,如网站图标。
- 默认值:
-
CUSTOM_NAME
- 描述:设置
WEBUI_NAME
,但会从api.openwebui.com
获取元数据。
- 描述:设置
-
ENABLE_SIGNUP
- 默认值:
True
- 描述:切换用户账号创建功能。
- 默认值:
-
ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION
- 默认值:
True
- 描述:绕过RAG(检索增强生成)网站的SSL验证。
- 默认值:
-
DEFAULT_MODELS
- 描述:设置默认的语言模型。
-
DEFAULT_USER_ROLE
- 选项:
pending
:待定user
:普通用户admin
:管理员
- 默认值:
pending
- 描述:设置新用户的默认角色。
- 选项:
-
USER_PERMISSIONS_CHAT_DELETION
- 默认值:
True
- 描述:切换用户删除聊天记录的权限。
- 默认值:
-
ENABLE_MODEL_FILTER
- 默认值:
False
- 描述:启用或禁用语言模型过滤功能。
- 默认值:
-
MODEL_FILTER_LIST
- 描述:设置语言模型过滤列表,用分号分隔。
- 示例:
llama3:instruct;gemma:instruct
-
WEBHOOK_URL
- 描述:设置用于与Slack或Microsoft Teams集成的webhook。
-
ENABLE_ADMIN_EXPORT
- 默认值:
True
- 描述:控制管理员是否可以导出数据。
- 默认值:
-
WEBUI_VERSION
- 默认值:
v1.0.0-alpha.100
- 描述:覆盖WebUI版本。目前未使用。
- 默认值:
-
WEBUI_AUTH_TRUSTED_EMAIL_HEADER
- 描述:定义用于认证的受信请求头。详见SSO文档。
-
WEBUI_SECRET_KEY
- 默认值:
t0p-s3cr3t
- Docker默认值:首次启动时随机生成
- 描述:覆盖用于JSON Web Token的随机生成字符串。
- 默认值:
-
USE_CUDA_DOCKER
- 默认值:
False
- 描述:使用NVIDIA CUDA支持构建Docker镜像。启用GPU加速以本地运行Whisper和嵌入功能。
- 默认值:
-
DATABASE_URL
- 默认值:
sqlite:///${DATA_DIR}/webui.db
- 描述:指定连接的数据库URL。支持SQLite和Postgres。更改URL不会在数据库之间迁移数据。文档中的URL方案可用。
- 默认值:
-
PORT
- 默认值:
8080
- 描述:设置Open WebUI运行的端口。
- 默认值:
Ollama相关设置
-
OLLAMA_BASE_URL
- 默认值:
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
- 如果设置了K8S_FLAG:
- 描述:配置Ollama后端URL。
- 默认值:
-
OLLAMA_BASE_URLS
- 描述:配置负载均衡的Ollama后端主机,用分号分隔。优先于
OLLAMA_BASE_URL
。
- 描述:配置负载均衡的Ollama后端主机,用分号分隔。优先于
-
K8S_FLAG
- 描述:如果设置,假设是Helm图表部署并将
OLLAMA_BASE_URL
设置为http://ollama-service.open-webui.svc.cluster.local:11434
。
- 描述:如果设置,假设是Helm图表部署并将
-
USE_OLLAMA_DOCKER
- 默认值:
False
- 描述:使用捆绑的Ollama实例构建Docker镜像。
- 默认值:
-
OLLAMA_API_BASE_URL
- 默认值:
http://localhost:11434/api
- 描述:已弃用,请参见
OLLAMA_BASE_URL
。
- 默认值:
OpenAI相关设置
-
OPENAI_API_KEY
- 描述:设置OpenAI的API密钥。
-
OPENAI_API_BASE_URL
- 默认值:
https://api.openai.com/v1
- 描述:配置OpenAI基础API URL。
- 默认值:
-
OPENAI_API_BASE_URLS
- 描述:支持负载均衡的OpenAI基础API URL,用分号分隔。
- 示例:
http://host-one:11434;http://host-two:11434
-
OPENAI_API_KEYS
- 描述:支持多个OpenAI API密钥,用分号分隔。
- 示例:
sk-124781258123;sk-4389759834759834
RAG(检索增强生成)相关设置
-
DOCS_DIR
- 默认值:
${DATA_DIR}/docs
- 描述:指定扫描以添加到RAG数据库的文档目录。
- 默认值:
-
CHROMA_TENANT
- 默认值:
default_tenant
- 描述:设置ChromaDB用于RAG嵌入的租户。
- 默认值:
-
CHROMA_DATABASE
- 默认值:
default_database
- 描述:设置ChromaDB租户用于RAG嵌入的数据库。
- 默认值:
-
CHROMA_HTTP_HOST
- 描述:指定远程ChromaDB服务器的主机名。如果未设置,则使用本地ChromaDB实例。
-
CHROMA_HTTP_PORT
- 默认值:
8000
- 描述:指定远程ChromaDB服务器的端口。
- 默认值:
-
CHROMA_HTTP_HEADERS
- 描述:逗号分隔的HTTP头列表,包含每个ChromaDB请求。
- 示例:
Authorization=Bearer heuhagfuahefj,User-Agent=OpenWebUI
-
CHROMA_HTTP_SSL
- 默认值:
False
- 描述:控制ChromaDB服务器连接是否使用SSL。
- 默认值:
-
RAG_TOP_K
- 默认值:
5
- 描述:设置使用RAG时考虑的默认结果数。
- 默认值:
-
RAG_RELEVANCE_THRESHOLD
- 默认值:
0.0
- 描述:设置使用RAG时重新排序文档的相关性阈值。
- 默认值:
-
ENABLE_RAG_HYBRID_SEARCH
- 默认值:
False
- 描述:启用BM25 + ChromaDB的集成搜索,并使用sentence_transformers模型重新排序。
- 默认值:
-
RAG_EMBEDDING_ENGINE
- 选项:
- (空白表示本地模型)
ollama
openai
- 描述:选择用于RAG的嵌入引擎。
- 选项:
-
PDF_EXTRACT_IMAGES
- 默认值:
False
- 描述:在加载文档时,使用OCR从PDF中提取图像。
- 默认值:
-
RAG_EMBEDDING_MODEL
- 默认值:
sentence-transformers/all-MiniLM-L6
- 描述:设置用于嵌入的模型。本地使用Sentence-Transformer模型。
- 默认值:
-
RAG_EMBEDDING_MODEL_AUTO_UPDATE
- 默认值:
False
- 描述:切换Sentence-Transformer模型的自动更新。
- 默认值:
-
RAG_EMBEDDING_MODEL_TRUST_REMOTE_CODE
- 默认值:
False
- 描述:决定是否允许自定义模型定义的远程代码。
- 默认值:
-
RAG_TEMPLATE
- 默认值:
Use the following context as your learned knowledge, inside <context></context> XML tags. <context> [context] </context> When answer to user: - If you don't know, just say that you don't know. - If you don't know when you are not sure, ask for clarification. Avoid mentioning that you obtained the information from the context. And answer according to the language of the user's question. Given the context information, answer the query. Query: [query]
- 描述:注入RAG文档到聊天完成时使用的模板。
- 默认值:
-
CHUNK_SIZE
- 默认值:
1500
- 描述:设置嵌入的文档块大小。
- 默认值:
-
CHUNK_OVERLAP
- 默认值:
100
- 描述:指定块之间的重叠量。
- 默认值:
语音转文字
-
WHISPER_MODEL
- 默认值:
base
- 描述:设置用于语音转文字的Whisper模型。
- 默认值:
-
WHISPER_MODEL_DIR
- 默认值:
${DATA_DIR}/cache/whisper/models
- 描述:指定存储Whisper模型文件的目录。
- 默认值:
-
WHISPER_MODEL_AUTO_UPDATE
- 默认值:
False
- 描述:切换Whisper模型的自动更新。
- 默认值:
文字转语音
-
AUDIO_OPENAI_API_BASE_URL
- 默认值:
${OPENAI_API_BASE_URL}
- 描述:设置用于文字转语音的OpenAI兼容基础URL。
- 默认值:
-
AUDIO_OPENAI_API_KEY
- 默认值:
${OPENAI_API_KEY}
- 描述:设置用于文字转语音的API密钥。
- 默认值:
图像生成
-
ENABLE_IMAGE_GENERATION
- 默认值:
False
- 描述:启用或禁用图像生成功能。
- 默认值:
-
IMAGE_GENERATION_ENGINE
- 选项:
openai
,comfyui
,automatic1111
- 默认值:
automatic1111
- 描述:指定用于图像生成的引擎。
- 选项:
-
AUTOMATIC1111_BASE_URL
- 描述:指定Automatic1111的Stable Diffusion API的URL。
-
COMFYUI_BASE_URL
- 描述:指定ComfyUI图像生成API的URL。
-
IMAGES_OPENAI_API_KEY
- 默认值:
${OPENAI_API_KEY}
- 描述:设置用于DALL-E图像生成的API密钥。
- 默认值:
-
IMAGES_OPENAI_API_BASE_URL
- 默认值:
${OPENAI_API_BASE_URL}
- 描述:设置用于DALL-E图像生成的OpenAI兼容基础URL。
- 默认值:
-
IMAGE_SIZE
- 默认值:
512x512
- 描述:设置默认生成图像的大小。
- 默认值:
-
IMAGE_STEPS
- 默认值:
50
- 描述:设置图像生成的默认迭代步数。用于ComfyUI和AUTOMATIC1111。
- 默认值:
-
IMAGE_GENERATION_MODEL
- 描述:设置用于图像生成的默认模型。
LiteLLM
-
ENABLE_LITELLM
- 默认值:
True
- 描述:启用捆绑的LiteLLM实例。
- 默认值:
-
LITELLM_PROXY_PORT
- 默认值:
14365
- 描述:设置捆绑的LiteLLM实例运行的端口。
- 默认值:
-
LITELLM_PROXY_HOST
- 默认值:
127.0.0.1
- 描述:设置捆绑的LiteLLM实例运行的地址。
- 默认值:
- 推荐设置
Variables | Value | Description |
---|---|---|
UID | 保持默认 | 用户ID |
GID | 保持默认 | 组ID |
ENABLE_AUTH | True | 启用管理员审核 |
WEBUI_AUTH | True | 启用登录验证 |
ENABLE_SIGNUP | True | 允许新用户注册 |
DEFAULT_MODELS | gpt-4o | 默认使用的模型 |
ENABLE_OLLAMA_API | False | 关闭 Ollama |
OPENAI_API_BASE_URL | 自定义,格式 https://api.openai.com/v1 |
自定义OpenAI API 地址 |
RAG_EMBEDDING_ENGINE | openai | RAG嵌入引擎使用OpenAI |
RAG_EMBEDDING_MODEL | text-embedding-3-large | 使用的RAG嵌入模型 |
RAG_OPENAI_API_BASE_URL | 自定义,格式 https://api.openai.com/v1 |
自定义RAG使用的OpenAI API 地址 |
Secrets | Value | Description |
---|---|---|
DATABASE_URL | 详见 数据库 | 数据库链接,包含数据库类型、主机、端口、用户名和密码等信息 |
OPENAI_API_KEY | 自定义 | 使用的OpenAI API密钥 |
RAG_OPENAI_API_KEY | 自定义 | RAG使用的OpenAI API密钥 |
数据库
本教程使用 Supabase 免费数据库,您需要注册账号并依次创建组织和项目,记住您输入的密码,稍等几分钟后,依次点击左下角 Project Settings - Database,复制 Connection String,这里我已用黑粗线隐藏,修改 [YOUR-PASWPRD]
为您设置的密码,然后作为 DATABASE_URL 的值填入
访问页面
具体可参考这篇帖子
注意事项
- 身份验证
- 两个
auth
参数 (ENABLE_AUTH
和WEBUI_AUTH
) 默认都为false
。如果不修改,任何人都可以访问您的站点而且您的 API 密钥会在站点上明文显示。 - 强烈建议将这两个参数都修改为
true
。
- 用户注册
- 管理员注册后,强烈建议关闭注册(
ENABLE_SIGNUP
为false
),新用户可在管理员面板添加
- Embedding 支持
- Embeddings 官方文档:https://platform.openai.com/docs/guides/embeddings
- 推荐使用支持 embedding 模型的 API 站点(自定义
RAG_OPENAI_API_BASE_URL
) - 这里提供一个支持 embedding 模型的 API 站点(AFF):注册链接。
- 如果您不需要此功能,可以不设置
RAG_
开头的变量。
- 模型选择
- OpenWebUI 通过
get /models
自动获取模型。 - 老版oneapi无法识别自定义模型,强烈建议更新oneapi到最新版或使用newapi。
- 数据备份
- 重要数据请定期备份,详参: Hugging Face 部署 OpenWebUI 保留数据更新/数据库 。