DeepSeek Harness: モデル設定とAPI管理

最終更新:2026-08-31

モデルは Agent の「脳」——適切なモデルを選び、接続を正しく設定すれば、Agent は効率的に働きます。DSH のモデル非依存設計により、LLM を自由に切り替えられます——DeepSeek から GPT-4o、ローカル Ollama まで——設定を変更するだけで、コードの変更は不要です。

💡 ヒント:DSH は2つのモデルアクセス方法をサポートしています:公式 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 を取得します:

ja API Key の取得

TEXT 📖 参照専用
2. アカウントを登録/ログイン
3. API Keys ページに移動
4. "Create API Key" をクリック
5. 生成された Key をコピー(sk- で始まる)

注意:API Key は作成時に1回しか表示されません。すぐに保存してください。紛失した場合は新しく作成する必要があります。

(2) API Key の設定

3つの設定方法、優先順位の高い順:

方法1:Web UI 設定ページ(推奨)

TEXT 📖 参照専用
上部コントロールバー → ⚙️ Settings → Models → DeepSeek API Key
┌─────────────────────────────────────────┐
│ DeepSeek API Key                         │
│ sk-•••••••••••••••••••••••••••xxxx       │
│ [Test Connection]  [Save]                │
└─────────────────────────────────────────┘

Test Connection をクリックして接続を検証:

ja API Key の設定

TEXT 📖 参照専用
   Model: deepseek-chat
   Latency: 120ms

方法2:環境変数

BASH
# .env ファイルまたはシェルで設定
export DEEPSEEK_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

方法3:設定ファイル

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

(3) 利用可能な DeepSeek モデル

モデル ID 説明 コンテキストウィンドウ ユースケース
deepseek-chat 汎用会話モデル 64K tokens 日常的なプログラミング、Q&A
deepseek-reasoner 推論強化モデル 64K tokens 複雑なロジック、数学的推論
deepseek-coder コード特化モデル 16K tokens コード生成、デバッグ

3. 設定ページの詳細

▶ サンプル 1:

ja 設定ページ

TEXT 📖 参照専用
Settings → Models
┌──────────────────────────────────────────────┐
│ 📡 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 1回の応答の最大トークン数 4096
Temperature 生成温度(0-2) 0.7

▶ サンプル 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+ 高温度で多様性を奨励
正確な Q&A 0.0-0.2 2048 最も決定論的な出力

4. OpenAI 互換エンドポイントの設定

▶ サンプル 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
# dsh.config.yaml
models:
  custom:
    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       # Creative モード
      model: gpt-4o          # GPT-4o を使用
    
    - match:
        default: true        # デフォルトルート
      model: deepseek-chat

(3) ルーティングフロー

100%
graph TD
    INPUT[User Input] --> CHECK{Match Routing Rules}
    CHECK -->|PTC Mode| R1[deepseek-reasoner]
    CHECK -->|file_edit Tool| R2[deepseek-coder]
    CHECK -->|Creative Mode| R3[gpt-4o]
    CHECK -->|Default| 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) シークレット管理サービスの統合

エンタープライズデプロイには、専門的なシークレット管理サービスを推奨:

ja キー管理

YAML
models:
  deepseek:
    api_key:
      vault: aws-secrets-manager
      secret_id: "dsh/deepseek-api-key"
      region: "us-east-1"

(5) キー漏洩時の緊急対応

TEXT 📖 参照専用
1. API プロバイダーのプラットフォームで漏洩した Key を即座に無効化/削除
2. 新しい Key を生成して設定を更新
3. API 呼び出しログを確認し、異常な使用がないか確認
4. Git 履歴を確認し、Key がコミットされていないことを確認(コミットされている場合は git filter-branch で削除)

7. 接続トラブルシューティング

(1) よくあるエラーと解決策

エラーメッセージ 原因 解決策
Invalid API key Key が間違っているか期限切れ Key を再生成して設定

ja 接続トラブルシューティング

| 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 の両方のモデルプロバイダーを設定し、同じセッションで2つのモデルを切り替えて、同じ質問に対する応答の違いを比較してください。

3. ⭐⭐⭐ チャレンジ:Ollama ローカルモデルエンドポイントを設定し、モデルルーティングルールを記述してください——コード編集操作は DeepSeek Coder にルーティング、創作タスクは GPT-4o にルーティング、デフォルトは DeepSeek Chat を使用。ルーティングが期待通りに動作することを確認すること。

Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%