Skip to content

Gemma 4 API

Gemma 4 můžete volat lokálně přes Ollama, přes Gemini API s klíčem z Google AI Studio nebo přes OpenRouter. Přehled a příklady byly zkontrolovány k 9. říjnu 2026; dostupnost modelů a kvóty se mohou měnit.

Služba Příklady platných ID
Ollama gemma4:e4b, gemma4:12b, gemma4:26b, gemma4:31b
Gemini API gemma-4-26b-a4b-it, gemma-4-31b-it
OpenRouter google/gemma-4-26b-a4b-it, google/gemma-4-31b-it

Názvy mezi službami nejsou zaměnitelné; tagy Ollamy jsou v návodu na vlastní server.

Po instalaci Ollamy stáhněte konkrétní model:

Terminal window
ollama pull gemma4:e4b

Python HTTP příklady vyžadují pip install requests. Lokální API standardně poslouchá na http://localhost:11434 a nevyžaduje klíč. Neplatíte za tokeny, ale provoz stojí hardware, elektřinu nebo pronájem serveru. Kapacitu omezuje paměť a výkon stroje.

import requests
response = requests.post("http://localhost:11434/api/generate", json={
"model": "gemma4:e4b",
"prompt": "Explain async/await in Python like I'm 10",
"stream": False
}, timeout=300)
response.raise_for_status()
print(response.json()["response"])
Terminal window
curl --fail-with-body http://localhost:11434/api/generate \
-H 'Content-Type: application/json' -d '{
"model": "gemma4:e4b",
"prompt": "Explain async/await in Python like I am 10",
"stream": false
}'
const response = await fetch("http://localhost:11434/api/generate", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
model: "gemma4:e4b",
prompt: "Explain async/await in Python like I'm 10",
stream: false,
}),
});
if (!response.ok) {
throw new Error(`Ollama HTTP ${response.status}: ${await response.text()}`);
}
const data = await response.json();
if (data.error) throw new Error(data.error);
console.log(data.response);

Pro konverzace s historií zpráv použijte:

import requests
response = requests.post("http://localhost:11434/api/chat", json={
"model": "gemma4:e4b",
"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
}, timeout=300)
response.raise_for_status()
print(response.json()["message"]["content"])
import requests
import json
response = requests.post("http://localhost:11434/api/generate", json={
"model": "gemma4:e4b",
"prompt": "Write a short story about a debugging session at 3am",
"stream": True
}, stream=True, timeout=300)
response.raise_for_status()
for line in response.iter_lines():
if line:
chunk = json.loads(line)
if "error" in chunk:
raise RuntimeError(chunk["error"])
print(chunk.get("response", ""), end="", flush=True)

U podporovaného modelu přidejte do /api/chat nebo /api/generate pole "think": true či false. Chat vrací uvažování v message.thinking a odpověď v message.content. Podporu konkrétního tagu lze ověřit přes /api/show; při běžném pokračování konverzace ukládejte finální odpověď do historie.

Ollama podporuje také část OpenAI API na http://localhost:11434/v1/. Příklad s Python SDK (pip install openai):

from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1/",
api_key="ollama", # SDK hodnotu vyžaduje, lokální server ji ignoruje
)
response = client.chat.completions.create(
model="gemma4:e4b",
messages=[{"role": "user", "content": "Vysvětli async/await v Pythonu."}],
)
print(response.choices[0].message.content)

Oficiální návod uvádí modely gemma-4-26b-a4b-it a gemma-4-31b-it. Klíč vytvořte v Google AI Studio a nastavte proměnnou GEMINI_API_KEY na serveru nebo ve svém terminálu.

Použijte aktuální Google Gen AI SDK, které nahradilo knihovnu google-generativeai:

Terminal window
pip install -U google-genai
import os
from google import genai
client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
response = client.models.generate_content(
model="gemma-4-26b-a4b-it",
contents="Napiš Python dekorátor pro opakování neúspěšného volání.",
)
print(response.text)
Terminal window
curl --fail-with-body \
"https://generativelanguage.googleapis.com/v1beta/models/gemma-4-26b-a4b-it:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"parts": [{"text": "Vysvětli async/await v Pythonu."}]
}]
}'

S klientem z předchozí ukázky:

