CH 16 · ローカルデプロイと Token 自由
この章の目標
これまでの章はすべて DeepSeek 公式 API を呼んでいました —— 便利ですが、トークン従量課金で、特に Agent セッションはトークンを食います(ツール結果は毎回コンテキストにフィードバックされる必要があります)。これは DeepSeek だけの問題ではなく、クラウド API を通す限り、公式でもサードパーティでも、トークン従量課金からは逃れられません。
この章はまったく別の道を提供します:ローカルデプロイ。オープンソースモデルを自分の PC にダウンロードして走らせる;推論は第三者サーバを通らず、トークン請求なし、真の「Token 自由」。
CH 06 で学んだ方法を適用します:dsh が認識するのは「OpenAI 互換エンドポイント」のみ、モデルはバインディングではなく設定。この能力を実シナリオに応用します —— dsh を自分のモデルで走らせる。
ローカルデプロイとクラウドは何が違うか
まず「なぜローカルデプロイは無料か」をはっきりさせます。DeepSeek 公式 API を使うと、プロンプト、ツール結果、ファイル内容はすべてそのサーバに送られ、向こうが自分の GPU で推論し、トークンで課金します。クラウド API はすべてこう:計算資源は誰か別の人のもので、請求はトークンに従います。
ローカルデプロイは逆:モデルはあなたの PC にダウンロードされ、推論はあなたの GPU/CPU で走り、第三者サーバは関与しない。計算資源はあなたのもの、電力もあなたのもの、当然トークン従量課金はありません —— これが「Token 自由」の本当の意味です。
| 次元 | クラウド API(例:DeepSeek 公式) | ローカルデプロイ(LM Studio でオープンソースモデルを実行) |
|---|---|---|
| 課金 | トークン従量課金 | 無料(電力代のみ) |
| ネットワーク | インターネット接続必須 | 完全オフライン可能 |
| データ | サービスプロバイダのサーバに送信 | あなたの PC に留まる |
| 能力 | フラッグシップモデル、最強 | GPU が動かせるモデルサイズ次第 |
| 初期コスト | ゼロ、登録して Key 取得 | ソフト導入、モデルダウンロード(数 GB) |
ローカルデプロイの本質を 1 行で:無料、オフライン、プライベート、ただ能力はハードウェア次第 —— GPU が強いほど大きなモデルが動き、結果が良い。
原理:モデルは設定
dsh が自由にモデルを差し替えられるのは、モデルルーティングプラグイン llm-pi-ai が「モデル Provider」を YAML 設定 1 ピースとして扱うため;OpenAI Chat Completions プロトコル(つまり /v1/chat/completions)を公開するエンドポイントはすべて Provider として接続可能。モデル差替 = 設定 1 ピース差替、dsh 本体は変える必要なし。
つまりローカルデプロイと公式 API 接続の方法は同じで、CH 06 と同じ手順、エンドポイント住所が違うだけ:
| 方向 | Base URL | Key | 典型モデル |
|---|---|---|---|
| DeepSeek 公式(クラウド) | https://api.deepseek.com | 公式 Key | deepseek-v4-flash など |
| LM Studio ローカル | http://localhost:1234/v1 | 何でも可(ローカルでは無視) | Qwen3 8B など |
ローカルモデルを接続:LM Studio オンボーディング
ステップ 1:LM Studio を導入、モデルをダウンロード
ローカルモデルランナーは 1 つではありません:Ollama に慣れているなら、Ollama を直接使うのも可(コマンドラインオンボーディング、設定方法は下記と同じ)。本章ではデモは LM Studio で統一 —— グラフィカル界面があり、初心者に最も親切です。
LM Studio は Windows / macOS / Linux 対応;LM Studio サイト でインストーラをダウンロード。インストール後、どのモデルをダウンロードするか推測しようとせず、それは dsh に任せます —— あなたの PC 環境を確認して、推薦してくれます。Web UI の入力欄にこれを送ってください:
私の PC の GPU と VRAM を確認し、Q4 量子化でどのくらいのローカルモデルが快適に動かせるか見積もり、ローカル Agent に適するモデル 2〜3 個を推薦してください(ツール呼び出し対応必須)、LM Studio の検索ボックスで直接検索できるモデル名と各 1 文の理由を添えて。問い合わせと推薦のみ、それ以外の操作は不要。dsh が GPU を読み上げ、いくつかの具体モデル名を列挙します。その名前を LM Studio に取り、検索します。
LM Studio を開く:左下 Settings → Explorer、検索ボックスに dsh が推薦したモデル名を入力。検索結果で緑色ラベルが付いているもの(あなたのハードウェア互換、フル GPU ロード) があなたのマシンで動かせるもの、クリックでダウンロード。

変わらない提醒:Agent を走らせるローカルモデルにとって、ツール呼び出し能力はベンチマークスコアより重要 —— モデルは指示に従ってツールを呼べなければ、Agent は回せません。
ステップ 2:ローカルサーバを立ち上げ、エンドポイントの生存を確認
モデルをダウンロード後、LM Studio の左下 Settings → Local Models → Local Model API(ローカルサーバ)で、Local API server のスイッチをオン。デフォルトでは http://localhost:1234 をリッスンし、OpenAI 互換エンドポイントは /v1 —— ページに base URL http://localhost:1234/v1 が直接表示され;「running」と見えていればサーバは上がっています。

ブラウザで開く:
http://localhost:1234/v1/modelsダウンロード済みモデルを列挙した JSON が見えれば、エンドポイントは OK。このステップで各モデルの正確な ID も分かります(ここで返るものを使う;例:ダウンロードした Gemma 4 E2B は gemma-4-e2b-it-qat と表示)、これは後の設定に必要です。

リソースライブラリでのモデルパラメータ
モデルがどのパラメータで走るか見たい?左下 Settings → Local Models → Resource Library、自分のモデルを見つけ、右側の Settings ボタンをクリック、「Model Default Settings」ページが開きます:


3 セクションに分かれます:Prompt、Context & Performance、Generation。Automatic Optimize Based on Hardware(推奨)がデフォルトでオン;コンテキスト長、GPU オフロードなどすべて AUTO —— LM Studio があなたの PC に合わせて調整します。本章のデモはすべてデフォルトのまま、1 つも変える必要なし;調整したくなったら後でここに戻ってください。
ステップ 3:dsh で「カスタム Provider」を追加
CH 06 の方法 2 に従い:設定 → モデル → カスタム Provider を追加、以下を入力:
| フィールド | 入力内容 |
|---|---|
| Provider ID | lm-studio-local(小文字) |
| API 住所 | http://localhost:1234/v1 |
| API プロトコル | OpenAI Chat Completions 互換 |
| Key | 何でも可(ローカルでは検証しない、lm-studio で OK) |
| Model | 前のステップの /v1/models から取得した完全 ID |

効果と期待値管理
- 利点:完全オフライン、API 費用ゼロ、コードと文書が PC に留まる —— プライバシーを重視するシナリオではローカルモデルが唯一の選択肢。
- 現実:ローカル小型モデルは「ループを通す」ためで、重い仕事のためではありません。Agent は特にツール呼び出しと長いコンテキストを食う;小型モデルはフラッグシップモデルよりツール呼び出し漏れや計画が下手になりがち。プラグイン開発中のテストにはとても向く;実際の仕事にはクラウドモデルに戻してください。
このデモでデプロイした Gemma 4 E2B は視覚モデル(Google 公式:E2B は視覚エンコーダを持ち、画像入力をサポート)ですが、dsh で実際に画像を受け取って OCR するには、もう 1 つ宣言が必要です:dsh のカスタム Provider はデフォルトではプレーンテキスト扱い;宣言がないと画像は不正入力として弾かれます(CH 06 で扱った)。方法:dsh の設定ウィンドウで右上設定ファイルを開く をクリック、llm-pi-ai.providers.lm-studio-local.models 内の対応モデルを見つけ、input: [text, image] の行を追加:
llm-pi-ai:
providers:
lm-studio-local:
apiKeyEnv: LM_STUDIO_API_KEY
api: openai-completions
baseURL: http://localhost:1234/v1
models:
- id: gemma-4-e2b-it-qat
input: [text, image]保存後、セッションを再起動、画像を送れば OCR できます。

ツール呼び出しも動く:デモで「あなたは何者かを記した txt ファイルを作って」と送ったところ、モデルは実際に write ツールを呼び —— 何度かエラーとリトライの後、ついに identity.txt を書き出しました。これはローカルモデルが本当に dsh のツールループを走らせられることの証明で、ただチャットだけでなく;フラッグシップほど安定ではなく、エラーが多めです。

ローカルかクラウドか:選び方
| シナリオ | 選択 |
|---|---|
| 日常仕事で最強の結果が欲しい | クラウド API(従量課金、簡単) |
| 簡単な日常タスク、たとえば前述の aihot による定时热点ブリーフィング | LM Studio ローカルモデル(オフライン、無料) |
両者は排他ではない:dsh は同時に複数の Provider をマウントでき、セッションごとに好きなように切り替えられます。コストに敏感なときは、日常セッションを flash にルーティングし、重い仕事は pro に任せる —— 最も簡単な節約姿勢;ローカルモデルはテストとプライバシーシナリオを下支えします。
よくある落とし穴
| 落とし穴 | 避け方 |
|---|---|
| Base URL を間違えた | OpenAI 互換エンドポイントは通常 /v1 で終わる;まずブラウザで GET {baseURL}/models を開いて検証 |
| Key の環境変数が未設定 | apiKeyEnv は参照するだけ、作成はしない;dsh が起動する環境で実際にこの変数が読めるか確認 |
| Model ID が合わない | ローカルモデルは /v1/models が返す完全 ID(vendor/model-name)を使うこと、記憶で埋めない |
| 画像エラー、OCR できないと言われる | カスタム Provider のモデルはデフォルトでプレーンテキスト扱い —— モデル自体が OCR 対応でも、Provider 設定に input: [text, image] を必ず追加 |
| ローカルモデルがツール呼び出しを漏らし続ける | 設定の問題ではなく、小型モデルの能力境界 —— クラウドモデルに戻すか、より大きなローカルモデルに切り替え |
この章で学んだこと
- [ ] 「モデルは設定」と言える:dsh は OpenAI 互換エンドポイントのみ認識、モデル差替 = Provider 設定 1 ピース差替
- [ ] ローカルデプロイとクラウド API の本質的違いを言える:なぜ無料か(計算資源があなたのもの)、オフライン、データが PC に留まる
- [ ] LM Studio でモデルをダウンロードし、ローカルサーバを立ち上げ、
localhost:1234/v1/modelsが生きていることを確認する方法を知っている - [ ] dsh で
lm-studio-localカスタム Provider を追加し、ローカルセッションを走らせられる - [ ] 視覚モデルには
input: [text, image]が必要であることを知り、小型ローカルモデルはテスト向きで重い仕事には向かないことを知っている
