Codex 教程
按顺序阅读,循序渐进掌握相关 AI 工具与实战方法。
DeepSeek Harness 支持三类模型提供方:
| 类型 | 是什么 | 凭据要求 | 适用场景 |
|---|---|---|---|
| DeepSeek | 官方端点 | DeepSeek API 密钥(只写) | 默认、最快上手 |
| 目录提供方 | 已安装目录里的提供方,如 Anthropic、OpenAI | 各家 API 密钥;原生认证的需各自凭据 | 接入已收录的主流厂商 |
| 自定义提供方 | 自建端点,如公司网关 | Provider ID、baseURL、协议、凭据、模型 | 目录里没有的端点 |
入口:桌面版点左下角账号菜单 → 设置 → 模型;Web UI 进入 设置 → 模型。模型变更在下一次请求时生效、无需重启。密钥可在 https://platform.deepseek.com/api_keys 申请;密钥是「只写」的,真实密钥存放在 $DSH_HOME/.credentials.yaml,同名时已存储凭据优先于环境变量。默认端点的模型列表跟随 DeepSeek API 发布列表,约每 10 分钟后台刷新,加载失败退回内置列表;「自定义设置 → 模型目录」可改为手动维护。
选择「添加提供方」,选取 Anthropic 或 OpenAI 等,输入 API 密钥保存即可——目录会自动带来端点、协议和模型列表。使用原生认证的提供方需各自凭据,只填 API 密钥无法完成配置:Bedrock 要 AWS 凭据与区域,Vertex 要 ADC 项目,Azure 要 api-version,Codex 要 OAuth。第三方目录提供方的路由 id 约定:Anthropic 是 anthropic、OpenAI 是 openai、Kimi 是 moonshotai、智谱 GLM 是 zai。
目录中不存在的端点,用「添加模型提供商 → 自定义模型 API」接入:
| 字段 | 说明 | 是否必填 |
|---|---|---|
| Provider ID | 小写,永久标识(请求、会话、默认值都引用它) | 必填 |
| 显示名称 | 界面里显示的名字 | 可选 |
| 基础 URL | 端点的 baseURL | 必填 |
| API 协议 | 三选一:openai-completions / openai-responses / anthropic-messages | 必填 |
| 凭据 | 按服务端要求提供;支持时可用环境认证 | 取决于端点 |
| 模型 | 至少一个模型 | 必填 |
Provider ID 不可改,重命名只能新增再删旧。选定的模型会成为新会话默认;已发出请求的会话保留日志里记录的模型。
支持的模型可在选择器里选 off / low / high 等等级;直连 DeepSeek 官方路由无需配置,模型自带档位。自定义 OpenAI 兼容网关注意两种情况:网关模型默认开启思考时,给路由加 compat.thinkingFormat: deepseek(off 档发送 thinking: {type: disabled},其他档位追加 enabled);想隐藏某内置模型的档位选择,用 reasoningEfforts: false 去除等级。常见兼容开关还有 compat.supportsDeveloperRole: false 与 compat.maxTokensField: max_tokens。路由级 compat 是默认值,模型级逐字段胜出;空值键会被拒绝而非忽略。
手动录入的模型默认按纯文本对待,支持图片必须显式声明:编辑提供方 → 自定义设置,展开模型选项,在输入类型中勾选图片。文件配置使用 $DSH_HOME/profiles/<profile>/cordis.patch.yml(Web 默认 profile 为 web),不要再写进旧的 settings.yaml:
# 文件路径:$DSH_HOME/profiles/web/cordis.patch.yml
- id: llm-pi-ai
config:
providers:
my-gateway:
apiKeyEnv: GATEWAY_API_KEY
api: openai-completions
baseURL: https://gateway.example/v1
models:
- id: legacy-chat
- id: vision-preview
input: [text, image]
input 作用于单个模型,省略时先继承目录声明、再回退到路由的 defaultInput(默认仅 text)。内置提供方的单模型覆盖写在 modelOverrides 下;DeepSeek 直连路由使用 inputModalities,字段不能互抄。这些声明是对端点的断言而非检查,声明了端点实际不提供的图片能力,会改由提供方拒绝请求。
| 错误 | 含义与解决 |
|---|---|
| MISSING_CREDENTIAL | 缺少提供方密钥:在模型页存储密钥,或提供被引用的环境变量 |
| UNKNOWN_MODEL | 模型未配置:选择已配置的模型,或向自定义提供方添加缺失模型 |
| 获取可用模型返回 401 | 密钥无效或端点不支持模型发现:检查密钥与协议,不支持发现时手动输入模型 ID |
| UNSUPPORTED_REASONING_EFFORT | 模型不支持所选档位:换档位,或用 reasoningEfforts: false 移除等级 |
| CLIENT_UPGRADE_REQUIRED | 账号模型需要更新的客户端:按提示升级 dsh |
| 图片在发送前被拒绝 | 模型未声明图片模态:加 input: [text, image](DeepSeek 直连用 inputModalities) |
本文根据 runoob 公开教程的核心信息进行原创整理与改写,原文地址:DeepSeek Harness 模型配置。具体细节以 DeepSeek Harness 官方文档为准。