You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Some models offer thinking as a plain on/off switch with no intensity levels. Xiaomi MiMo V2.6 (Pro / Flash) is one: per its official docs, the only thinking control is thinking.type (enabled / disabled, on by default) — there is no reasoning_effort.
Configuring it through llm-pi-ai works:
reasoningEfforts: { off: none, high: high } # with compat.thinkingFormat: deepseek, supportsReasoningEffort: false
The wire is exactly right (Off → thinking.type: disabled, High → enabled), but the UI shows Off / High for what is really On / Off.
Why (0.1.7-rc.2)
Level ids are limited to pi-ai's fixed set (off / minimal / low / medium / high / xhigh / max, packages/llm/llm-pi-ai/src/catalog.ts:74); there is no on.
The display name is the capitalized id and cannot be configured (packages/llm/llm-pi-ai/src/adapter.ts:197).
LlmReasoningEffortInfo.name is a plain string that the model picker renders as the label (packages/client/ui-model-selection/src/client/ModelSelect.tsx:102-116), with no per-id localization in between — also the root of the missing Chinese labels in [i18n] Request Chinese translation for reasoning effort options #6117.
A plugin cannot fix it: names are produced in the adapter's resolveModel and passed through the llm service to the UI with no interceptable event or slot, and locale dictionaries reject a second registration for the same namespace.
Proposal
A. Let configuration declare a display name per level (deployment-controlled, backward compatible)
Accept an object as well as a string in reasoningEfforts:
The existing string form (high: high) keeps working, and a level without name keeps today's capitalized id. name may be a plain string or a per-locale object.
B. Localize effort labels by id in the model picker (also resolves #6117)
Add effort.off / low / medium / high / max … keys (and a real Chinese effort.providerDefault, which is "Default" in both dictionaries today) to ui-model-selection, looked up by id with the adapter's name as the fallback for unknown ids.
When a model offers off plus exactly one level, label them Off / On (关 / 开).
A gives deployments exact names for specific models; B gives every model localized labels by default. They are complementary; either one solves this.
Current state
In Mio, a MiMo desktop app built on DeepSeek Harness, we set reasoning: high to drop the "Default" entry that only repeated High, so the menu now shows Off / High — but the names still cannot say On / Off.
Related: #6117 (effort label localization), #6389 (per-model thinking levels for pi-ai routes), #4627 (per-model default thinking level in llm-pi-ai).
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
背景
有些模型的思考只有「开 / 关」两档,没有强度分级。例如小米 MiMo V2.6(Pro / Flash):官方文档中控制思考的唯一参数是
thinking.type(enabled/disabled,默认开启),没有reasoning_effort。用
llm-pi-ai接入时,配置本身没有问题:请求层完全正确(Off →
thinking.type: disabled,High →enabled),但界面上显示的是 Off / High,而用户实际面对的是「开 / 关」。原因(0.1.7-rc.2)
off / minimal / low / medium / high / xhigh / max,packages/llm/llm-pi-ai/src/catalog.ts:74),没有on。packages/llm/llm-pi-ai/src/adapter.ts:197)。LlmReasoningEffortInfo.name是普通字符串,模型选择器直接把它当作标签渲染(packages/client/ui-model-selection/src/client/ModelSelect.tsx:102-116),中间没有按 id 本地化——这也是 [i18n] Request Chinese translation for reasoning effort options #6117 提到的中文缺失的根源。resolveModel中生成,llm服务校验后直接交给界面,中间没有可拦截的事件或插槽;locale 字典也不允许其他插件覆盖同一命名空间。建议
A. 允许在配置里声明每档的显示名(部署方可控,向后兼容)
reasoningEfforts的值除字符串外,也接受对象:仍接受现有的字符串写法(
high: high),未声明name时沿用现在的首字母大写规则。name可以是字符串,也可以是按 locale 区分的对象。B. 模型选择器按等级 id 本地化(同时解决 #6117)
ui-model-selection的 locale 中加入effort.off / low / medium / high / max …以及effort.providerDefault的中文(目前中英文都是 "Default"),按 id 查找,未知 id 回退到适配器给的名称。off+ 一档时,自动显示为「关 / 开」(Off / On)。A 让部署方为特定模型给出准确的名称;B 让所有模型默认就有本地化的显示。两者互不冲突,任选其一都能解决问题。
现状
我们在 Mio(基于 DeepSeek Harness 构建的 MiMo 桌面应用)中通过配置
reasoning: high去掉了与 High 重复的 "Default" 项,菜单现在只剩 Off / High,但名称仍无法改成「开 / 关」。相关讨论:#6117(等级名称本地化)、#6389(pi-ai 按模型声明思考等级)、#4627(llm-pi-ai 按模型设置默认思考等级)。
Background
Some models offer thinking as a plain on/off switch with no intensity levels. Xiaomi MiMo V2.6 (Pro / Flash) is one: per its official docs, the only thinking control is
thinking.type(enabled/disabled, on by default) — there is noreasoning_effort.Configuring it through
llm-pi-aiworks:The wire is exactly right (Off →
thinking.type: disabled, High →enabled), but the UI shows Off / High for what is really On / Off.Why (0.1.7-rc.2)
off / minimal / low / medium / high / xhigh / max,packages/llm/llm-pi-ai/src/catalog.ts:74); there is noon.packages/llm/llm-pi-ai/src/adapter.ts:197).LlmReasoningEffortInfo.nameis a plain string that the model picker renders as the label (packages/client/ui-model-selection/src/client/ModelSelect.tsx:102-116), with no per-id localization in between — also the root of the missing Chinese labels in [i18n] Request Chinese translation for reasoning effort options #6117.resolveModeland passed through thellmservice to the UI with no interceptable event or slot, and locale dictionaries reject a second registration for the same namespace.Proposal
A. Let configuration declare a display name per level (deployment-controlled, backward compatible)
Accept an object as well as a string in
reasoningEfforts:The existing string form (
high: high) keeps working, and a level withoutnamekeeps today's capitalized id.namemay be a plain string or a per-locale object.B. Localize effort labels by id in the model picker (also resolves #6117)
effort.off / low / medium / high / max …keys (and a real Chineseeffort.providerDefault, which is "Default" in both dictionaries today) toui-model-selection, looked up by id with the adapter's name as the fallback for unknown ids.offplus exactly one level, label them Off / On (关 / 开).A gives deployments exact names for specific models; B gives every model localized labels by default. They are complementary; either one solves this.
Current state
In Mio, a MiMo desktop app built on DeepSeek Harness, we set
reasoning: highto drop the "Default" entry that only repeated High, so the menu now shows Off / High — but the names still cannot say On / Off.Related: #6117 (effort label localization), #6389 (per-model thinking levels for pi-ai routes), #4627 (per-model default thinking level in llm-pi-ai).
All reactions