Migre de OpenAI a LemonData en 5 minutos
Cambiar de la API oficial de OpenAI a LemonData requiere solo dos cambios de línea. Su código, prompts y nombres de modelos existentes funcionan tal cual. También obtiene acceso a más de 300 modelos de OpenAI, Anthropic, Google, DeepSeek y más, a través de la misma API key.
La versión corta
- Regístrese en lemondata.cc y obtenga una API key (recibirá $1 de crédito gratuito)
- Reemplace su
base_urlyapi_key - Listo. Todo lo demás permanece igual.
Python (OpenAI SDK)
# Antes — OpenAI oficial
from openai import OpenAI
client = OpenAI(api_key="sk-openai-xxx")
# Después — LemonData (cambie 2 líneas)
from openai import OpenAI
client = OpenAI(
api_key="sk-lemon-xxx",
base_url="https://api.lemondata.cc/v1"
)
# Todo lo demás permanece igual
response = client.chat.completions.create(
model="gpt-4.1",
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)
Streaming, function calling, vision: todo funciona de manera idéntica. El SDK de Python de OpenAI envía solicitudes a cualquier base_url a la que se apunte.
Node.js (OpenAI SDK)
// Antes — OpenAI oficial
import OpenAI from 'openai';
const openai = new OpenAI({ apiKey: 'sk-openai-xxx' });
// Después — LemonData (cambie 2 líneas)
import OpenAI from 'openai';
const openai = new OpenAI({
apiKey: 'sk-lemon-xxx',
baseURL: 'https://api.lemondata.cc/v1',
});
// Todo lo demás permanece igual
const completion = await openai.chat.completions.create({
model: 'gpt-4.1',
messages: [{ role: 'user', content: 'Hello!' }],
});
console.log(completion.choices[0].message.content);
Nota: es baseURL (camelCase) en el SDK de Node.js, no base_url.
curl
# Antes — OpenAI oficial
curl https://api.openai.com/v1/chat/completions \
-H "Authorization: Bearer sk-openai-xxx" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-4.1","messages":[{"role":"user","content":"Hello"}]}'
# Después — LemonData (cambie la URL y la key)
curl https://api.lemondata.cc/v1/chat/completions \
-H "Authorization: Bearer sk-lemon-xxx" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-4.1","messages":[{"role":"user","content":"Hello"}]}'
Misma ruta de endpoint, mismo cuerpo de solicitud, mismo formato de respuesta.
Enfoque con variables de entorno
Si su código lee de variables de entorno (como debería ser), ni siquiera necesita tocar el código:
# Antes
export OPENAI_API_KEY="sk-openai-xxx"
export OPENAI_BASE_URL="https://api.openai.com/v1"
# Después
export OPENAI_API_KEY="sk-lemon-xxx"
export OPENAI_BASE_URL="https://api.lemondata.cc/v1"
El SDK de OpenAI lee automáticamente OPENAI_API_KEY y OPENAI_BASE_URL del entorno. Cero cambios de código.
Lo que obtiene después de la migración
Una vez que esté en LemonData, mantiene la compatibilidad total con OpenAI y obtiene acceso a capacidades adicionales:
Más de 300 modelos, una sola API key
Su código de OpenAI existente ahora funciona con Claude, Gemini, DeepSeek, Mistral y cientos más; solo cambie el parámetro model:
# GPT-4.1 (OpenAI) — $2.00/$8.00 por 1M tokens
response = client.chat.completions.create(model="gpt-4.1", messages=messages)
# Claude Sonnet 4.6 (Anthropic) — $3.00/$15.00 per 1M tokens
response = client.chat.completions.create(model="claude-sonnet-4-6", messages=messages)
# Gemini 2.5 Pro (Google)
response = client.chat.completions.create(model="gemini-2.5-pro", messages=messages)
# DeepSeek V3 — $0.28/$0.42 por 1M tokens (use "deepseek-chat" o el alias "deepseek-v3")
response = client.chat.completions.create(model="deepseek-chat", messages=messages)
La redundancia multicanal significa que si un proveedor upstream tiene problemas, el gateway redirige automáticamente a un canal alternativo. No se necesitan cambios de código.
Acceso al protocolo nativo (Opcional)
Si desea utilizar modelos de Anthropic o Google con sus capacidades nativas completas (extended thinking, prompt caching con cache_control, Google search grounding), LemonData admite sus protocolos nativos a través de la misma base URL:
# Anthropic nativo — use el SDK de Anthropic
# Extended thinking, cache_control y Citations funcionan de forma nativa
from anthropic import Anthropic
client = Anthropic(
api_key="sk-lemon-xxx",
base_url="https://api.lemondata.cc" # Sin /v1 — el SDK de Anthropic añade /v1/messages por sí mismo
)
# Google Gemini nativo — use el SDK de Google
# Search grounding y grounding_metadata funcionan de forma nativa
from google import genai
client = genai.Client(
api_key="sk-lemon-xxx",
http_options={"base_url": "https://api.lemondata.cc"} # Sin sufijo de ruta — el SDK añade /v1beta/models/...
)
Esto es totalmente opcional. El endpoint compatible con OpenAI funciona para todos los modelos. Pero si necesita el extended thinking de Anthropic o el grounding de Google, el acceso al protocolo nativo le brinda esas funciones sin pérdida por conversión de formato.
Migración de integraciones comunes
Cursor
Configuración → Modelos → OpenAI API Key:
- API Key:
sk-lemon-xxx - Base URL:
https://api.lemondata.cc/v1
LangChain
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="gpt-4.1",
api_key="sk-lemon-xxx",
base_url="https://api.lemondata.cc/v1"
)
Vercel AI SDK
import { createOpenAI } from '@ai-sdk/openai';
const lemondata = createOpenAI({
apiKey: 'sk-lemon-xxx',
baseURL: 'https://api.lemondata.cc/v1',
});
const result = await generateText({
model: lemondata('gpt-4.1'),
prompt: 'Hello!',
});
LiteLLM
import litellm
response = litellm.completion(
model="openai/gpt-4.1",
messages=[{"role": "user", "content": "Hello!"}],
api_key="sk-lemon-xxx",
api_base="https://api.lemondata.cc/v1"
)
Verifique su migración
Verificación rápida de funcionamiento después del cambio:
curl https://api.lemondata.cc/v1/models \
-H "Authorization: Bearer sk-lemon-xxx" | head -c 200
Si ve una respuesta JSON con objetos de modelo, todo está correcto.
FAQ
¿Funcionarán mis prompts existentes? Sí. LemonData es totalmente compatible con OpenAI. Mismo formato de solicitud, mismo formato de respuesta.
¿Necesito cambiar los nombres de los modelos? No. gpt-4.1, gpt-4o, gpt-4.1-mini: todos los nombres de modelos estándar de OpenAI funcionan. LemonData también tiene un sistema de resolución de modelos de tres capas: coincidencia exacta → búsqueda de alias (21 alias estáticos como gpt4 → gpt-4, gpt-3.5 → gpt-3.5-turbo) → corrección difusa (distancia de Levenshtein ≤ 3). Por lo tanto, incluso los nombres obsoletos como gpt-4-turbo o errores tipográficos como gpt4o se resuelven correctamente.
¿Qué pasa con el streaming? Funciona de manera idéntica. Formato SSE, misma estructura de chunks. Para los protocolos nativos de Anthropic/Gemini, obtiene el formato SSE nativo de cada proveedor (incluyendo thinking deltas para extended thinking).
¿Qué pasa con function calling / tools? Totalmente compatible. Mismo esquema, mismo comportamiento.
¿Qué pasa con el manejo de errores? LemonData devuelve errores compatibles con OpenAI con campos adicionales amigables para agentes: retryable, did_you_mean, suggestions, retry_after. El manejo de errores estándar del SDK de OpenAI funciona sin cambios; los campos adicionales son aditivos.
¿Puedo volver atrás? Sí. Vuelva a cambiar las dos líneas. No hay dependencia (lock-in). Sin formatos propietarios, sin migración de datos.
Documentación completa de la API: docs.lemondata.cc Guía de inicio rápido: docs.lemondata.cc/quickstart
