抱脸部署OpenWebUI教程

简介

Open WebUI

Open WebUI 是一个扩展良好、功能丰富且用户友好的自托管 WebUI,支持完全离线运行。 它兼容各种 LLM ,包括 Ollama 以及 OpenAI API。

GitHub stars GitHub forks GitHub watchers GitHub repo size GitHub language count GitHub top language GitHub last commit Hits Discord

简单上手

复制样板

官方 样板页,依次点击右上角 三点 - Duplicate this Space - Duplicate space


环境变量

点击settings,下滑找到 Variables and secrets,点击 New variable 或 New secrect 添加环境变量

  • 非加密变量 (Variables):这些变量在编辑后是可见的,并且可以在界面上查看和修改。
  • 加密变量 (Secrets):这些变量在编辑后是不可见的,编辑之后将无法在界面上查看其具体值但可以修改。

中文版

环境变量

  1. ENV

    • 选项
      • dev:开发模式。启用FastAPI的API文档,地址是/docs
      • prod:生产模式。自动配置多个环境变量。
    • 默认值
      • 如果直接启动:dev
      • 如果通过Docker启动:prod
    • 描述:这个变量用于设置应用程序的运行环境。
  2. WEBUI_AUTH

    • 默认值True
    • 描述:启用或禁用认证。如果设置为False,则禁用认证。但是,如果数据库中已经有用户注册,则不能直接禁用认证。要关闭认证,确保数据库中没有任何用户。
  3. WEBUI_NAME

    • 默认值Open WebUI
    • 描述:设置WebUI的名称。如果覆盖了默认值,仍会附加(Open WebUI)
  4. WEBUI_URL

    • 默认值http://localhost:3000
    • 描述:指定Open WebUI的访问URL,目前用于搜索引擎支持。
  5. DATA_DIR

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

    • 默认值../build
    • 描述:指定前端文件的构建位置。
  7. STATIC_DIR

    • 默认值./static
    • 描述:指定静态文件目录,如网站图标。
  8. CUSTOM_NAME

    • 描述:设置WEBUI_NAME,但会从api.openwebui.com获取元数据。
  9. ENABLE_SIGNUP

    • 默认值True
    • 描述:切换用户账号创建功能。
  10. ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION

    • 默认值True
    • 描述:绕过RAG(检索增强生成)网站的SSL验证。
  11. DEFAULT_MODELS

    • 描述:设置默认的语言模型。
  12. DEFAULT_USER_ROLE

    • 选项
      • pending:待定
      • user:普通用户
      • admin:管理员
    • 默认值pending
    • 描述:设置新用户的默认角色。
  13. USER_PERMISSIONS_CHAT_DELETION

    • 默认值True
    • 描述:切换用户删除聊天记录的权限。
  14. ENABLE_MODEL_FILTER

    • 默认值False
    • 描述:启用或禁用语言模型过滤功能。
  15. MODEL_FILTER_LIST

    • 描述:设置语言模型过滤列表,用分号分隔。
    • 示例llama3:instruct;gemma:instruct
  16. WEBHOOK_URL

    • 描述:设置用于与Slack或Microsoft Teams集成的webhook。
  17. ENABLE_ADMIN_EXPORT

    • 默认值True
    • 描述:控制管理员是否可以导出数据。
  18. WEBUI_VERSION

    • 默认值v1.0.0-alpha.100
    • 描述:覆盖WebUI版本。目前未使用。
  19. WEBUI_AUTH_TRUSTED_EMAIL_HEADER

    • 描述:定义用于认证的受信请求头。详见SSO文档。
  20. WEBUI_SECRET_KEY

    • 默认值t0p-s3cr3t
    • Docker默认值:首次启动时随机生成
    • 描述:覆盖用于JSON Web Token的随机生成字符串。
  21. USE_CUDA_DOCKER

    • 默认值False
    • 描述:使用NVIDIA CUDA支持构建Docker镜像。启用GPU加速以本地运行Whisper和嵌入功能。
  22. DATABASE_URL

    • 默认值sqlite:///${DATA_DIR}/webui.db
    • 描述:指定连接的数据库URL。支持SQLite和Postgres。更改URL不会在数据库之间迁移数据。文档中的URL方案可用。
  23. PORT

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

