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
羽毛球分组比赛记分
小程序二维码

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

小夜