Back to home

skystar567

dsh-openai-plugins

用于在dsh和openai账户之间建立连接

Stars
1
Language
TypeScript
Created
Aug 14, 2026
Updated
Aug 14, 2026

Introduction

dsh-openai-plugins

用户自有的 DeepSeek Harness 插件:通过 ChatGPT 账号 OAuth 接入 OpenAI 模型与联网搜索。一个插件同时挂载两个能力 seam(ctx.llmctx.web),共享同一个 OPENAI_ACCOUNT_OAUTH 凭证(经 ctx.credentials seam 按引用解析)。

packages/
└── dsh-openai-account/   LLM 适配器(openai-account 路由 + /openai-login)+ 联网搜索提供方(openai-account)

构建与测试

前置:同级目录存在 harness 检出 /root/deepseek-plugins/deepseek-harness,且其 lib/types 已构建。npm 发布的 @deepseek-ai/*@0.0.1-rc.1 不完整(dsh-agent 引用了从未发布的 dsh-type-meta peer),因此类型与测试都解析到检出产物:

# 一次性:在 harness 检出内构建本仓库用到的类型产物
cd ../deepseek-harness
pnpm exec tsc -b packages/interaction/commands packages/credentials/credentials-local \
  packages/llm/llm packages/util/timeout vendor/loader packages/util/atomic-write \
  packages/util/home-paths packages/core/scope packages/typert/protocol

# 回到本仓库
cd ../dsh-openai-plugins
pnpm install          # autoInstallPeers: false — peers 由宿主 profile 在运行时满足
pnpm build            # tsc 构建 → packages/dsh-openai-account/lib/
pnpm test             # vitest
pnpm pack:all         # 产出可安装 tgz
  • 构建tsconfig.base.jsonpaths 指向 harness 的 lib/types/*.d.ts(声明文件)。
  • 测试vitest.config.ts 的别名指向 harness 的 src(源平面)。

安装到 Web profile

dsh plugin --profile web add packages/dsh-openai-account/dsh-openai-account-0.1.0.tgz

重启 Web 应用后在命令框执行 /openai-login 完成账号登录(若尚未登录)。tgz 自带的 cordis.patch.yml 会插入插件行(LLM 适配器 + 搜索提供方)。

联网搜索:默认 DeepSeek,ChatGPT 搜索是 opt-in

插件会注册一个 openai-account 搜索提供方,但不会覆盖 web.searchProvider:默认仍走 base 里的 DeepSeek 官方搜索(deepseek-official,更便宜)。想用 ChatGPT 账号搜索,在 profile 的 cordis.patch.yml(用户层)加一行:

- id: web
  config:
    searchProvider: openai-account

重启后 web_search 就走 ChatGPT 账号(模型 searchModel,默认 gpt-5.6-luna)。

依赖链

联网搜索可用 ⟺ OPENAI_ACCOUNT_OAUTH 凭证存在。登录命令 /openai-login 由本插件提供;LLM 适配器与搜索提供方每次解析同一凭证(过期自动经 issuer 的 refresh_token 授权刷新并回写),共享一套凭证刷新逻辑。