dsh-bundle-pi-ai-auth: DeepSeek Harness pi-ai OAuth 控制與回退

前言

DeepSeek Harness(DSH)採用模塊化插件架構。在集成 pi-ai 模型時,認證流程通常需要 OAuth 支持。現有的基礎集成僅註冊協議和憑據記錄,缺乏直觀的交互界面和命令行管理手段。dsh-bundle-pi-ai-auth 插件爲 pi-ai 提供者添加了 Model 設置頁面的 Provider-card UI 控件,並保留 /auth-* 命令作爲 fallback,用於管理 OAuth 能力、啓用狀態和登錄狀態。

核心功能

此插件在 DSH 的 Web 或 Desktop 端提供以下能力:

  1. Provider-card OAuth 控制:在 Models 設置頁面,爲每個支持 OAuth 的 pi-ai 提供者顯示授權狀態和操作按鈕。
  2. Models settings UI 集成:提供 “Sign in” 和 “Sign out” 按鈕。點擊 Sign in 會啓動提供者流程,打開系統瀏覽器並顯示設備代碼或後續問題。
  3. 命令行回退:提供一組 /auth-* 命令,用於手動管理提供者。
  4. 狀態管理:分離管理 OAuth 能力、啓用狀態和登錄狀態,不自動創建臨時 token 環境變量。
  5. 憑據清理:登出操作僅刪除本地憑據記錄,不撤銷遠程授權。

安裝與啓用

安裝前需確保環境滿足依賴要求。此插件依賴 @deepseek-ai/dsh-llm-pi-ai,需要 DeepSeek Harness 0.1.7-rc.2 或兼容的 0.1.x 版本。此外,Web/Desktop 組合需包含 authorization、credentials、settings、llm-pi-ai、Remote gateway 和 Models settings UI 組件。

在 Web 端安裝插件:

dsh plugin --profile web add github:dingyiliao/dsh-bundle-pi-ai-auth

安裝後重啓應用,在 Settings → Models 中添加提供者,然後使用提供者卡片上的 Sign in 操作。

典型用法

命令行操作

插件提供以下命令用於狀態檢查和操作:

  • 列出狀態:/auth-list - 查看所有支持 OAuth 的提供者及其啓用和登錄狀態。
  • 添加並登錄:/auth-add [provider] - 添加提供者並立即登錄。省略 provider 參數會觸發選擇提示。
  • 登錄已啓用提供者:/auth-login [provider] - 僅對已啓用的提供者執行登錄。
  • 檢查狀態:/auth-status [provider] - 檢查特定提供者的詳細狀態。不指定 provider 時等同於 /auth-list。
  • 登出:/auth-logout [provider] - 移除本地憑據但保留提供者啓用狀態。
  • 移除提供者:/auth-remove [provider] - 移除用戶添加的提供者及其本地憑據。

UI 操作

在 Models 設置頁面,找到支持 OAuth 的提供者卡片:
1. 點擊 Sign in。系統會啓動授權流程,彈出模態框顯示設備代碼或後續問題。
2. 在系統瀏覽器中完成登錄後,憑證將保存至本地。
3. 點擊 Sign out 可刪除本地憑證。

適用場景與注意

  • 依賴關係:此插件不實現 OAuth 協議,也不存儲和刷新 token。它僅作爲交互層,依賴 @deepseek-ai/dsh-llm-pi-ai 處理底層邏輯。
  • 手動啓用:安裝插件不會自動啓用任何提供者。用戶必須先在 Models 設置中添加提供者,然後才能進行登錄。
  • UI 限制:對於純 OAuth 提供者,核心 Models UI 可能仍顯示通用的 API Key 編輯器,因爲此插件不通過 CSS 遮蔽核心 UI。
  • 登出行爲:登出僅移除本地記錄,不會撤銷遠程的授權 grant。
  • 依賴組件:必須安裝包含 authorization、credentials、settings、llm-pi-ai、Remote gateway 和 Models settings UI 的完整 DSH 環境方可正常工作。
  • 提供者衝突:如果提供者是由其他 bundle 的基礎配置啓用的,不能通過 /auth-remove 移除,需更新該 bundle。

總結

dsh-bundle-pi-ai-auth 補全了 pi-ai 集成在 DSH 中的交互短板。它通過 UI 卡片和命令行工具,讓開發者能夠更方便地管理 OAuth 提供者的啓用、登錄和登出狀態,而無需直接操作底層協議。

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

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

小夜