dsh-chatnode-wechat v0.2.2
自 v0.2.1 以来的改进(脱敏标准不变:仓库内无真实凭据 / 个人微信 ID / 本机路径)。
新增
- 原生图片输入,与 OCR 可切换(适配 DeepSeek 4.1 多模态):微信收到的图片不再只能拿 OCR 文本,多模态模型会直接收到真正的
image内容块自己看图imageInput: auto(默认)按路由模型声明的inputModalities自动决定;native/ocr可强制- 新增命令
/识图 [auto|native|ocr],聊天内运行时切换(重启后回到配置值) imageInputModel可把「只用于图片」的路由钉到另一个模型:文字走便宜的、图片走视觉模型- 若聊天路由是纯文本,
auto会在其他已注册路由里自动寻找声明了图片输入的模型 - 两种模式都保留
[微信图片] <路径>前缀,会话日志可重放、模型之后仍能重读该文件
send_email工具:隐式 TLS 的纯文本 SMTP 客户端,可在聊天里直接让 agent 发邮件- 配置项
smtpHost/smtpPort/smtpUsername/smtpPassword/smtpFromName
- 配置项
其它
- 凭据加固:
client-config.json与account.json(运行时写到仓库根、含微信 token 明文)已加入.gitignore;二者历史上从未被提交 - 单元测试 72 → 86 项(新增
vision.test.ts10 项、email.test.ts4 项) - 首页 README 重写:改为「定位 → 30 秒上手 → 功能表 → 配置」结构,并把版本历史移入新增的
CHANGELOG.md - 新增
releases/目录,各版本发行说明随仓库分发 - 仓库改名后的 URL 同步:
PRTS168/dsh-chatnode-wechat→PRTS168/dsh-wechat-suite
注意
启用原生识图需要先在 DSH 的 settings.yaml 里给路由模型声明图片输入,否则图片根本不会发给模型:
llm-deepseek:
models:
- id: deepseek-flash
inputModalities: [text, image]该 models: 列表是整体替换插件内置目录、不是追加,需把你实际路由到的每个 id 都列上。原因是 DeepSeek 适配器的内置目录早于 4.1 多模态(把 deepseek-v4-flash 记为纯文本,唯一声明 image 的 deepseek-v4-flash-vision-exp 已下线)。
另:某路由真的拒过一次图片后会被抑制 3 小时、后续图片直接走 OCR——因为「声明」只是对端点的声称,不是检验。
仅供参考,已在一套环境实测(2026-09)。拉取后需 pnpm build 并重启 dsh web 才会加载新工具与新命令。