Paramètres

Langue

Migrer d'OpenAI vers LemonData en 5 minutes

L
LemonData
·26 février 2026·49 vues
#tutoriel#migration#OpenAI#premiers pas
Migrer d'OpenAI vers LemonData en 5 minutes

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

  1. Inscrivez-vous sur lemondata.cc et récupérez une API key (vous recevez 1 $ de crédit gratuit)
  2. Remplacez votre base_url et votre api_key
  3. 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 gpt4gpt-4, gpt-3.5gpt-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

Share: