dsh-input-prediction:DSH 輸入框灰字續寫與回覆後推薦

前言

在 DSH 裏和智能體來回對話時,輸入框往往是最常停留的地方:你要續寫半句話、或在助手剛答完時想發下一條,卻還要自己從頭打滿。常見做法是複製上一輪上下文到別處讓模型幫想話術,或依賴通用編輯器的補全——它們通常看不到當前會話,也接不進 DSH 的發送鏈路。

下面介紹社區插件 dsh-input-prediction(維護者 fishcg,分類:客戶端):它直接掛在 DSH 的 composer 上,做兩件事——停頓後用灰字續寫你可能要打的下一句(Tab 接受),以及每輪助手回答結束後在輸入框上方給出 1–3 條可一鍵發送的候選。預測依據是當前會話上下文,並把你最近幾條消息當作口吻樣本。

這是什麼

dsh-input-prediction 是 DeepSeek Harness(DSH)的輸入預測插件,版本 0.2.0(MIT © 2026 fishcg)。宿主半區註冊預測與推薦路由並調用 llm.stream;客戶端半區對接 Lexical 輸入框與官方 UI 槽位,零構建、可熱重載。要求 DSH >= 0.2.0-rc.2,Node >= 20。

目錄頁:SkillHub - dsh-input-prediction
源碼與說明:GitHub - fishcg/dsh-input-prediction

核心功能

灰字補全(Ghost completion)

在輸入框裏,模型把「接下來最可能的那一段」畫在光標後面,用灰字顯示,不改動已有草稿。

  1. 草稿至少有一個字,停頓約 320ms 後發預測;相鄰請求至少間隔 650ms。
  2. 條件滿足時(光標在末尾、已聚焦、非斜槓/@ 菜單、非中文輸入法組合、建議非空等),灰字顯示在光標後;按 Tab 接受,文字經 DSH 官方插入通道(captureInsertion + insertText)落進輸入框,屬於可撤銷的普通編輯。
  3. 助手仍在流式輸出或跑工具時,只要草稿非空,灰字仍可預測;草稿爲空則不會憑空猜「下一條」。
  4. 模型不確定時會返回空串,界面寧可不提示也不亂猜。

回覆後推薦(Follow-up suggestions)

每輪助手回答結束(uiSession.sessionStatus 的 running 從 true 變 false)且草稿爲空時,在輸入框正上方(官方 conversation.input.dock 槽)展示 1–3 條候選下一條消息。

  • 回答進行中不請求、不展示候選;開始打字、切換會話或點右下角 × 會收起。
  • 點候選等價於你自己打完再 Enter:寫草稿 → 提交;同一對話版本只請求一次,過期結果按 contextEpoch 丟棄。
  • 單條候選長度默認不超過 40 字(chipMaxChars)。

設置面板

入口:設置 → 內置插件 → 「輸入預測」。

項 默認 說明
輸入框灰字補全 開 關則不再請求、不畫灰字、Tab 不接管
回覆後推薦 開 關則不再請求,已有氣泡立即收起
推薦條數 3 1 / 2 / 3

偏好寫入 $DSH_HOME/input-prediction.settings.json(路徑可由 settingsFile 覆蓋),立即生效,無需重啓。用戶在面板改過的值優先於 cordis.patch.yml 裏的出廠默認。

安裝與啓用

DSH 生態裏插件以「一切皆插件」方式擴展;社區目錄 SkillHub 是獨立站點,與 DeepSeek / 幻方無官方從屬關係。安裝前請自行查看倉庫源碼與 MIT 許可證;插件在當前 DSH 進程權限下運行。

從插件市場(設置 → 插件市場 → 搜「input-prediction」)或命令行安裝:

dsh plugin --profile desktop add dsh-input-prediction

或直接從 GitHub 添加:

dsh plugin --profile desktop add https://github.com/fishcg/dsh-input-prediction

兩半區支持熱重載,無構建步驟、無額外依賴。改 cordis.patch.yml 中的模型相關項後,需重新載入 patch 層(保存 profile 的 patch 觸發 live reload)或重啓 DSH 桌面端。

典型用法

  1. 打開任意會話,在 composer 裏打幾個字並稍停,看光標後是否出現灰字續寫;合適則 Tab 接受,再繼續改或直接發送。
  2. 等助手本輪迴答完全結束且輸入框爲空,看輸入框上方是否出現 1–3 條建議;點一條即可發送。
  3. 在 設置 → 內置插件 → 輸入預測 裏按需關閉灰字或推薦、把推薦條數改爲 1 或 2。

需要確認鏈路是否加載時,可開啓 debugLog 後查看日誌(默認關閉):

tail -f /tmp/dsh-input-prediction.log

常見事件包括 client:ready(客戶端已加載)、predict / predict-done(灰字預測)、client:chips(拿到推薦候選)、client:accept(Tab 接受)。瀏覽器 DevTools 控制台另有 [input-prediction] 前綴輸出。

配置要點

高級項寫在 cordis.patch.yml(或 profile 下同 id 覆蓋)。常用片段如下;完整鍵說明見倉庫 README。

- insert:
    - id: dsh-input-prediction
      name: dsh-input-prediction
      config:
        enabled: true
        provider: ''
        model: ''
        reasoningEffort: 'off'
        maxTokens: 160
        temperature: 0.3
        contextMessages: 16
        contextChars: 600
        maxSuggestionChars: 60
        styleHint: ''
        completionEnabled: true
        chipsEnabled: true
        chipCount: 3
        chipMaxChars: 40
        chipsMaxTokens: 320
        chipsTemperature: 0.7
        settingsFile: ''
        debugLog: ''

務必保持 reasoningEffort: 'off':灰字續寫通常只有十幾個字,若打開 reasoning,token 預算會被思考佔滿,補全容易變成空文本。provider / model 留空則跟隨 DSH 的默認模型設置。

適用場景與注意

適合:長期在 DSH 桌面端寫對話、希望少敲重複跟進句、又希望補全與推薦跟當前會話和本人口吻對齊的開發者。

注意:

  • 依賴聯網或本地配置的 LLM;預測質量隨模型與上下文長度變化。
  • 切換會話會作廢灰字、候選與緩存,不會把上一會話的推薦帶到新會話。
  • 完全沒有灰字時,可先查日誌裏是否有 client:ready、client:host-contact,並確認設置裏灰字補全未關、enabled 爲 true。

結尾

dsh-input-prediction 把「下一句寫什麼」收進輸入框本身:灰字負責續寫草稿,推薦氣泡負責答完後的快捷跟進,設置與偏好文件分開,改動即生效。若要在 DSH 裏試用,可從 SkillHub 目錄頁或 GitHub README 對照安裝命令與配置表。

  • 目錄頁:https://www.skillhub.cn/plugins/fishcg/dsh-input-prediction
  • GitHub:https://github.com/fishcg/dsh-input-prediction
羽毛球分组比赛记分
小程序二维码

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

小夜