dsh-lit-library:帶預算索引與逐字覈對的 DSH 文獻庫

前言

在 DeepSeek Harness(DSH)裏用模型讀論文,常見麻煩往往不是「讀不懂」,而是讀多了之後檢索變難、筆記裏的數字回原文對不上、索引越寫越長卻沒人再看。把文獻丟進普通文件夾或隨手記 Markdown,很難用固定規則檢查「索引是否膨脹」「摘錄是否字面存在」。

下面介紹社區插件 dsh-lit-library(維護者 hellocyhgy,SkillHub 分類:記憶)。它不做 PDF 閱讀器,也不做文獻檢索;只做一件事:導入論文、抽取全文、每條文獻佔索引一行,並在反覆使用後仍保持可檢索、可覈對、不隨意膨脹。

這是什麼

dsh-lit-library 是面向 DSH 的受控文獻庫插件。庫按項目區劃分:一個課題一個完整小庫,頂層還有一張總覽,不同課題的文獻與索引預算互不擠壓。

插件當前版本爲 0.2.1(見 GitHub 倉庫 package.json),許可證 MIT。運行環境需要 Node >=20,依賴 unpdf、fflate 做 PDF 文本層抽取;掃描件 OCR 需另行配置外部命令(見後文)。

核心功能

README 中列出的工具與職責如下。

工具 作用
lit_init project=<名> / register=<舊庫根> 建項目區;或原地接管舊庫(只寫 .lit.json,不動原件 / txt / notes)
lit_import project=<名> paths=[...] 導入:去重 → 抽文本(掃描件未配 OCR 則登記「待 OCR」)→ 預算預檢 → 追加一行索引
lit_find tags=[...] 按標籤查文獻(同標籤內規範名 + 別名 OR,多標籤默認 AND)
lit_prefs 讀 / 改項目偏好(如 askBeforeImport、預算、頁偏愛等)
lit_check project=<名> 或 all=true 體檢:索引超限、孤兒 note、斷鏈、摘錄逐字回查;all 還覈對頂層總覽

輔助工具包括 lit_repair(補 OCR / 重試失敗行)、lit_migrate(單表 → 分片)、lit_undo(用 .bak 回滾最近一次寫索引)。插件內嵌 Skill lit-library,用於約束模型「什麼該寫進筆記、什麼算核過」——筆記內容仍須人工覈對,插件不會自動代寫正文。

設計上有兩條硬性規則(README 明確說明):

  1. 索引有預算(行數與字節)。超限會拒絕寫入而非截斷,並提示把細節拆到 note。
  2. 摘錄必須字面存在於全文 txt。嵌套引號、跨頁拼接、抄錯一字,lit_check 會報錯;插件還包含針對「整條摘錄從檢查中消失」的額外檢測。

能做與不能做

能做 不能做
電子版 PDF 文本層抽取,逐頁頁標 掃描件:未配置 OCR 時僅登記「待 OCR」
帶預算的索引追加 舊 .ppt(需先另存爲 PDF)
摘錄逐字回查與嵌套引號檢查 自動寫筆記內容
孤兒 note / 斷鏈檢查 Web 界面(純工具 + Skill)
多項目區隔離,各自編號不串 跨項目自動彙總(僅提供 項目/編號 引用寫法)

安裝與啓用

DSH 生態採用「一切皆插件」;社區目錄在 SkillHub,與 DeepSeek / 幻方無官方從屬關係。安裝前建議自行查看 GitHub 源碼與 MIT 許可證;插件以當前 DSH 進程權限運行,導入路徑會觸及本地文件系統。

官方 README 給出的安裝方式如下(勿憑倉庫名自行拼接其它 install 命令):

在 DSH 的插件管理裏安裝本包:把 dsh-lit-library 加進 profile 的 dsh.profile.bundles,或使用插件管理器的 install_bundle。裝好後重啓 DSH,8 個工具與內嵌 Skill lit-library 纔會生效。

需要 DSH >= 0.2.0-rc.2。

掃描件 OCR 爲可選項。默認用 pdftoppm 柵格化,再配合你在 .lit.json 或 profile 的 lit-library config 裏配置的 OCR 引擎;未配置則登記「待 OCR」,不會假裝抽取成功。示例配置:

{
  "ocr": {
    "command": "<python>",
    "args": ["<ocr_engine.py>", "{input}", "{output}"],
    "timeoutMs": 120000,
    "render": { "command": "pdftoppm", "args": ["-r", "200", "-png", "{input}", "{outdir}/{prefix}"] }
  }
}

{input} / {output} 爲單頁圖片與 OCR 文本輸出;{outdir} / {prefix} 爲柵格化輸出目錄與文件名前綴。README 註明真實環境曾用 pdftoppm + RapidOCR(ocr_engine.py)驗證過帶頁標的中文 txt。

默認目錄與預算可在 profile 的 cordis.patch.yml 中覆蓋:

- id: lit-library
  config:
    projectsRoot: lit-projects
    origDir: refs/外部資料
    txtDir: work/外部資料_txt
    notesDir: refs/notes
    indexFile: refs/參考資料總表.md
    maxBytes: 8192        # 索引字節預算(項目級可在 .lit.json 覆蓋)
    maxEntries: 150       # 篇數安全閥
    maxTxtBytes: 1048576  # 單篇 txt 安全閥
    shardEntries: 200     # indexMode: sharded 時每片條數

項目根默認取當前會話工作區;多項目工作區才需要傳 project 名字。

典型用法

先做項目區,再導入,最後體檢。README 第一次使用示例:

lit_init project=我的課題      # 建項目區
lit_import project=我的課題 paths=[D:\papers\xxx.pdf]
lit_check project=我的課題     # 應該 0 FAIL / 0 WARN

多個課題可分別建立 lit-projects/我的課題/、lit-projects/另一個課題/ 等目錄,索引與編號互不串擾。已有舊庫時,可用 lit_init register=<舊庫根> 原地接管。

導入後可用 lit_find tags=[...] 按標籤檢索;偏好與預算用 lit_prefs 調整;索引寫入失敗或 OCR 未完成時,用 lit_repair 補處理。

適用場景與注意

適合需要在 DSH 會話裏長期維護課題文獻、且希望索引行數可控、摘錄能機械回查的開發者或研究者。不適合把它當作替代 Zotero / 網頁檢索的全功能文獻管理,也不提供圖形界面。

務必記住:索引預檢失敗是預期行爲(逼你把長文細節放進 note);摘錄覈對失敗說明 txt 與筆記不一致,應改筆記或改引用,而不是關掉檢查。

結尾

dsh-lit-library 把「找得到哪篇、數字對得上原文、索引不會無限變長」收成可重複執行的導入、單行索引與 lit_check 流程。需要詳情時,可看 SkillHub 目錄頁與 GitHub README。

  • 目錄頁:https://www.skillhub.cn/plugins/hellocyhgy/dsh-lit-library
  • 倉庫:https://github.com/hellocyhgy/dsh-lit-library
羽毛球分组比赛记分
小程序二维码

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

小夜