open-webui v0.6.23 版本更新介绍
发布日期: 2025-08-21
版本号: v0.6.23
Open WebUI 版本 0.6.23 带来了大量功能增强、性能优化与问题修复。主要新增功能包括:重构聊天流程以支持异步处理网络搜索与工具调用,避免超时并允许用户中断生成;实现异步文件上传轮询机制,解决大文件上传时的网关超时问题;在数据库关键表上引入新索引并提供迁移脚本,大幅提升查询性能;新增 SQLite WAL 模式与写操作去重选项以进一步优化数据库性能;为临时聊天添加了保存按钮,并支持直接从聊天菜单将对话移动至文件夹。此外,还改进了 AI 后续建议的语言匹配、扩展了用户资料字段、增强了外部工具服务器兼容性、提升了音频转录的语言回退机制、优化了混合搜索在特定权重下的性能、新增了代码解释器模块黑名单、改进了 OAuth 角色处理与工具调用超时配置、增强了 Google Genai SDK 的工具支持、动态加载 kokoro-js 库以兼容旧版 iOS 浏览器,并修复了小屏幕上命令列表的可见性问题、Docker 镜像在任意 UID 环境下的权限问题,同时大幅提升了无障碍访问性和国际化支持。 本次更新修复了多个关键问题:解决了因安全加固导致的 OIDC 单点登录失败;将同步 Webhook 调用改为异步处理,防止界面被不可达端点阻塞;正确隐藏了外部认证用户的密码修改选项;修复了临时聊天权限执行错误与管理员模型可见性控制问题;澄清了“DDGS”搜索引擎标签;改进了设置界面的响应式显示;恢复了模型与横幅的拖拽排序功能;修复了待处理用户自定义覆盖层、社区函数导入、Docker 镜像中 Ollama 版本陈旧、Milvus 大数据集查询、附件消息工具栏图标缺失、Kimi 模型流式中断、知识库搜索模糊匹配、macOS/iOS 上中文输入法回车键误发送消息、OAuth 组声明配置错误、Azure PostgreSQL 扩展权限、Alembic 迁移路径解析、竞技场模型标识错误、“Her” 主题图标重叠、模型排序时空名称处理、流式响应最终块丢失、iOS 过度滚动、代码块输入、OpenAI 模型空名称处理、DDGS 并发请求配置、多副本环境工具列表同步、工具名称冲突、图像生成 API 尺寸参数、S3 向量上传限制、启动时工具安装错误、Azure OpenAI GPT-5 参数处理、缺失组权限异常、OpenAI API 基础 URL 尾部斜杠、S3 兼容存储上传校验失败以及横幅关闭的迭代 ID 问题。 变更方面:管理员访问控制环境变量
ENABLE_ADMIN_WORKSPACE_CONTENT_ACCESS更名为BYPASS_ADMIN_ACCESS_CONTROL;核心目录路径解析机制更新;数据库性能选项(如 SQLite WAL 与写操作去重间隔)现已可用;网络搜索并发设置变量重命名为WEB_LOADER_CONCURRENT_REQUESTS以更准确反映其作用。
更新内容 (中文)
[0.6.23] - 2025-08-21
新增功能
- ⚃ 异步聊天有效载荷处理:重构了聊天完成流程,对于涉及网络搜索或工具调用的流式请求,可以立即返回响应。这使用户能够及时停止正在进行的生成,并防止长时间预处理阶段的网络超时,从而显著提升用户体验和响应速度。
- 📁 带轮询的异步文件上传:实现了带有前端轮询的异步文件上传流程,以解决网关超时问题并提高大文件上传的可靠性。这确保了即使耗时较长的文件处理(如嵌入或转录)也不会阻塞用户界面或导致连接超时,为所有文件操作提供更流畅的体验。
- 📈 数据库性能索引与迁移脚本:在“聊天”、“标签”和“功能”表上引入了新的数据库索引,显著提升了 SQLite 和 PostgreSQL 安装的查询性能。对于现有部署,包含了一个新的 Alembic 迁移脚本以无缝应用这些索引,确保整个平台更快的过滤和排序操作。
- ✨ 增强的数据库性能选项:引入了新的可配置选项以显著提升数据库性能,尤其针对 SQLite。这包括“DATABASE_ENABLE_SQLITE_WAL”,用于启用 SQLite WAL(预写日志)模式以支持并发操作;以及“DATABASE_DEDUPLICATE_INTERVAL”,与新的去重机制结合使用,减少对“user.last_active_at”的冗余更新,最大限度地减少所有数据库类型的写入冲突。
- 💾 保存临时聊天按钮:为在临时模式下发起的对话引入了新的“保存聊天”按钮。这允许用户将有价值的临时对话永久保存到聊天历史记录中,提供更大的灵活性并确保重要讨论不会丢失。
- 📂 菜单中的聊天移动选项:添加了直接从聊天菜单将聊天移动到文件夹的功能。这增强了聊天组织性,允许用户通过轻松地在文件夹之间重新定位来更高效地管理对话。
- 💬 语言感知的后续建议:增强了 AI 生成后续问题的能力,使其能够动态适应当前聊天的主要语言。后续提示现在将以用户和 AI 正在交流的相同语言提出,确保更自然、更符合上下文的交互。
- 👤 扩展的用户个人资料详情:引入了新的用户资料字段,包括用户名、简介、性别和出生日期,允许更全面的用户自定义和信息管理。此增强功能包括对数据库模式、API 和用户界面的相应更新,以实现无缝集成。
- 👥 从用户编辑直接导航到用户组:增强了用户编辑模态框,包含指向关联用户组的直接链接。这允许管理员快速从用户配置文件导航到其组设置,简化用户和组管理工作流程。
- 🔧 增强的外部工具服务器兼容性:改进了对外部工具服务器响应的处理,允许后端和前端除了处理 JSON 外,还能处理纯文本内容,确保更大的灵活性和与各种工具输出的集成。
- 🗣️ 增强的音频转录语言回退与 Deepgram 支持:为 OpenAI 和 Deepgram 语音转文本 (STT) API 调用实现了强大的语言回退机制。如果指定的语言参数不被模型或提供商支持,系统现在将智能地重试不带语言参数或使用默认参数的转录,确保更高的可靠性并防止 API 调用失败。这也特别添加并优化了对 Deepgram API 集成中音频语言参数的支持。
- ⚡ 优化的混合搜索性能(针对 BM25 权重配置):增强了混合搜索,以在 BM25 权重设置为 0 或更低时显著提升性能。此优化智能地禁用了不必要的集合检索和 BM25 排名计算,从而在不利用词汇搜索贡献的配置中,获得更快的搜索结果,且不影响准确性。
- 🔒 可配置的代码解释器模块黑名单:引入了“CODE_INTERPRETER_BLACKLISTED_MODULES”环境变量,允许管理员指定禁止在代码解释器中导入或执行的 Python 模块。这通过缓解与任意代码执行相关的风险(如未经授权的数据访问、系统操作或出站连接)显著增强了安全性。
- 🔐 增强的 OAuth 角色声明处理:通过允许角色声明以单个字符串或整数形式提供(除了数组),提高了与各种 OAuth 提供商的兼容性。系统现在会自动将这些单值声明规范化为数组以进行一致处理,简化了与角色数据格式不同的身份提供商的集成。
- ⚙️ 可配置的工具调用超时:引入了“AIOHTTP_CLIENT_TIMEOUT”环境变量,允许管理员为外部工具调用指定自定义超时时间,这对于集成具有不同或较长响应时间的工具至关重要。
- 🛠️ 改进的 Google genai SDK 工具可调用项生成:增强了工具可调用项的创建,以直接支持 Google ‘genai’ SDK 中的原生函数调用。此重构确保了正确的签名推断并移除了多余参数,为使用 Google 生成式 AI 模型的高级 AI 工作流程实现无缝集成。
- ✨ 动态加载 ‘kokoro-js’:为 ‘kokoro-js’ 库实现了动态加载,防止在旧版 iOS 浏览器上失败(这些浏览器可能不支持直接导入或某些现代 JavaScript API,如 ‘DecompressionStream’),从而提高兼容性。
- 🖥️ 改进小屏幕上的命令列表可见性:解决了在较小屏幕尺寸或特定浏览器缩放级别下,命令列表(例如知识库、模型、提示)中的顶部项目被标题隐藏或重叠的问题。命令选项列表现在会动态调整其高度,确保所有项目完全可见,并可通过适当的滚动访问。
- 📦 改进的 Docker 镜像对任意 UID 的兼容性:修复了阻止 Open WebUI 容器在具有任意用户 ID (UID) 的环境(如 OpenShift 受限的 Security Context Constraints (SCC))中运行的问题。Dockerfile 已更新,为 “/app” 和 “/root” 目录正确设置文件系统权限,确保它们可由以补充 GID 0 运行的进程写入,从而解决 Python 库和应用程序缓存的权限错误。
- ♿ 无障碍访问增强:通过使用 “section”、“h2”、“ul” 和 “li” HTML 标签显著改进了聊天消息的语义结构,并通过使用 “aria-hidden” 属性显式隐藏装饰性图像增强了屏幕阅读器兼容性。此重构为对话流程提供了更清晰的结构上下文,并改进了整体无障碍访问和网络标准合规性。
- 🌐 本地化与国际化改进:显著扩展了整个用户界面的国际化支持,翻译了通知消息、占位符和其他 UI 元素中的众多面向用户的字符串。与此一起,持续改进和扩展了包括巴西葡萄牙语、卡拜尔语 (Taqbaylit)、捷克语、芬兰语、简体中文、繁体中文和德语在内的多种语言的翻译,并对其他几种翻译文件进行了总体修复,进一步增强了语言覆盖面和用户体验。
问题修复
- 🛡️ 解决关键的 OIDC SSO 登录失败问题:修复了由于在重定向过程中设置认证令牌为 Cookie 时出错,导致 OIDC 单点登录 (SSO) 登录失败的关键问题。这确保了使用 OIDC 提供商的用户获得可靠、无缝的认证,恢复了受之前安全加固影响的完整登录功能。
- ⚡ 防止不可达 Webhook 阻塞 UI:修复了一个关键性能和用户体验问题,即同步的 webhook 调用到不可达或缓慢的端点会为所有用户阻塞整个用户界面。Webhook 请求现在使用 “aiohttp” 异步处理,确保即使在 webhook 传递遇到延迟或故障时,UI 也能保持响应和正常工作。
- 🔒 为外部认证用户隐藏密码更改选项:修复了通过外部方法(如 LDAP、OIDC、受信头部)认证的用户可见密码更改对话框的问题。用户设置中的更改密码选项现在已正确为这些用户隐藏,因为他们的密码由外部管理,从而简化了用户界面并防止混淆。
- 💬 解决临时聊天和权限执行问题:修复了一个错误,即临时聊天(通过 “chat_id = local” 标识)错误地触发数据库检查,导致 404 错误。这也解决了 “USER_PERMISSIONS_CHAT_TEMPORARY_ENFORCED” 设置未按预期工作的问题,确保临时聊天模式现在对用户角色正常工作。
- 🔐 管理员对模型的可见性:即使禁用了预期的隐私设置(“ENABLE_ADMIN_WORKSPACE_CONTENT_ACCESS” - 现已重命名为 “BYPASS_ADMIN_ACCESS_CONTROL”),私有模型在聊天模型选择器中对管理员仍然可见且可用。这确保了模型访问控制的严格执行并遵守最小权限原则。
- 🔍 澄清 DDGS 的 Web 搜索引擎标签:通过在网页搜索引擎选择器中将 “duckduckgo” 重命名为 “DDGS” (Dux Distributed Global Search),解决了用户困惑和标签不准确的问题。这澄清了系统使用的是 DDGS(一个聚合各种搜索提供商结果的元搜索库),准确反映了其底层功能,而非暗示独家使用 DuckDuckGo 的搜索引擎。
- 🛠️ 改进设置 UI 响应性和可见性:修复了“连接”和“工具”选项卡的设置未基于全局管理员功能标志(例如 “enable_direct_connections”)动态更新其可见性的问题。UI 现在会响应式显示或隐藏这些部分,确保在管理员控制功能可用性时提供一致、清晰的体验。
- 🎚️ 恢复模型和横幅重新排序功能:修复了一个错误,该错误阻止管理员在管理面板的“模型”设置中通过拖放重新排序模型,以及在“界面”设置中重新排序横幅。排序功能已恢复,允许正确自定义显示顺序。
- 📝 恢复自定义待处理用户覆盖层可见性:修复了为待处理用户配置的自定义标题和描述不可见的问题。应用程序现在正确地将这些 UI 配置设置暴露给待处理用户,确保自定义入门消息按预期显示。
- 📥 修复社区函数导入兼容性:解决了由于模式差异,无法成功导入从 openwebui.com 下载的函数文件的问题。系统现在正确处理这些文件,允许无缝集成社区贡献的函数。
- 📦 修复 Docker 镜像中过时的 Ollama 版本:解决了由于构建过程中的缓存导致 Docker 镜像中的 Ollama 安装可能过时的问题。Dockerfile 现在包含一种机制,可使 Ollama 安装步骤的构建缓存失效,确保始终安装最新版本的 Ollama。
- 🗄️ 改进 Milvus 对大数据集的查询处理:修复了尝试从 Milvus 集合中查询超过 16384 个条目时发生的 “MilvusException”。查询逻辑已重构为使用 “query_iterator()”,支持分批高效获取更大的结果集,并解决了之前对可检索条目数量的限制。
- 🐛 恢复空消息(但带有文件)的消息工具栏图标:修复了包含附件文件但无文本内容的用户消息上未显示编辑、复制和删除图标的问题。这确保所有消息类型的完整交互能力,允许用户一致地管理其消息。
- 💬 解决 Kimi-Dev 模型的流中断问题:修复了 Kimi-Dev 模型的流式响应在遇到特定“思考”令牌 (◁think▷, ◁/think▷) 时会提前停止的问题。系统现在正确处理这些令牌,确保无中断的流传输,并正确处理隐藏或可折叠的思考部分。
- 🔍 增强知识库搜索功能:改进了工作区中“知识”部分内的搜索能力。以前,搜索知识库需要精确匹配或从首字母开始。现在,搜索算法已优化,允许更广泛、不那么精确的匹配,使查找相关知识库更容易、更直观。
- 📝 解决中文输入法 ‘Enter’ 键问题(macOS 和 iOS Safari):修复了一个错误,即在 macOS 和 iOS Safari 浏览器上使用输入法编辑器 (IME) 进行文本组合时按 ‘Enter’ 键会过早发送消息。系统现在通过解决 Safari 特有的 ‘compositionend’ 事件 bug,健壮地处理组合状态,确保中文、韩文等各种语言的用户获得流畅且符合预期的打字体验。
- 🔐 解决 OAUTH_GROUPS_CLAIM 配置问题:修复了由于配置文件中的拼写错误导致 “OAUTH_GROUPS_CLAIM” 环境变量未被正确解析的 bug。这确保了 OAuth 组管理功能(包括自动创建组)现在正确使用身份提供商指定的声明,从而与 Keycloak 等外部用户目录实现无缝集成。
- 🗄️ 解决 Azure PostgreSQL pgvector 扩展权限问题:修复了由于权限限制(例如 ‘Only members of “azure_pg_admin” are allowed to use “CREATE EXTENSION”’)阻止在 Azure PostgreSQL Flexible Servers 上创建 “pgvector” 和 “pgcrypto” 扩展的问题。扩展创建过程现在包含条件检查,确保即使数据库用户权限受限,也能在 Azure PostgreSQL 环境中无缝部署和兼容。
- 🛠️ 改进后端路径解析和 Alembic 稳定性:修复了由于应用程序内路径解析不正确导致 Alembic 数据库迁移失败的问题。通过对核心目录实现规范路径解析并优化 Alembic 配置,显著增强了内部路径的健壮性和正确性,确保可靠的数据库操作。
- 📊 解决反馈历史中的竞技场模型识别问题:修复了在竞技场设置中用于反馈的模型在评估历史中被错误报告为 “arena-model” 的问题。系统现在正确记录并显示接收反馈的实际模型 ID,恢复了清晰性,并允许在竞技场环境中对模型性能进行适当分析。
- 🎨 解决 ‘Her’ 主题中的图标重叠问题:修复了 ‘Her’ 主题中的一个视觉故障,即加载屏幕上的图标会重叠,且某些图标显得不协调。显示已纠正,确保正确的视觉呈现和主题一致性。
- 🛠️ 解决空名称模型的排序 TypeError:修复了在 “/api/models” 端点中对名称为空或缺失的模型进行排序时发生的 “TypeError”。模型排序逻辑已改进,通过确保模型 ID 和名称在值为空或未定义时视为空字符串来优雅地处理这些边缘情况,防止比较错误并提高 API 稳定性。
- 💬 解决静默丢弃的流式响应块:修复了流式聊天响应的最终部分块可能被静默丢弃,导致消息传递不完整的问题。系统现在在流终止、提前中断(例如代码解释器标签)或连接关闭时,可靠地刷新任何挂起的增量数据,确保完整准确地传递响应。
- 📱 禁用 iOS 前端的过度滚动:修复了在 iOS 设备上启用过度滚动的问题,这会导致在 PWA 内的固定或粘性元素上方发生意外的滚动行为。过度滚动现已禁用,为 iOS 用户提供更原生的应用程序般体验。
- 📝 解决使用 Shift+Enter 时的代码块输入问题:修复了一个错误,即输入三个反引号后跟语言,然后按 Shift+Enter 会导致代码块前缀消失,无法正确格式化代码。系统现在正确保留代码块语法,确保多行代码输入行为一致。
- 🛠️ 改进 OpenAI 模型列表对空名称的处理:修复了一个边缘情况,即某些 OpenAI 兼容的 API 提供商可能返回 ‘name’ 字段为 null 值的模型。这可能导致模型列表排序中断等问题。系统现在通过移除 null 的 ‘name’ 键优雅地处理这些实例,确保稳定的模型检索和显示。
- 🔍 解决 DDGS 并发请求配置问题:修复了为 DDGS (Dux Distributed Global Search) 元搜索引擎配置的并发请求数未被遵守的问题。系统现在正确应用指定的并发设置,提高了网络搜索效率。
- 🛠️ 改进多副本部署中的工具列表同步:解决了在多副本环境中,工具更新未在所有实例中一致反映的问题,导致其他副本上的用户看到过时的工具列表。消息输入菜单中的工具列表现在在每次访问时自动刷新,确保所有用户始终看到最新的可用工具集。
- 🛠️ 解决重复工具名冲突:修复了来自不同外部服务器的同名工具被静默移除,阻止其同时使用的问题。系统现在通过内部为工具添加服务器标识符前缀来正确处理工具名称冲突,允许来自不同服务器的多个同名工具实例处于活动状态并可被 LLM 使用。
- 🖼️ 解决图像生成 API 尺寸参数问题:修复了 “/api/v1/images/generations” API 端点未正确应用请求有效载荷中指定的 ‘size’ 参数进行图像生成的 bug。系统现在正确遵循请求的图像尺寸(例如 ‘1980x1080’),确保生成的图像匹配用户的明确尺寸偏好,而不是默认设置。
- 🗄️ 解决 S3 向量上传限制:修复了由于 API 限制导致无法向 S3 Vector 存储桶上传超过 500 个向量的问题(这会导致 “ValidationException”)。S3 向量上传现在按 500 个一组进行批处理,确保成功处理更大的数据集。
- 🛠️ 修复启动时的工具安装错误:修复了当 ‘tool.user’ 意外为 null 时,在启动期间工具安装过程中发生的 “NoneType” 错误。系统现在包含一个检查,确保 ‘tool.user’ 存在,然后再尝试访问其属性,防止崩溃并确保工具初始化的健壮性。
- 🛠️ 改进 Azure OpenAI GPT-5 参数处理:修复了 Azure OpenAI SDK 参数处理问题,以正确支持 GPT-5 模型。对于 GPT-5 模型,‘max_tokens’ 参数现在已适当转换为 ‘max_completion_tokens’,确保与现有 o 系列模型类似的一致行为和正常函数执行。
- 🐛 解决缺少组权限时的异常:修复了访问控制逻辑中当组权限对象缺失或为 null 时发生的异常。系统现在正确处理组可能没有显式权限定义的情况,确保 ‘None’ 检查防止错误并在处理用户权限时保持应用程序稳定性。
- 🛠️ 改进 OpenAI API 基础 URL 处理:修复了 ‘OPENAI_API_BASE_URL’ 配置中的尾部斜杠可能导致模型未被检测到或端点失败的问题。系统现在自动移除配置 URL 中的尾部斜杠,确保与 OpenAI 兼容 API 的稳健和一致连接。
- 🖼️ 解决 S3 兼容存储上传失败:修复了上传到 S3 兼容存储提供商时出现 “XAmzContentSHA256Mismatch” 错误的问题。系统现在正确处理校验和计算,确保向 S3 兼容服务可靠地上传文件和图像。
- 🌐 纠正 “Releases” 链接:修复了用户菜单中 “Releases” 按钮指向错误 URL 的问题,现已正确链接到 Open WebUI GitHub 发布页面。
- 🛠️ 解决空或未定义名称的模型排序错误:修复了在尝试对模型名称为 null 或未定义的模型列表进行排序时发生的多个 “TypeError” 实例。各种 UI 组件(包括 Ollama 模型选择、排行榜和管理员模型设置)中的排序逻辑已通过优雅处理缺失的模型名称变得更加健壮,防止崩溃并确保基于可用名称或 ID 进行一致的字母排序。
- 🎨 解决横幅关闭与迭代 ID 的问题:修复了一个错误,即关闭横幅可能导致意外多次关闭横幅或其他不正确行为,特别是当横幅缺少唯一迭代 ID 时。唯一 ID 现在在横幅迭代期间分配,确保正确的单个关闭和一致的显示行为。
变更
- 🛂 用于管理员访问控制的环境变量:环境变量 “ENABLE_ADMIN_WORKSPACE_CONTENT_ACCESS” 已重命名为 “BYPASS_ADMIN_ACCESS_CONTROL”。这个新名称更准确地反映了其作为控制项的功能,允许管理员绕过模型访问限制。鼓励用户更新其配置以使用新的变量名称;使用旧名称的现有配置仍会出于向后兼容性而被接受。
- 🗂️ 核心目录路径解析已更新:用于解析核心应用程序目录路径(“OPEN_WEBUI_DIR”、“BACKEND_DIR”、“BASE_DIR”)的内部机制已更新为使用通过 “Path().resolve()” 的规范解析。此更改提高了路径可靠性,但可能需要调整任何先前依赖特定非规范路径解释的外部脚本或配置。
- 🗃️ 数据库性能选项:新的数据库性能选项 “DATABASE_ENABLE_SQLITE_WAL” 和 “DATABASE_DEDUPLICATE_INTERVAL” 现已可用。如果启用 “DATABASE_ENABLE_SQLITE_WAL”,SQLite 将以 WAL 模式运行,这可能会改变 SQLite 的文件锁定行为。如果将 “DATABASE_DEDUPLICATE_INTERVAL” 设置为非零值,“user.last_active_at” 时间戳的更新频率将降低,导致此特定字段的实时准确性略低,但显著减少了数据库写入冲突并提高了整体性能。这两个选项默认禁用。
- 🌐 重命名的 Web 搜索并发设置:环境变量 “WEB_SEARCH_CONCURRENT_REQUESTS” 已重命名为 “WEB_LOADER_CONCURRENT_REQUESTS”。此更改明确了其适用范围,明确应用于 Web 加载器组件(从搜索结果中获取内容)的并发性,而非初始搜索引擎查询。依赖旧环境变量名称配置网页搜索并发性的用户必须将其配置更新为 “WEB_LOADER_CONCURRENT_REQUESTS”。
[!TIP]
正在寻找 企业版计划? – 立即与我们的销售团队联系!获取增强功能,包括自定义主题和品牌、服务水平协议 (SLA) 支持等等!
👏 感谢我们优秀的贡献者的辛勤工作和奉献,使此次发布成为可能: @timovanasten, @mahenning, @olivier-lacroix, @FukkenShit, @PeterDaveHello, @BoFFire, @adamoutler, @silentoplayz, @Classic298, @koflerm, @Gyarbij, @expruc, @decent-engineer-decent-datascientist, @kahghi, @Kylapaallikko, @athoik, @rgaricano, @Rain6435, @ShirasawaSama, @0xThresh, @SebastienLentzAM, @tremlin, @tcx4c70, @joaoback
赞助商 🙌
🚀 我们谨向我们出色的赞助商表示衷心的感谢,感谢他们的慷慨支持(注意:我们将私人赞助商排除在此列表之外。如果您希望在此获得展示,请随时与我们联系!)
翡翠级
@amd, @agency-agency, @roosi-gmbh, @feddersen-group, @SRKConsulting, @mushmax, @rndmcnlly, @icanbwell, @Krambu-Travis, @loitragg, @GenieDev101, @CubicleGangster, @GitDatamind, @TOWaB, @TheZigGroup, @Classic298, @comet-ml, @FominVO, @catalyst-net-nz, @JrdnHans, @hkosm, @VeroFess
更新内容 (原始)
[0.6.23] - 2025-08-21
Added
- ⚡ Asynchronous Chat Payload Processing: Refactored the chat completion pipeline to return a response immediately for streaming requests involving web search or tool calls. This enables users to stop ongoing generations promptly and preventing network timeouts during lengthy preprocessing phases, thus significantly improving user experience and responsiveness.
- 📁 Asynchronous File Upload with Polling: Implemented an asynchronous file upload process with frontend polling to resolve gateway timeouts and improve reliability when uploading large files. This ensures that even lengthy file processing, such as embedding or transcription, does not block the user interface or lead to connection timeouts, providing a smoother experience for all file operations.
- 📈 Database Performance Indexes and Migration Script: Introduced new database indexes on the “chat”, “tag”, and “function” tables to significantly enhance query performance for SQLite and PostgreSQL installations. For existing deployments, a new Alembic migration script is included to seamlessly apply these indexes, ensuring faster filtering and sorting operations across the platform.
- ✨ Enhanced Database Performance Options: Introduced new configurable options to significantly improve database performance, especially for SQLite. This includes “DATABASE_ENABLE_SQLITE_WAL” to enable SQLite WAL (Write-Ahead Logging) mode for concurrent operations, and “DATABASE_DEDUPLICATE_INTERVAL” which, in conjunction with a new deduplication mechanism, reduces redundant updates to “user.last_active_at”, minimizing write conflicts across all database types.
- 💾 Save Temporary Chats Button: Introduced a new ‘Save Chat’ button for conversations initiated in temporary mode. This allows users to permanently save valuable temporary conversations to their chat history, providing greater flexibility and ensuring important discussions are not lost.
- 📂 Chat Movement Options in Menu: Added the ability to move chats directly to folders from the chat menu. This enhances chat organization and allows users to manage their conversations more efficiently by relocating them between folders with ease.
- 💬 Language-Aware Follow-Up Suggestions: Enhanced the AI’s follow-up question generation to dynamically adapt to the primary language of the current chat. Follow-up prompts will now be suggested in the same language the user and AI are conversing in, ensuring more natural and contextually relevant interactions.
- 👤 Expanded User Profile Details: Introduced new user profile fields including username, bio, gender, and date of birth, allowing for more comprehensive user customization and information management. This enhancement includes corresponding updates to the database schema, API, and user interface for seamless integration.
- 👥 Direct Navigation to User Groups from User Edit: Enhanced the user edit modal to include a direct link to the associated user group. This allows administrators to quickly navigate from a user’s profile to their group settings, streamlining user and group management workflows.
- 🔧 Enhanced External Tool Server Compatibility: Improved handling of responses from external tool servers, allowing both the backend and frontend to process plain text content in addition to JSON, ensuring greater flexibility and integration with diverse tool outputs.
- 🗣️ Enhanced Audio Transcription Language Fallback and Deepgram Support: Implemented a robust language fallback mechanism for both OpenAI and Deepgram Speech-to-Text (STT) API calls. If a specified language parameter is not supported by the model or provider, the system will now intelligently retry the transcription without the language parameter or with a default, ensuring greater reliability and preventing failed API calls. This also specifically adds and refines support for the audio language parameter in Deepgram API integrations.
- ⚡ Optimized Hybrid Search Performance for BM25 Weight Configuration: Enhanced hybrid search to significantly improve performance when the BM25 weight is set to 0 or less. This optimization intelligently disables unnecessary collection retrieval and BM25 ranking calculations, leading to faster search results without impacting accuracy for configurations that do not utilize lexical search contributions.
- 🔒 Configurable Code Interpreter Module Blacklist: Introduced the “CODE_INTERPRETER_BLACKLISTED_MODULES” environment variable, allowing administrators to specify Python modules that are forbidden from being imported or executed within the code interpreter. This significantly enhances the security posture by mitigating risks associated with arbitrary code execution, such as unauthorized data access, system manipulation, or outbound connections.
- 🔐 Enhanced OAuth Role Claim Handling: Improved compatibility with diverse OAuth providers by allowing role claims to be supplied as single strings or integers, in addition to arrays. The system now automatically normalizes these single-value claims into arrays for consistent processing, streamlining integration with identity providers that format role data differently.
- ⚙️ Configurable Tool Call Timeout: Introduced the “AIOHTTP_CLIENT_TIMEOUT” environment variable, allowing administrators to specify custom timeout durations for external tool calls, which is crucial for integrations with tools that have varying or extended response times.
- 🛠️ Improved Tool Callable Generation for Google genai SDK: Enhanced the creation of tool callables to directly support native function calling within the Google ‘genai’ SDK. This refactoring ensures proper signature inference and removes extraneous parameters, enabling seamless integration for advanced AI workflows using Google’s generative AI models.
- ✨ Dynamic Loading of ‘kokoro-js’: Implemented dynamic loading for the ‘kokoro-js’ library, preventing failures and improving compatibility on older iOS browsers that may not support direct imports or certain modern JavaScript APIs like ‘DecompressionStream’.
- 🖥️ Improved Command List Visibility on Small Screens: Resolved an issue where the top items in command lists (e.g., Knowledge Base, Models, Prompts) were hidden or overlapped by the header on smaller screen sizes or specific browser zoom levels. The command option lists now dynamically adjust their height, ensuring all items are fully visible and accessible with proper scrolling.
- 📦 Improved Docker Image Compatibility for Arbitrary UIDs: Fixed issues preventing the Open WebUI container from running in environments with arbitrary User IDs (UIDs), such as OpenShift’s restricted Security Context Constraints (SCC). The Dockerfile has been updated to correctly set file system permissions for “/app” and “/root” directories, ensuring they are writable by processes running with a supplemental GID 0, thus resolving permission errors for Python libraries and application caches.
- ♿ Accessibility Enhancements: Significantly improved the semantic structure of chat messages by using “section”, “h2”, “ul”, and “li” HTML tags, and enhanced screen reader compatibility by explicitly hiding decorative images with “aria-hidden” attributes. This refactoring provides clearer structural context and improves overall accessibility and web standards compliance for the conversation flow.
- 🌐 Localization & Internationalization Improvements: Significantly expanded internationalization support throughout the user interface, translating numerous user-facing strings in toast messages, placeholders, and other UI elements. This, alongside continuous refinement and expansion of translations for languages including Brazilian Portuguese, Kabyle (Taqbaylit), Czech, Finnish, Chinese (Simplified), Chinese (Traditional), and German, and general fixes for several other translation files, further enhances linguistic coverage and user experience.
Fixed
- 🛡️ Resolved Critical OIDC SSO Login Failure: Fixed a critical issue where OIDC Single Sign-On (SSO) logins failed due to an error in setting the authentication token as a cookie during the redirect process. This ensures reliable and seamless authentication for users utilizing OIDC providers, restoring full login functionality that was impacted by previous security hardening.
- ⚡ Prevented UI Blocking by Unreachable Webhooks: Resolved a critical performance and user experience issue where synchronous webhook calls to unreachable or slow endpoints would block the entire user interface for all users. Webhook requests are now processed asynchronously using “aiohttp”, ensuring that the UI remains responsive and functional even if webhook delivery encounters delays or failures.
- 🔒 Password Change Option Hidden for Externally Authenticated Users: Resolved an issue where the password change dialog was visible to users authenticated via external methods (e.g., LDAP, OIDC, Trusted Header). The option to change a password in user settings is now correctly hidden for these users, as their passwords are managed externally, streamlining the user interface and preventing confusion.
- 💬 Resolved Temporary Chat and Permission Enforcement Issues: Fixed a bug where temporary chats (identified by “chat_id = local”) incorrectly triggered database checks, leading to 404 errors. This also resolves the issue where the ‘USER_PERMISSIONS_CHAT_TEMPORARY_ENFORCED’ setting was not functioning as intended, ensuring temporary chat mode now works correctly for user roles.
- 🔐 Admin Model Visibility for Administrators: Private models remained visible and usable for administrators in the chat model selector, even when the intended privacy setting (“ENABLE_ADMIN_WORKSPACE_CONTENT_ACCESS” - now renamed to “BYPASS_ADMIN_ACCESS_CONTROL”) was disabled. This ensures consistent enforcement of model access controls and adherence to the principle of least privilege.
- 🔍 Clarified Web Search Engine Label for DDGS: Addressed user confusion and inaccurate labeling by renaming “duckduckgo” to “DDGS” (Dux Distributed Global Search) in the web search engine selector. This clarifies that the system utilizes DDGS, a metasearch library that aggregates results from various search providers, accurately reflecting its underlying functionality rather than implying exclusive use of DuckDuckGo’s search engine.
- 🛠️ Improved Settings UI Reactivity and Visibility: Resolved an issue where settings tabs for ‘Connections’ and ‘Tools’ did not dynamically update their visibility based on global administrative feature flags (e.g., ’enable_direct_connections’). The UI now reactively shows or hides these sections, ensuring a consistent and clear experience when administrators control feature availability.
- 🎚️ Restored Model and Banner Reordering Functionality: Fixed a bug that prevented administrators from reordering models in the Admin Panel’s ‘Models’ settings and banners in the ‘Interface’ settings via drag-and-drop. The sortable functionality has been restored, allowing for proper customization of display order.
- 📝 Restored Custom Pending User Overlay Visibility: Fixed an issue where the custom title and description configured for pending users were not visible. The application now correctly exposes these UI configuration settings to pending users, ensuring that the custom onboarding messages are displayed as intended.
- 📥 Fixed Community Function Import Compatibility: Resolved an issue that prevented the successful import of function files downloaded from openwebui.com due to schema differences. The system now correctly processes these files, allowing for seamless integration of community-contributed functions.
- 📦 Fixed Stale Ollama Version in Docker Images: Resolved an issue where the Ollama installation within Docker images could become stale due to caching during the build process. The Dockerfile now includes a mechanism to invalidate the build cache for the Ollama installation step, ensuring that the latest version of Ollama is always installed.
- 🗄️ Improved Milvus Query Handling for Large Datasets: Fixed a “MilvusException” that occurred when attempting to query more than 16384 entries from a Milvus collection. The query logic has been refactored to use “query_iterator()”, enabling efficient fetching of larger result sets in batches and resolving the previous limitation on the number of entries that could be retrieved.
- 🐛 Restored Message Toolbar Icons for Empty Messages with Files: Fixed an issue where the edit, copy, and delete icons were not displayed on user messages that contained an attached file but no text content. This ensures full interaction capabilities for all message types, allowing users to manage their messages consistently.
- 💬 Resolved Streaming Interruption for Kimi-Dev Models: Fixed an issue where streaming responses from Kimi-Dev models would halt prematurely upon encountering specific ’thinking’ tokens (◁think▷, ◁/think▷). The system now correctly processes these tokens, ensuring uninterrupted streaming and proper handling of hidden or collapsible thinking sections.
- 🔍 Enhanced Knowledge Base Search Functionality: Improved the search capability within the ‘Knowledge’ section of the Workspace. Previously, searching for knowledge bases required exact term matches or starting with the first letter. Now, the search algorithm has been refined to allow broader, less exact matches, making it easier and more intuitive to find relevant knowledge bases.
- 📝 Resolved Chinese Input ‘Enter’ Key Issue (macOS & iOS Safari): Fixed a bug where pressing the ‘Enter’ key during text composition with Input Method Editors (IMEs) on macOS and iOS Safari browsers would prematurely send the message. The system now robustly handles the composition state by addressing a ‘compositionend’ event bug specific to Safari, ensuring a smooth and expected typing experience for users of various languages, including Chinese and Korean.
- 🔐 Resolved OAUTH_GROUPS_CLAIM Configuration Issue: Fixed a bug where the “OAUTH_GROUPS_CLAIM” environment variable was not correctly parsed due to a typo in the configuration file. This ensures that OAuth group management features, including automatic group creation, now correctly utilize the specified claim from the identity provider, allowing for seamless integration with external user directories like Keycloak.
- 🗄️ Resolved Azure PostgreSQL pgvector Extension Permissions: Fixed an issue preventing the creation of “pgvector” and “pgcrypto” extensions on Azure PostgreSQL Flexible Servers due to permission limitations (e.g., ‘Only members of “azure_pg_admin” are allowed to use “CREATE EXTENSION”’). The extension creation process now includes a conditional check, ensuring seamless deployment and compatibility with Azure PostgreSQL environments even with restricted database user permissions.
- 🛠️ Improved Backend Path Resolution and Alembic Stability: Fixed issues causing Alembic database migrations to fail due to incorrect path resolution within the application. By implementing canonical path resolution for core directories and refining Alembic configuration, the robustness and correctness of internal pathing have been significantly enhanced, ensuring reliable database operations.
- 📊 Resolved Arena Model Identification in Feedback History: Fixed an issue where the model used for feedback in arena settings was incorrectly reported as ‘arena-model’ in the evaluation history. The system now correctly logs and displays the actual model ID that received the feedback, restoring clarity and enabling proper analysis of model performance in arena environments.
- 🎨 Resolved Icon Overlap in ‘Her’ Theme: Fixed a visual glitch in the ‘Her’ theme where icons would overlap on the loading screen and certain icons appeared incongruous. The display has been corrected to ensure proper visual presentation and theme consistency.
- 🛠️ Resolved Model Sorting TypeError with Null Names: Fixed a “TypeError” that occurred in the “/api/models” endpoint when sorting models with null or missing names. The model sorting logic has been improved to gracefully handle such edge cases by ensuring that model IDs and names are treated as empty strings if their values are null or undefined, preventing comparison errors and improving API stability.
- 💬 Resolved Silently Dropped Streaming Response Chunks: Fixed an issue where the final partial chunks of streaming chat responses could be silently dropped, leading to incomplete message delivery. The system now reliably flush any pending delta data upon stream termination, early breaks (e.g., code interpreter tags), or connection closure, ensuring complete and accurate response delivery.
- 📱 Disabled Overscroll for iOS Frontend: Fixed an issue where overscrolling was enabled on iOS devices, causing unexpected scrolling behavior over fixed or sticky elements within the PWA. Overscroll has now been disabled, providing a more native application-like experience for iOS users.
- 📝 Resolved Code Block Input Issue with Shift+Enter: Fixed a bug where typing three backticks followed by a language and then pressing Shift+Enter would cause the code block prefix to disappear, preventing proper code formatting. The system now correctly preserves the code block syntax, ensuring consistent behavior for multi-line code input.
- 🛠️ Improved OpenAI Model List Handling for Null Names: Fixed an edge case where some OpenAI-compatible API providers might return models with a null value for their ’name’ field. This could lead to issues like broken model list sorting. The system now gracefully handles these instances by removing the null ’name’ key, ensuring stable model retrieval and display.
- 🔍 Resolved DDGS Concurrent Request Configuration: Fixed an issue where the configured number of concurrent requests was not being honored for the DDGS (Dux Distributed Global Search) metasearch engine. The system now correctly applies the specified concurrency setting, improving efficiency for web searches.
- 🛠️ Improved Tool List Synchronization in Multi-Replica Deployments: Resolved an issue where tool updates were not consistently reflected across all instances in multi-replica environments, leading to stale tool lists for users on other replicas. The tool list in the message input menu is now automatically refreshed each time it is accessed, ensuring all users always see the most current set of available tools.
- 🛠️ Resolved Duplicate Tool Name Collision: Fixed an issue where tools with identical names from different external servers were silently removed, preventing their simultaneous use. The system now correctly handles tool name collisions by internally prefixing tools with their server identifier, allowing multiple instances of similarly named tools from different servers to be active and usable by LLMs.
- 🖼️ Resolved Image Generation API Size Parameter Issue: Fixed a bug where the “/api/v1/images/generations” API endpoint did not correctly apply the ‘size’ parameter specified in the request payload for image generation. The system now properly honors the requested image dimensions (e.g., ‘1980x1080’), ensuring that generated images match the user’s explicit size preference rather than defaulting to settings.
- 🗄️ Resolved S3 Vector Upload Limitations: Fixed an issue that prevented uploading more than 500 vectors to S3 Vector buckets due to API limitations, which resulted in a “ValidationException”. S3 vector uploads are now batched in groups of 500, ensuring successful processing of larger datasets.
- 🛠️ Fixed Tool Installation Error During Startup: Resolved a “NoneType” error that occurred during tool installation at startup when ’tool.user’ was unexpectedly null. The system now includes a check to ensure ’tool.user’ exists before attempting to access its properties, preventing crashes and ensuring robust tool initialization.
- 🛠️ Improved Azure OpenAI GPT-5 Parameter Handling: Fixed an issue with Azure OpenAI SDK parameter handling to correctly support GPT-5 models. The ‘max_tokens’ parameter is now appropriately converted to ‘max_completion_tokens’ for GPT-5 models, ensuring consistent behavior and proper function execution similar to existing o-series models.
- 🐛 Resolved Exception with Missing Group Permissions: Fixed an exception that occurred in the access control logic when group permission objects were missing or null. The system now correctly handles cases where groups may not have explicit permission definitions, ensuring that ‘None’ checks prevent errors and maintain application stability when processing user permissions.
- 🛠️ Improved OpenAI API Base URL Handling: Fixed an issue where a trailing slash in the ‘OPENAI_API_BASE_URL’ configuration could lead to models not being detected or the endpoint failing. The system now automatically removes trailing slashes from the configured URL, ensuring robust and consistent connections to OpenAI-compatible APIs.
- 🖼️ Resolved S3-Compatible Storage Upload Failures: Fixed an issue where uploads to S3-compatible storage providers would fail with an “XAmzContentSHA256Mismatch” error. The system now correctly handles checksum calculations, ensuring reliable file and image uploads to S3-compatible services.
- 🌐 Corrected ‘Releases’ Link: Fixed an issue where the ‘Releases’ button in the user menu directed to an incorrect URL, now correctly linking to the Open WebUI GitHub releases page.
- 🛠️ Resolved Model Sorting Errors with Null or Undefined Names: Fixed multiple “TypeError” instances that occurred when attempting to sort model lists where model names were null or undefined. The sorting logic across various UI components (including Ollama model selection, leaderboard, and admin model settings) has been made more robust by gracefully handling absent model names, preventing crashes and ensuring consistent alphabetical sorting based on available name or ID.
- 🎨 Resolved Banner Dismissal Issue with Iteration IDs: Fixed a bug where dismissing banners could lead to unintended multiple banner dismissals or other incorrect behavior, especially when banners lacked unique iteration IDs. Unique IDs are now assigned during banner iteration, ensuring proper individual dismissal and consistent display behavior.
Changed
- 🛂 Environment Variable for Admin Access Control: The environment variable “ENABLE_ADMIN_WORKSPACE_CONTENT_ACCESS” has been renamed to “BYPASS_ADMIN_ACCESS_CONTROL”. This new name more accurately reflects its function as a control to allow administrators to bypass model access restrictions. Users are encouraged to update their configurations to use the new variable name; existing configurations using the old name will still be honored for backward compatibility.
- 🗂️ Core Directory Path Resolution Updated: The internal mechanism for resolving core application directory paths (“OPEN_WEBUI_DIR”, “BACKEND_DIR”, “BASE_DIR”) has been updated to use canonical resolution via “Path().resolve()”. This change improves path reliability but may require adjustments for any external scripts or configurations that previously relied on specific non-canonical path interpretations.
- 🗃️ Database Performance Options: New database performance options, “DATABASE_ENABLE_SQLITE_WAL” and “DATABASE_DEDUPLICATE_INTERVAL”, are now available. If “DATABASE_ENABLE_SQLITE_WAL” is enabled, SQLite will operate in WAL mode, which may alter SQLite’s file locking behavior. If “DATABASE_DEDUPLICATE_INTERVAL” is set to a non-zero value, the “user.last_active_at” timestamp will be updated less frequently, leading to slightly less real-time accuracy for this specific field but significantly reducing database write conflicts and improving overall performance. Both options are disabled by default.
- 🌐 Renamed Web Search Concurrency Setting: The environment variable “WEB_SEARCH_CONCURRENT_REQUESTS” has been renamed to “WEB_LOADER_CONCURRENT_REQUESTS”. This change clarifies its scope, explicitly applying to the concurrency of the web loader component (which fetches content from search results) rather than the initial search engine query. Users relying on the old environment variable name for configuring web search concurrency must update their configurations to use “WEB_LOADER_CONCURRENT_REQUESTS”.
[!TIP]
Looking for an Enterprise Plan? – Speak with Our Sales Team Today!Get enhanced capabilities, including custom theming and branding, Service Level Agreement (SLA) support, and more!
👏 Massive thanks to our incredible contributors for their hard work and dedication to making this release possible: @timovanasten, @mahenning, @olivier-lacroix, @FukkenShit, @PeterDaveHello, @BoFFire, @adamoutler, @silentoplayz, @Classic298, @koflerm, @Gyarbij, @expruc, @decent-engineer-decent-datascientist, @kahghi, @Kylapaallikko, @athoik, @rgaricano, @Rain6435, @ShirasawaSama, @0xThresh, @SebastienLentzAM, @tremlin, @tcx4c70, @joaoback
Sponsors 🙌
🚀 We’d like to extend a heartfelt thank you to our amazing sponsors for their generous support (Note: We’ve excluded private sponsors from this list. If you’d like to get featured here, feel free to reach out to us!)
Emerald
@amd, @agency-agency, @roosi-gmbh, @feddersen-group, @SRKConsulting, @mushmax, @rndmcnlly, @icanbwell, @Krambu-Travis, @loitragg, @GenieDev101, @CubicleGangster, @GitDatamind, @TOWaB, @TheZigGroup, @Classic298, @comet-ml, @FominVO, @catalyst-net-nz, @JrdnHans, @hkosm, @VeroFess