Volver a todos los articulos
Guias

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

Ilustración de integración para desarrolladores sobre fondo beige: a la izquierda, una ventana de código gris carbón con tres líneas de configuración —base_url, api_key y model— resaltadas en color terracota; a la derecha, un nodo en la nube de la API de Gemini; en el centro, flechas de línea fina que los conectan; en la parte inferior, pequeñas tarjetas de precios y bloques iconizados del SDK; sin logotipo, sin

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-flashGoogle 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.

Diagrama de flujo de migración en tres pasos sobre fondo blanco marfil; a la izquierda, una tarjeta con la configuración antigua del SDK de OpenAI; en el centro, una flecha color terracota con la etiqueta “cambiar 3 líneas”; a la derecha, una tarjeta con la nueva configuración de la API de Gemini; las tres líneas son base_url, api_key y model, con líneas finas gris carbón y resaltados en terracota

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_URLopenai-python), y en el SDK de Node el campo correspondiente es baseURLopenai-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.

Diagrama de arquitectura compacto; a la izquierda, tres entradas —Python SDK, Node SDK y REST— mostradas como pequeñas tarjetas, que convergen en un mismo endpoint compatible con OpenAI y luego se conectan a Gemini 3.5 Flash; fondo blanco marfil, flechas terracota, etiquetas gris carbón, sin marca

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.