dsh-doubao-plugin
文件与数据 活跃维护

dsh-doubao-plugin

Practice019/dsh-doubao-plugin

依托本地Quicker转发豆包Web接口为本地API,提供动态搜索、图片生成、多模态识图功能,同时支持粘贴图片自动转存为本地路径,无需手动保存即可快速调用豆包能力。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
151 KB
仓库大小
28 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:Practice019/dsh-doubao-plugin
git clone https://github.com/Practice019/dsh-doubao-plugin.git
git clone git@github.com:Practice019/dsh-doubao-plugin.git
README.md master

Doubao DSH Plugin

npm version
license
GitHub release

DSH 插件:通过本地 Doubao Relay 提供 doubao_ask 动态搜索/图片生成/多模态识图工具,
并支持粘贴图片 → 本地路径(paste-to-path)。

功能

  • 联网搜索/实时信息:调用 http://127.0.0.1:56666/v1/chat/completions
  • 图片生成:豆包返回的图片以 markdown 图片链接(![描述](https://cdnimage-cache.doubi.ren/?url=https://...))放在 content 里,
    回复时保留即可在对话中直接显示。
  • 多模态识图:传入 image 参数(http(s) 图片 URL / base64 data URL / 本地图片文件路径,
    本地图片超过 512KB 自动压缩到 800px 宽再发送),豆包识图后返回文字描述。
  • 粘贴图片 → 路径(paste-to-path):复用 modlens 的验证实现。浏览器半部分(client.js)
    在捕获阶段拦截图片粘贴:先向 host 询问当前选中模型是否纯文本(GET /doubao-paste?model=<标签>
    host 用真实模型元数据判定),确认后把图片字节 POST 到 /doubao-paste
    保存为私有临时文件(<temp>/doubao-dsh-paste/p-*/paste<ext>,magic bytes 校验、25MB 上限、
    7 天 + 1GB 总量自动清扫),返回的路径文本插入输入框——文本模型不会触发
    "模型不支持图片"准入拦截。模型看到路径后调用 doubao_ask 并把 image 参数设为
    该路径即可让豆包识图。
  • 图片自动去重:同一张图的多个 CDN 镜像/模板变体(水印/原图等)折叠为唯一链接,
    优先保留 image_raw 原图变体;无法接收的非 http(s) 占位链接自动剔除。
  • 输出 images 字段:结构化返回去重后的图片列表 [{ url, alt }]
  • 每次请求强制 "new_conversation": true
  • 完整记录请求、响应等信息到日志和返回值。

安装

npm 一键安装:

dsh plugin --profile web add doubao-dsh-plugin

(本地开发路径安装:dsh plugin --profile web add /path/to/doubao-dsh-plugin

安装后重启 harness 生效。

前置要求:Doubao Relay(Quicker 转发)

本插件所有能力(搜索/生图/识图)都通过本地 Doubao Relay 的 OpenAI 兼容接口
http://127.0.0.1:56666/v1/chat/completions 实现。插件本身不包含 Relay
Quicker 软件把本地网页版豆包转发成 API 调用。

搭建步骤:

  1. 安装 Quicker。
  2. 下载共享动作:https://getquicker.net/Sharedaction?code=dcb55394-707e-4255-ed26-08de36f81a8a
  3. ⚠️ 该动作年久未更新、存在 bug,需把 c#code.txt 中的代码替换到动作里(端口保持
    56666),替换后重新运行动作,Relay 即监听 127.0.0.1:56666

替换代码的操作步骤:

  1. 在 Quicker 托盘/动作上右键,选择编辑
  2. 在步骤列表中找到运行 C# 代码步骤。
  3. 进入该步骤的编辑界面(运行模式选“普通模式 v2 (Roslyn)”),把 c#code.txt 中的
    代码整体替换脚本代码区,保存后重新运行动作。

右键动作菜单,选择“编辑”
步骤列表中高亮“运行 C# 代码”步骤
“运行 C# 代码”步骤的代码编辑界面

未启动 Relay 时,工具调用会报 Doubao Relay request failed

使用

  1. 模型会自动看到工具 doubao_ask
  2. 直接把图片粘贴到输入框:图片会被保存为本地路径文本插入消息,发送后模型会用
    doubao_askimage 参数 = 该路径)调豆包识图,把描述完整转述给你。
    ⚠️ 首次识图约需 15~20 秒(豆包 Relay 响应较慢)。
  3. 也可以在对话里直接要求"搜索 X / 生成一张 X 的图",模型会自动调用本工具。

参数

参数 类型 必填 说明
query string 要搜索或询问的问题
image string 要识别/分析的图片(URL / data URL / 本地路径)
system string 额外系统指令
timeoutMs number 超时毫秒数,默认 90000

技术说明

  • Host 半(index.mjs):注册 doubao_ask 工具 + /doubao-paste 路由
    (经 ctx.inject(['webServer'], ...) 可选挂载,headless 环境自动跳过)。
  • Client 半(client.js):复用 modlens 的拦截逻辑——document 捕获阶段 paste 监听 +
    focusin 预取 verdict;host 判定当前模型纯文本后才接管(preventDefault → POST → 路径插入)。
    通过 dsh.client 声明(exports["./client"])被 web 端加载。
  • 改动后需重启 harness 生效(client bundle 在启动时扫描装配)。