Familia Gemini
Los modelos de texto Gemini de Google, principalmente la serie Gemini 3.x. Se pueden llamar de dos formas: con el endpoint nativo de Gemini (el SDK oficial google-genai funciona directamente) o con el endpoint compatible con OpenAI.
Tareas habituales
Modelos
Admiten entrada de texto, imágenes, audio y PDF, con un contexto de aproximadamente 1M tokens. La lista completa de modelos y los precios en tiempo real están en la página de modelos ; también puede consultarlos con la Models API. Los modelos de generación de imágenes están en Nano Banana.
google/gemini-3.8-flashgoogle/gemini-3.1-pro-previewgoogle/gemini-3.5-flash-liteSin thinking por defecto; respuesta rápidagoogle/gemini-3.5-flashEl ID de modelo puede omitir el prefijo google/. En la URL del endpoint nativo también puede incluirse o no el prefijo: tanto models/google/gemini-3.8-flash:generateContent como models/gemini-3.8-flash:generateContent son válidos.
Elección de endpoint
El endpoint nativo no admite pasar la Key mediante el parámetro de URL ?key=, que devuelve 401; use la cabecera.
Actualmente, los modelos Gemini los ofrece Google Vertex AI (google_vertex). Los parámetros completos de la petición se describen en Generate Content.
Ejemplos de llamada
Python (google-genai)
import os
from google import genai
client = genai.Client(
api_key=os.environ["OFOX_API_KEY"],
http_options={"api_version": "v1beta", "base_url": "https://api.ofox.ai/gemini"},
)
resp = client.models.generate_content(
model="google/gemini-3.8-flash",
contents="Explica en una frase qué es la idempotencia.",
)
print(resp.text)Caché de prompts
Gemini aplica caché implícita automáticamente: cuando el prefijo de una petición coincide con el de peticiones recientes y es lo bastante largo, la parte acertada se factura al precio de lectura de caché, sin cambiar la petición.
Errores habituales
Otros errores generales: Gestión de errores.
Documentación oficial
- Gemini API · Modelos
- Gemini API · Thinking
- Gemini API · Búsqueda de Google
- Gemini API · Salida estructurada
- Gemini API · Compatibilidad con OpenAI
La documentación oficial describe el comportamiento al llamar directamente a Google. Al llamar a través de OfoxAI, los IDs de modelo y las URL de los endpoints son los de esta página.
Preguntas frecuentes
¿Cómo se escribe el ID de modelo de Gemini?
El formato estándar es google/gemini-3.8-flash; también puede omitir el prefijo google/. En la URL del endpoint nativo, el prefijo también es opcional.
¿Qué hago si Gemini responde muy despacio?
Salvo Flash-Lite, Gemini tiene el thinking activado por defecto, y las preguntas complejas pueden tardar más de 1 minuto. Puede enviar thinkingLevel: "low" para reducir el thinking, en algunos modelos thinkingBudget: 0 para desactivarlo, o cambiar a un modelo Flash-Lite, que no usa thinking por defecto.
¿Cómo se desactiva el thinking en Gemini?
En 3.5 Flash y 3 Flash Preview puede enviar thinkingBudget: 0 para desactivarlo; en 3.1 Pro Preview y 3.8 Flash no se puede desactivar por completo, pero sí reducirlo con thinkingLevel: "low". La serie Flash-Lite no usa thinking por defecto.
¿La respuesta de Gemini se trunca con finishReason igual a MAX_TOKENS?
Los tokens de thinking también se cuentan en maxOutputTokens. Aumente maxOutputTokens o reduzca el thinking.
¿Gemini puede buscar en la web?
Sí. En el endpoint nativo, añada {"google_search": {}} a tools; el groundingMetadata de la respuesta contiene los términos de búsqueda y las fuentes. En el endpoint compatible con OpenAI, envíe web_search_options: {}.
¿Cómo se autentica el endpoint nativo de Gemini?
Pase la API Key de OfoxAI en la cabecera x-goog-api-key; también se acepta Authorization: Bearer. No se admite el parámetro de URL ?key=.
¿Error 410 model_deprecated?
Ese modelo en versión preview se ha retirado, por ejemplo gemini-3-pro-preview. Use google/gemini-3.1-pro-preview o un modelo de versión estable.
¿Gemini puede analizar audio y PDF?
Sí. En el endpoint nativo, los archivos se envían codificados en base64 mediante inline_data; en el endpoint compatible con OpenAI, el PDF se envía con un bloque de contenido file y el audio con un bloque de contenido input_audio.