dsh-free-image:爲 DSH 智能體提供免 API Key 的出圖能力

前言

在 DeepSeek Harness(DSH)裏讓智能體「畫圖」,常見做法是接 OpenAI DALL·E、Midjourney API 或各家雲廠商的圖像服務:要申請 Key、可能要付費,還要在插件或環境裏妥善保管憑證。若你只是希望 Agent 在對話裏按需生成一張示意圖、封面草圖或 UI 佔位圖,而不想爲此單獨開賬號,dsh-free-image 走的是另一條路:通過 HTTP GET 向「把 prompt 寫在 URL 裏、直接返回圖片字節」的端點發請求,默認對接公開的 Pollinations 端點,無需配置 API Key,也無需付費賬戶。

下面介紹這個由 ozanstn1-stack 維護的聯網工具類插件:它做什麼、怎麼裝、默認行爲與配置邊界,以及使用公開端點時需要注意的限制。

這是什麼

dsh-free-image 是 DSH 社區插件(當前 GitHub 星標爲 0,版本 0.1.0,MIT 許可證)。它爲 Harness 註冊兩個工具:generate_image 負責根據 prompt 生成一張圖並寫入本地目錄;list_image_models 只讀列出當前配置的 provider、尺寸上限、 pacing、超時與輸出目錄等信息。

Provider 在實現上就是一個 HTTP GET 端點:請求裏只帶 prompt 與寬高參數,不存儲、不發送任何 Key。插件開箱即用默認指向免 Key 的公開端點;若你自建 Automatic1111、ComfyUI 等前端(同樣接受 URL path 中的 prompt 並返回 image/*),只需改配置裏的 baseUrl, prompt 可不出本機,且不受公開端點約 45 秒一次的 pacing 約束。

核心功能

工具一覽

工具 類型 作用
generate_image 寫文件 按 prompt 生成一張圖,保存到配置目錄,返回絕對路徑、真實像素尺寸與字節大小
list_image_models 只讀 列出已配置的 providers 及 endpoint、model、尺寸限制、pacing、timeout、輸出目錄

請求與落盤流程

智能體調用出圖工具後,插件大致按下列方式工作(默認 provider 爲 Pollinations):

prompt ──▶ GET <baseUrl>/<url-encoded prompt>?width=…&height=…&nologo=true
         ◀── image bytes
            saved to <output.dir>/<YYYYMMDD-HHMMSS>-<slug>.<ext>

要點如下:

  1. 響應在寫入前會校驗爲 image/*。
  2. 超過 output.maxBytes 的圖片會被拒絕,不會落盤。
  3. 公開免費端點按 IP 限流;插件同一時刻只發起一次調用,並在 bounded budget 內尊重端點返回的「retry after N s」。若等待時間超出 retry.budgetMs,工具會告知剩餘等待時間,而不是盲目失敗或無限重試。
  4. 對 402 / 429 / 503 等應答,在 budget 允許範圍內會按端點要求等待後重試。

安裝與啓用

官方安裝步驟如下。安裝命令以 README 爲準,不要自行拼接 github:owner/repo 形式。

dsh plugin --profile web add dsh-free-image
systemctl restart dsh-web   # or restart your DSH process

環境要求:

  • DSH >= 0.2.1-rc.4
  • Node ^22.19.0 || >=24.0.0
  • 出站到所配置 endpoint 的 HTTPS(使用默認公開端點時即需能訪問 Pollinations)

無需配置即可使用:默認 provider 即爲免 Key 的公開端點。插件以當前 DSH 進程權限運行;安裝前建議自行查看 GitHub 倉庫 源碼與 MIT 許可證,確認可接受其行爲與依賴。

配置(可選)

若要更換 endpoint、默認尺寸、輸出目錄或重試策略,可在 DSH 插件配置中增加類似片段(字段含義見 README 配置表):

- id: free-image
  config:
    providers:
      - id: pollinations
        label: Pollinations (keyless)
        baseUrl: https://image.pollinations.ai/prompt
        model: ''
        maxWidth: 1024
        maxHeight: 1024
        rateLimitMs: 45000
        timeoutMs: 120000
    defaults:
      provider: pollinations
      width: 512
      height: 512
    output:
      dir: /root/work/generated/images
      maxBytes: 10485760
    retry:
      budgetMs: 90000
      maxAttempts: 3

常用默認值(未改配置時)包括:baseUrl 爲 https://image.pollinations.ai/prompt;默認寬高 512;輸出目錄 <DSH_HOME>/generated/images;單張最大 10485760 字節;retry.budgetMs 爲 90000,maxAttempts 爲 3。

典型用法

在 DSH Web 或其它已加載該插件 profile 的環境中,智能體通過工具調用即可出圖,無需你在對話裏粘貼 Key。可先調用 list_image_models 查看當前 provider 與默認尺寸,再調用 generate_image 並傳入 prompt(及可選的寬高、provider id)。具體參數以插件在 Harness 中註冊的工具 schema 爲準;邏輯上就是向配置的 GET 端點請求一張圖並保存到 output.dir。

自建場景:將 providers[].baseUrl 指向本機或內網的生成服務(URL path 攜帶編碼後的 prompt,響應爲圖片字節),即可在不使用公開端點的情況下同樣免 Key 出圖。

適用場景與注意

適合:本地或 Web 上的 DSH 智能體需要 occasional 配圖、佔位圖、簡單示意圖,且可接受公開端點的質量與限流;或已有自建出圖 HTTP 前端、希望 Agent 統一通過 generate_image 落盤。

務必知曉的限制(README「Honest limits」):

  1. 公開免費端點按 IP 限流(編寫時約每 45 秒一張),可能返回 503,條款也可能變更。
  2. 畫質取決於端點默認模型,插件不保證特定風格或分辨率以外的效果。
  3. Prompt 會發送到所配置的 endpoint;敏感內容不要使用公開端點,應改用自建 baseUrl。

DSH 生態強調「一切皆插件」;社區目錄站點 SkillHub 插件頁 與 DeepSeek / 幻方無官方從屬關係,本文僅作技術介紹。

結尾

dsh-free-image 把「GET prompt 端點 → 校驗 → 落盤」封裝成 Harness 工具,默認免 Key、免付費賬戶,並對公開端點的限流做了 pacing 與重試預算處理。需要零配置試用時可按上文安裝;要私有化或放寬 pacing 時,改 baseUrl 指向自建服務即可。

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

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

小夜