Migrer d'OpenAI vers LemonData en 5 minutes
Passer de l'API officielle d'OpenAI à LemonData ne nécessite que deux changements de ligne. Votre code existant, vos prompts et vos noms de modèles fonctionnent tous tels quels. Vous accédez également à plus de 300 modèles via OpenAI, Anthropic, Google, DeepSeek et bien d'autres, en utilisant la même API key.
La version courte
- Inscrivez-vous sur lemondata.cc et récupérez une API key (vous recevez 1 $ de crédit gratuit)
- Remplacez votre
base_urlet votreapi_key - C'est tout. Tout le reste reste inchangé.
Python (OpenAI SDK)
# Before — OpenAI official
from openai import OpenAI
client = OpenAI(api_key="sk-openai-xxx")
# After — LemonData (change 2 lines)
from openai import OpenAI
client = OpenAI(
api_key="sk-lemon-xxx",
base_url="https://api.lemondata.cc/v1"
)
# Everything else stays the same
response = client.chat.completions.create(
model="gpt-4.1",
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)
Streaming, function calling, vision : tout fonctionne à l'identique. Le SDK Python d'OpenAI envoie les requêtes vers n'importe quelle base_url que vous lui indiquez.
Node.js (OpenAI SDK)
// Before — OpenAI official
import OpenAI from 'openai';
const openai = new OpenAI({ apiKey: 'sk-openai-xxx' });
// After — LemonData (change 2 lines)
import OpenAI from 'openai';
const openai = new OpenAI({
apiKey: 'sk-lemon-xxx',
baseURL: 'https://api.lemondata.cc/v1',
});
// Everything else stays the same
const completion = await openai.chat.completions.create({
model: 'gpt-4.1',
messages: [{ role: 'user', content: 'Hello!' }],
});
console.log(completion.choices[0].message.content);
Remarque : c'est baseURL (camelCase) dans le SDK Node.js, et non base_url.
curl
# Before — OpenAI official
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"}]}'
# After — LemonData (change URL and 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"}]}'
Même chemin d'endpoint, même corps de requête, même format de réponse.
Approche par variables d'environnement
Si votre code lit les variables d'environnement (ce qu'il devrait faire), vous n'avez même pas besoin de toucher au code :
# Before
export OPENAI_API_KEY="sk-openai-xxx"
export OPENAI_BASE_URL="https://api.openai.com/v1"
# After
export OPENAI_API_KEY="sk-lemon-xxx"
export OPENAI_BASE_URL="https://api.lemondata.cc/v1"
Le SDK OpenAI lit automatiquement OPENAI_API_KEY et OPENAI_BASE_URL depuis l'environnement. Zéro modification de code.
Ce que vous obtenez après la migration
Une fois sur LemonData, vous conservez une compatibilité totale avec OpenAI tout en accédant à des fonctionnalités supplémentaires :
Plus de 300 modèles, une seule API key
Votre code OpenAI existant fonctionne désormais avec Claude, Gemini, DeepSeek, Mistral et des centaines d'autres — il suffit de changer le paramètre model :
# GPT-4.1 (OpenAI) — $2.00/$8.00 per 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 per 1M tokens (use "deepseek-chat" or alias "deepseek-v3")
response = client.chat.completions.create(model="deepseek-chat", messages=messages)
La redondance multi-canaux signifie que si un fournisseur en amont rencontre des problèmes, la passerelle redirige automatiquement vers un canal alternatif. Aucune modification de code n'est nécessaire.
Accès au protocole natif (Optionnel)
Si vous souhaitez utiliser les modèles Anthropic ou Google avec leurs capacités natives complètes (extended thinking, prompt caching avec cache_control, Google search grounding), LemonData supporte leurs protocoles natifs via la même URL de base :
# Anthropic native — use the Anthropic SDK
# Extended thinking, cache_control, Citations all work natively
from anthropic import Anthropic
client = Anthropic(
api_key="sk-lemon-xxx",
base_url="https://api.lemondata.cc" # No /v1 — Anthropic SDK adds /v1/messages itself
)
# Google Gemini native — use the Google SDK
# Search grounding, grounding_metadata all work natively
from google import genai
client = genai.Client(
api_key="sk-lemon-xxx",
http_options={"base_url": "https://api.lemondata.cc"} # No path suffix — SDK adds /v1beta/models/...
)
Ceci est entièrement optionnel. L'endpoint compatible OpenAI fonctionne pour tous les modèles. Mais si vous avez besoin de l'extended thinking d'Anthropic ou du grounding de Google, l'accès au protocole natif vous offre ces fonctionnalités sans aucune perte de conversion de format.
Migration des intégrations courantes
Cursor
Paramètres → Modèles → 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"
)
Vérifiez votre migration
Vérification rapide après le changement :
curl https://api.lemondata.cc/v1/models \
-H "Authorization: Bearer sk-lemon-xxx" | head -c 200
Si vous voyez une réponse JSON avec des objets de modèles, tout est bon.
FAQ
Mes prompts existants fonctionneront-ils ? Oui. LemonData est entièrement compatible avec OpenAI. Même format de requête, même format de réponse.
Dois-je changer les noms des modèles ? Non. gpt-4.1, gpt-4o, gpt-4.1-mini — tous les noms de modèles standard d'OpenAI fonctionnent. LemonData dispose également d'un système de résolution de modèles à trois couches : correspondance exacte → recherche d'alias (21 alias statiques comme gpt4 → gpt-4, gpt-3.5 → gpt-3.5-turbo) → correction floue (distance de Levenshtein ≤ 3). Ainsi, même les noms obsolètes comme gpt-4-turbo ou les fautes de frappe comme gpt4o sont résolus correctement.
Qu'en est-il du streaming ? Il fonctionne de manière identique. Format SSE, même structure de chunks. Pour les protocoles natifs Anthropic/Gemini, vous obtenez le format SSE natif de chaque fournisseur (y compris les thinking deltas pour l'extended thinking).
Qu'en est-il du function calling / tools ? Entièrement supporté. Même schéma, même comportement.
Qu'en est-il de la gestion des erreurs ? LemonData renvoie des erreurs compatibles avec OpenAI avec des champs supplémentaires adaptés aux agents : retryable, did_you_mean, suggestions, retry_after. La gestion des erreurs standard du SDK OpenAI fonctionne sans changement — les champs supplémentaires sont additifs.
Puis-je revenir en arrière ? Oui. Rétablissez simplement les deux lignes. Il n'y a pas de verrouillage (lock-in). Aucun format propriétaire, aucune migration de données.
Documentation API complète : docs.lemondata.cc Guide de démarrage rapide : docs.lemondata.cc/quickstart
