dsh-imggen:爲 DeepSeek Harness 提供文生圖輸出能力的靜態插件

前言

DeepSeek Harness(DSH)的插件生態旨在通過插件擴展功能。在對話中生成圖片通常需要配置複雜的後端或持有 API Key。Stellight 維護的 dsh-imggen 是一個靜態 dual-face 插件,它爲 DSH 提供文生圖輸出能力。該插件採用與 dsh-deepseek-balance 相同的 profile bundle 機制,這意味着配置寫入 bundle 後重啓不丟失,且無需每次批准。

核心功能

dsh-imggen 提供了一套完整的工具鏈,用於在對話中渲染和生成圖片。

  1. generate_image 模型工具:從文本提示生成圖片,並在對話工具卡片中直接渲染。
  2. 後端支持:
    • 默認使用 Pollinations(免費、無需 API Key)。
    • 支持 OpenAI(DALL·E 3),需要配置 OPENAI_API_KEY 或 DSH_OPENAI_API_KEY。
  3. 工具卡片功能:
    • 下載按鈕:支持一鍵下載生成的圖片。如果瀏覽器跨域 fetch 失敗,會自動回退到新標籤頁打開。
    • 歷史畫廊:點擊 🖼 歷史 按鈕打開懸浮畫廊,以網格形式展示圖片、提示詞,並支持刪除或清空。歷史記錄存於瀏覽器 localStorage,跨重啓保留。
  4. API 選擇選項卡:在輸入框工具行右側提供分段控件,支持在 🎨 Pollinations 和 ✨ OpenAI 之間切換。選擇後,通過 systemPrompt 變量注入提示詞,Host 側會根據選項調用對應的後端。

安裝與啓用

安裝該插件需要將包放入 profile 的 node_modules 並在 package.json 中配置 bundle。

  1. 使用插件命令:
    dsh plugin --profile web add <本包路徑>
  1. 手動安裝:
    將本包複製到 profile 的 node_modules 目錄,例如:
    ~/.dsh/profiles/web/node_modules/dsh-imggen/
  2. 配置 profile:
    編輯 profile 的 package.json,添加依賴和 bundles 配置:
    {
      "dependencies": { "dsh-imggen": "1.0.0" },
      "dsh": { "profile": { "bundles": ["...", "dsh-imggen"] } }
    }
  1. 重啓 Harness:
    運行 dsh web 重啓,工具卡片、畫廊和選項卡將自動生效。

典型用法

  • 默認生成:直接在對話中調用 generate_image。默認使用 Pollinations 後端,無需額外配置即可生成圖片。
  • 切換後端:在輸入框右側的選項卡中選擇 OpenAI,並確保環境變量或 DSH 憑證庫中配置了相應的 Key。
  • 管理歷史:點擊工具卡片上的 🖼 歷史 按鈕查看生成的圖片列表。列表保存在瀏覽器 localStorage 中,刷新或重啓瀏覽器不會丟失。

架構與安全

  • 架構:採用 dual-face 架構,無構建步驟。
    • dsh/index.js(Host):註冊 generate_image 工具、systemPrompt 變量/節、同源路由 /dsh-imggen/pref。OpenAI 調用與 Pollinations 驗證走 Node 原生 fetch。
    • dsh/client.js(Client):手寫 lazy-CJS bundle,負責工具卡片、歷史畫廊 overlay、生圖 API 選項卡。
  • 安全:倉庫代碼不包含任何 API Key。OpenAI Key 僅在本地進程內用於官方接口調用,通過 credentials 服務按 OPENAI_API_KEY 或 DSH_OPENAI_API_KEY 環境變量順序解析。

結語

dsh-imggen 簡化了 DSH 中的圖片生成流程,利用靜態 bundle 機制保證了配置的穩定性。項目代碼開源,可在 GitHub 查看。

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

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

小夜