from google.genai import types
for chunk in client.models.generate_content_stream(
model="gemma-4-26b-a4b-it",
contents="Vysvětli řešení jednoduché kombinatorické úlohy.",
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(thinking_level="high"),
),
):
if chunk.text:
print(chunk.text, end="", flush=True)

Gemma podporuje zapnutí (high) a vypnutí (minimal) thinking; nejde o škálu několika úrovní uvažování.

Ceník Gemini API uvádí pro Gemma 4 bezplatný vstup a výstup; placený tier pro tuto řadu není dostupný. Bezplatný tier dovoluje použití dat ke zlepšování produktů Google podle podmínek služby.

Aktivní limity ověřte v AI Studio pro svůj projekt a model. Kvóty se uplatňují na projekt, nikoli na každý klíč zvlášť.

from google.genai import errors
try:
response = client.models.generate_content(
model="gemma-4-26b-a4b-it",
contents="Vysvětli rozdíl mezi list a tuple.",
)
print(response.text)
except errors.APIError as exc:
print(f"API chyba {exc.code}: {exc.message}")

Při 429 použijte omezené opakování s rostoucí prodlevou; při 400 opravte požadavek a při 404 ověřte ID a dostupnost modelu.

OpenRouter nabízí OpenAI-kompatibilní rozhraní. V existujícím klientovi změňte adresu API, klíč i ID modelu. Podporované funkce závisejí na konkrétním modelu a poskytovateli.

  1. Registrace na openrouter.ai
  2. Vygenerování API klíče a nastavení OPENROUTER_API_KEY
  3. Pro placené modely dobití kreditu; pro bezplatné varianty ověření jejich kvót

K datu kontroly jsou dostupné také google/gemma-4-26b-a4b-it:free a google/gemma-4-31b-it:free. Jejich dostupnost a limity se liší od placených variant; aktuální ceny ověřte v katalogu.

import os
import requests
response = requests.post(
"https://openrouter.ai/api/v1/chat/completions",
headers={
"Authorization": f"Bearer {os.environ['OPENROUTER_API_KEY']}",
"Content-Type": "application/json",
},
json={
"model": "google/gemma-4-26b-a4b-it",
"messages": [
{"role": "user", "content": "Compare React and Vue in 5 bullet points"}
],
},
timeout=300,
)
response.raise_for_status()
print(response.json()["choices"][0]["message"]["content"])
import os
from openai import OpenAI
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=os.environ["OPENROUTER_API_KEY"],
)
response = client.chat.completions.create(
model="google/gemma-4-26b-a4b-it",
messages=[
{"role": "user", "content": "Explain monads in plain English"}
],
)
print(response.choices[0].message.content)
import os
from openai import OpenAI
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=os.environ["OPENROUTER_API_KEY"],
)
stream = client.chat.completions.create(
model="google/gemma-4-26b-a4b-it",
messages=[{"role": "user", "content": "Write a short story"}],
stream=True,
)
for chunk in stream:
if not chunk.choices:
continue
content = chunk.choices[0].delta.content
if content:
print(content, end="", flush=True)
Služba Náklady Limity Kam jdou prompty
Ollama, lokální model Vlastní hardware / server Paměť, výkon a fronta serveru Na stroj s Ollamou
Gemini API Gemma 4 v bezplatném tieru Kvóty projektu v AI Studio Google
OpenRouter Cena modelu; také varianty :free Kvóty a dostupný kredit OpenRouter a poskytovatel inference

Pro offline práci použijte lokální Ollamu, pro prototyp bez správy GPU Gemini API. Pro jednotné rozhraní k více poskytovatelům se hodí OpenRouter; před nasazením ověřte kapacitu, cenu a pravidla zpracování dat.

  • Connection refused v Ollamě — ověřte službu (systemctl status ollama), případně spusťte ollama serve; při vzdáleném přístupu zkontrolujte SSH tunel.
  • Model not found — v Ollamě použijte ollama list a ollama pull; v cloudové službě ověřte její katalog a správné ID.
  • Pomalé odpovědi / nedostatek paměti — zkontrolujte ollama ps, velikost kontextu a GPU konfiguraci.
  • 429 nebo 503 — kvóta či přetížení; omezte souběh a opakujte s prodlevou. OpenRouter může vrátit 402 při nedostatku kreditu.
  • Timeout při thinking — první výstup může přijít později; nastavte vhodný timeout a použijte streaming.

Oficiální zdroje, ověřeno 2026-10-09: