wct-lab/dsh-docchain:DSH 文檔檢索與轉換插件

前言

DSH(DeepSeek Harness)採用「一切皆插件」的架構,擴展能力通過插件實現。在構建基於文檔的知識庫或研究工作流時,開發者需要處理文件檢索、內容搜索、元數據查詢、批量上傳、格式轉換等重複性工作。手工編寫這些功能耗時且容易出錯。wct-lab/dsh-docchain 是一個面向 DSH 的文檔檢索與轉換插件,它將常見的文檔操作封裝爲可複用的技能(skill),開發者安裝一次即可在任意機器上使用,無需手動複製文件到 ~/.agents/skills。

插件定位

這是一個基於 docchain 構建的 DSH 知識庫和文檔轉換插件,提供文件名/內容/元數據搜索、主題列表、批量上傳、文檔轉 Markdown、圖像相似性搜索以及多子智能體深度研究工作流。插件通過插件配置頁面管理多個 docchain 環境,每個環境擁有獨立的地址和憑證,支持按環境預選主題。

核心功能

插件提供以下技能(skill),每個技能由 SKILL.md 說明和對應的 Node.js 腳本組成:

  • docchain-filename-search:按關鍵詞在主題範圍內搜索文件名
  • docchain-content-search:按關鍵詞搜索文檔內容,返回行號和內容,支持 or/and 操作符
  • docchain-meta-search:通過自定義元數據字段查詢文檔(字符串/數字/時間類型,支持精確匹配和範圍查詢)
  • docchain-topic-info:列出 docchain 主題,支持分頁和按名稱或 ID 過濾
  • docchain-upload:將本地文件或整個文件夾批量上傳到指定主題
  • doc2markdown:將 docx/doc/pdf/pptx/xlsx/images 等多種格式轉換爲 Markdown,結果與源文件並排
  • docchain-image-search:通過示例圖片查找相似圖片,返回匹配圖片及其主題、文檔和相似度分數
  • deep-research-advanced:多子智能體深度研究工作流編排器(純指令,無腳本)

安裝與啓用

插件需要根據運行 DSH 的方式選擇對應的安裝命令:

運行方式 命令
桌面應用 dsh plugin --profile desktop add github:wct-lab/dsh-docchain
dsh web dsh plugin --profile web add github:wct-lab/dsh-docchain

安裝完成後需重啓 DSH,使宿主和客戶端重新加載。

配置(必需)

插件不包含預置憑證。除 doc2markdown 外,所有腳本在運行前都需要配置 docchain 服務端點和 API 密鑰;doc2markdown 可使用內置默認端點匿名上傳。配置字段包括:

| 字段 | 說明 | 是否必需 |
|—|—|
| docchain_url | docchain 服務地址,例如 http://<host>:7100/llmdoc | 是 |
| docchain_api_key | API 認證密鑰 | 是 |

配置提供方式按優先級排序:

  1. 環境變量 DOCCHAIN_URL 和 DOCCHAIN_API_KEY
  2. 單個技能的配置文件 <skill>/scripts/config.json
  3. 插件狀態文件 ~/.dsh/storages/docchain-config.json(由插件配置頁面寫入)
  4. 包級 skills/docchain_config.json(文件分發時的回退,插件僅提供 docchain_config.example.json 模板)

配置文件格式示例:

{
  "docchain_url": "http://<host>:7100/llmdoc",
  "docchain_api_key": "your-api-key-here"
}

所有腳本依賴 Node.js,調用方式爲在技能基礎目錄執行 node scripts/<script>.js …,具體參數見各 SKILL.md。

插件配置(推薦)

插件在 DSH web 客戶端提供配置頁面:在 dsh web 左側欄打開「Plugins」,找到 dsh-docchain 插件,點擊行上的配置按鈕。該頁面管理一組已保存的環境,每個環境包含地址和憑證引用,並預選主題。當前生效的環境顯示在單行中,點擊可查看列表、添加/編輯/刪除條目。切換環境立即生效,無需保存或重啓。

配置頁面遵循官方憑證模式,配置模式聲明以下字段:

字段 說明
docchain_url 未激活環境時使用的服務端點,與當前環境同步
docchain_api_key_ref 憑證引用名稱,默認爲 DOCCHAIN_API_KEY
docchain_api_key 回退明文密鑰(不推薦,存儲優先)
docchain_environments 已保存環境列表(JSON),每條包含名稱、URL、憑證引用和預選主題

密鑰值存儲在憑證存儲 ~/.dsh/.credentials.yaml 的 refs 部分(僅所有者權限)。通過配置頁面保存或直接編輯該文件即可生效,修改會熱重載。激活時,每次存儲憑證變更或行設置保存後,解析後的值會寫入 ~/.dsh/storages/docchain-config.json(權限 0600),該文件是當前解析的純投影。密鑰解析順序爲:憑證存儲(啓動環境 > 存儲文件)> 行中的 docchain_api_key。

引用名稱本身即配置:不配置 docchain_api_key_ref 是有效狀態,此時頁面報告無密鑰,腳本會以配置錯誤退出,而不是回退到其他引用。保留但錯誤的密鑰會靜默查詢錯誤的賬戶,比失敗更難察覺。

切換環境

配置頁面維護一組已保存環境,切換不同 docchain 服務時無需重複輸入 URL 和密鑰:

  • 頁面顯示當前生效的環境行,點擊可展開列表
  • 選擇條目立即生效,無需保存或重啓
  • 每個環境存儲獨立的 URL 和憑證引用,切換回時不再請求密鑰
  • 憑證引用保留在憑證存儲中,僅寫入不讀取
  • 頁面僅管理環境,地址和密鑰是環境的屬性,編輯在行內完成
  • 無保存條目時,行顯示「no environment selected」,docchain_url 和 docchain_api_key_ref 作爲回退值(可在 cordis.patch.yml 中編輯)
  • 刪除條目會刪除其憑證,除非另一環境仍使用該引用或該引用是回退引用;生效條目不能刪除,需先切換

數據位置

內容 位置
環境列表(名稱、URL、憑證引用、預選主題) 插件配置頁面
密鑰值 ~/.dsh/.credentials.yaml(refs 部分)
解析後的配置投影 ~/.dsh/storages/docchain-config.json

典型用法

以下示例展示常見操作:

  1. 在 dsh web 中安裝插件並重啓
  2. 打開 Plugins 頁面,配置 dsh-docchain,添加一個環境,輸入地址和密鑰,預選主題
  3. 在技能列表中調用 docchain-filename-search,按關鍵詞搜索文件名
  4. 使用 docchain-content-search 搜索文檔內容,關鍵詞用 or/and 組合
  5. 通過 docchain-upload 批量上傳本地文件到指定主題
  6. 使用 doc2markdown 將文檔轉換爲 Markdown,結果與源文件並排

適用場景與注意事項

適合需要與 docchain 服務交互的 DSH 用戶,包括知識庫管理、文檔檢索、批量上傳、格式轉換和基於文檔的研究工作流。

使用時需注意:插件以當前 dsh 進程的權限運行;安裝前應檢查源碼與許可證;配置密鑰時注意解析順序和引用名稱配置;doc2markdown 不依賴配置,其他腳本必需配置;憑證引用未配置時腳本會報錯而非回退。

小結

wct-lab/dsh-docchain 將文檔檢索與轉換能力標準化爲 DSH 技能,通過配置頁面管理多環境切換,支持批量操作和深度研究工作流。開發者安裝一次即可在任意機器複用這些能力,避免重複實現。更多詳情見插件目錄頁與 GitHub 倉庫。

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

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

小夜