READMESource: main@40626c61
dsh-plugin-llm-proxy
一个 DeepSeek Harness 自定义厂商适配器:让你把公司自建 / 私有的 OpenAI 兼容模型(chat/completions 协议)接入 DSH,并让该厂商的请求流量 通过一个指定的 HTTP(S) 正向代理转发。
典型场景:公司模型网关只能通过内网代理访问(http://proxy.company.example:8080)。
能力
- 注册一条 provider 路由
openai-proxy(显示名「OpenAI 兼容(代理)」)。 - 完整走 harness 的流式协议:文本、推理(
reasoning_content)、工具调用、usage、finish。 - 配置项:
baseURL(端点)、apiKeyEnv(可选,API Key 的环境变量名)、proxy(可选,正向代理地址)、models(模型目录)、streamIdleTimeoutMs、retryPolicy。
安装
dsh plugin --profile web add file:./dsh-plugin-llm-proxy
(dsh plugin 会把 dsh.profile.bundles 里补上本包;cordis.patch.yml 负责把
llm-proxy 这一行插进组合。)
装完后重启 dsh web 使新 bundle 生效。
配置
推荐:在界面里配。 装好并重启后,打开「设置」,左侧会出现一个新页面
「公司模型(代理)」,直接在上面填 baseURL、API Key、代理地址、模型列表
并点保存即可,无需编辑任何配置文件。
兼容:以下两种 YAML 方式仍然可用(属于你自己的 patch 层 / 用户设置层, 升级不被覆盖;界面里填写的值最终也写进
settings.yaml的llm-proxy段):
方式一:写进 profile 的 cordis.patch.yml
编辑 $DSH_HOME/profiles/web/cordis.patch.yml,在末尾追加:
- id: llm-proxy
config:
baseURL: https://llm.company.example/v1 # 公司模型网关
apiKeyEnv: COMPANY_LLM_API_KEY # 可选;删掉则不带鉴权头
proxy: http://proxy.company.example:8080 # 可选;正向代理地址
models:
- id: company-model
name: Company Model
contextWindow: 32768
maxTokens: 8192
方式二:写进 $DSH_HOME/settings.yaml
llm-proxy:
baseURL: https://llm.company.example/v1
apiKeyEnv: COMPANY_LLM_API_KEY
proxy: http://proxy.company.example:8080
models:
- id: company-model
name: Company Model
contextWindow: 32768
maxTokens: 8192
然后在「设置 → 模型」页能看到名为「OpenAI 兼容(代理)」的厂商卡片;它属于 未知适配器族,UI 只提示「高级配置在 settings.yaml(llm-proxy)」,字段请按上面 两种方式之一填写。
使用
- 配置并重启后,在对话上方的模型选择器里选择
OpenAI 兼容(代理)→Company Model即可。 - API Key:把密钥写到环境变量
COMPANY_LLM_API_KEY,或到「设置 → 模型」卡片里 输入(会通过 credentials 服务保存为该引用)。
说明 / 边界
- 代理只作用于本插件注册的
openai-proxy厂商,不影响官方 DeepSeek 或其他厂商。 - 代理地址支持
http:///https://;如代理需要账号密码,可写成http://user:pass@host:port(undiciProxyAgent原生支持)。 - 请求通过 Node 全局
fetch+ undiciProxyAgent发出(Node 的fetch不会 自动读取HTTP_PROXY/HTTPS_PROXY环境变量,这正是需要显式配置proxy的原因)。
No comments yet. Be the first to write one.