Pi Agent で DeepSeek に接続

DeepSeek は OpenAI 互換の API を提供しているため、Pi に既存の OpenAI アダプタを再利用でき、DeepSeek 専用のアダプタを開発する必要はありません。

接続の核となる作業は次の2つだけです:models.json にプロバイダとモデルパラメータを宣言し、環境変数で API Key を提供します。

全体のアーキテクチャは下図のとおりです:

Pi 接入 DeepSeek 架构图

いわゆる「OpenAI 互換 API」とは、プロバイダの HTTP API プロトコルが OpenAI と一致していることを指します。プロトコルが互換であれば、OpenAI をサポートするあらゆるツールから直接呼び出すことができ、DeepSeek もこれに該当します。


Pi をインストール

Pi は Node.js ランタイムに依存します。インストール前に Node.js が準備できていることを確認してください。

Node.js をインストール

Node.js 公式サイトから対応するシステムのインストーラをダウンロードし、デフォルト設定でインストールしてください。

Pi CLI をインストール

ターミナルで npm を使用してグローバルインストールします:

npm install -g --ignore-scripts @earendil-works/pi-coding-agent

Linux と macOS ユーザーは、公式インストールスクリプトを使ったワンクリックインストールも可能です:

curl -fsSL https://pi.dev/install.sh | sh

インストールの確認

以下のコマンドを実行し、バージョン番号が正常に表示されればインストール成功です:

pi --version

出力例:

0.83.0

DeepSeek プロバイダの設定

Pi は models.json でカスタムモデルプロバイダを定義します。この節では、DeepSeek を OpenAI 互換 API として接続します。

設定ファイルのパス

OS によって設定ファイルのパスが異なります。使用している OS に応じて対応してください:

OS設定ファイルのパス
Linux / macOS~/.pi/agent/models.json
Windows%USERPROFILE%\.pi\agent\models.json

models.json を作成

以下の内容を設定ファイルに書き込みます:

{
  "providers": {
    "deepseek": {
      "baseUrl": "https://api.deepseek.com",
      "api": "openai-completions",
      "apiKey": "$DEEPSEEK_API_KEY",
      "models": [
        {
          "id": "deepseek-v4-pro",
          "name": "DeepSeek V4 Pro",
          "contextWindow": 1000000,
          "maxTokens": 384000,
          "input": ["text"],
          "reasoning": true,
          "cost": {
            "input": 1.74,
            "output": 3.48,
            "cacheRead": 0.145,
            "cacheWrite": 0
          },
          "compat": {
            "requiresReasoningContentOnAssistantMessages": true,
            "thinkingFormat": "deepseek",
            "reasoningEffortMap": {
              "minimal": "high",
              "low": "high",
              "medium": "high",
              "high": "high",
              "xhigh": "max"
            }
          }
        },
        {
          "id": "deepseek-v4-flash",
          "name": "DeepSeek V4 Flash",
          "contextWindow": 1000000,
          "maxTokens": 384000,
          "input": ["text"],
          "reasoning": true,
          "cost": {
            "input": 0.14,
            "output": 0.28,
            "cacheRead": 0.028,
            "cacheWrite": 0
          },
          "compat": {
            "requiresReasoningContentOnAssistantMessages": true,
            "thinkingFormat": "deepseek",
            "reasoningEffortMap": {
              "minimal": "high",
              "low": "high",
              "medium": "high",
              "high": "high",
              "xhigh": "max"
            }
          }
        }
      ]
    }
  }
}

設定項目の説明

以下、models.json で使用する主要フィールドを説明します:

フィールド型必須かどうか説明デフォルト値
baseUrlstring必須DeepSeek の OpenAI 互換 API エンドポイントhttps://api.deepseek.com
apistring必須接続プロトコル。OpenAI Completions 互換プロトコルを使用することを宣言openai-completions
apiKeystring必須同名の環境変数から API Key を読み取ります。Key を設定ファイルに平文で書く必要はありません。$DEEPSEEK_API_KEY
contextWindownumber必須コンテキストウィンドウサイズ(トークン数)1000000
maxTokensnumber必須1回の最大出力長(トークン数)384000
reasoningboolean任意モデルが思考連鎖(推論)機能をサポートすることを宣言true
costobject任意入力・出力・キャッシュヒットなどの単価を記録し、Pi のインターフェースでコストを概算するために使用—
requiresReasoning
ContentOnAssistantMessages
boolean推奨マルチターン対話で assistant メッセージに reasoning_content フィールドを保持する必要があります。そうしないと互換性の問題が発生する可能性があります。true
thinkingFormatstring推奨DeepSeek 固有の思考内容フォーマットで推論プロセスを解析・表示deepseek
reasoningEffortMapobject推奨Pi の推論強度レベルを DeepSeek が実際にサポートするレベルにマッピング—

