前言¶
用 DeepSeek Harness(DSH)處理閱讀和寫作時,查詞、查詞源是高頻動作。常見做法有兩個:開一個新標籤頁去詞典網站,或者在會話裏反覆輸入結構化提示詞再自己整理結果。前者離開當前工作區,後者動作重複、結果格式不固定。
dsh-english-search 解決的就是這個問題:它在 DSH 會話區域最上方固定一個 vocabtool.com 風格的搜索欄,提供查詞、詞源、問答三種模式,查詞由 DSH 自身的 LLM 服務完成——不訪問任何外部站點、不需要數據庫、不需要本地後端。下面介紹這個插件的定位、原理和用法。
這是什麼¶
dsh-english-search 是 kami-mura 維護的一個 DSH 插件,當前版本 0.4.5,MIT 許可證。一句話定位:DSH 原生風格頂部搜索欄插件(查詞/詞源/問答),固定在會話區域最上方,由 DSH 自身 LLM 驅動,無外部站點依賴。
它的依賴面很窄:Host 側用 DSH 內置的 llm / agentDefaultModel / webServer 服務,Client 側用 slots 服務與 react 平臺模塊,均爲 DSH 內置能力。整個插件無外部 HTTP 調用、無 Cookie、無數據庫、無本地服務、無構建步驟。
核心功能¶
- 在 DSH 會話區域最上方提供搜索欄,獨立於消息滾動區;使用 DSH WebUI 原生設計令牌(
--dsw-alias-*),與輸入框卡片同表面、同描邊、同圓角、同陰影,明暗主題自動跟隨,寬度收窄爲 520px(--es-bar-max-width) - 三種模式:查詞 / 詞源 / 問答
- 查詞走 DSH 當前會話默認模型(
agentDefaultModel),與對話共用模型配額 - 支持快捷前綴:
!arena直接詞源、?直接問答 - 結果面板與落地頁同款(loading / error / 結果卡片 + 關閉按鈕),內容渲染 Markdown(加粗 / 列表 / 標題 / 引用 / 行內代碼)
- 三套系統提示詞與 vocabtool.com 後端一致,源自 MIT 項目 kami-mura/vocabtool-web
工作原理¶
插件分兩端:
- Host(
lib/index.js):註冊webServer路由/api/plugins/english-search,經ctx.get('llm')+ctx.get('agentDefaultModel')調用 DSH 模型,effort=off,失敗自動回退無 effort。 - Client(
lib/client.js):手寫 CJS bundle,註冊在官方conversation.input.dock插槽(idenglish-search)管理生命週期,再通過 React Portal 掛到會話根節點頂部;與 Host 之間是同源 fetch 調用。
這裏選 conversation.input.dock 而不是 conversation.top,是因爲 DSH 0.1.0-rc.6 尚不存在後者。
安裝與啓用¶
標準安裝命令:
dsh plugin --profile web add dsh-english-search
也可以從 GitHub 安裝:
dsh plugin --profile web add github:kami-mura/dsh-English-search
這個包是標準 dsh bundle(dsh.bundle.patch),dsh plugin add 會自動把它加入 profile 的層棧(dsh.profile.bundles),不需要手改任何配置文件。
安裝後需重啓 dsh web 服務進程才能生效——注意是重啓服務進程,不是刷新瀏覽器頁面。
典型用法¶
裝好重啓後,搜索欄出現在會話區域最上方。先選模式,再輸入內容:
1、默認輸入單詞,做查詞;
2、輸入 !arena,直接做詞源查詢;
3、輸入 ?lie 和 lay 的區別,直接做問答。
查詢過程在結果面板中顯示 loading / error 狀態,完成後以結果卡片呈現,支持 Markdown 渲染,右上角有關閉按鈕。
查詞請求走的是當前會話默認模型,所以這部分消耗與你的對話共用同一個模型配額,這一點在評估用量時需要計入。
不安裝,先動態體驗¶
如果不打算直接部署,可以在任意 DSH 會話中通過 cordis_define 動態運行:
1、執行 cordis_define:plugin.kind: "new",idPrefix: "vocab";code.host 粘貼倉庫中的 plugin.host.js,code.client 粘貼 plugin.client.js;
2、執行 cordis_run 激活(Client 包首次需要批准一次)。
注意動態版與原生版顯示位置不同:動態插件運行環境不提供 react-dom,搜索框會顯示在輸入框上方;通過 npm/GitHub 安裝的原生插件才固定在會話區域最上方。想驗證最終形態,還是建議走正式安裝。
常見問題與注意事項¶
安裝後看不到搜索框,按順序排查:
1、確認插件版本 ≥ 0.4.2。運行 dsh plugin --profile web list 查看已安裝版本。0.4.0 及更早版本使用 conversation.top 插槽,而 DSH 0.1.0-rc.6 不存在該插槽,搜索框不會渲染。版本不符就升級:
dsh plugin --profile web add dsh-english-search@latest
2、重啓 dsh web 服務。安裝、升級插件後都需要重啓服務進程,刷新瀏覽器頁面無效。
3、如果仍不顯示,查看瀏覽器開發者控制檯是否有 english-search 相關報錯,並確認服務啓動日誌中無插件報錯。
卸載命令:
dsh plugin --profile web remove dsh-english-search
另外提醒一點:插件以當前 dsh 進程的權限運行,安裝前應檢查源碼與許可證。這個項目是 MIT 許可,代碼集中在 lib/index.js、lib/client.js 和動態版兩個入口文件,閱讀成本不高。
結尾¶
dsh-english-search 的價值在於把查詞這類高頻動作收進 DSH 會話本身:界面用原生設計令牌、視覺與輸入框一致,調用走 DSH 自身模型服務,全程不依賴外部站點。對於經常在 DSH 裏讀英文材料的人,這是一個安裝成本低、邊界清晰的實用插件。
- 社區目錄頁:https://www.skillhub.cn/plugins/kami-mura/dsh-English-search (社區維護的插件目錄,與 DeepSeek / 幻方無官方從屬關係)
- GitHub 倉庫:https://github.com/kami-mura/dsh-English-search