dsh-novel-reader:在 DeepSeek Harness 對話裏讀本地 txt 小說

前言

DeepSeek Harness(DSH)的主界面是對話窗口。若你想在熟悉的聊天佈局裏看本地的 .txt 小說,常見做法是另開閱讀器或把大段文本貼進會話——既不省事,也不利於摸魚時把界面僞裝成正常 AI 對話。dsh-novel-reader 走另一條路:在輸入框旁選一本書,每條用戶消息對應輸出一章(或按字數切段),進度落在本地目錄,正文可走 DSH 的「思考」摺疊塊與翻頁閱讀器,可見回覆則是一段結構化的固定總結,外觀接近真實模型答覆。

下面介紹插件定位、能力與從安裝到日常閱讀的步驟。

這是什麼

dsh-novel-reader(倉庫 ukkyo1/dsh-novel-reader)由 ukkyo1 維護,在 SkillHub 上歸類爲客戶端插件。它是標準 DSH bundle:package.json 中聲明 dsh.bundle.patch 與 dsh.client,無需構建、無第三方運行時依賴;當前包版本爲 0.9.4(MIT 許可證)。

核心思路:把本地 txt 放進指定目錄,在會話工具欄進入「閱讀模式」選書,之後內容全部來自本地文件,不聯網、不調用模型;渲染仍走 DSH 正常的助手消息管線。

核心功能

書庫與選書

  • 默認小說目錄爲 DSH 主目錄下的 novels(即 <DSH_HOME>\novels,Windows 上常見爲 C:\Users\<你的用戶名>\.dsh\novels)。目錄不存在時插件首次加載會自動創建;也可在 設置 → 小說閱讀 中修改(手動路徑或「選擇文件夾…」)。
  • 僅掃描目錄下的 .txt,不掃描子目錄。建議 UTF-8 編碼。
  • 輸入框底部工具欄、模型選擇器左側有「閱讀模式」按鈕:點開後列出書名與進度(有章節時顯示「第 3/120 章」),選中後會話綁定該書;按鈕上會顯示「書名 · 第 x/y 章」。
  • 換目錄等於換書庫:進度與顯示名按目錄保存在該目錄下的 .reader-state.json;設置頁所選目錄記在 <DSH_HOME>\novel-reader.settings.json。

一條消息一章

  • 閱讀模式下隨便發一句(如「繼續」),助手會流式輸出下一章正文。
  • 章節自動識別:掃描 txt 中單獨成行的標題,支持 第一章 …、第1章 …、第 12 節、第 3 回、Chapter 1,以及 楔子/序章/引子/番外/尾聲/後記 等。第一個標題之前的內容併入第 1 章。若無任何章節標題,退回按 chunkChars(默認 420)切段。
  • 數字跳章:發純數字 1、2、3… 跳到對應序號章節並立刻讀出(楔子/序章爲 1 號);超出範圍會提示總章數。可通過配置 numberedJump: false 關閉。

展示與翻頁

  • 默認 display: thinking:正文在「思考」摺疊塊內,展開後爲左右點擊翻頁的閱讀器(無滾動條),頁腳顯示章節與「第 x/y 頁」;同一正文翻頁位置會記住。本章最後一頁可點「下一章 ›」在同頁載入下一章;全書讀完顯示「全書完」。
  • 可見助手回覆爲內置較長的結構化總結(處理範圍、進度等),可自定義 summaryTemplate。若希望正文直接作爲可見回覆,將 display 改爲 answer。
  • 設置 → 小說閱讀 → 閱讀樣式 可調字號、行距、字間距、段間距、頁高、頁邊距、最大寬度、字體與翻頁動畫;生成速度 支持瞬間生成、整段固定秒數、按字/秒。

進度記憶

  • 進度按書保存,最小單位爲全書字符偏移;與會話無關,多會話讀同一本書共享進度。
  • 數據寫在小說目錄 .reader-state.json;每讀完一段寫盤,停止時已顯示部分也算讀過。設置頁可「重置進度」。

安裝與啓用

本插件以當前 DSH 進程權限訪問本地文件,安裝前請自行查看倉庫源碼與 MIT 許可證。

方式一:離線包(Release tgz)

在插件管理器中選擇本地包安裝(是否支持 tgz 取決於管理器版本),使用 Release 中的包:

https://github.com/ukkyo1/dsh-novel-reader/releases/download/v0.9.4/dsh-novel-reader-0.9.4.tgz

方式二:本地目錄

若你已有插件源碼目錄,在 設置 → 插件 → 添加插件 中選擇「從本地目錄安裝」,目錄指向倉庫根目錄,安裝並啓用。插件管理器若支持 Git 地址,也可直接填倉庫地址 https://github.com/ukkyo1/dsh-novel-reader(以管理器實際能力爲準)。

方式三:自行打包

在倉庫根目錄執行:

pnpm pack

將生成的 tgz 按本地包流程安裝。

啓用後刷新 Web GUI(Ctrl+R),輸入框旁會出現「閱讀模式」按鈕。升級時在插件管理器中禁用再啓用(或重啓 DSH)並刷新頁面。

典型用法

  1. 確認或創建小說目錄(默認 <DSH_HOME>\novels),把 .txt 放入該目錄。
  2. 打開任意會話,點「閱讀模式」,在列表中選一本書。
  3. 發一條消息繼續閱讀;在思考塊內左右翻頁,末頁可點「下一章 ›」。
  4. 需要跳章時,在閱讀模式下直接發送章節序號數字。
  5. 再點「閱讀模式」按鈕,面板底部選「退出閱讀模式」恢復普通對話。

目錄爲空時,面板會提示無 txt,並可點「創建示例小說」將插件自帶的 samples/sample-story-1.txt、samples/sample-story-2.txt 寫入目錄(同名已存在則跳過)。

高級配置

在 DSH 配置目錄的 cordis.patch.yml 中,novel-reader 一行可調整目錄、切段字數、出字方式、正文展示位置、章節與跳章開關、閱讀樣式默認值等。修改後需重新加載插件(禁用/啓用或重啓 DSH)。常用字段示例:

- id: novel-reader
  name: dsh-novel-reader
  config:
    directory: ""          # 留空 = <DSH_HOME>/novels,設置頁可改
    chunkChars: 420
    display: thinking      # thinking | answer
    chapters: true
    numberedJump: true

若在 cordis.patch.yml 中顯式寫了 directory,設置頁目錄不可編輯。思考塊摺疊時機受 DSH 全局 ui-chat.collapseTiming 影響;默認多爲「下次輸入時」才收起。

適用場景與注意

  • 適合:已在用 DSH Web 界面、希望用對話形態讀本地 txt、需要章節識別、跳章與跨會話進度的人。
  • 不適合:需要掃描子目錄書庫、非 txt 格式、或依賴在線書源的場景。
  • 權限:插件讀寫你配置的小說目錄與狀態文件;勿將不可信 txt 路徑指向敏感系統目錄。
  • 依賴:package.json 要求 Node >=22(主要影響開發與測試腳本;bundle 安裝以 DSH 運行時爲準)。

結尾

dsh-novel-reader 把本地小說嵌進 DSH 會話:選書、發消息讀章、數字跳章、進度與樣式可配置,默認還把正文藏在思考裏的翻頁閱讀器中。更多說明見倉庫 README。

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

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

小夜