Has jugado con Gemma 4 en una ventana de chat y ahora quieres construir algo con el. Bien — ahi es donde se pone divertido. Hay tres formas principales de llamar a Gemma 4 via API, y cada una tiene sentido para diferentes situaciones.
Vamos a recorrer las tres con codigo real que puedes copiar y ejecutar.
Opcion 1: API Local de Ollama (Gratis, Privado, Sin Limites)
Si ya has configurado Ollama localmente, tienes un servidor API ejecutandose en localhost:11434 ahora mismo. No necesitas clave API, sin limites de tasa, completamente gratis.
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);API de Chat de Ollama (Multi-turno)
Para conversaciones con historial de mensajes, usa el endpoint de 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"])Ventajas: Costo cero, privacidad total, sin limites de tasa, funciona offline. Desventajas: La velocidad depende de tu hardware. Sin GPU = lento.
Opcion 2: API de Google AI Studio (Nivel Gratuito Disponible)
Google ofrece Gemma 4 a traves de su API de AI Studio. Obtienes un generoso nivel gratuito y es rapido porque se ejecuta en la infraestructura TPU de Google.
Obtener Tu Clave API
- Ve a aistudio.google.com
- Haz clic en "Get API Key" en la esquina superior derecha
- Crea una clave (toma 10 segundos)
Para un recorrido detallado, consulta nuestra guia de Google AI Studio.
Python (SDK google-generativeai)
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"}]
}]
}'Limites del Nivel Gratuito
Esto es lo que obtienes sin pagar nada:
- 15 solicitudes por minuto (RPM)
- 1,500 solicitudes por dia (RPD)
- 1 millon de tokens por minuto
Eso es bastante generoso para desarrollo y proyectos pequenos. Solo alcanzaras los limites si estas construyendo algo con trafico real de usuarios.
Manejo de Errores
La API devuelve codigos de error especificos que deberias manejar:
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}")Opcion 3: API de OpenRouter (Compatible con OpenAI)
OpenRouter es genial si quieres cambiar entre modelos facilmente. Usa el mismo formato que la API de OpenAI, asi que si has construido algo con GPT, puedes cambiar a Gemma 4 cambiando una linea.
Obtener Tu Clave API
- Ve a openrouter.ai
- Registrate y agrega creditos ($5 minimo)
- Genera una clave API desde el panel
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"}
]
}'Usando el SDK de Python de OpenAI
Como OpenRouter es compatible con OpenAI, puedes usar el SDK oficial de OpenAI:
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)Esto es especialmente bueno porque puedes cambiar entre Gemma 4, Claude, GPT, Llama y otros solo cambiando la cadena del modelo. ¿Quieres que el modelo llame a herramientas y APIs externas? Consulta nuestra guia de llamada de funciones.
Respuestas en Streaming
Nadie quiere esperar 30 segundos por un muro de texto. El streaming muestra tokens a medida que se generan — mucho mejor UX. Asi es como hacerlo con cada metodo.
Streaming con 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)Streaming con 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)Streaming con 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)Comparacion: ¿Cual API Deberias Usar?
| Caracteristica | Ollama (Local) | Google AI Studio | OpenRouter |
|---|---|---|---|
| Costo | Gratis | Nivel gratuito (15 RPM) | Pago por token |
| Velocidad | Depende del hardware | Rapido (TPUs de Google) | Rapido |
| Privacidad | Completa (offline) | Datos enviados a Google | Datos enviados al proveedor |
| Limites de tasa | Ninguno | 15 RPM / 1,500 RPD | Basado en creditos |
| Configuracion | Instalar Ollama + modelo | Obtener clave API | Registrarse + agregar creditos |
| Compatible OpenAI | Parcial | No (SDK propio) | Si |
| Mejor para | Privacidad, desarrollo | Prototipado gratuito | Produccion, multi-modelo |
Mi recomendacion:
- ¿Construyendo un proyecto personal? Comienza con el nivel gratuito de Google AI Studio. Es rapido y gratis.
- ¿La privacidad importa? Ejecuta Ollama localmente. Tus datos permanecen en tu maquina.
- ¿App en produccion? OpenRouter te da mas flexibilidad y la capacidad de recurrir a otros modelos.
- ¿Solo aprendiendo? Ollama. Sin claves API, sin limites, solo codigo.
Problemas Comunes
"Connection refused" en Ollama: Asegurate de que el servidor Ollama esta ejecutandose. En Mac, verifica si el icono de Ollama esta en la barra de menu. En Linux, ejecuta ollama serve primero.
"Model not found" en Google AI Studio: Los nombres de modelo cambian. Consulta la documentacion de AI Studio para IDs de modelo actuales.
Respuestas lentas en Ollama: Probablemente estas ejecutando en CPU. Eso esta bien — funciona, solo mas lento. Consulta nuestra guia de hardware para saber que esperar.
Timeouts: Para generaciones de larga duracion, aumenta el timeout de tu cliente HTTP. El modelo 31B de Gemma 4 puede tardar un rato en prompts complejos.
Siguientes Pasos
- ¿Nuevo en Ollama? Comienza con nuestra guia completa de configuracion de Ollama
- ¿Quieres enviar imagenes a la API? Consulta la guia multimodal de Gemma 4
- ¿Necesitas mejores prompts? Navega nuestros 50 mejores prompts para Gemma 4
- ¿No sabes que tamano de modelo elegir? Lee Gemma 4: ¿Cual Modelo Deberias Usar?
Stop reading. Start building.
~/gemma4 $ Get hands-on with the models discussed in this guide. No deployment, no friction, 100% free playground.
Launch Playground />


