Ayarlar

Dil

OpenAI'dan LemonData'ya 5 Dakikada Geçiş Yapın

L
LemonData
·26 Şubat 2026·519 görüntüleme
OpenAI'dan LemonData'ya 5 Dakikada Geçiş Yapın

OpenAI'ın resmi API'ından LemonData'ya geçmek sadece iki satırlık bir değişiklik gerektirir. Mevcut kodunuz, prompt'larınız ve model adlarınız olduğu gibi çalışır. Ayrıca aynı API key üzerinden OpenAI, Anthropic, Google, DeepSeek ve daha fazlasını kapsayan 300'den fazla modele erişim sağlarsınız.

Eğer geçiş yapmadan önce gateway seçeneklerini karşılaştırıyorsanız, fiyatlandırma karşılaştırmasını ve OpenRouter vs LemonData karşılaştırmasını okuyun. Ekibinizin bölgeye özel bir kılavuza ihtiyacı varsa, Çin geliştirici kılavuzu ödeme ve operasyonel süreçleri kapsamaktadır.

Kısa Özet

  1. lemondata.cc adresinden kaydolun ve bir API key alın (1$ ücretsiz kredi kazanırsınız)
  2. base_url ve api_key değerlerinizi değiştirin
  3. Bitti. Geri kalan her şey aynı kalır.

Python (OpenAI SDK)

# Önce: Resmi OpenAI
from openai import OpenAI
client = OpenAI(api_key="sk-openai-xxx")

# Sonra: LemonData (2 satırı değiştirin)
from openai import OpenAI
client = OpenAI(
    api_key="sk-lemon-xxx",
    base_url="https://api.lemondata.cc/v1"
)

# Geri kalan her şey aynı kalır
response = client.chat.completions.create(
    model="gpt-4.1",
    messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)

Streaming, function calling, vision: hepsi birebir aynı şekilde çalışır. OpenAI Python SDK, istekleri yönlendirdiğiniz her türlü base_url adresine gönderir.

Node.js (OpenAI SDK)

// Önce: Resmi OpenAI
import OpenAI from 'openai';
const openai = new OpenAI({ apiKey: 'sk-openai-xxx' });

// Sonra: LemonData (2 satırı değiştirin)
import OpenAI from 'openai';
const openai = new OpenAI({
  apiKey: 'sk-lemon-xxx',
  baseURL: 'https://api.lemondata.cc/v1',
});

// Geri kalan her şey aynı kalır
const completion = await openai.chat.completions.create({
  model: 'gpt-4.1',
  messages: [{ role: 'user', content: 'Hello!' }],
});
console.log(completion.choices[0].message.content);

Not: Node.js SDK'sında base_url değil, baseURL (camelCase) kullanılır.

curl

# Önce: Resmi OpenAI
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"}]}'

# Sonra: LemonData (URL ve anahtarı değiştirin)
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"}]}'

Aynı endpoint yolu, aynı istek gövdesi, aynı yanıt formatı.

Environment Variable Yaklaşımı

Eğer kodunuz environment variables (ortam değişkenleri) üzerinden okuma yapıyorsa (ki öyle olmalı), koda dokunmanıza bile gerek yok:

# Önce
export OPENAI_API_KEY="sk-openai-xxx"
export OPENAI_BASE_URL="https://api.openai.com/v1"

# Sonra
export OPENAI_API_KEY="sk-lemon-xxx"
export OPENAI_BASE_URL="https://api.lemondata.cc/v1"

OpenAI SDK, OPENAI_API_KEY ve OPENAI_BASE_URL değerlerini ortamdan otomatik olarak okur. Sıfır kod değişikliği.

Geçişten Sonra Elde Edecekleriniz

LemonData'ya geçtiğinizde, tam OpenAI uyumluluğunu korurken ek yeteneklere de sahip olursunuz:

300+ Model, Tek API Key

Mevcut OpenAI kodunuz artık Claude, Gemini, DeepSeek, Mistral ve yüzlerce diğer modelle çalışır. Çoğu durumda değiştirmeniz gereken tek şey model parametresidir:

# GPT-4.1 (OpenAI): 1M token başına $2.00/$8.00
response = client.chat.completions.create(model="gpt-4.1", messages=messages)

# Claude Sonnet 4.6 (Anthropic): 1M token başına $3.00/$15.00
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: 1M token başına $0.28/$0.42 ("deepseek-chat" veya "deepseek-v3" alias'ını kullanın)
response = client.chat.completions.create(model="deepseek-chat", messages=messages)

Çok kanallı yedeklilik, bir sağlayıcıda sorun yaşandığında gateway'in otomatik olarak alternatif bir kanala yönlendirme yapması anlamına gelir. Kod değişikliği gerekmez.

Yerel Protokol Erişimi (İsteğe Bağlı)

Anthropic veya Google modellerini tüm yerel yetenekleriyle (extended thinking, cache_control ile prompt caching, Google search grounding) kullanmak isterseniz, LemonData aynı base URL üzerinden onların yerel protokollerini de destekler:

# Anthropic yerel: Anthropic SDK kullanın
# Extended thinking, cache_control, Citations özelliklerinin hepsi yerel olarak çalışır
from anthropic import Anthropic
client = Anthropic(
    api_key="sk-lemon-xxx",
    base_url="https://api.lemondata.cc"  # /v1 yok. Anthropic SDK kendisi /v1/messages ekler.
)

# Google Gemini yerel: Google SDK kullanın
# Search grounding, grounding_metadata özelliklerinin hepsi yerel olarak çalışır
from google import genai
client = genai.Client(
    api_key="sk-lemon-xxx",
    http_options={"base_url": "https://api.lemondata.cc"}  # Yol son eki yok. SDK kendisi /v1beta/models/... ekler.
)

Bu tamamen isteğe bağlıdır. OpenAI uyumlu endpoint tüm modeller için çalışır. Ancak Anthropic'in extended thinking veya Google'ın grounding özelliklerine ihtiyacınız varsa, yerel protokol erişimi size bu özellikleri herhangi bir format dönüştürme kaybı olmadan sunar.

Geçiş Sırasında Genellikle Neler Değişir?

Çoğu geçiş teknik olarak basittir ancak operasyonel olarak özensiz olabilir. Ekipler genellikle base URL ve anahtarı değiştirir ve geri kalan her şeyin birebir aynı olduğunu varsayar. Bu genellikle istek şeması için doğrudur, ancak çevreleyen her şey için her zaman geçerli olmayabilir.

Trafiği yönlendirmeden önce kontrol etmeye değer alanlar şunlardır:

  • SDK veya HTTP istemcinizdeki timeout ayarları
  • Uygulama yapılandırmasındaki model izin listeleri (allowlists)
  • Tek bir sağlayıcıyı varsayan maliyet panelleri
  • Belirli bir sağlayıcıya göre ayarlanmış retry mantığı
  • Yanıt header'ları veya rate limit'ler hakkındaki sabit varsayımlar

Üretim trafiğini aktarmadan önce bu beş alanı denetlerseniz, geçiş genellikle sorunsuz gerçekleşir.

Geçiş Kontrol Listesi

Geçişin sorunsuz (sıkıcı) ilerlemesini istiyorsanız bu kontrol listesini kullanın:

  1. Bir LemonData API key oluşturun.
  2. base_url veya baseURL'i değiştirin.
  3. /v1/models üzerinde bir smoke test yapın.
  4. Bir chat completion, bir streamed response ve bir hata senaryosunu test edin.
  5. Loglarınızın hala request ID'lerini ve model adlarını yakaladığını doğrulayın.
  6. Maliyet varsayımlarınızın geçerli olduğundan emin olmak için ilk birkaç çağrıdan sonra faturalandırmayı kontrol edin.
  7. Ancak ondan sonra arka plan işlerini ve üretim trafiğini taşıyın.

Yaygın Hatalar

Hata 1: Eski model envanterini sabit kodlamak

Bazı ekipler model ID'lerini uygulama yapılandırmasındaki statik bir listeye göre doğrular. Bu listeyi tutarsanız, gateway çalışır ancak uygulamanız istek gönderilmeden önce geçerli model adlarını reddeder.

Hata 2: Geçişi sadece bir sağlayıcı değişikliği olarak görmek

Asıl fayda sadece OpenAI'dan ayrılmak değildir. Asıl fayda, tek sağlayıcılı bir mimariden, uygulamanızı bir daha değiştirmeden Claude, Gemini, DeepSeek ve diğerlerini ekleyebileceğiniz bir gateway modeline geçmektir.

Hata 3: Hata senaryosu testlerini atlamak

Başarılı bir tamamlama (happy-path), API key'in çalıştığını kanıtlar. Ancak retry mantığınızın, hata ayrıştırmanızın veya gözlemlenebilirliğinizin geçişten sonra hala doğru çalıştığını kanıtlamaz.

Sadece bir script değil de kullanıcıya yönelik bir uygulama geliştiriyorsanız, okunması gereken sonraki iki uygulama kılavuzu tek anahtarlı chatbot eğitimi ve rate limiting kılavuzudur.

Yaygın Entegrasyon Geçişleri

Cursor

Ayarlar → Modeller → 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"
)

Geçişinizi Doğrulayın

Geçişten sonra hızlı bir sağlamlık kontrolü:

curl https://api.lemondata.cc/v1/models \
  -H "Authorization: Bearer sk-lemon-xxx" | head -c 200

Model nesnelerini içeren bir JSON yanıtı görüyorsanız, her şey yolunda demektir.

SSS

Mevcut prompt'larım çalışacak mı? Evet. LemonData tam OpenAI uyumludur, bu nedenle istek ve yanıt formatları aynı kalır.

Model adlarını değiştirmem gerekiyor mu? Hayır. gpt-4.1, gpt-4o ve gpt-4.1-mini beklendiği gibi çalışır. LemonData ayrıca üç katmanlı bir model çözümleme sistemine sahiptir: tam eşleşme, alias (takma ad) arama ve bulanık düzeltme (fuzzy correction). Bu, gpt-4-turbo gibi kullanımdan kaldırılmış adların veya gpt4o gibi yazım hatalarının bile genellikle doğru şekilde çözümlendiği anlamına gelir.

Peki ya streaming? Birebir aynı çalışır. SSE formatı, aynı chunk yapısı. Yerel Anthropic/Gemini protokolleri için, her sağlayıcının kendi yerel SSE formatını alırsınız (extended thinking için thinking delta'ları dahil).

Peki ya function calling / tools? Tamamen destekleniyor. Aynı şema, aynı davranış.

Peki ya hata yönetimi? LemonData, retryable, did_you_mean, suggestions ve retry_after gibi ek ajan dostu alanlarla birlikte OpenAI uyumlu hatalar döndürür. Standart OpenAI SDK hata yönetimi çalışmaya devam eder çünkü bu alanlar ekleyicidir.

Geri dönebilir miyim? Evet. İki satırı eski haline getirin. Geri alınacak özel bir format veya veri taşıma işlemi yoktur.


Buradan başlayın: lemondata.cc/r/devto-migration
Tam API dokümantasyonu: docs.lemondata.cc
Hızlı başlangıç kılavuzu: docs.lemondata.cc/quickstart

Share: