Usar el SDK de OpenAI para llamar a la API de Gemini: tutorial de integración cambiando solo base_url, la clave y el nombre del modelo
14 de junio de 2026 · 9 min de lectura · GPT / Gemini / Claude

Google ya lo ha dicho de forma muy directa: la API de Gemini admite compatibilidad con OpenAI, y se puede llamar usando el SDK de Python de OpenAI, el SDK de JavaScript y REST; en el ejemplo oficial, el base_url es https://generativelanguage.googleapis.com/v1beta/openai/, y el nombre del modelo es gemini-3.5-flash(Google AI for Developers)。
Esto es muy práctico para equipos que ya tienen código con el SDK de OpenAI. No necesitas reescribir un cliente, ni cambiar la estructura de mensajes: primero cambia tres configuraciones, haz que funcione, y luego decide si quieres usar las capacidades nativas de Gemini.

Primero mira qué tres cosas hay que cambiar
La documentación de Google lo deja muy claro después del ejemplo: los cambios son solo tres elementos: api_key, base_url y model. El propio SDK de Python de OpenAI también permite configurar base_url u OPENAI_BASE_URL(openai-python), y en el SDK de Node el campo correspondiente es baseURL(openai-node)。
Ejemplo mínimo en Python:
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/",
)
resp = client.chat.completions.create(
model="gemini-3.5-flash",
messages=[
{"role": "system", "content": "你是一个简洁的技术助手。"},
{"role": "user", "content": "用一句话解释什么是向量数据库。"},
],
)
print(resp.choices[0].message.content)
Si tu código antiguo ya usa client.chat.completions.create(), lo más probable es que solo necesites convertir la inicialización del cliente en elementos de configuración. No codifiques el nombre del modelo dentro de las funciones de negocio; más adelante, cambiar a Batch, Flex o a otro modelo dolerá más.
En Node.js es la misma lógica
En la versión de JavaScript solo cambia el nombre del campo de base_url a baseURL:
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.GEMINI_API_KEY,
baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/",
});
const resp = await client.chat.completions.create({
model: "gemini-3.5-flash",
messages: [{ role: "user", content: "给我一个 Redis 限流方案。" }],
});
console.log(resp.choices[0].message.content);
También puedes llamar directamente con REST: POST https://generativelanguage.googleapis.com/v1beta/openai/chat/completions, usando en el encabezado Authorization: Bearer $GEMINI_API_KEY. Esto es útil para descartar primero problemas del SDK, del proxy o de variables de entorno con curl.

No calcules el precio por intuición: hazlo según la salida
A fecha de 2026-06-14, la página oficial de precios de Gemini indica que el precio estándar de gemini-3.5-flash es de $1.50 / 1M tokens para entrada y $9.00 / 1M tokens para salida; Batch y Flex cuestan ambos $0.75 / 1M tokens para entrada y $4.50 / 1M tokens para salida(Gemini API pricing)。La documentación oficial también aclara que el precio de salida incluye los thinking tokens, así que en tareas de razonamiento no te fijes solo en el precio de entrada.
| Modo | Entrada / 1M tokens | Salida / 1M tokens | Escenarios adecuados |
|---|---|---|---|
| Standard | $1.50 | $9.00 | Solicitudes online, baja latencia |
| Batch | $0.75 | $4.50 | Procesamiento por lotes offline |
| Flex | $0.75 | $4.50 | Cuando se acepta programación elástica |
Mi recomendación es simple: chat, agentes y plugins de editores, primero con Standard; resúmenes de logs, limpieza de datos y evaluaciones offline, mejor con Batch/Flex siempre que sea posible. En tareas con salidas largas, la diferencia de coste se amplifica.
Los errores más comunes durante la migración
Primero, no olvides el /openai/ al final de base_url. Muchos 404 o errores de modelo inexistente se deben, en esencia, a que estás llamando a la ruta nativa de Gemini, no a la ruta compatible.
Segundo, separa bien las variables de entorno. OPENAI_API_KEY puede seguir usándose para OpenAI; para Gemini se recomienda usar por separado GEMINI_API_KEY, y no dejar que dos proveedores compitan por la misma variable en CI.
Tercero, ejecuta primero models.list(). La documentación de Google incluye ejemplos para listar modelos y obtener un modelo; antes de producción, úsalo para confirmar que la región de la cuenta, los permisos y el ID del modelo están correctos.
Cuarto, aunque la capa de compatibilidad tiene ejemplos de streaming, llamadas a funciones e input de imágenes, no asumas que todos los parámetros de OpenAI se admiten uno a uno. Primero haz una regresión con una solicitud real de negocio.
Si quieres mantener menos claves
Si tu equipo usa Claude, GPT y Gemini al mismo tiempo, solicitar cada acceso, vincular tarjetas y configurar cuotas por separado es bastante molesto. La vía cómoda es usar onehop: cambia el base_url del SDK de OpenAI a https://api.onehop.ai/v1, usa una clave de onehop, y podrás llamar a Claude, GPT y Gemini mediante interfaces compatibles con OpenAI/Anthropic. Su propuesta es ayudarte a reducir el trabajo de integración; el precio es inferior al oficial, las cuentas nuevas reciben $10 y no hace falta vincular una tarjeta.
from openai import OpenAI
client = OpenAI(
api_key="ONEHOP_API_KEY",
base_url="https://api.onehop.ai/v1",
)
resp = client.chat.completions.create(
model="gemini-3.5-flash",
messages=[{"role": "user", "content": "把这段报错日志总结成三条原因。"}],
)
print(resp.choices[0].message.content)
Si quieres probar Claude o enrutamiento multimodelo, puedes verlo directamente aquí: llamar a Claude y otros modelos en onehop. Si prefieres ejecutar primero un ejemplo pequeño sin vincular tarjeta, entra por aquí: regístrate y recibe $10 de crédito de prueba.
Conclusión: primero conviértelo en configuración, no fijes el proveedor en el código
Lo más valioso de esta compatibilidad de Gemini con OpenAI no es “otro modelo más”, sino que el coste de migración es suficientemente bajo. Coloca base_url, api_key y model en la configuración, y deja que el código de negocio siga usando las chat completions del SDK de OpenAI.
Después de hacerlo funcionar, añade tres cosas más: registrar tokens de entrada/salida, elegir Standard o Batch/Flex según la tarea, y convertir el ID del modelo en un interruptor de despliegue gradual. Así, si hoy integras Gemini y mañana Claude u otro servicio compatible, no tendrás que tocar de nuevo el código central de negocio.
Lecturas relacionadas

Usa Groq GPT-OSS 120B con el SDK de OpenAI: URL base, precios y caché
Cambia una URL base del SDK de OpenAI para ejecutar GPT-OSS 120B en Groq, estimar costes con caché y evitar sorpresas.
17 de junio de 2026 · 27 min de lectura

Usar el SDK de OpenAI para llamar a la API de Gemini: tutorial de migración cambiando solo base_url, API Key y el nombre del modelo
Checklist para migrar proyectos con OpenAI SDK a la interfaz compatible de Gemini, con código, mapeo de parámetros y precios.
14 de junio de 2026 · 9 min de lectura

Llamar a Gemini con el SDK de OpenAI: tutorial de integración cambiando solo base_url, la API Key y el nombre del modelo
Google ya admite una interfaz compatible con OpenAI: basta con cambiar base_url, la Key y el nombre del modelo para integrar Gemini.
14 de junio de 2026 · 11 min de lectura