Skip to content

[Feature] 对话内联可视化卡片(GenUI) #1825

Closed

Description

@zszz3

Problem / 问题

讲解动态过程、可调参数、空间关系时(排序过程、复利曲线、网络时序、预算构成……),纯文字和 Mermaid 都不够直观。对话区目前只渲染 Markdown,模型没办法给出一个能拖滑块、悬停看数值的小页面。ZCode、Codex 桌面版都已经有类似的内联可视化。

Proposed change / 期望改动

  • 模型把一个 HTML 片段写到会话专属目录,在回复末尾加一行 ::visualize{"path":"…","title":"…"},对话区把它渲染成内联卡片。
  • 卡片在沙箱 iframe 里运行:不能联网、不能读宿主页面或本地文件、没有弹窗和表单;跟随应用主题,高度自适应,可展开到大窗口查看。
  • 内置一个 visualize skill 教模型写法,附带离线打包的图表库(D3)和样式套件,不依赖 CDN。
  • 写入只允许该目录下的 .html 片段,不弹权限确认;会话删除时一起清理,fork 时复制被引用的片段。远程工作区会话不提供此能力。

Alternatives / 其他方案

  • 仿 dsh-genui 的 JSON 组件白名单:更安全,但表达力有限,画不了自定义交互图。
  • 允许 CDN:库更多,但等于开放任意外部代码和外传通道,暂不采用。

Additional context / 补充信息

参考了 ZCode visualize 插件(Apache-2.0)的样式套件和 skill 写法,已在 NOTICE 中署名。我会提交对应 PR。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions