dsh-plantuml
文件与数据 活跃维护

dsh-plantuml

qschen86/dsh-plantuml

DSH web plugin: render PlantUML fenced blocks in conversation messages as SVG

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

dsh-plantuml

DeepSeek Harness Web 插件:在会话消息中直接渲染 PlantUML 图表。

功能

  • 识别助手消息里的 ```plantuml / ```puml 围栏代码块
  • 自动通过 PlantUML 服务(默认公共服务器,可配置)渲染为 SVG
  • 支持架构图、流程图、时序图、用例图、类图等 PlantUML 支持的图形
  • 渲染失败时显示错误信息,不阻塞消息中的其他 Markdown 内容

安装

dsh plugin --profile web add dsh-plantuml
# 或使用 GitHub Release tarball:
# dsh plugin --profile web add https://github.com/qschen86/dsh-plantuml/releases/download/v0.1.0/dsh-plantuml-0.1.0.tgz
dsh --profile web --dump-config   # 验证条目已加入 bundles
# 重启 dsh web(host 半生效),刷新页面(client 半生效)

卸载

dsh plugin --profile web remove dsh-plantuml

注意:本插件使用 assistant-step 的 -5 优先级。若同时安装了 dsh-llm-codex-app-server 的浏览器渲染器(优先级 -10),后者会优先接管助手消息;此时如需 PlantUML 渲染,建议将两套渲染合并或二选一。

配置

通过环境变量配置:

变量 默认值 说明
DSH_PLANTUML_SERVER https://www.plantuml.com/plantuml PlantUML 服务地址,例如自建 http://127.0.0.1:8080/plantuml
DSH_PLANTUML_COMMAND 空 如果设置为本机 plantuml 命令(或可执行文件路径),则优先用本机命令渲染,不访问网络
DSH_PLANTUML_TIMEOUT_MS 15000 远程渲染超时(毫秒)
DSH_PLANTUML_MAX_SOURCE 1048576 单个 PlantUML 源码最大字节数

环境变量需对 dsh web 进程可见:若服务由 launchd 监督进程托管(如
com.dsh.web-supervisor),把变量加进其 plist 的 EnvironmentVariables
(或 DSH_START_CMD 前缀),仅写进 ~/.zshrc 不会生效。

使用

模型在回复中输出:

```plantuml
@startuml
Alice -> Bob: 你好
@enduml


插件会自动把它替换成渲染后的 SVG 图片。

## 实现说明

- 宿主端 `lib/index.js` 提供 `POST /plugin/plantuml` 渲染接口;默认使用 PlantUML 官方编码(deflate + 自定义 base64)请求远程服务,也可调用本机 `plantuml` 命令。
- 浏览器端 `lib/client.js` 注册 `conversation.chat.node` 的 `assistant-step` 低优先级渲染器,在保留原有 Markdown / 推理 / 图片 / JSON 展示的同时,解析 PlantUML 围栏并异步加载图片。