omdsh-dev/dsh-tool-csv:DSH 的 CSV 文本處理插件

前言

在 DSH 智能體會話中,經常會出現需要處理的 CSV 文本:導出片段、API 響應中的表格文本、報告裏的數據行。如果每次讓模型臨時寫解析腳本,容易在引號字段、分隔符、邊界輸入上出錯。下面介紹 omdsh-dev/dsh-tool-csv。它把解析、查詢、過濾、統計和轉換 CSV 文本的動作收斂到一個 DSH 插件中,統一輸出 JSON 文本字符串。

這是什麼

omdsh-dev/dsh-tool-csv 是 DSH CSV 數據工具插件,由 omdsh-dev 維護,採用 MIT 許可。

它面向 DSH 插件場景,處理已經是文本形態的 CSV 數據,提供 parsequerystatsto_json 四個 action。插件採用零依賴、純函數設計,使用 RFC 4180 狀態機解析器。

核心功能

這裏列出的能力均來自插件聲明的功能:

  • 解析 CSV 文本爲結構化結果。
  • 按列和值做查詢過濾。
  • 統計行數、列數等基本信息。
  • 提供 to_json action,用於 JSON 輸出場景。
  • 統一輸出 JSON 文本字符串。
  • 零依賴:不引入 csv 解析庫。
  • 純函數:不讀文件、不寫文件、不聯網、不 eval。
  • 使用 RFC 4180 狀態機解析器。
  • 查詢過濾僅做字面精確匹配,不支持表達式求值。

常見參數包括:

  • action:指定執行動作,可用 parsequerystatsto_json
  • csv:傳入 CSV 文本。
  • column:查詢過濾時指定列。
  • value:查詢過濾時指定精確匹配值。
  • delimiter:指定分隔符。
  • header:指定是否按表頭處理。
  • limit:限制返回行數,默認 100 行。

運行約束包括:

  • 輸入上限爲 256,000 字節,超限直接報錯。
  • timeoutMs2000
  • delimiter 僅支持單 UTF-16 code unit 或 "tab"
  • 拒絕 surrogate pair 與控制字符,\t 除外。
  • 未閉合引號或閉合引號後非法字符會報錯。

安裝與啓用

下面是資料中給出的 web profile 安裝命令:

dsh plugin --profile web add github:omdsh-dev/dsh-tool-csv

安裝後,可以用下面命令確認插件是否出現在當前 profile 配置中:

dsh --profile web --dump-config | grep tool-csv

注意 webheadless 是不同 profile:web 安裝不會自動覆蓋 headlessdsh run 默認使用 headless profile。因此,如果你要在 dsh run 的默認運行環境中使用這個插件,應確保 headless profile 中也有該插件。

典型用法

以下示例來自插件資料,輸入中的 \n 表示換行。

parse

將 CSV 文本解析爲 JSON 對象數組:

csv { action: 'parse', csv: 'name,city\nalice,nyc\nbob,la' }
→ [{"name":"alice","city":"nyc"}, {"name":"bob","city":"la"}]

query

按列名和精確值過濾行:

csv { action: 'query', csv: 'name,city\nalice,nyc\nbob,la', column: 'city', value: 'la' }
→ [["name","city"],["bob","la"]]

這裏的 value: 'la' 是字面精確匹配,不是子串匹配,也不做表達式求值。

stats

統計 CSV 文本的基本結構:

csv { action: 'stats', csv: 'name,city\nalice,nyc' }
→ {"rows":1,"columns":2,"columnNames":["name","city"],"emptyRows":0,"warnings":[]}

適用場景與注意

這個插件適合在 DSH 會話中處理已有的 CSV 文本,尤其是需要確定性解析、過濾、統計或轉換爲 JSON 的場景。它把常見邊界交給固定實現,減少模型臨時編寫解析代碼的風險。

使用前需要注意:

  • 工具參數會記入會話日誌,不要傳入敏感數據。
  • DSH 插件以當前 dsh 進程權限運行,安裝前應檢查源碼和 MIT 許可證。
  • 查詢過濾只做字面精確匹配,不能替代數據庫查詢或表達式引擎。
  • 輸入超過 256,000 字節會直接報錯,不會截斷處理。
  • webheadless 是兩個不同 profile,按需安裝到目標 profile。

結尾

omdsh-dev/dsh-tool-csv 的價值比較直接:爲 DSH 提供一個零依賴、純函數、按 RFC 4180 處理 CSV 文本的工具,並統一輸出 JSON。

項目倉庫:

https://github.com/omdsh-dev/dsh-tool-csv

社區目錄頁(來源爲插件線索,未在本篇已抓取資料中核對,且爲獨立站點,不等同於官方應用商店):

https://www.skillhub.cn/plugins/omdsh-dev/dsh-tool-csv

羽毛球分组比赛记分
小程序二维码

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

小夜