dsh-openai-siwc:用 ChatGPT 套餐登錄爲 DSH 提供模型推理

前言

在 DeepSeek Harness(DSH)裏接大模型,常見路徑是內置 provider 或自備 API Key。OpenAI 爲開源、本地運行的客戶端提供了 Sign in with ChatGPT(SIWC),允許符合條件的 ChatGPT Plus / Pro 用戶用賬號與套餐額度調用模型,而不是把 SIWC 令牌當成 API Key 走另一套計費。

@hackforjoy/dsh-openai-siwc 是社區維護的 LLM provider 插件(維護組織 HackForJoy,npm 包 @hackforjoy/dsh-openai-siwc,當前版本 0.1.2,MIT 許可證)。它按 OpenAI 官方文檔實現 SIWC,讓 DSH 通過瀏覽器登錄 ChatGPT 並使用 ChatGPT plan usage。插件與 OpenAI、DeepSeek 均無隸屬或背書關係;協議說明見倉庫內 docs/research/openai-siwc-protocol.md。

下面介紹它是什麼、能做什麼、如何安裝與登錄使用,以及與其它 provider 的差異和注意事項。

這是什麼

一句話:@hackforjoy/dsh-openai-siwc 是 DSH 的 LLM provider 插件,掛載 id 爲 openai-siwc,用 OpenAI 官方 SIWC 流程把 ChatGPT 賬號綁到 DSH,請求走 ChatGPT 套餐額度(eligible Plus / Pro),不是傳統 Codex OAuth(DSH 內置 openai-codex 所用),也不是 API Key provider——不會在失敗時回退到其它計費路徑。

環境與兼容性

  • OpenAI 要求:ChatGPT plan usage 面向符合條件的 ChatGPT Plus / Pro 用戶在開源、本地應用中使用;不符合的賬號(例如 Free)在 code exchange 階段會被拒絕(invalid_grant)。
  • 插件側:已在 DSH 0.2.1-rc.3(@deepseek-ai/cordis ~4.0.5)上驗證;Node.js ≥ 22。DSH SDK 仍爲預發佈階段,peer 依賴版本與 DSH 更新需對齊。
  • Plus 用戶的五小時用量限額在所有使用該套餐的應用間共享,可在 ChatGPT Usage 設置 管理。

核心功能

經 README 覈實,登錄成功後插件支持:

  • 在模型選擇器中使用 ChatGPT plan (Sign in with ChatGPT) 下的模型;列表來自賬號 GET /v1/models(僅 visibility: "list"),切換賬號時會刷新。
  • 文本、流式輸出、多輪對話、工具調用(按文檔要求包裝在名爲 dsh 的 namespace)、圖像輸入、reasoning effort;能力與上下文窗口等來自賬號模型目錄,不做猜測。
  • OpenAI 端點不可配置,避免篡改配置把令牌發往其它地址。
  • 斜槓命令(DSH 掛載 commands 服務時):/siwc login [new]、/siwc status、/siwc models、/siwc logout。

與其它 DSH provider 的差異(節選):temperature、stop 會返回 UNSUPPORTED_PARAMETER;reasoningEffort 映射爲 reasoning.effort;maxTokens 按文檔不發送;圖像默認單請求 base64 預算 20 MiB(可配置 maxRequestImageBytes);reasoning replay 不回放。

安裝與啓用

先用 DSH CLI 把插件記入 profile 的 dependencies 與 dsh.profile.bundles,再啓動 profile。官方安裝示例:

DSH="/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh"   # macOS
"$DSH" plugin --profile <profile> add @hackforjoy/dsh-openai-siwc

然後啓動 profile,例如 "$DSH" <profile>。捆綁的 cordis.patch.yml 會以 id openai-siwc 掛載插件。

建議先在獨立 profile 或獨立 DSH_HOME(如 DSH_HOME=~/.dsh-siwc-test)試跑,再併入日常 profile。pnpm 對缺失的 @deepseek-ai/* peer 警告屬預期,由 DSH 宿主提供。

升級指定版本:

"$DSH" plugin --profile <profile> add @hackforjoy/dsh-openai-siwc@<new version>

重啓 DSH 後生效。

可選配置

在 profile 的 cordis.patch.yml 中按 id 覆蓋:

- id: openai-siwc
  name: '@hackforjoy/dsh-openai-siwc'
  config:
    defaultContextWindow: 128000
    models:
      some-model-slug:
        contextWindow: 200000
    streamIdleTimeoutMs: 300000
    maxRequestImageBytes: 20971520

defaultContextWindow 僅用於目錄項無 context_window 的模型;streamIdleTimeoutMs 爲流式最長靜默時間;超出 maxRequestImageBytes 時 DSH 會 offload 最舊的圖像。

登錄與典型用法

DSH 0.2.1 設置界面尚無第三方授權入口,登錄須在對話內執行斜槓命令(首頁空 composer 不顯示命令輸出):

  1. 在會話中運行 /siwc login(/siwc login new 可添加另一個 ChatGPT 賬號)。
  2. 插件打開系統瀏覽器,登錄 ChatGPT,確認 agent 名稱「DSH OpenAI SIWC」,並允許 ChatGPT plan usage。
  3. 瀏覽器回調 http://127.0.0.1:<隨機端口>/auth/callback 顯示完成;命令行輸出「Signed in to ChatGPT as …」。授權 URL 僅進入瀏覽器,不會出現在命令輸出或會話日誌。

使用步驟:在模型選擇器選 ChatGPT plan (Sign in with ChatGPT) 下模型即可對話。可用 /siwc status 查看登錄狀態、plan usage、scope、令牌生命週期及最近錯誤(不輸出令牌);/siwc models 拉取當前賬號模型列表。

若登錄時未允許 plan usage,請求會失敗並報 SIWC_PLAN_USAGE_DISABLED,需重新 /siwc login 並勾選允許。

登出與卸載

登出:

/siwc logout

會停止使用令牌、向 OpenAI 撤銷 refresh token(失敗會重試),並刪除本地令牌;client id 與 host id 保留供下次登錄。若無法確認撤銷成功,可在 ChatGPT 設置中斷開應用。僅刪除 DSH 設置裏的 openai-siwc/session 不會遠程撤銷會話。

卸載順序:

  1. 先 /siwc logout;
  2. "$DSH" plugin --profile <profile> remove @hackforjoy/dsh-openai-siwc,重啓 DSH;
  3. 卸載不會自動刪除憑證記錄;完整清理需刪除設置中的 openai-siwc/session 與 openai-siwc/registry(無 registry 時下次登錄會註冊新 client 與 host id)。

憑證默認存於 DSH 憑證庫(如 ~/.dsh/.credentials.yaml,權限 0600),記錄 openai-siwc/registry 與 openai-siwc/session。

適用場景與注意

適合:已在 DSH 中開發或運行智能體、具備 eligible ChatGPT Plus / Pro、希望用官方 SIWC 與套餐額度而非自管 OpenAI API Key 的開發者。

務必注意:

  • 插件以當前 DSH 進程權限運行;安裝前請閱讀源碼與 MIT 許可證,並理解倉庫中的 docs/security/threat-model.md。
  • DSH 生態理念是「一切皆插件」;SkillHub 目錄頁 爲社區站點,與 DeepSeek / 幻方無官方從屬關係。
  • 常見問題:MISSING_CREDENTIAL 表示未登錄;invalid_grant 多爲非 Plus/Pro 賬號;無法打開系統瀏覽器時需檢查桌面環境。

結尾

@hackforjoy/dsh-openai-siwc 把 OpenAI SIWC 與 ChatGPT plan usage 接到 DSH,在遵守官方協議的前提下提供可配置的 provider 行爲與 /siwc 命令管理登錄態。進一步細節與故障表見 GitHub README。

  • 目錄頁:https://www.skillhub.cn/plugins/HackForJoy/dsh-openai-siwc
  • 倉庫:https://github.com/HackForJoy/dsh-openai-siwc
羽毛球分组比赛记分
小程序二维码

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

小夜