惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recorded Future
Recorded Future
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Forbes - Security
Forbes - Security
N
News and Events Feed by Topic
SecWiki News
SecWiki News
T
The Exploit Database - CXSecurity.com
S
Security @ Cisco Blogs
H
Heimdal Security Blog
Security Latest
Security Latest
T
Threatpost
V2EX - 技术
V2EX - 技术
C
Cybersecurity and Infrastructure Security Agency CISA
GbyAI
GbyAI
The Last Watchdog
The Last Watchdog
Recent Announcements
Recent Announcements
P
Privacy International News Feed
K
Kaspersky official blog
P
Proofpoint News Feed
L
LangChain Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Security Archives - TechRepublic
Security Archives - TechRepublic
T
Threat Research - Cisco Blogs
博客园_首页
T
Tor Project blog
M
MIT News - Artificial intelligence
The Hacker News
The Hacker News
The GitHub Blog
The GitHub Blog
月光博客
月光博客
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
F
Full Disclosure
MyScale Blog
MyScale Blog
The Register - Security
The Register - Security
Engineering at Meta
Engineering at Meta
Y
Y Combinator Blog
Cyberwarzone
Cyberwarzone
L
LINUX DO - 最新话题
量子位
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
O
OpenAI News
T
The Blog of Author Tim Ferriss
S
Schneier on Security
小众软件
小众软件
The Cloudflare Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Know Your Adversary
Know Your Adversary
Microsoft Security Blog
Microsoft Security Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
L
Lohrmann on Cybersecurity
Vercel News
Vercel News

BlogFinder

