dsh-smart-charts:把 CSV / Excel / JSON 数据转成交互式 ECharts HTML

前言

在 DSH 的「一切皆插件」思路里,智能体开发者常见的一类需求是:手里有一份数据文件,希望 agent 不只是“读一下”,而是继续完成推荐图表、生成可视化页面、输出可交互 HTML。手动完成这件事时,通常要处理编码、文件格式、多文件合并、清洗转换、ECharts 配置和离线依赖等细节。

dsh-smart-charts 把这条流程做成 DeepSeek Harness 的 Smart Charts skill 插件:agent 按 skill 流程解析数据,推荐图表类型,并生成可交互的 ECharts HTML。

这是什么

dsh-smart-charts 是 DeepSeek Harness 的 Smart Charts skill 插件,维护者为 hherosoul,许可证为 MIT

它面向 CSV / Excel / JSON 等表格数据,解决的核心问题是:把数据文件一键转换为交互式 ECharts HTML,并支持自动识别数据形态、推荐图表、批量生成、离线渲染和结构化错误输出。

GitHub 地址:https://github.com/hherosoul/dsh-smart-charts

核心功能

图表类型与主题

  • 支持 26 种图表类型,覆盖趋势、对比、占比、分布、相关、流向、转化、词频、集合交叠、层级结构等场景。
  • 提供 3 套主题预设:default / classic / dark

数据解析与合并

  • 多格式解析:CSV、TSV、TXT、Excel、JSON。
  • 自动检测 UTF-8 / GBK / GB2312 编码。
  • 多文件自动合并:最多约 10 个文件;列完全相同则纵向拼接,约 50% 以上列重叠则横向关联,无共同结构时明确报错。
  • 单文件限制为 ≤ 100 MB,推荐 ≤ 50 MB。
  • 不支持数据库直连、实时流、地理地图、嵌套 JSON > 1 层、图片 / 音视频等非表格数据。

数据转换与批量生成

  • --transform-code:使用 pandas 代码完成列重命名、重塑、聚合等清洗。
  • 三层安全沙箱:黑名单 + AST 白名单 + 安全 builtins。
  • 违规时返回带 suggestion 的结构化错误,便于 agent 解析并重试。
  • --charts-file:用 JSON 声明多张图,并一次生成整组图表。
  • 输出 plot_stats 统计摘要,并支持 --dry-run--annotation

输出与错误

  • 完全离线:ECharts JS 打包在 assets/,并内联进每个 HTML,无 CDN、无外部依赖。
  • 交互式输出:悬停查数、dataZoom 缩放、超阈值自动横向滚动、标题双击内联编辑、图表可保存为图片。
  • 结构化错误:SmartChartsError 统一输出 JSON,字段包括 code / code_name / suggestion

安装与启用

GitHub 直装

资料给出的安装命令为:

dsh plugin --profile web add github:hherosoul/dsh-smart-charts

首次安装可能会因 pnpm≥10 拒绝运行 git 依赖的 prepare 构建脚本而失败。按提示,在 profile 的 pnpm-workspace.yaml 中放行 allowBuilds

allowBuilds:
  dsh-smart-charts: true

然后重新执行安装:

dsh plugin --profile web add github:hherosoul/dsh-smart-charts

放行 allowBuilds 等于授权该包在安装阶段执行代码。资料建议只信任你确认过的源码,并固定 commit:

github:hherosoul/dsh-smart-charts#<sha>

本地 tarball

如果已经持有本地 tarball,例如资料示例中的 dsh-smart-charts-8.0.1.tgz,可使用:

dsh plugin --profile web add ./dsh-smart-charts-8.0.1.tgz

注意:资料只给出了这个本地安装命令,未提供该 tarball 的官方下载地址或获取方式;使用前请先确认包来源。

验证加载

安装后可以用 dump config 检查插件是否进入 profile:

dsh --profile web --dump-config

输出中看到 # == dsh-smart-charts 一层,即表示加载成功。

运行依赖

首次运行前需要安装 Python 依赖。资料要求 Python 3.11+,依赖包括 pandasnumpyopenpyxlxlrd

pip install -r requirements.txt

package.json 声明 engines node >=20.19.0,并包含 peer dependency:

"@deepseek-ai/dsh-skill-filesystem": "^0.1.0-rc.6"

典型用法

1、把数据文件放进 workspace 目录,启动 DSH 会话。

2、对 agent 说「分析 sales.csv 并生成柱状图」,或输入 /smart-charts 直接触发。

3、agent 按 SKILL.md 流程解析数据、推荐图表类型,并生成 ECharts HTML 到 workspace 的 output/

4、如果想快速体验,可以使用仓库自带示例 examples/sales_data.csv

适用场景与注意

适合:

  • 有 CSV / Excel / JSON 表格数据,希望 agent 自动完成图表推荐与生成。
  • 需要输出可离线打开、可交互的 ECharts HTML。
  • 需要在 agent 工作流中加入数据清洗、多图批量生成、统计摘要和结构化错误处理。

不太适合:

  • 数据库直连。
  • 实时流数据。
  • 地理地图。
  • 嵌套 JSON > 1 层。
  • 图片、音视频等非表格数据。

限制与注意:

  • 单文件 ≤ 100 MB,推荐 ≤ 50 MB。
  • 多文件合并最多约 10 个文件。
  • 插件以当前 dsh 进程权限运行,安装前应检查源码、许可证和构建脚本。
  • allowBuilds 会授权该包在安装阶段执行代码,建议只对你信任的源码放行,并尽量固定 commit。

资料同时提到,该 skill 发布在腾讯 SkillHub(WorkBuddy 生态),入口为 https://skillhub.cn/skills,可搜索 smart-charts。README 称截至 2026-08-19,SkillHub 累计下载 6.8 万次,并在数据分析分类中排名第一。这里按资料口径描述,不建议把它理解为 DeepSeek 官方应用商店。

链接与入口

  • GitHub:https://github.com/hherosoul/dsh-smart-charts
  • SkillHub 入口:https://skillhub.cn/skills
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