reasoningEffortMap は、Pi の5つの推論レベル(minimal / low / medium / high / xhigh)を DeepSeek がサポートするレベルにマッピングします。xhigh は max にマッピングされますが、それ以外はすべて high に集約されます。

モデルの選択

設定では2つの DeepSeek モデルを宣言しています。主な違いは次のとおりです:

モデルコンテキストウィンドウ最大出力入力単価出力単価キャッシュヒット単価適用シーン
deepseek-v4-pro1,000,000384,0001.743.480.145推論能力が高く、複雑なタスクに適しています
deepseek-v4-flash1,000,000384,0000.140.280.028応答が速く、コストが低い

単価の単位は100万トークンあたり(米ドル)です。

API Key の取得と設定

まず DeepSeek オープンプラットフォームで API Key を申請します:https://platform.deepseek.com/api_keys。

Linux / macOS でターミナルに環境変数をエクスポート:

export DEEPSEEK_API_KEY="你的 DeepSeek API Key"

Windows(PowerShell)で設定する場合:

$env:DEEPSEEK_API_KEY="你的 DeepSeek API Key"

エクスポートコマンドをシェル設定(~/.bashrc、~/.zshrc、PowerShell Profile など)に書き込むことをお勧めします。新しいターミナルを開くたびに再設定する必要がなくなります。

サンプル内の「あなたの DeepSeek API Key」を実際の API Key に置き換えてください。API Key は機密情報です。適切に保管し、バージョン管理リポジトリにコミットしないでください。


実行とテスト

設定が完了したら、Pi を起動して DeepSeek モデルに切り替えることができます。

Pi を起動

プロジェクトディレクトリに移動:

cd ~/サンプル-test/

そのまま pi コマンドを実行します:

pi

DeepSeek モデルに切り替え

対話インターフェースに入ったら、以下の手順で切り替えます:

  1. 入力/modelモデルセレクタを開きます。

  2. deepseek プロバイダを選択し、DeepSeek-V4-Pro または DeepSeek-V4-Flash を選択します。

  3. 次に現在のモデルを確認します。

切り替えが完了したら、このミニマルなターミナルフレームワークで直接コーディングを開始できます。

推奨されるテスト手順

以下のチェックリストに従って、接続が完全に機能するかを項目ごとに確認します:

テスト項目操作方法期待される結果
認証と接続一言送信します。例:「こんにちは、サンプル 学習プラットフォームについて紹介してください」正常に返信が得られ、401 / 403 系の認証エラーがなければ、apiKey と baseUrl の設定が正しいことを示します
推論能力多段階の推論が必要な質問をします。例:最初に分析させてから解決策を提示させる可視化された思考プロセスが出力されれば、thinkingFormat と reasoning が有効であることを示します
マルチターンのツール呼び出しPi にツールを連続呼び出しさせて、ファイルの読み取り、コマンドの実行、コードの変更、結果の検証を行わせますマルチターン対話が安定し、reasoning_content の欠落によるエラーが発生しない
推論強度の切り替え/model で medium から xhigh に切り替える動作が reasoningEffortMap のマッピングに一致し、xhigh が DeepSeek の max に対応する
コスト計算実際のタスクを数回実行した後、コスト統計を確認しますインターフェースの統計が cost フィールドで設定した単価と一致する

特に「マルチターンのツール呼び出し」は、requiresReasoningContentOnAssistantMessages の設定が正しいかどうかを検証する重要なシナリオです。


よくある問題のトラブルシューティング

接続中に問題が発生した場合は、以下のチェックリストで素早く特定できます。

モデルセレクタに DeepSeek が表示されない

models.json のパスが正しいか確認してください。Windows と Linux / macOS ではパスが異なります。

同時に、JSON 形式に構文エラー(余分なカンマ、閉じられていない引用符など)がないことを確認してください。

認証に失敗

DEEPSEEK_API_KEY 環境変数が正しく設定されていることを確認してください。

注意:pi コマンドを実行するターミナルセッションは、環境変数を設定したセッションと同じである必要があります。

マルチターンのツール呼び出しでエラー

まず requiresReasoningContentOnAssistantMessages と thinkingFormat が上記のとおりに設定されているか確認してください。

より多くのカスタマイズ機能が必要

参考にできるのはPi 公式 models ドキュメント、より完全な設定項目を理解できます。

その他の拡張機能