[Idea] 图片上传被模型目录能力硬性拦截:主模型无视觉模态时也应允许附件(以链接/路径交给工具处理,类似 opencode 做法) #1378
Replies: 3 comments
|
同意——主模型无视觉时附件应允许以链接/路径交给工具处理(opencode 做法),而不是硬拦。这和社区视觉桥方案(#1153 路由/#1269 GLM MCP)是同一需求的两面。模型能力边界处理我们第 8 章有整理:https://github.com/Electricitysheep/dsh-handbook/blob/main/docs/08-tools-context.md koboldcpp 视觉插件已收录进手册生态章节。 |
补充:一个可落地的通用方案设计(对齐 Hermes / opencode 的 text-mode 图片降级)同意楼主的分析——根因是 一、核心思路:区分"主模型原生视觉"与"工具视觉"
这正是 Hermes 二、建议的配置形态在 settings 增加一个枚举: agent:
imageInputMode: auto # auto | native | text
配套的 vision 描述后端(可复用现有 llm 服务,指向任意已注册 provider/model): auxiliary:
vision:
provider: dashscope # 或 local-koboldcpp / openrouter 等
model: qwen3.5-ocr三、实现位置(关键:必须在入站检查之前/之内降级)
四、为什么纯插件方案不充分(回应评论区"不换模型无法 hook")图片被拒发生在 五、参考实现我已在本地跑通一个最小实现(DSH 0.1.0-rc.6 + deepseek-v4-flash + DashScope qwen-vision 识别),效果:上传图片 → 不再被拒 → 图片落盘 → 模型收到
六、对官方的最小改动清单(若采纳)
补充人:xujipm(本地跑通验证,非官方人员) |
|
补充更新:参考实现已升级为官方风格(host 层配置驱动降级,不改 adapter)。 关键调整:
Gist 已更新为多文件参考实现(含完整源码 + patch + vitest 测试):
核心判定逻辑(auto 模式):模型支持 image → 原生;不支持 → 配置了 vision 后端 → 降级 text;否则保持现状拒绝。这样默认行为不变(fail-closed),需要工具型视觉的用户显式 opt-in,社区插件(koboldcpp_vision 等)也能在图片入会话后拿到 attachment 引用。 |
Uh oh!
There was an error while loading. Please reload this page.
背景
我是 dsh-koboldcpp-hands 插件的作者。该插件为 dsh 提供 koboldcpp_run / koboldcpp_vision 两个工具,把 OCR、图片分析、多图对比等视觉任务交给本地 KoboldCpp 多模态模型处理。其中 koboldcpp_vision 的一个重要输入来源就是"当前会话附带的图片"(通过 attachment 服务读取)。
问题
当用户在主对话中上传图片时,如果当前主模型在 pi-ai 模型目录中声明的 input 模态不包含 "image"(例如 opencode-go 下的 deepseek-v4-flash / deepseek-v4-pro,目录声明 "input": ["text"]),服务端会在消息进入会话之前直接拒绝整条消息:
对工具型视觉工作流不友好
建议
复现
相关社区反馈
社区里已有类似声音("聊天框的输入检测比插件的时机更早,不换模型无法 hook"、"多模态模型放进 dsh 壳子无法视图"),说明这不是个例。希望官方考虑放宽这个限制,给视觉工具类插件留出空间。谢谢!
All reactions