Gemma 4 ガイド

Gemma 4 API ガイド:ローカルでの OpenAI 互換環境の構築

約 10 分
gemma 4apiopenai 互換ollamallama.cppローカル llm
Gemma 4 API ガイド:ローカルでの OpenAI 互換環境の構築

Gemma 4 API を使いたい場合、嬉しいことに、専用の SDK やカスタムの提供スタックを用意する必要はありません。ローカルエンドポイントは、使い慣れた OpenAI API とほぼ同じように動作させることができます。

これが、Gemma 4 API が実験から実運用への橋渡しとして非常に有用である理由です。Ollama や llama.cpp を使用してローカルで Gemma 4 を実行し、OpenAI 互換のエンドポイントを公開すれば、Python、JavaScript、Cursor、Continue、LangChain、さらには自社ツールの中で、既存のクライアントパターンをそのまま再利用できます。

本ガイドでは、ローカルエンドポイントの構築方法、Ollama と llama.cpp の使い分け、サーバーの検証方法について解説します。


Gemma 4 API が実際に意味すること

実務上、Gemma 4 API とは以下のいずれかを指すことが一般的です。

  • Ollama を背後で動かすローカル REST エンドポイント
  • llama.cpp を背後で動かすローカル OpenAI 互換サーバー

メリットはシンプルです。アプリケーションは、ホスト型モデルですでに使用しているリクエスト形式と同じ方法で Gemma 4 と通信できます。これにより、移行コストが下がり、テストが加速し、既存コードへのローカル統合がはるかに容易になります。


方法 1: Ollama を使用して Gemma 4 API を構築する

多くのユーザーにとって、ローカルサーバーを立てる最短の方法は Ollama です。Ollama をインストールしてモデルをプルすれば、すでにローカルサービスは立ち上がっています。

モデルをプルします:

ollama pull gemma4
ollama pull gemma4:26b
ollama pull gemma4:31b

これにより、Gemma 4 API はポート 11434 で利用可能になります。最も簡単な OpenAI 互換ルートは以下の通りです。

curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemma4",
    "messages": [
      {"role": "user", "content": "MoE(混合専門家)について平易な言葉で説明してください。"}
    ]
  }'

これが機能すれば、エンドポイントは OpenAI 互換の「チャット完了(chat completions)」をサポートするあらゆるツールから利用できます。


方法 2: llama.cpp を使用して Gemma 4 API を構築する

より詳細なチューニング(制御)が必要な場合は、llama.cpp が適しています。以下の要素を重視する場合に特に有効です。

  • GGUF ワークフロー
  • カスタム量子化
  • グラマー(文法)制約付きの出力
  • 緻密な実行設定

GGUF モデルが準備できたら、llama-server を起動します:

./llama.cpp/llama-server \
  -m your-model.gguf \
  --port 8080

これにより、http://localhost:8080/v1 でローカルの Gemma 4 API が提供されます。


サーバーの選び方:どれを使うべきか?

目的 推奨されるサーバー 理由
最速のセットアップ Ollama モデルをプルするだけですぐにエンドポイントが使える
OpenAI SDK の再利用 Ollama 設定が最小限で済み、安定したデフォルトを提供
詳細なチューニング llama.cpp 量子化や実行時のフラグを詳細に制御可能
CPU 重視の環境 llama.cpp カスタムなローカル推論に最適化しやすい

迷っている場合はまず Ollama から始め、より詳細な制御が必要になった段階で llama.cpp への切り替えを検討してください。


OpenAI SDK を使用して Gemma 4 API を呼び出す

Gemma 4 API が魅力的な理由の一つは、OpenAI 公式 SDK を、base_urlapi_key の 2 箇所を変えるだけで再利用できる点です。

Python の例:

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama"
)

response = client.chat.completions.create(
    model="gemma4",
    messages=[
        {"role": "system", "content": "あなたは簡潔なコーディングアシスタントです。"},
        {"role": "user", "content": "リストから重複を削除する Python 関数を書いてください。"}
    ]
)

print(response.choices[0].message.content)

JavaScript の例:

import OpenAI from 'openai'

const client = new OpenAI({
  baseURL: 'http://localhost:11434/v1',
  apiKey: 'ollama'
})

const response = await client.chat.completions.create({
  model: 'gemma4',
  messages: [{ role: 'user', content: 'async と await について簡単に説明して。' }]
})

console.log(response.choices[0].message.content)

システム連携:Cursor, Continue, LangChain

サーバーが安定したら、同じエンドポイントのパターンを以下のツールなどで再利用できます。

  • CursorContinue(コーディングアシスタント)
  • LangChain(AI 開発フレームワーク)
  • Open WebUI(高度なチャットインターフェース)

これが、単なるチャットアプリではなく API ルートを構築する最大の価値です。


注意点とトラブルシューティング

セットアップがうまくいかない場合の主な原因は以下の通りです。

  • ランタイム(Ollama/llama.cpp)のバージョンが古い。
  • 指定したモデル名(タグ)が間違っている。
  • モデルがハードウェアに対して大きすぎる。
  • エンドポイントのポート番号が間違っている。

サーバーが遅いと感じる場合は、まずハードウェアの制約を疑ってください。モデルが RAM に溢れて CPU 推論になっていたり、VRAM が不足していたりする場合、API レイヤー自体には問題がないことがほとんどです。

最後に

Gemma 4 API は、ホスト型サービスに縛られることなく、実際のツールの中で Gemma 4 を活用するための最もクリーンな方法の一つです。既存の開発パターンを維持したまま、ローカルでモデルを動かし、セットアップの速さと制御性のバランスを選択できます。

詳細は以下のガイドも参考にしてください。

関連記事

Gemma 4 の記事群をそのまま辿り、今の判断にいちばん近い次の記事へ進んでください。

次に何を読めばいいか迷っていますか?

ガイド一覧に戻って、モデル比較、ローカル導入、ハードウェア計画の3方向から続けて見ていけます。