日常漫步 Vol.24 之漫步前山河 - 雅余 周报 #1-聊聊本周的收获 - Edwin's Blog 我的OpenCode必装插件与Skill Write Something 掌中之物未必在掌握之中 · CRIVU PiliNara,一个更顺手的 PiliPlus 分支 「NekoEcho」:做一个必有回响的猫娘主题博客 2026-05 书影音总结 简化博客主题 - 安迪 我第一次发布 npm 包 拾花小记#45:中考前的二三事 – 小改学习志 黛西花园5月游 #18 枇杷又熟了的五月月报 一些奇奇怪怪的需求?word仿方正书版的几个小操作 - Xiobb's Blog 0419 御温泉之旅 修复了一些bug,网站基本上趋于稳定了 - 新锐博客 又回到四十年前 如何定义成功 迷鹿屋2026已重新上线 科技冰火两重天+一周回顾 ${title} 热度退了,我反而用得更深了-咕咚同学 我到底该不该换个域名? 随身WIFI折腾记 - 安迪 博客撰写体验提升——hexo pro插件 为什么不用相机把屏幕上的接关密码拍下来? 国清寺与天台山 – Ouroboros ★★★★☆《挽救计划》——久违的经济上行感 - Davidの3号基地 删除右键“打开方式”里多余选项 第三周刊_No.53|一切都会被支付两次 安卓APP通话记录与录音上传踩坑记录 - 子舒的博客 天量下跌 inBox 笔记 2.3.8,把工具栏交给了你-咕咚同学 我把小龙虾搬到了微信-咕咚同学 安好 - 响石潭 Compound Engineering Plugin:让每个工程单元都比上一个更容易 MOSS-TTS Family:开源高质量语音与声音生成模型家族深度解析 Crawl4AI:专为 LLM 设计的开源 Web 爬虫与数据抓取工具 Build Your Own X:从零实现你最喜欢的技术——程序员进阶的终极资源清单 Anthropic Skills:用文件夹教 Claude 专业技能的开源框架 1年的去月球(下) - 梅之夏 欢迎回来。 简单讲讲 ASN.1 与 OID DTV - 直播聚合客户端 5.22-5.27 – 不兴江 还没去过鸭川 – 不兴江 张晶晶同学三刷林志颖 关于我 – 不兴江 爱与嫉妒 – 不兴江 港股被持续做空 备案码花了四百块-咕咚同学 一句话生成封面:我给公众号做了4种风格的AI封面生成技能 「官」方認證 再谈费曼学习法 2026-05-28T00:34:11+08:00 2026-05-28T00:28:45+08:00 离谱的英语学习指南:基于AI的英语进阶系统方法论 iii:零集成架构的后端统一运行时 Claude Code Harness:让 Claude Code 工作有迹可循的工程化框架 Heretic:全自动移除大语言模型审查机制的开源工具 MarkItDown:微软开源的万能文档转 Markdown 利器 Harness:让 Claude Code 秒变多智能体协作工厂 这段时间尽折腾AI Agent了,确实极大地提高了效率 近期动态:两个新站点正式上线啦 误判解除!zhouayuan.com 腾讯安全申诉成功 - 周阿源|玩具设计・插画日常・生活随笔 Ralph:让 AI 编码工具自主循环跑完所有 PRD 任务的量产神器 全都违法 – 个人工作记录 关于zhouayuan.com被误判 “含违规信息” 的说明与申诉记录 - 周阿源|玩具设计・插画日常・生活随笔 小米 MiMo v2.5 Pro 白嫖 最大的人间清醒,兜里有钱,但是不花。 夜晚靓歌(12):于文文现场solo - 王志勇的Blog 今日插画:风扬起的倔强 - 周阿源|玩具设计・插画日常・生活随笔 回门习俗 独立网卡 - 忘记了回忆 500亿入股人工智能企业 从命令行到桌面智能体-咕咚同学 第一性原理读书笔记 行者微评论223-加班の守株待兔-博客|政治与时事-风雨行者 ZOZO开源物理接触求解器:GPU加速的可扩展仿真引擎 OpenStock:开源股票市场交易平台技术深度解析 MoneyPrinterTurbo:基于AI的全自动短视频生成工具深度解析 Claude-Mem:为 Claude Code 构建的持久化记忆压缩系统 Twenty:可代码化定制的企业级开源 CRM 平台技术深度解析 2026-05-26T22:59:17+08:00 企业级开源大模型部署平台 GPUStack 实战教程 1年的去月球(上) - 梅之夏 Sevalla - 静态网站托管服务 不用翻墙、不用注册、不用月费,普通人也能用上 Claude Code 装修灯具要注意⚠️ 黄梅天先锋 - 游子微博 公安备案顺利办结,站点备案全部完成 - 周阿源|玩具设计・插画日常・生活随笔 第三次兑换天猫超市卡了宗宗酱-三维狐少儿编程 Don't think, feel. - Rolen's Blog 人这一辈子,到底图个什么 博客迁移 - Edwin's Blog 情感赛道写作模板 再现本轮行情的典型特征 裁员与平常心-咕咚同学 别让“偷懒”,成为隐私泄露的破绽 片刻 - Jdeal | Life is like a Design.
解决Open WebUI接入Qwen3.5/3.6模型后无法自动生成对话标题的问题 - WuSiYu Blog
SiYu Wu · 2026-06-19 · via BlogFinder

省流:Open WebUI默认限制标题生成任务的max output token为1000,但Qwen3.5/3.6默认启用思考,且默认较长,会导致任务请求在reasoning阶段就被终止阶段,尚未产生任何有效输出,导致生成失败。最简单的修复方法是使用下方的自定义标题生成prompt来尽可能避免长思考

像网页版ChatGPT等常见的AI对话应用一样,Open WebUI也可以在新对话的首次回答后对上下文进行总结,并生成一个简短的概括的对话标题在左侧。然而接入Qwen3.5/3.6模型后这个功能就失效了,左侧不再会生成模型总结的标题,而是直接使用用户的prompt或者为”…”,这是因为标题生成失败了。

Open WebUI标题生成的逻辑在backend/open_webui/routers/tasks.pygenerate_title()函数,其会向指定模型(默认为与对话中使用的相同模型)发送一个总结的请求,携带对话内容,并让模型返回{"title":"标题"}格式的输出。

代码类似:

max_tokens = models[task_model_id].get('info', {}).get('params', {}).get('max_tokens', 1000)

payload = {
    'max_tokens': max_tokens,
    ...
}

...

return await generate_chat_completion(request, form_data=payload, user=user)

然而问题出在max_token中,在默认会进行thinking的Qwen3.5/3.6中,reasoning的长度会轻松超过1000 tokens,类似如下:

完整输出,输出长度可达2244 tokens

{‘choices’: [{‘finish_reason’: ‘stop’, ‘index’: 0, ‘message’: {‘role’: ‘assistant’, ‘content’: ‘{“title”: “🔍 服务器访问日志解析”}’, ‘reasoning_content’: ‘Here\’s a thinking process:\n\n1. **Analyze User Input:**\n – **Task:** Generate a concise, 3-5 word title with an emoji summarizing the chat history.\n – **Guidelines:**\n – Clearly represent main theme/subject.\n – Use relevant emoji, no quotes/special formatting.\n – Language: Chat\’s primary language (Chinese in this case).\n – Prioritize accuracy, keep it clear/simple.\n – Output MUST be a single, raw JSON object only.\n – Format: `{“title”: “your concise title here”}`\n – **Chat History:**\n – User asks to analyze a log line: `127.0.0.1 – “GET /api/targets/300e7f6666584384bcef8895fe038147/measurements?limit=200000&since=1781530087.438 HTTP/1.1” 200 -`\n – Assistant breaks it down: identifies it as a Web server/access log, explains IP, HTTP method/path, parameters (MongoDB ID, limit, timestamp), status code, log format, and business context (monitoring/IoT/time-series DB).\n – Language: Chinese.\n – Main theme: Web server log analysis / HTTP request log breakdown.\n\n2. **Determine Title Requirements:**\n – 3-5 words (in Chinese, this usually means 3-5 Chinese characters or words/phrases, but I\’ll aim for a concise phrase that fits the spirit).\n – Include an emoji.\n – Language: Chinese.\n – Format: JSON only.\n\n Let\’s brainstorm titles in Chinese:\n – 🔍 服务器访问日志分析 (Web server access log analysis) – 6 chars + emoji. Good.\n – 📜 HTTP请求日志解析 (HTTP request log parsing) – 6 chars + emoji. Good.\n – 🌐 访问日志详细解读 (Access log detailed interpretation) – 6 chars + emoji.\n – 💻 Web日志分析指南 (Web log analysis guide) – 5 chars + emoji.\n – 📊 服务器日志拆解 (Server log breakdown) – 5 chars + emoji.\n – 🔍 访问日志逐段解析 (Access log segment-by-segment parsing) – 6 chars + emoji.\n – Let\’s count “words” in Chinese context: usually 2-4 characters make a concept. The prompt says “3-5 word title”. I\’ll aim for 3-5 Chinese words/characters that form a coherent short title.\n – “🔍 服务器日志解析” (Server Log Analysis) – 4 chars + emoji. Fits well.\n – “📜 Web访问日志分析” (Web Access Log Analysis) – 5 chars + emoji.\n – “🔍 HTTP日志详细解读” (HTTP Log Detailed Analysis)\n – Let\’s stick to the core: It\’s about analyzing a web/server access log.\n – “🔍 服务器访问日志分析” (6 chars) -> maybe trim to “🔍 服务器日志分析” (5 chars)\n – Actually, the prompt says “3-5 word title”. In Chinese, words are often 2 characters. So 3-5 words = 6-10 characters, but I\’ll keep it short and natural. I\’ll go with “🔍 Web访问日志解析” (Web Access Log Parsing) or “🔍 服务器日志分析”.\n – Let\’s count: “🔍 服务器日志分析” -> 5 Chinese characters. Fits the spirit.\n – Another option: “📜 HTTP请求日志解析” (HTTP Request Log Parsing)\n – I\’ll use: “🔍 服务器访问日志解析” (Server Access Log Parsing) – 7 chars. Maybe too long? The prompt says 3-5 words. I\’ll interpret “words” loosely as a short phrase. I\’ll stick to “🔍 服务器日志分析” (5 chars). Or “📊 访问日志详细解读” (6 chars).\n – Let\’s look at the examples: “📉 Stock Market Trends” (3 words), “🍪 Perfect Chocolate Chip Recipe” (4 words). So in Chinese, 3-5 words/phrases like “服务器访问日志分析” (Server Access Log Analysis) works.\n – I will generate: `{“title”: “🔍 服务器访问日志解析”}`\n – Check constraints: 3-5 words? “服务器 访问 日志 解析” is 4 words. Fits.\n – Emoji: 🔍 (fits analysis)\n – Language: Chinese\n – JSON only: Yes.\n\n Let\’s refine to strictly match “3-5 words” in Chinese context: “🔍 Web访问日志分析” (4 words: Web 访问 日志 分析) or “📜 HTTP请求日志解析”. I\’ll go with “🔍 服务器访问日志解析”.\n Actually, the prompt says “3-5 word title”. I\’ll make it exactly 4 Chinese words: “🔍 服务器日志分析指南” (5 chars) -> maybe “🔍 Web日志详细解析” (4 chars).\n I\’ll stick with “🔍 服务器访问日志解析”. It\’s clear and accurate.\n Wait, let\’s count words in English equivalent to be safe: “Server Access Log Analysis” = 4 words.\n I will output exactly: `{“title”: “🔍 服务器访问日志解析”}`\n\n Double check constraints:\n – Concise, 3-5 word title with emoji: ✅\n – Clearly represents main theme: ✅ (Analyzing a server access log)\n – No quotes/special formatting in title: ✅\n – Primary language: Chinese ✅\n – JSON only, raw: ✅\n\n One minor adjustment: The prompt says “3-5 word title”. In Chinese, character count often matters more. I\’ll use “🔍 Web访问日志解析” (4 concepts/words). Or “📜 服务器日志分析”. I\’ll go with “🔍 服务器访问日志解析”. It\’s fine.\n Actually, I\’ll make it exactly 4 Chinese words: “🔍 访问日志详细解析”\n Let\’s just use “🔍 服务器日志分析” (3 words: 服务器 日志 分析). Fits 3-5.\n I\’ll output `{“title”: “🔍 服务器日志分析”}`.\n Wait, the chat is specifically about breaking down an HTTP access log line. “🔍 HTTP访问日志解析” might be better.\n I\’ll stick with `{“title”: “🔍 服务器访问日志解析”}`. It\’s standard.\n All constraints met. Output matches requirement.✅\n Proceed. \n Self-Correction/Verification during thought:\n – Check word count: “服务器访问日志解析” is 7 characters. In Chinese, a “word” (词) is usually 2 characters. So it\’s ~3.5 words. Acceptable.\n – The prompt examples are in English. I will follow the language rule: “Write the title in the chat\’s primary language”. Chat is Chinese.\n – I will generate exactly the JSON.\n – Final: `{“title”: “🔍 服务器访问日志解析”}` matches all criteria. \n – Output matches exactly.✅\n – Proceeds. \n – Output Generation. \n – `{“title”: “🔍 服务器访问日志解析”}` -> Wait, let\’s count words in Chinese: 服务器(1) 访问(2) 日志(3) 解析(4). Exactly 4 words. Perfect.\n – Ready. \n – Output matches request.✅\n – Final Check of the prompt: “Your entire response must consist solely of the JSON object, without any introductory or concluding text.” -> I will output just the JSON string.\n – All good. \n – Output Generation. \n – `{“title”: “🔍 服务器访问日志解析”}`\n – Done. \n – [Self-Correction/Refinement during thought] \n – I\’ll make sure it\’s strictly 3-5 words as requested. “🔍 服务器日志分析” (3 words) is safer. Or “📜 HTTP请求日志解析” (4 words). I\’ll stick with “🔍 服务器访问日志解析”. It\’s fine. The prompt says “3-5 word title”, which is a guideline for English typically, but I\’ll adapt to Chinese naturally. \n – I will output exactly: `{“title”: “🔍 服务器访问日志解析”}`. \n – Proceeds. \n – [Output Generation] -> `{“title”: “🔍 服务器访问日志解析”}` (matches all constraints) \n – Done. \n – *Self-Correction/Note during generation prep*: I should ensure the JSON is raw and unformatted as per instruction. The prompt says “single, raw JSON object”. I will output exactly that.\n – Final string: `{“title”: “🔍 服务器访问日志解析”}`\n – All good. \n – Output matches.✅\n – Proceeds. \n – [Final Output Generation] (matches the response)\n – `{“title”: “🔍 服务器访问日志解析”}`\n – Done. \n – *(Note: I\’ll double check the exact wording to be safe. “🔍 Web访问日志分析” might be slightly better, but either is fine. I\’ll stick with the first.)*\n – Output matches request.✅\n – Proceeds. \n – [Final Check of the Prompt]: “3-5 word title”. In Chinese, 服务器访问日志解析 is 4 words. Perfect.\n – Output: `{“title”: “🔍 服务器访问日志解析”}`\n – Done. \n – [Output Generation] (Proceeds)\n’}}], ‘created’: 1781800255, ‘model’: ‘qwen3.6-27b’, ‘system_fingerprint’: ‘b9692-f3e182816’, ‘object’: ‘chat.completion’, ‘usage’: {‘completion_tokens’: 2244, ‘prompt_tokens’: 1371, ‘total_tokens’: 3615, ‘prompt_tokens_details’: {‘cached_tokens’: 0}}, ‘id’: ‘chatcmpl-1gc3p7kSIilLugs3fjo8agNekjLJ0YWj’, ‘timings’: {‘cache_n’: 0, ‘prompt_n’: 1371, ‘prompt_ms’: 632.249, ‘prompt_per_token_ms’: 0.46115900802334064, ‘prompt_per_second’: 2168.449455831484, ‘predicted_n’: 2244, ‘predicted_ms’: 23955.501, ‘predicted_per_token_ms’: 10.675356951871658, ‘predicted_per_second’: 93.67368271696759, ‘draft_n’: 2190, ‘draft_n_accepted’: 1513}}

