dsh-luna-vision-bridge:爲 DSH 添加原生圖片輸入支持

前言

當前 DSH 在原生輸入框中對圖片輸入存在限制(主要依賴 text-only admission)。dsh-luna-vision-bridge 是一個純 Host 側的 DSH LLM adapter。它註冊了一個新的 luna-vision-bridge provider,使得原生 DSH 輸入框可以繼續使用粘貼圖片、拖放、縮略圖、刪除、Enter 和發送按鈕。圖片進入 DSH 原生 attachment store 後,由 Codex Luna 轉成文字,再交給任意一個已註冊的純文本模型(下游 target,可配置多個並在模型選擇器切換)。

核心功能

  • 純 Host 側 DSH LLM adapter。
  • 註冊新的 luna-vision-bridge provider。
  • 支持原生圖片輸入(粘貼、拖放等)。
  • 使用 Codex Luna 轉寫圖片爲文字。
  • 將圖片轉寫文本交給下游純文本模型。
  • 提供 Web 設置界面配置下游模型。

工作原理

插件通過攔截 DSH 的 addImages 和 submit 流程,在 Host 層完成圖片處理。

DSH 原生 addImages / submit
        │
        ▼
DSH attachment store(校驗並持久化原圖)
        │
        ▼
luna-vision-bridge adapter
  1. 讀取經過校驗的附件
  2. 寫入 0600 臨時文件
  3. 調用插件內置 scripts/read-image-luna.sh
  4. 腳本啓動 codex exec --json / gpt-5.6-luna
  5. 刪除臨時文件
  6. 將圖片塊替換爲帶安全邊界的識圖文本
        │
        ▼
target provider / target model(任意純文本下游,按所選模型路由)

前置條件

  • 每個下游 target 的 provider 已在 DSH 註冊且純文本可用(如 deepseek-official)。
  • codex CLI 可以從啓動 DSH 的 Host 環境執行,並已完成認證。

安裝

插件已發佈到 npm。

dsh plugin add --profile web @ycp424c/dsh-luna-vision-bridge

插件包內帶有 cordis.patch.yml bundle。安裝後,在模型選擇器會出現 Luna Vision Bridge provider。若當前 DSH 版本未自動掛載外部 bundle,可將包名追加到 ~/.dsh/profiles/web/cordis.patch.yml 的 bundles 中,並重啓 dsh web。

配置

插件提供 Web 界面和配置文件兩種配置方式。

Web 界面(推薦)

打開 Web 界面的 設置 → “Luna Vision Bridge”,無需編輯配置文件。

  1. 表單預填一行默認組合(未配置時默認 DeepSeek / DeepSeek-V4-Flash)。
  2. 編輯配置項:
    - Provider 顯示名:橋接 provider 在模型選擇器裏的顯示名,默認 Luna Vision Bridge。
    - 下游模型:一行一個組合,包含 provider、model、顯示名(可選)。
    - 橋接模型 id(可選):默認 <provider>-<model>,必須互不相同。
  3. 點擊保存,模型選擇器立即出現新組合。

配置文件方式

所有字段都有默認值;零配置即得到單個 DeepSeek 下游。

在 ~/.dsh/profiles/web/cordis.patch.yml 中配置:

- id: luna-vision-bridge
  name: '@ycp424c/dsh-luna-vision-bridge'
  inject: [llm, attachments]
  config:
    providerName: Luna Vision Bridge
    targets:
      - provider: deepseek-official
        model: deepseek-v4-flash
        name: DeepSeek V4 Flash + Luna
        bridgeModel: deepseek-v4-flash

全局字段配置示例:

    # Luna 轉寫與緩存(全局):
    # 默認自動解析爲插件包內的 scripts/read-image-luna.sh;通常無需配置
    codexCommand: codex
    lunaModel: gpt-5.6-luna
    timeoutMs: 180000
    cacheDescriptions: true
    cacheDir: ~/.dsh/cache/luna-vision-bridge
    cacheNamespace: v1

注意事項與限制

  • 臨時方案:這是爲當前 DSH 圖片輸入限制準備的臨時兼容方案,不是建議長期依賴的正式架構。當 DSH 官方提供原生讀圖能力時,應優先遷移並停用本插件。
  • 轉寫端適配:轉寫端只適配 Codex CLI 和 gpt-5.6-luna;下游可以是任意純文本 provider,但本插件不是通用視覺 provider 框架。
  • 安全性:臨時文件權限爲 0600/0700,識圖結束後立即刪除。原圖仍由 DSH 原生 attachment store 管理。同一附件與提示詞使用 content-addressed cache。
  • 依賴:依賴 Host 環境中的 codex CLI。
羽毛球分组比赛记分
小程序二维码

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

小夜