Ollama相关设置

  1. 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
    • 描述:配置Ollama后端URL。
  2. OLLAMA_BASE_URLS

    • 描述:配置负载均衡的Ollama后端主机,用分号分隔。优先于OLLAMA_BASE_URL
  3. K8S_FLAG

    • 描述:如果设置,假设是Helm图表部署并将OLLAMA_BASE_URL设置为http://ollama-service.open-webui.svc.cluster.local:11434
  4. USE_OLLAMA_DOCKER

    • 默认值False
    • 描述:使用捆绑的Ollama实例构建Docker镜像。
  5. OLLAMA_API_BASE_URL

    • 默认值http://localhost:11434/api
    • 描述:已弃用,请参见OLLAMA_BASE_URL

OpenAI相关设置

  1. OPENAI_API_KEY

    • 描述:设置OpenAI的API密钥。
  2. OPENAI_API_BASE_URL

    • 默认值https://api.openai.com/v1
    • 描述:配置OpenAI基础API URL。
  3. OPENAI_API_BASE_URLS

    • 描述:支持负载均衡的OpenAI基础API URL,用分号分隔。
    • 示例http://host-one:11434;http://host-two:11434
  4. OPENAI_API_KEYS

    • 描述:支持多个OpenAI API密钥,用分号分隔。
    • 示例sk-124781258123;sk-4389759834759834

RAG(检索增强生成)相关设置

  1. DOCS_DIR

    • 默认值${DATA_DIR}/docs
    • 描述:指定扫描以添加到RAG数据库的文档目录。
  2. CHROMA_TENANT

    • 默认值default_tenant
    • 描述:设置ChromaDB用于RAG嵌入的租户。
  3. CHROMA_DATABASE

    • 默认值default_database
    • 描述:设置ChromaDB租户用于RAG嵌入的数据库。
  4. CHROMA_HTTP_HOST

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

    • 默认值8000
    • 描述:指定远程ChromaDB服务器的端口。
  6. CHROMA_HTTP_HEADERS

    • 描述:逗号分隔的HTTP头列表,包含每个ChromaDB请求。
    • 示例Authorization=Bearer heuhagfuahefj,User-Agent=OpenWebUI
  7. CHROMA_HTTP_SSL

    • 默认值False
    • 描述:控制ChromaDB服务器连接是否使用SSL。
  8. RAG_TOP_K

    • 默认值5
    • 描述:设置使用RAG时考虑的默认结果数。
  9. RAG_RELEVANCE_THRESHOLD

    • 默认值0.0
    • 描述:设置使用RAG时重新排序文档的相关性阈值。
  10. ENABLE_RAG_HYBRID_SEARCH

    • 默认值False
    • 描述:启用BM25 + ChromaDB的集成搜索,并使用sentence_transformers模型重新排序。
  11. RAG_EMBEDDING_ENGINE

    • 选项
      • (空白表示本地模型)
      • ollama
      • openai
    • 描述:选择用于RAG的嵌入引擎。
  12. PDF_EXTRACT_IMAGES

    • 默认值False
    • 描述:在加载文档时,使用OCR从PDF中提取图像。
  13. RAG_EMBEDDING_MODEL

    • 默认值sentence-transformers/all-MiniLM-L6
    • 描述:设置用于嵌入的模型。本地使用Sentence-Transformer模型。
  14. RAG_EMBEDDING_MODEL_AUTO_UPDATE

    • 默认值False
    • 描述:切换Sentence-Transformer模型的自动更新。
  15. RAG_EMBEDDING_MODEL_TRUST_REMOTE_CODE

    • 默认值False
    • 描述:决定是否允许自定义模型定义的远程代码。
  16. 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文档到聊天完成时使用的模板。
  17. CHUNK_SIZE

    • 默认值1500
    • 描述:设置嵌入的文档块大小。
  18. CHUNK_OVERLAP

    • 默认值100
    • 描述:指定块之间的重叠量。

语音转文字

  1. WHISPER_MODEL

    • 默认值base
    • 描述:设置用于语音转文字的Whisper模型。
  2. WHISPER_MODEL_DIR

    • 默认值${DATA_DIR}/cache/whisper/models
    • 描述:指定存储Whisper模型文件的目录。
  3. WHISPER_MODEL_AUTO_UPDATE

    • 默认值False
    • 描述:切换Whisper模型的自动更新。

