DeepSeek Harness: 模型配置

最后更新:2026-08-31

模型是 Agent 的"大脑"——选对模型、配好连接,Agent 才能高效工作。DSH 的模型无关设计让你能自由切换 LLM,从 DeepSeek 到 GPT-4o 到本地 Ollama,只需修改配置,无需改动代码。

💡 提示:DSH 支持两种模型接入方式:DeepSeek 官方 API 和 OpenAI 兼容端点。后者意味着任何兼容 OpenAI API 格式的服务都能接入——包括 Ollama、vLLM、Azure OpenAI 等。

📋 前置知识:已完成 03-first-use.md,能正常启动 Web UI

1. 你将学到


2. DeepSeek API Key 配置

(1) 获取 API Key

访问 DeepSeek 开放平台获取 API Key:

获取 API Key

TEXT 📖 仅展示
1. 访问 https://platform.deepseek.com/
2. 注册/登录账号
3. 进入 API Keys 页面
4. 点击「创建 API Key」
5. 复制生成的 Key(以 sk- 开头)

注意:API Key 只在创建时显示一次,务必立即保存。丢失后需要重新创建。

(2) 配置 API Key

三种配置方式,按优先级从高到低:

方式一:Web UI 设置页面(推荐)

TEXT 📖 仅展示
顶部控制栏 → ⚙️ Settings → Models → DeepSeek API Key
┌─────────────────────────────────────────┐
│ DeepSeek API Key                         │
│ sk-•••••••••••••••••••••••••••xxxx       │
│ [Test Connection]  [Save]                │
└─────────────────────────────────────────┘

点击 Test Connection 验证连通性:

配置 API Key

TEXT 📖 仅展示
✅ Connection successful!
   Model: deepseek-chat
   Latency: 120ms

方式二:环境变量

BASH
# 在 .env 文件或 shell 中配置
export DEEPSEEK_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

方式三:配置文件

YAML
# dsh.config.yaml
models:
  deepseek:
    api_key: "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    base_url: "https://api.deepseek.com/v1"

(3) DeepSeek 可用模型

模型 ID 说明 上下文窗口 适用场景
deepseek-chat 通用对话模型 64K tokens 日常编程、问答
deepseek-reasoner 推理增强模型 64K tokens 复杂逻辑、数学推理
deepseek-coder 代码专用模型 16K tokens 代码生成、调试

3. 设置页面详解

(1) ▶ 示例 1

设置页面

TEXT 📖 仅展示
┌──────────────────────────────────────────────┐
│ 📡 Model Providers                            │
│                                                │
│ ┌─ DeepSeek ────────────────────────────────┐ │
│ │ API Key: sk-•••••••••xxxx                 │ │
│ │ Base URL: https://api.deepseek.com/v1     │ │
│ │ Default Model: deepseek-chat              │ │
│ │ [Test] [Save]                             │ │
│ └───────────────────────────────────────────┘ │
│                                                │
│ ┌─ OpenAI Compatible ───────────────────────┐ │
│ │ API Key: sk-•••••••••xxxx                 │ │
│ │ Base URL: https://api.openai.com/v1       │ │
│ │ Default Model: gpt-4o                     │ │
│ │ [Test] [Save]                             │ │
│ └───────────────────────────────────────────┘ │
│                                                │
│ [+ Add Provider]                               │
└──────────────────────────────────────────────┘

(2) 配置项说明

配置项 说明 示例
API Key LLM 服务的认证密钥 sk-xxxxxxxx
Base URL API 端点地址 https://api.deepseek.com/v1
Default Model 默认使用的模型 deepseek-chat
Max Tokens 单次响应最大 token 数 4096
Temperature 生成温度(0-2) 0.7

(3) ▶ 示例 3

YAML
# dsh.config.yaml
models:
  deepseek:
    api_key: "${DEEPSEEK_API_KEY}"
    default_model: deepseek-chat
    params:
      temperature: 0.7
      max_tokens: 4096
      top_p: 0.95
  openai:
    api_key: "${OPENAI_API_KEY}"
    default_model: gpt-4o
    params:
      temperature: 0.5
      max_tokens: 8192

不同场景推荐参数:

场景 Temperature Max Tokens 说明
代码生成 0.2-0.4 4096+ 低温度确保代码一致性
文档编写 0.5-0.7 4096 适度创造性
创意头脑风暴 0.8-1.0 8192+ 高温度鼓励多样性
精确问答 0.0-0.2 2048 最确定性输出

4. OpenAI 兼容端点配置

(1) ▶ 示例 1

YAML
# dsh.config.yaml
models:
  openai:
    api_key: "${OPENAI_API_KEY}"
    base_url: "https://api.openai.com/v1"
    default_model: gpt-4o

(2) Azure OpenAI 端点

YAML
# dsh.config.yaml
models:
  azure:
    api_key: "${AZURE_OPENAI_API_KEY}"
    base_url: "https://your-resource.openai.azure.com/openai/deployments/your-deployment"
    default_model: gpt-4o
    headers:
      api-key: "${AZURE_OPENAI_API_KEY}"

(3) 本地 Ollama 端点

YAML
# dsh.config.yaml
models:
  ollama:
    api_key: "ollama"           # Ollama 不需要真实 Key
    base_url: "http://localhost:11434/v1"
    default_model: llama3.2

(4) 自定义端点

任何兼容 OpenAI API 格式的服务都能接入:

多端点架构

YAML
    api_key: "${CUSTOM_API_KEY}"
    base_url: "https://your-llm-service.com/v1"
    default_model: your-model-name
    headers:
      X-Custom-Header: "custom-value"

(5) 多端点架构

100%
graph TB
    DSH[DeepSeek Harness] -->|Provider 1| DS[DeepSeek API<br/>deepseek-chat]
    DSH -->|Provider 2| OAI[OpenAI<br/>gpt-4o]
    DSH -->|Provider 3| OLL[Ollama<br/>llama3.2]
    DSH -->|Provider 4| AZ[Azure OpenAI<br/>gpt-4o]

5. 模型路由与多模型选择

(1) Web UI 切换模型

在顶部控制栏的模型下拉菜单中切换:

TEXT 📖 仅展示
[deepseek-chat ▼]
┌──────────────────────────┐
│ ● deepseek-chat          │
│   DeepSeek · 64K ctx     │
│                          │
│ ○ gpt-4o                 │
│   OpenAI · 128K ctx      │
│                          │
│ ○ llama3.2               │
│   Ollama · 8K ctx        │
└──────────────────────────┘

(2) 模型路由策略

DSH 支持根据任务类型自动路由到不同模型:

模型路由

YAML
# dsh.config.yaml
routing:
  rules:
    - match:
        mode: ptc            # PTC 模式
      model: deepseek-reasoner   # 使用推理模型做规划
    
    - match:
        tool: file_edit      # 文件编辑
      model: deepseek-coder  # 使用代码模型
    
    - match:
        mode: creative       # 创造模式
      model: gpt-4o          # 使用 GPT-4o
    
    - match:
        default: true        # 默认路由
      model: deepseek-chat

(3) 路由流程

100%
graph TD
    INPUT[用户输入] --> CHECK{匹配路由规则}
    CHECK -->|PTC 模式| R1[deepseek-reasoner]
    CHECK -->|file_edit 工具| R2[deepseek-coder]
    CHECK -->|creative 模式| R3[gpt-4o]
    CHECK -->|默认| R4[deepseek-chat]

(4) CLI 模式指定模型

BASH
# 指定模型启动
npx @deepseek-ai/dsh cli --model gpt-4o

# 运行中切换模型(CLI 内部命令)
/model deepseek-reasoner

6. API Key 安全管理

(1) 安全原则

原则 说明
不硬编码 API Key 不直接写在代码中
不提交到 Git .env 文件加入 .gitignore
最小权限 只配置必要的服务访问权限
定期轮换 定期更换 API Key
审计日志 监控 API Key 的使用情况

(2) 环境变量管理

BASH
# .env 文件(不提交到 Git)
DEEPSEEK_API_KEY=sk-xxxxxxxxxxxxxxxx
OPENAI_API_KEY=sk-yyyyyyyyyyyyyyyy

# .env.example 文件(提交到 Git,供团队参考)
DEEPSEEK_API_KEY=your-deepseek-api-key
OPENAI_API_KEY=your-openai-api-key
BASH
# .gitignore
.env
.env.local
.env.*.local

(3) 配置文件中的变量引用

DSH 配置文件支持环境变量引用,避免硬编码:

YAML
# dsh.config.yaml — 使用 ${VAR} 引用环境变量
models:
  deepseek:
    api_key: "${DEEPSEEK_API_KEY}"    # 运行时从环境变量读取
    base_url: "https://api.deepseek.com/v1"
  openai:
    api_key: "${OPENAI_API_KEY}"
    base_url: "https://api.openai.com/v1"

(4) 密钥管理服务集成

对于企业级部署,推荐使用专业密钥管理服务:

密钥管理

YAML
# dsh.config.yaml — AWS Secrets Manager 集成(示例)
models:
  deepseek:
    api_key:
      vault: aws-secrets-manager
      secret_id: "dsh/deepseek-api-key"
      region: "us-east-1"

(5) Key 泄露应急处理

TEXT 📖 仅展示
1. 立即在 API 提供商平台禁用/删除泄露的 Key
2. 生成新 Key 并更新配置
3. 检查 API 调用日志,确认无异常使用
4. 审查 Git 历史,确保 Key 未被提交(如已提交,使用 git filter-branch 清除)

7. 连接故障排查

(1) 常见错误与解决

错误信息 原因 解决方案
Invalid API key Key 错误或已过期 重新生成 Key 并配置

连接故障排查

| Connection refused | 端点地址错误 | 检查 Base URL | | Rate limit exceeded | API 调用频率超限 | 降低请求频率或升级套餐 | | Model not found | 模型 ID 错误 | 检查模型名称拼写 | | Timeout | 网络不通 | 检查代理设置或防火墙 |

(2) 连接测试命令

BASH
# 测试 DeepSeek API
curl -s https://api.deepseek.com/v1/models \
  -H "Authorization: Bearer $DEEPSEEK_API_KEY"

# 测试 OpenAI 兼容端点
curl -s https://api.openai.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY"

# 测试本地 Ollama
curl -s http://localhost:11434/v1/models

(3) 代理配置

如果需要通过代理访问 API:

BASH
# 设置 HTTP 代理
export HTTP_PROXY="http://proxy.example.com:8080"
export HTTPS_PROXY="http://proxy.example.com:8080"

# 或在配置文件中指定
# dsh.config.yaml
models:
  deepseek:
    api_key: "${DEEPSEEK_API_KEY}"
    base_url: "https://api.deepseek.com/v1"
    proxy: "http://proxy.example.com:8080"

❓ 常见问题

Q 可以同时配置多个模型提供商吗?
A 可以。DSH 支持同时配置 DeepSeek、OpenAI、Ollama 等多个提供商,并在 Web UI 中一键切换。
Q 免费 API Key 够用吗?
A DeepSeek 新用户通常有免费额度,适合学习和测试。但长期使用建议购买正式套餐,免费额度可能不足以支持复杂 Agent 任务。
Q 如何知道当前使用的是哪个模型?
A Web UI 顶部控制栏显示当前模型名称。CLI 模式下输入 /model 查看当前模型。
Q 模型切换后,上下文会保留吗?
A 会话上下文(对话历史)会保留,但不同模型的上下文窗口大小不同——如果历史超出窗口,较早的消息会被截断。
Q Ollama 本地模型效果好吗?
A 取决于模型大小和量化等级。7B 参数的模型适合简单任务,70B+ 的模型接近云端效果但需要大量 GPU 资源。
Q API Key 配置后还是报连接错误?
A 按顺序排查:1) Key 是否正确(无多余空格);2) Base URL 是否正确;3) 网络是否连通;4) 代理是否需要配置。 ---

📖 小节


📝 作业

1. ⭐ 基础题:配置 DeepSeek API Key,在 Web UI 中成功发送一条消息并获得回复,截图保存连接测试结果。

2. ⭐⭐ 进阶题:同时配置 DeepSeek 和 OpenAI 两个模型提供商,在同一个会话中切换使用两个模型,对比同一问题的回答差异。

3. ⭐⭐⭐ 挑战题:配置 Ollama 本地模型端点,编写模型路由规则——让代码编辑操作路由到 DeepSeek Coder,创意任务路由到 GPT-4o,默认使用 DeepSeek Chat。验证路由是否按预期工作。

Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