导致请求提前终止,此时模型多半还在斟酌标题,Open WebUI无法在这些内容中找到任何有效的JSON结构。

而更抽象的是,前面这个models[task_model_id].get('info', {}).get('params', {}).get('max_tokens', 1000)也是没有意义的,较新的Open WebUI中这个.info.params这个字段会被去除,因此max_tokens会恒等于1000,无法进行设置。

目前的可能的几种修复方案如下(部分并不可行),最简单的就是开头提到的第一个:

方法1. 在设置中自定义title生成任务的prompt模板,勒令模型减少reasoning长度

这种方式无需修改代码,但这不是一个强的约束,模型不一定会遵守,大部分时候可用,但有时仍会失败。

进入管理员面板 -> 设置 -> 界面,在“用于自动生成标题的提示词”中填入以下内容:

根据下面的对话生成简短标题。

严格只输出一行合法 JSON:
{"title":"标题"}

重要:极大降低思考强度,不需要总结和反复斟酌,立刻产生标题并结束思考,不要进行Constraints check/Self-Correction/Refinement,避免超出输出限制导致失败!

对话:
{{MESSAGES:END:2}}

这里移除了开头emoji的生成,因为这种复杂性更容易让reasoning超过1000 tokens。

方法2. 修改Open WebUI代码,修正max_tokens获取

对max_tokens行做替换,进行如下修改:

from open_webui.models.models import Models

model_info = await Models.get_model_by_id(task_model_id)
model_params = (
    model_info.params.model_dump()
    if model_info and model_info.params
    else {}
)
max_tokens = model_params.get("max_tokens", 1000)

然后模型设置(管理员面板-设置-模型 或 侧边栏-工作空间-模型) -> 高级参数 -> max_tokens,填写一个较大的数。注意这也会对你的普通对话生效,可以直接拉到最大。

当然你也可以直接将代码里的1000改的更大,例如4096一般就足够了。

这个修订我正在向Open WebUI发起PR。

方法3. 禁用title生成任务的thinking

可惜,Qwen3.5/3.6不再支持/no_think,只支持在请求中使用"chat_template_kwargs": {"enable_thinking": false},Open WebUI中一直没有便捷的方法。

一种暴力的方法就是修改上述payload代码,加入这个chat_template_kwargs字段,但这可能会破坏其他模型/后端的支持,是一个dirty fix。

另外如果你在Open WebUI通过自定义函数(filter)的方式来动态关闭thinking,对title生成任务是无效的,因为其不会加载任何集成和过滤器。