dsh-tauri-model-config 接管嵌入式 Harness 的设置 → 模型页。它注册与官方页面相同的
settings.section/models 分区,并在补丁层关闭官方入口 ui-settings-models:两者声明的槽位互斥,
不能同时启用。你看到的仍是同一页,只是多了官方不提供的配置项。
比官方页面多出的操作
单行的获取配置只补空缺字段,不会覆盖你已填写的值。
图片输入与思考模式
图片输入开关写入该模型的input 声明。思考模式开关打开时保留该行已有档位;没有档位时写入
off、low、medium、high,并展开 off 到 max 的逐档勾选项——勾上即写入该档位,取消即移除。
取消到空表时写入 false,表示显式声明“不支持思考”。
两个开关都只表达显式声明。字段缺席表示“继承默认”,此时开关读为关,所以打开再关闭不会把
“未表态”变成否定声明。
关闭 Developer 角色
声明了档位不等于档位能到达端点。pi-ai 默认把档位放进顶层的reasoning_effort,并在模型具备思考能力时
把系统提示的角色从 system 换成 developer;而 vLLM 这类 OpenAI 兼容端点从 chat_template_kwargs
读思考参数、也不接受 developer,于是出现“档位选了没反应”和整轮 Unexpected message role.。
关闭 Developer 角色一次写入这类端点需要的三项 compat:
compat 在 pi-ai 里逐协议校验,thinkingFormat 与 chatTemplateKwargs 只有 openai-completions 收。
因此该开关只在路由显式声明 openai-completions 时出现;目录路由(协议由内置目录决定)不提供。
关闭只摘掉这三项,条目里其它 compat 键与 chat template 参数原样保留。
容量从哪里来
容量按两条通道取值,先直连再回退:- 宿主直连
GET /endpoint/models:宿主按当前 profile 解析端点与凭据,请求{baseURL}/models并归一化容量。 - 官方发现通道
remote.llm.discoverModels(settingsNs, probe):覆盖端点地址不在用户设置里的提供方,例如内置的 DeepSeek 官方路由。
GET /presets:宿主在第一次需要时下载
LiteLLM 的模型价目表,压成 模型 id → [支持图片, 支持思考, 最大输入, 最大输出] 后缓存在
$DSH_HOME/dsh-tauri-model-config/model-presets.json,一天内直接用缓存;上游不可达时先用过期缓存,
完全没有缓存时退回家族命名规则。
并入草稿时的优先级:
- 容量以端点披露为准;端点没有披露时用能力表的值,已有值不会被能力表覆盖。
- 图片与思考先看能力表,表没给出“能”的结论时由家族规则按命名补一条,只做加法。
- 能力表里的
0表示“数据集没有给出这项事实”,不是“不支持”,因此不会被写成显式的reasoningEfforts: false或input: ['text']。
宿主路由
数据与边界
- 请求事实来自表单当前显示的值(
provider、baseURL、api,以及已输入但未保存的apiKey)。凭据只在宿主侧解析,响应里不回显,也不进 URL。 - 能力表需要一次网络请求:原始数据集约 2.6 MB,压缩后约 72 KB 落盘。离线且从未下载过时,只剩家族规则能补图片与思考能力,容量仍由端点清单提供。
- 模型配置文件按
$DSH_HOME(非空白)→~/.dsh解析后取settings.yaml。如果 profile 的cordis.yml为settings-file配了自定义path,插件无法感知。 - 文件不存在时打开的是它所在的目录,不会替你创建一个空文档。
- 图片能力是社区口径的近似值,随时可以在高级区改;单行的获取配置不会覆盖手写值。
- 插件没有操作系统沙箱,只在 Harness 与桌面端允许的权限范围内运行;它会读写 Harness 设置文档。