0% read

Gemma 4 APIの使い方(Python・cURL・JavaScript)

4月 7, 2026

Gemma 4をチャットウィンドウで遊んだ後、次は何かを作りたくなりますよね。そこからが面白いところです。Gemma 4をAPI経由で呼び出す方法は主に3つあり、それぞれ異なる状況に適しています。

実際にコピーして動くコードとともに、3つの方法を解説します。

オプション1:Ollamaローカル API(無料・プライベート・制限なし)

Ollamaをローカルにセットアップ済みなら、localhost:11434でAPIサーバーが既に動いています。APIキー不要、レート制限なし、完全無料。

Python(requests)

import requests

response = requests.post("http://localhost:11434/api/generate", json={
    "model": "gemma4",
    "prompt": "Explain async/await in Python like I'm 10",
    "stream": False
})

print(response.json()["response"])

cURL

curl http://localhost:11434/api/generate -d '{
  "model": "gemma4",
  "prompt": "Explain async/await in Python like I am 10",
  "stream": false
}'

JavaScript(fetch)

const response = await fetch("http://localhost:11434/api/generate", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    model: "gemma4",
    prompt: "Explain async/await in Python like I'm 10",
    stream: false,
  }),
});

const data = await response.json();
console.log(data.response);

Ollamaチャット API(マルチターン)

メッセージ履歴付きの会話には、chatエンドポイントを使用:

import requests

response = requests.post("http://localhost:11434/api/chat", json={
    "model": "gemma4",
    "messages": [
        {"role": "system", "content": "You are a helpful coding tutor."},
        {"role": "user", "content": "What's the difference between a list and a tuple?"}
    ],
    "stream": False
})

print(response.json()["message"]["content"])

メリット: コストゼロ、完全なプライバシー、レート制限なし、オフラインで動作。 デメリット: 速度はハードウェア次第。GPUなし = 遅い。

オプション2:Google AI Studio API(無料枠あり)

GoogleはAI Studio API経由でGemma 4を提供しています。寛大な無料枠があり、GoogleのTPUインフラで動作するため高速です。

APIキーの取得

  1. aistudio.google.comにアクセス
  2. 右上の「Get API Key」をクリック
  3. キーを作成(10秒で完了)

詳しい手順はGoogle AI Studioガイドをご覧ください。

Python(google-generativeai SDK)

pip install google-generativeai
import google.generativeai as genai

genai.configure(api_key="YOUR_API_KEY")

model = genai.GenerativeModel("gemma-4-27b-it")
response = model.generate_content("Write a Python decorator for retry logic")

print(response.text)

cURL

curl "https://generativelanguage.googleapis.com/v1beta/models/gemma-4-27b-it:generateContent?key=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [{"text": "Write a Python decorator for retry logic"}]
    }]
  }'

無料枠の制限

無料で利用できる内容:

  • 1分あたり15リクエスト(RPM)
  • 1日あたり1,500リクエスト(RPD)
  • 1分あたり100万トークン

開発や小規模プロジェクトには十分寛大です。実際のユーザートラフィックを扱う場合にのみ制限に達します。

エラーハンドリング

APIは具体的なエラーコードを返すので、それらを処理すべきです:

import google.generativeai as genai
from google.api_core import exceptions

genai.configure(api_key="YOUR_API_KEY")
model = genai.GenerativeModel("gemma-4-27b-it")

try:
    response = model.generate_content("Your prompt here")
    print(response.text)
except exceptions.ResourceExhausted:
    print("Rate limit hit. Wait a minute and try again.")
except exceptions.InvalidArgument as e:
    print(f"Bad request: {e}")
except exceptions.NotFound:
    print("Model not found. Check the model name.")
except Exception as e:
    print(f"Unexpected error: {e}")

オプション3:OpenRouter API(OpenAI互換)

OpenRouterはモデル間の切り替えを簡単にしたい場合に最適です。OpenAI APIと同じフォーマットを使用するため、GPTで何か作ったことがあれば、1行変えるだけでGemma 4に切り替えられます。

APIキーの取得

  1. openrouter.aiにアクセス
  2. サインアップしてクレジットを追加(最小$5)
  3. ダッシュボードからAPIキーを生成

Python

import requests

response = requests.post(
    "https://openrouter.ai/api/v1/chat/completions",
    headers={
        "Authorization": "Bearer YOUR_OPENROUTER_KEY",
        "Content-Type": "application/json",
    },
    json={
        "model": "google/gemma-4-27b-it",
        "messages": [
            {"role": "user", "content": "Compare React and Vue in 5 bullet points"}
        ],
    },
)

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

