让模型用可交互界面卡片替代 markdown 展示内容
25.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/12 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add jimowo/dsh-genui该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · ui
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 75 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 可交互界面卡片
- 替代markdown展示
README
由 DeepSeek 最新模型翻译生成dsh-genui
DSH Web GUI 的聊天生成式 UI 插件:让模型用真正的界面卡片代替 markdown 展示结构化/可视化内容。
组成
- Host 半(lib/index.js):注册 agent 工具 ui_card 与一条 system-prompt 公告。模型传入 JSON 组件树 spec,工具返回确认。
- Client 半(lib/client.js):在 tool.call.toolview 槽位以 key ui_card 注册渲染器,从 block.argsRaw(运行中)/block.call.argsRaw(已结算)解析原始 JSON 字符串中的 spec,递归渲染为 React 组件。
支持的组件
card row / stat-row stat(带涨跌 delta) table(点击表头排序;filter:true 开启筛选框) progress timeline chart(柱状) kv badges alert(info/ok/warn/err) code collapse(折叠面板) tabs(选项卡) buttons(可交互) text,支持任意嵌套;深度上限 6 层、宽度分组件限量,解析/渲染失败降级为提示卡片,不会拖垮 GUI。
展开完整文档(README 剩余 1 节)
dsh-genui
DSH Web GUI 的聊天生成式 UI 插件:让模型用真正的界面卡片代替 markdown 展示结构化/可视化内容。
组成
- Host 半(lib/index.js):注册 agent 工具 ui_card 与一条 system-prompt 公告。模型传入 JSON 组件树 spec,工具返回确认。
- Client 半(lib/client.js):在 tool.call.toolview 槽位以 key ui_card 注册渲染器,从 block.argsRaw(运行中)/block.call.argsRaw(已结算)解析原始 JSON 字符串中的 spec,递归渲染为 React 组件。
支持的组件
card row / stat-row stat(带涨跌 delta) table(点击表头排序;filter:true 开启筛选框) progress timeline chart(柱状) kv badges alert(info/ok/warn/err) code collapse(折叠面板) tabs(选项卡) buttons(可交互) text,支持任意嵌套;深度上限 6 层、宽度分组件限量,解析/渲染失败降级为提示卡片,不会拖垮 GUI。
交互能力
- 本地交互:collapse 折叠/展开、tabs 选项卡切换、表格点击表头排序(filter:true 时提供行筛选输入框)——不产生任何网络/agent 调用。
- 事件回传:buttons 的 items 除字符串(本地高亮单选)外可传 {label, action, confirm}。用户点击后(默认需二次确认,confirm:false 立即发送)会通过会话作用域的 ctx.conversation.send() 把一条 [ui_card 事件] … 用户消息发回当前对话流,触发 agent 按上下文继续处理。每次回传消耗一轮 API 额度。
- 事件按钮状态机:待发 → 「确认发送?」(黄) → 已发送(绿);失败显示红色错误提示。
v0.3 · 校验反馈与结构化事件信封
Spec 校验反馈(双通道,消灭静默失败):
- 工具返回 warnings:宿主半在 execute() 里做静态预检——对象型 badges 项、非标量 kv/table 单元格、未知 type、超深度/超宽度截断等,以字段路径列出(如 badges.items[0]),模型当轮即可自我纠正
- 卡片底部警告条:浏览器半渲染期同样收集(两者规则一致),用户可见「⚠ Spec 校验警告」,不再出现"空白但模型以为成功"
结构化事件信封(替代自然语言,agent 解析稳定):
[ui_card 事件] {"cardId":"a1b2c3d4","action":"drilldown","label":"下钻事故"} (界面卡片按钮事件,请按 action 与对话上下文处理)
cardId 由工具调用 callId 后 8 位派生,可在多卡片会话中定位事件来源;v0.4 表单提交将复用同一信封格式(payload 扩展为字段集合)。
v0.4 · 表单组件
- form{action, submitLabel, confirm?, children} 包裹字段;input{name,label,value?,placeholder?,password?}、select{name,label,options:strings}、textarea{name,label,…} 为字段节点,name 必填且同一表单内唯一(缺失会在 warnings 中提示)。
- 提交时全部字段值打包进 v0.3 信封的 payload,一条用户消息一次回传——比逐按钮少消耗 API 轮次:
[ui_card 事件] {"cardId":"a1b2c3d4","action":"create-ticket","payload":{"title":"…","severity":"P1",…}}
- 提交按钮复用确认状态机(默认「确认提交?」二次点击;confirm:false 直发),成功后显示「✓ 已提交」。
- 典型用法:工单创建、参数收集(生成配置/脚本的输入)、筛选条件提交、多选题问卷。
v0.5 · 图表增强与渲染兜底
- chart.kind:bar(默认柱状) / line(折线,SVG 绘制,数据点带 title 提示) / pie(饼图,自带图例与百分比,未指定 color 时循环 8 色盘) / horizontal(横条,左侧标签右侧数值)。
- 颜色:chart.color 覆写整图主色;items 每项可带 color(pie/horizontal/bar 逐项,值为 CSS 颜色字符串)。
- stat.trend:数字数组(≤24)在指标卡内渲染 sparkline 迷你趋势条,与 delta 涨跌共存。
- 渲染错误边界:React ErrorBoundary 兜住卡片树内异常,降级为红色提示卡而非整卡消失(v0.4 Form 事故的教训落地)。
- precheck 新增:未知 chart.kind 回退提示、pie 超过 8 项的可读性建议。
安装
dsh plugin --profile web add link:D:\dsh\plugin\GenUI
然后重启 DSH(dsh web)。任何会话中模型即可调用 ui_card;对模型说「用 ui_card / 界面卡片展示」即可。
卸载
dsh plugin --profile web remove dsh-genui
纯 JS、零构建、零第三方运行时依赖(仅 peer 依赖 react);配色用中性灰 + --ds-color-accent 主题变量,明暗主题自适应。
最佳实践:一张「运营监控中心」卡片
这是覆盖全部能力的参考示例,对模型说「用 ui_card 做一张运营监控中心卡片」即可复现。设计要点:
1. 信息分层:顶层 stat-row 放 4 个北极星指标(带 delta 涨跌)→ alert 全局状态灯 → tabs 把「流量 / 异常 / 发布」三个视图分区,避免单屏过载。
2. 按数据形态选组件:趋势用 chart,汇总用 kv,事件流用 timeline,告警用 alert,元信息用 badges,变更内容用 code,长尾细节收进 collapse。
3. 可探索性:异常明细表开启 filter:true + 点击表头排序,用户自己下钻,不消耗额度。
4. 行动闭环:底部 buttons 放 {label, action} 事件按钮——「下钻事故」「拉值班」「生成周报」,确认后把 action 回传对话流,agent 接续处理,形成 展示→洞察→行动 闭环。
{
"type": "card",
"title": "运营监控中心",
"children": [
{ "type": "stat-row", "children": [
{ "type": "stat", "label": "活跃用户", "value": "12,847", "delta": 6.2 }, { "type": "stat", "label": "今日订单", "value": "3,204", "delta": 12.8 }, { "type": "stat", "label": "错误率", "value": "0.42%", "delta": -0.15 }, { "type": "stat", "label": "P99 延迟", "value": "238ms", "delta": 4.1 } ]}, { "type": "alert", "tone": "ok", "text": "系统运行正常 · 所有核心指标在阈值内" }, { "type": "tabs", "items": [ { "label": "流量概览", "children": [ { "type": "chart", "items": [ { "label": "一", "value": 820 }, { "label": "二", "value": 936 }, { "label": "三", "value": 1024 }, { "label": "四", "value": 978 }, { "label": "五", "value": 1150 }, { "label": "六", "value": 1420 }, { "label": "日", "value": 1310 } ]}, { "type": "kv", "items": [ { "key": "峰值时段", "value": "周六 20:00-22:00" }, { "key": "周环比", "value": "+11.4%" } ]} ]}, { "label": "异常明细", "children": [ { "type": "table", "filter": true,
"columns": ["时间", "服务", "级别", "详情", "耗时(ms)"],
"rows": [
["09:42", "order-api", "ERROR", "库存扣减超时", 3200], ["10:03", "payment", "ERROR", "网关连接拒绝", 5000], ["10:12", "search", "WARN", "慢查询 >1s", 1450] ]} ]}, { "label": "发布记录", "children": [ { "type": "timeline", "items": [ { "title": "v2.4.0 已上线", "desc": "P99 从 262ms 降至 238ms" }, { "title": "v2.4.1 提测中", "desc": "修复库存超时问题" } ]}, { "type": "collapse", "title": "变更单详情", "children": [ { "type": "badges", "items": ["CR-1024 已审核", "2 文件", "+86/-12"] }, { "type": "code", "text": "fix(inventory): 扣减增加 3s 超时与幂等键…" } ]} ]} ]}, { "type": "buttons", "items": [ { "label": "下钻 09:42 超时事故", "action": "drilldown order-api 09:42 库存超时" }, { "label": "拉支付值班", "action": "page-oncall payment", "confirm": true }, { "label": "生成周报", "action": "generate weekly-ops-report", "confirm": false } ]} ] }
设计准则速查
| 场景 | 推荐组合 |
| 周报 / 汇报 | stat-row 指标 + chart 趋势 + timeline 里程碑 + ok 告警 |
| 排障 / 监控 | alert 状态灯 + filter 表格 + 事件按钮下钻 |
| 文档 / 变更单 | kv 元数据 + collapse 折叠详情 + code + badges |
| 对比 / 选型 | tabs 分方案 + table 排序筛选 + buttons 让用户拍板 |
| 超长内容 | tabs 或 collapse 分区,永远不要一张平铺大卡 |预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
jimowo/dsh-genui
让模型用可交互界面卡片替代 markdown 展示内容
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,350已汉化DSH
71.5
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,506已汉化DSH
71.1
AI 矢量设计工具ZSeven-W/openpencil
全球首个 AI 原生开源矢量设计工具。
★ 7,027已汉化DSH
71.1
这是你的仓库?认领条目