文字转语音

  1. AUDIO_OPENAI_API_BASE_URL

    • 默认值${OPENAI_API_BASE_URL}
    • 描述:设置用于文字转语音的OpenAI兼容基础URL。
  2. AUDIO_OPENAI_API_KEY

    • 默认值${OPENAI_API_KEY}
    • 描述:设置用于文字转语音的API密钥。

图像生成

  1. ENABLE_IMAGE_GENERATION

    • 默认值False
    • 描述:启用或禁用图像生成功能。
  2. IMAGE_GENERATION_ENGINE

    • 选项openaicomfyuiautomatic1111
    • 默认值automatic1111
    • 描述:指定用于图像生成的引擎。
  3. AUTOMATIC1111_BASE_URL

    • 描述:指定Automatic1111的Stable Diffusion API的URL。
  4. COMFYUI_BASE_URL

    • 描述:指定ComfyUI图像生成API的URL。
  5. IMAGES_OPENAI_API_KEY

    • 默认值${OPENAI_API_KEY}
    • 描述:设置用于DALL-E图像生成的API密钥。
  6. IMAGES_OPENAI_API_BASE_URL

    • 默认值${OPENAI_API_BASE_URL}
    • 描述:设置用于DALL-E图像生成的OpenAI兼容基础URL。
  7. IMAGE_SIZE

    • 默认值512x512
    • 描述:设置默认生成图像的大小。
  8. IMAGE_STEPS

    • 默认值50
    • 描述:设置图像生成的默认迭代步数。用于ComfyUI和AUTOMATIC1111。
  9. IMAGE_GENERATION_MODEL

    • 描述:设置用于图像生成的默认模型。

LiteLLM

  1. ENABLE_LITELLM

    • 默认值True
    • 描述:启用捆绑的LiteLLM实例。
  2. LITELLM_PROXY_PORT

    • 默认值14365
    • 描述:设置捆绑的LiteLLM实例运行的端口。
  3. 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 的值填入

访问页面

具体可参考这篇帖子

注意事项

  1. 身份验证
  • 两个 auth 参数 (ENABLE_AUTHWEBUI_AUTH) 默认都为 false。如果不修改,任何人都可以访问您的站点而且您的 API 密钥会在站点上明文显示。
  • 强烈建议将这两个参数都修改为 true
  1. 用户注册
  • 管理员注册后,强烈建议关闭注册(ENABLE_SIGNUPfalse),新用户可在管理员面板添加
  1. Embedding 支持
  • Embeddings 官方文档:https://platform.openai.com/docs/guides/embeddings
  • 推荐使用支持 embedding 模型的 API 站点(自定义 RAG_OPENAI_API_BASE_URL
  • 这里提供一个支持 embedding 模型的 API 站点(AFF):注册链接
  • 如果您不需要此功能,可以不设置 RAG_ 开头的变量。
  1. 模型选择
  • OpenWebUI 通过 get /models 自动获取模型。
  • 老版oneapi无法识别自定义模型,强烈建议更新oneapi到最新版或使用newapi。
  1. 数据备份

参考链接

374 个赞

666

8 个赞

你最近怎么一直爆肝出货啊

9 个赞

来了来了

5 个赞

来了来了

4 个赞

教程王

7 个赞

我用抱脸部署过 但是出现在设置里面设置api 点保存 显示成功 一刷新就没有了的情况 来按你的教程再部署一遍试试

7 个赞

不是要数据库吗

3 个赞

个人设置好像不会跨端保存,只有设置为环境变量才行

7 个赞

huggingface的运行环境可以存储数据

4 个赞

怪不得 这问题我研究了好久

3 个赞

话说官方的样板页如果重新部署原来的数据还会在吗

5 个赞

Mark!

3 个赞

感谢大爱分享,赞了

3 个赞

mark一哈

4 个赞

6 mark

6 个赞

没有吧说是数据会重置

4 个赞

谢谢佬

3 个赞

不在,要绑数据库,我等下另开一贴写个教程

3 个赞

数据库可以使用Supabase,rag是不是不加其实也可以传文件,只不过直接把文件内容搞成文本直接传了好像,不过有没有大佬解答一下

  1. MODEL_FILTER_LIST
  • 描述:设置语言模型过滤列表,用分号分隔。
  • 示例llama3:instruct;gemma:instruct
    这个变量是干啥的?禁用模型?
5 个赞