dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
一个常驻型 DeepSeek Harness 插件,让纯文本的 DeepSeek 模型获得图像理解能力:在聊天框上传图片(回形针按钮或拖拽),插件会调用你配置的视觉模型 API(OpenAI 兼容或 Google Gemini),将识别出的文本回填到对话中,让 DeepSeek 能够回答关于图片的问题。
这是动态插件的常驻、开源版本——一个真实安装到 DSH 配置文件中的包:配置可跨重启保留(存储于 $DSH_HOME/settings.yaml),UI 使用 DeepSeek Harness 原生组件库(dsh-client-ui-primitives)与主题令牌(--dsw-*),不使用任何 emoji——所有图标均为原生 DSH SVG 图标。
vision_lookup 工具——DeepSeek 可在对话中主动询问已上传图片的信息settings 服务持久化($DSH_HOME/settings.yaml)webServer、settings、subprocess 与 tools 主机服务)pnpm install
pnpm build
产物:lib/index.js(主机端)与 lib/client.js(浏览器端 bundle)。
将整个包复制到配置文件的 node_modules 中,例如默认的 web 配置:
cp -r dsh-vision-bridge "$DSH_HOME"/profiles/web/node_modules/dsh-vision-bridge
($DSH_HOME 通常为 ~/.dsh,例如 C:\Users\你的用户名\.dsh。)
在该配置文件的 cordis.patch.yml(与 cordis.yml 同级、在每次 bundle 层之后应用的文件)中注册插件行。追加一条 insert 条目——单行即可同时激活两端:主机加载器加载 lib/index.js(Node 端),dsh-client-modules 拾取 dsh.client 声明并向浏览器提供 lib/client.js:
# $DSH_HOME/profiles/web/cordis.patch.yml
- insert:
- id: vision-bridge
name: 'dsh-vision-bridge'
注意:主机
webServer行(@deepseek-ai/dsh-host-webserver)必须已在配置文件中挂载(出厂的 web-app bundle 中已包含)。不要重复添加webServer行。
重启 DSH(dsh --profile web)并打开 Web UI。
/chat/completions(OpenAI 风格,如 https://open.bigmodel.cn/api/paas/v4)或 :generateContent(Gemini)会自动追加glm-4v-flash、glm-4.6v、gpt-4o-mini、qwen-vl-max、gemini-2.0-flash)vision_lookup 工具来询问已上传图片的信息。浏览器端 (lib/client.js) 主机端 (lib/index.js)
────────────────────────────── ─────────────────────────────────
回形针按钮 / 拖拽 fetch JSON API /vision-bridge/api/*
预览卡片 ──────────────────────────► (webServer 路由,POST)
│ settings 服务 ─► settings.yaml
▼ subprocess 服务 ─► curl ─► 视觉 API
vision_lookup 工具 ◄──── tools.register ──┘ (回答文本回传给模型)
为什么用 curl + subprocess?动态插件沙箱中没有 fetch,而且产品 web 服务只支持搜索,因此由主机通过 curl 以 stdin 传入 JSON body 发起 HTTP 请求(避免多兆字节图片触发命令行长度限制)。静态浏览器端使用普通 fetch 调用同源 JSON API。
$DSH_HOME/settings.yaml(visionBridge 命名空间),从不回显到 UI。如需更严格的密钥管理,可切换至 credentials 服务。vision_lookup 引用;不会持久化到磁盘。glm-4.6)可能消耗大量推理预算——插件会发送 max_tokens: 4096,并在 content 为空时回退到 reasoning_content。MIT——详见 LICENSE。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。