Migrasi dari OpenAI ke LemonData dalam 5 Menit
Beralih dari API resmi OpenAI ke LemonData hanya memerlukan perubahan dua baris kode. Kode, prompt, dan nama model Anda yang sudah ada tetap berfungsi sebagaimana mestinya. Anda juga mendapatkan akses ke 300+ model di OpenAI, Anthropic, Google, DeepSeek, dan lainnya, melalui API key yang sama.
Versi Singkat
- Daftar di lemondata.cc dan ambil API key (Anda mendapatkan kredit gratis $1)
- Ganti
base_urldanapi_keyAnda - Selesai. Semuanya tetap sama.
Python (OpenAI SDK)
# Sebelum โ OpenAI resmi
from openai import OpenAI
client = OpenAI(api_key="sk-openai-xxx")
# Sesudah โ LemonData (ubah 2 baris)
from openai import OpenAI
client = OpenAI(
api_key="sk-lemon-xxx",
base_url="https://api.lemondata.cc/v1"
)
# Semuanya tetap sama
response = client.chat.completions.create(
model="gpt-4.1",
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)
Streaming, function calling, vision: semuanya berfungsi secara identik. OpenAI Python SDK mengirimkan permintaan ke base_url mana pun yang Anda tentukan.
Node.js (OpenAI SDK)
// Sebelum โ OpenAI resmi
import OpenAI from 'openai';
const openai = new OpenAI({ apiKey: 'sk-openai-xxx' });
// Sesudah โ LemonData (ubah 2 baris)
import OpenAI from 'openai';
const openai = new OpenAI({
apiKey: 'sk-lemon-xxx',
baseURL: 'https://api.lemondata.cc/v1',
});
// Semuanya tetap sama
const completion = await openai.chat.completions.create({
model: 'gpt-4.1',
messages: [{ role: 'user', content: 'Hello!' }],
});
console.log(completion.choices[0].message.content);
Catatan: gunakan baseURL (camelCase) di Node.js SDK, bukan base_url.
curl
# Sebelum โ OpenAI resmi
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"}]}'
# Sesudah โ LemonData (ubah URL dan 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"}]}'
Path endpoint yang sama, request body yang sama, format respons yang sama.
Pendekatan Environment Variable
Jika kode Anda membaca dari environment variables (seharusnya demikian), Anda bahkan tidak perlu menyentuh kode:
# Sebelum
export OPENAI_API_KEY="sk-openai-xxx"
export OPENAI_BASE_URL="https://api.openai.com/v1"
# Sesudah
export OPENAI_API_KEY="sk-lemon-xxx"
export OPENAI_BASE_URL="https://api.lemondata.cc/v1"
OpenAI SDK secara otomatis membaca OPENAI_API_KEY dan OPENAI_BASE_URL dari environment. Tanpa perubahan kode sama sekali.
Apa yang Anda Dapatkan Setelah Migrasi
Setelah beralih ke LemonData, Anda tetap mendapatkan kompatibilitas penuh OpenAI dan memperoleh akses ke kemampuan tambahan:
300+ Model, Satu API Key
Kode OpenAI Anda yang sudah ada kini berfungsi dengan Claude, Gemini, DeepSeek, Mistral, dan ratusan lainnya โ cukup ubah parameter 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 (gunakan "deepseek-chat" atau alias "deepseek-v3")
response = client.chat.completions.create(model="deepseek-chat", messages=messages)
Redundansi multi-channel berarti jika satu provider upstream mengalami masalah, gateway akan secara otomatis merutekan ke channel alternatif. Tidak perlu perubahan kode.
Akses Protokol Native (Opsional)
Jika Anda ingin menggunakan model Anthropic atau Google dengan kemampuan native penuh (extended thinking, prompt caching dengan cache_control, Google search grounding), LemonData mendukung protokol native mereka melalui base URL yang sama:
# Native Anthropic โ gunakan Anthropic SDK
# Extended thinking, cache_control, Citations semuanya berfungsi secara native
from anthropic import Anthropic
client = Anthropic(
api_key="sk-lemon-xxx",
base_url="https://api.lemondata.cc" # Tanpa /v1 โ Anthropic SDK menambahkan /v1/messages sendiri
)
# Native Google Gemini โ gunakan Google SDK
# Search grounding, grounding_metadata semuanya berfungsi secara native
from google import genai
client = genai.Client(
api_key="sk-lemon-xxx",
http_options={"base_url": "https://api.lemondata.cc"} # Tanpa akhiran path โ SDK menambahkan /v1beta/models/...
)
Ini sepenuhnya opsional. Endpoint yang kompatibel dengan OpenAI berfungsi untuk semua model. Namun jika Anda membutuhkan extended thinking dari Anthropic atau grounding dari Google, akses protokol native memberikan fitur-fitur tersebut tanpa kehilangan konversi format apa pun.
Migrasi Integrasi Umum
Cursor
Pengaturan โ Model โ 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"
)
Verifikasi Migrasi Anda
Pemeriksaan cepat setelah beralih:
curl https://api.lemondata.cc/v1/models \
-H "Authorization: Bearer sk-lemon-xxx" | head -c 200
Jika Anda melihat respons JSON dengan objek model, berarti sudah benar.
FAQ
Apakah prompt saya yang sudah ada akan berfungsi? Ya. LemonData sepenuhnya kompatibel dengan OpenAI. Format permintaan yang sama, format respons yang sama.
Apakah saya perlu mengubah nama model? Tidak. gpt-4.1, gpt-4o, gpt-4.1-mini โ semua nama model standar OpenAI berfungsi. LemonData juga memiliki sistem resolusi model tiga lapis: pencocokan persis (exact match) โ pencarian alias (21 alias statis seperti gpt4 โ gpt-4, gpt-3.5 โ gpt-3.5-turbo) โ koreksi fuzzy (jarak Levenshtein โค 3). Jadi, nama yang sudah tidak digunakan lagi seperti gpt-4-turbo atau salah ketik seperti gpt4o akan teratasi dengan benar.
Bagaimana dengan streaming? Berfungsi secara identik. Format SSE, struktur chunk yang sama. Untuk protokol native Anthropic/Gemini, Anda mendapatkan format SSE native dari masing-masing provider (termasuk thinking deltas untuk extended thinking).
Bagaimana dengan function calling / tools? Didukung sepenuhnya. Skema yang sama, perilaku yang sama.
Bagaimana dengan penanganan error? LemonData mengembalikan error yang kompatibel dengan OpenAI dengan field tambahan yang ramah agen: retryable, did_you_mean, suggestions, retry_after. Penanganan error standar OpenAI SDK berfungsi tanpa perubahan โ field tambahan tersebut bersifat aditif.
Bisakah saya beralih kembali? Ya. Ubah kembali dua baris tersebut. Tidak ada keterikatan (lock-in). Tidak ada format eksklusif, tidak ada migrasi data.
Dokumentasi API lengkap: docs.lemondata.cc Panduan mulai cepat: docs.lemondata.cc/quickstart