cURL

curl https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer YOUR_OPENROUTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "google/gemma-4-27b-it",
    "messages": [
      {"role": "user", "content": "Compare React and Vue in 5 bullet points"}
    ]
  }'

OpenAI Python SDKの使用

OpenRouterはOpenAI互換なので、公式OpenAI SDKをそのまま使えます:

from openai import OpenAI

client = OpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key="YOUR_OPENROUTER_KEY",
)

response = client.chat.completions.create(
    model="google/gemma-4-27b-it",
    messages=[
        {"role": "user", "content": "Explain monads in plain English"}
    ],
)

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

これが特に便利なのは、モデル文字列を変更するだけで、Gemma 4、Claude、GPT、Llamaなどの間で切り替えられる点です。モデルに外部ツールやAPIを呼び出させたい場合は、関数呼び出しガイドをご覧ください。

ストリーミングレスポンス

30秒待って大量のテキストを一気に受け取りたい人はいません。ストリーミングは生成されたトークンを即座に表示 — はるかに良いUXです。各方法でのやり方を紹介します。

Ollamaストリーミング(Python)

import requests
import json

response = requests.post("http://localhost:11434/api/generate", json={
    "model": "gemma4",
    "prompt": "Write a short story about a debugging session at 3am",
    "stream": True
}, stream=True)

for line in response.iter_lines():
    if line:
        chunk = json.loads(line)
        print(chunk.get("response", ""), end="", flush=True)

Google AI Studioストリーミング(Python)

import google.generativeai as genai

genai.configure(api_key="YOUR_API_KEY")
model = genai.GenerativeModel("gemma-4-27b-it")

response = model.generate_content(
    "Write a short story about a debugging session at 3am",
    stream=True
)

for chunk in response:
    print(chunk.text, end="", flush=True)

OpenRouterストリーミング(Python)

from openai import OpenAI

client = OpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key="YOUR_OPENROUTER_KEY",
)

stream = client.chat.completions.create(
    model="google/gemma-4-27b-it",
    messages=[{"role": "user", "content": "Write a short story about a debugging session at 3am"}],
    stream=True,
)

for chunk in stream:
    content = chunk.choices[0].delta.content
    if content:
        print(content, end="", flush=True)

比較:どのAPIを使うべき?

機能Ollama(ローカル)Google AI StudioOpenRouter
コスト無料無料枠(15 RPM)トークン課金
速度ハードウェア依存高速(Google TPU)高速
プライバシー完全(オフライン)Googleへデータ送信プロバイダへデータ送信
レート制限なし15 RPM / 1,500 RPDクレジットに基づく
セットアップOllama + モデルのインストールAPIキー取得サインアップ + クレジット追加
OpenAI互換部分的非対応(独自SDK)対応
最適な用途プライバシー、開発無料プロトタイピング本番、マルチモデル

私のおすすめ:

  • サイドプロジェクトを作る? Google AI Studioの無料枠から始めましょう。高速で無料です。
  • プライバシーが重要? Ollamaをローカルで実行。データはマシン内に留まります。
  • 本番アプリ? OpenRouterが最大の柔軟性と他のモデルへのフォールバック能力を提供します。
  • 学習中? Ollama。APIキーも制限もなく、ただコードを書くだけ。

よくある落とし穴

Ollamaで「Connection refused」: Ollamaサーバーが動作していることを確認。Macでは、メニューバーにOllamaアイコンがあるか確認。Linuxでは、まずollama serveを実行。

Google AI Studioで「Model not found」: モデル名は変わります。現在のモデルIDはAI Studioドキュメントで確認してください。

Ollamaの応答が遅い: おそらくCPUで動作しています。問題なし、動作はしますが遅いだけ。期待値についてはハードウェアガイドをご覧ください。

タイムアウト: 長時間の生成では、HTTPクライアントのタイムアウトを増やしてください。Gemma 4の31Bモデルは複雑なプロンプトで時間がかかります。

次のステップ

gemma4 — interact

Stop reading. Start building.

~/gemma4 $ Get hands-on with the models discussed in this guide. No deployment, no friction, 100% free playground.

Launch Playground />
Gemma 4 AI

Gemma 4 AI

Related Guides

Gemma 4 APIの使い方(Python・cURL・JavaScript) | ブログ