在 DeepSeek Harness 中配置 OpenAI
使用 DSH 内置 OpenAI 模型目录,保存 API Key,并从已安装目录中选择当前模型。
本页内容
下面的 endpoint、协议和环境变量来自 Provider 官方文档或当前上游 Provider 源码。模型目录会变化,模型选择时以你当前 DSH 版本实际显示的 ID 为准。
开始前
先确认 DSH 已经通过 npx @deepseek-ai/dsh web 启动,默认 Web UI 地址是 http://127.0.0.1:3080。如果 DSH 本身没有启动,先看启动排查。
不要把真实 Key 写进仓库、截图、Prompt 或公开报错信息。
获取 OpenAI API Key
打开 OpenAI API Keys,登录后创建 Key,并在离开页面前复制保存。
如果使用 YAML,变量名必须与下表的 apiKeyEnv 完全一致;变量名不是 Key 本身。
在 DSH 中添加服务商
进入 Settings → Models。如果当前目录里有 OpenAI,选择 Add provider,再粘贴 API Key 并保存。
进入 Settings → Models → Add provider,选择 OpenAI。已安装的 pi-ai Provider 使用 OpenAI Responses API;连接 OpenAI 官方服务时保留内置路由,不要把它重新创建成 Chat Completions。
官方 Provider 指南说明,模型和服务商修改会在下一次请求生效。保存后直接创建新会话测试。
核对当前路由值
| 路由 | Provider ID | apiKeyEnv | Base URL | API |
|---|---|---|---|---|
| OpenAI · 内置 | openai | OPENAI_API_KEY | https://api.openai.com/v1 | openai-responses |
不要把不同区域、不同套餐或不同协议的 Key 与 Base URL 混在一起。表格里的内置路由只在你的 DSH 版本实际提供该目录时使用。
选择模型
从 DSH 当前 OpenAI 分组中选择模型。模型可用性取决于账号、Key 和已安装目录,不要照抄旧截图中的模型名。
如果模型不在选择器里,不要连续猜模型名。对 OpenAI-compatible 自定义路由使用 Fetch available models;失败时再根据服务商返回的真实 ID 手动添加。
内置目录没有时:创建自定义 Provider
进入 Settings → Models → Add a custom provider,Provider ID 使用小写且一次想好,例如 openai-custom。
Base URL
https://api.openai.com/v1
API protocol
openai-responses
凭据
OPENAI_API_KEY 对应的 Key
模型
点击 Fetch available models,搜索并 Add selected。
如果接口没有返回模型列表,确认 Key、Base URL 和模型 ID 后手动添加;模型发现失败不等于聊天接口一定失败。
需要手动写 YAML 时
普通用户使用 Web UI 就够了。只有在要固定自定义路由或界面无法表达的设置时,才编辑 <code>$DSH_HOME/settings.yaml</code>。下面的模型 ID 必须替换为服务商返回的真实值。
llm-pi-ai:
providers:
openai-custom:
apiKeyEnv: OPENAI_API_KEY
api: openai-responses
baseURL: https://api.openai.com/v1
models:
- id: <copy the exact model id from the provider>Key 只通过 <code>apiKeyEnv</code> 引用,不要把密钥正文写进配置文件。自定义路由的 <code>models</code> 列表会替换该路由的模型目录。
发送一次安全测试请求
选择测试工作区,创建新会话,选中刚配置的模型,然后发送:
看到正常回答后,再进行需要读文件或执行工具的任务。这样可以把凭据/路由问题与工具权限问题分开。
常见错误
MISSING_CREDENTIAL
回到 Settings → Models 保存 Key;如果使用 YAML,确认 apiKeyEnv 对应的变量在 DSH 启动前已经存在。
UNKNOWN_MODEL
使用当前 Provider 下真实存在的 Model ID;不要把显示名称、别名或旧教程里的名称当成 ID。
401 / authentication failed
只支持 `/chat/completions` 的网关属于另一条路由。如果你接的是这类网关,请单独创建自定义 Provider,并选择 `openai-completions`。
Fetch available models 为空或失败
先检查当前表单中的 Base URL、协议和 Key。如果服务商没有兼容的模型列表接口,确认模型 ID 后手动添加。
模型切换后仍像在用旧模型
已经发过请求的 Session 会保留自己的模型记录。创建新会话再验证切换结果。