Seryta
llm-deepseek-image-admit
No description
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 14, 2026
- Updated
- Aug 14, 2026
Introduction
llm-deepseek-image-admit — DeepSeek 图片准入
DSH 插件:接管 DeepSeek 官方 provider 路由,给模型元数据补 image 输入模态
声明,让图片消息通过 apiproxy 的准入预检。图片真正进入 agent 循环后由
image-bridge(或同类插件)在
agent/pre-step 转成文字——DeepSeek API 永远不会收到图片。
为什么存在
DeepSeek 官方模型声明 inputModalities: ['text'],apiproxy 在图片消息进入
agent 循环前按此拒绝(MODEL_DOES_NOT_SUPPORT_IMAGES)。harness 的三处图片
门禁(发送预检 / 切换模型检查 / read_image 工具)全部由
adapter.resolveModel 返回的 inputModalities 驱动,因此只包装
resolveModel 即完整解锁,无需改 listModels 或其他面。
方案
- 禁用官方
@deepseek-ai/dsh-llm-deepseek行(cordis.patch.yml 已带), 由本插件接管同一 provider 路由deepseek-official——对用户透明, 模型选择器不变; - 本插件 = 官方 apply 逻辑的照抄(同一配置面 / settings 集成 / 凭证解析),
唯一差异:
resolveModel返回{ ...info, inputModalities: ['text', 'image'] }; - 直接 import dsh 安装树里已构建的官方产物,零 pnpm / 零构建。
安装
dsh plugin --profile web add github:Seryta/llm-deepseek-image-admit
安装后重启 dsh web。
安装树位置:默认按 ~/.npm-global/lib/node_modules/@deepseek-ai/dsh
推导;dsh 装在其他位置时设置环境变量 DSH_NPM_ROOT(dsh 安装根,
其下 node_modules/@deepseek-ai/...)。
上游漂移与检测
本插件照抄官方 apply glue(见 upstream-baseline.txt 基线快照)。升级 dsh 后
运行漂移检测:
node diff-upstream.mjs
脚本核对三件事:① DeepSeekAdapter / resolveAdapterOptions / Config 三个
import 符号仍存在;② resolveModel(provider, model, signal) 签名未变;
③ 基线关键 apply 片段仍在官方产物中。任一不满足则非零退出,按输出提示
更新本插件或基线。缺省官方产物路径按 homedir 推导,可用 DSH_NPM_ROOT
覆盖,或把官方产物路径作为第一个参数传入。
与同类解法的差异
| 项目 | 暴露方式 | 本插件的取舍 |
|---|---|---|
| dsh-vision-proxy | 注册新 provider route,需手动切换模型 | 本插件接管官方路由,对用户零切换透明 |
| modlens | 生成模型变体入口 | 本插件不新增模型入口 |
取舍代价:照抄官方 apply glue 有升级漂移面,由 diff-upstream.mjs 兜底;
若官方大改配置面需同步本插件。
已知限制
- 本插件只放行图片、不转录图片;不搭配 image-bridge 等 pre-step 转录 插件时,图片会带着原始图片块到达 DeepSeek 适配器被 API 拒绝。
- 依赖官方包产物路径布局(
node_modules/@deepseek-ai/dsh-llm-deepseek等); dsh 改变安装布局时用DSH_NPM_ROOT适配。
License
MIT