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キーの取得
- aistudio.google.comにアクセス
- 右上の「Get API Key」をクリック
- キーを作成(10秒で完了)
詳しい手順はGoogle AI Studioガイドをご覧ください。
Python(google-generativeai SDK)
pip install google-generativeaiimport 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キーの取得
- openrouter.aiにアクセス
- サインアップしてクレジットを追加(最小$5)
- ダッシュボードから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 Studio | OpenRouter |
|---|---|---|---|
| コスト | 無料 | 無料枠(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モデルは複雑なプロンプトで時間がかかります。
次のステップ
- Ollama初心者の方は完全なOllamaセットアップガイドから
- APIに画像を送信したい?Gemma 4マルチモーダルガイドを確認
- より良いプロンプトが欲しい?Gemma 4おすすめプロンプト50選をチェック
- どのモデルサイズを選ぶか迷っている?Gemma 4:どのモデルを使うべき?を読む
Stop reading. Start building.
~/gemma4 $ Get hands-on with the models discussed in this guide. No deployment, no friction, 100% free playground.
Launch Playground />


