메인 콘텐츠로 건너뛰기

개요

LemonData는 하나의 API 키로 세 가지 네이티브 API 형식을 지원합니다. 구성 변경 없이 사용 사례에 가장 적합한 형식을 선택하세요.

OpenAI 형식

/v1/chat/completions 표준 형식, 가장 넓은 호환성

Anthropic 형식

/v1/messages 확장 사고, Claude 고유 기능 지원

Gemini 형식

/v1beta/models/:model:generateContent Google 생태계 통합

멀티 포맷을 사용하는 이유

이점설명
SDK 전환 불필요선호하는 SDK로 아무 모델이나 사용 가능
네이티브 기능 접근형식별 고유 기능 사용 가능
쉬운 마이그레이션공식 API에서 base URL만 변경하면 전환 가능
단일 청구하나의 계정, 하나의 API 키로 모든 형식 사용

형식 비교

기능OpenAIAnthropicGemini
Endpoint/v1/chat/completions/v1/messages/v1beta/models/:model:generateContent
인증 헤더Authorization: Bearerx-api-keyAuthorization: Bearer
시스템 프롬프트messages 배열 내별도 system 필드systemInstruction
확장 사고
스트리밍✅ SSE✅ SSE✅ SSE
도구 호출
비전

OpenAI 형식

가장 널리 호환되는 형식으로 대부분의 신규 통합에서 기본 시작점입니다. LemonData 모델 중 가장 폭넓은 세트에서 작동합니다.
from openai import OpenAI

client = OpenAI(
    api_key="sk-your-lemondata-key",
    base_url="https://api.lemondata.cc/v1"
)

# Works with ANY model
response = client.chat.completions.create(
    model="claude-sonnet-4-6",  # Claude via OpenAI format
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello!"}
    ]
)
적합한 용도:
  • 일반적인 사용
  • 기존 OpenAI SDK 통합
  • 최대 호환성

Anthropic 형식

Anthropic Messages API의 네이티브 형식입니다. 확장 사고와 같은 Claude 전용 기능을 사용하려면 필요합니다.
from anthropic import Anthropic

client = Anthropic(
    api_key="sk-your-lemondata-key",
    base_url="https://api.lemondata.cc"  # No /v1 suffix!
)

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system="You are a helpful assistant.",  # Separate system field
    messages=[
        {"role": "user", "content": "Hello!"}
    ]
)

확장 사고 (Claude Opus 4.6)

Anthropic 형식에서만 사용할 수 있습니다:
message = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000
    },
    messages=[{"role": "user", "content": "Solve this complex problem..."}]
)

# Access thinking process
for block in message.content:
    if block.type == "thinking":
        print(f"Thinking: {block.thinking}")
    elif block.type == "text":
        print(f"Answer: {block.text}")
적합한 용도:
  • Claude 전용 기능
  • 확장 사고 모드
  • 네이티브 Anthropic SDK 사용자

Gemini 형식

Google 생태계 통합을 위한 네이티브 Google Gemini API 형식입니다.
curl "https://api.lemondata.cc/v1beta/models/gemini-2.5-flash:generateContent" \
  -H "Authorization: Bearer sk-your-lemondata-key" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [{"text": "Hello!"}]
    }],
    "systemInstruction": {
      "parts": [{"text": "You are a helpful assistant."}]
    }
  }'

스트리밍

curl "https://api.lemondata.cc/v1beta/models/gemini-2.5-flash:streamGenerateContent?alt=sse" \
  -H "Authorization: Bearer sk-your-lemondata-key" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{"parts": [{"text": "Write a story"}]}]
  }'
적합한 용도:
  • Google Cloud 통합
  • 기존 Gemini SDK 코드
  • 네이티브 Gemini 기능

적절한 형식 선택

마이그레이션 가이드

OpenAI 공식 API에서

# Before (OpenAI)
client = OpenAI(api_key="sk-openai-key")

# After (LemonData)
client = OpenAI(
    api_key="sk-lemondata-key",
    base_url="https://api.lemondata.cc/v1"  # Add this line
)
# That's it! Same code works

Anthropic 공식 API에서

# Before (Anthropic)
client = Anthropic(api_key="sk-ant-key")

# After (LemonData)
client = Anthropic(
    api_key="sk-lemondata-key",
    base_url="https://api.lemondata.cc"  # Add this line (no /v1!)
)

Google AI Studio에서

# Before (Google)
import google.generativeai as genai
genai.configure(api_key="google-api-key")

# After (LemonData) - Use REST API
import requests

response = requests.post(
    "https://api.lemondata.cc/v1beta/models/gemini-2.5-flash:generateContent",
    headers={"Authorization": "Bearer sk-lemondata-key"},
    json={"contents": [{"parts": [{"text": "Hello"}]}]}
)

모델 간 호환성

LemonData의 마법: 어떤 SDK로도 어떤 모델이든 사용 가능합니다. 게이트웨이가 형식 변환을 자동으로 처리합니다.

Any SDK → Any Model

# Anthropic SDK with GPT-4o (auto-converts to OpenAI format)
from anthropic import Anthropic

client = Anthropic(
    api_key="sk-lemondata-key",
    base_url="https://api.lemondata.cc"
)

response = client.messages.create(
    model="gpt-4o",  # ✅ Works! Auto-converted
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello!"}]
)

# Same SDK, different models - no code changes
response = client.messages.create(model="gemini-2.5-flash", ...)  # ✅ Works!
response = client.messages.create(model="deepseek-r1", ...)       # ✅ Works!

OpenAI SDK → 모든 모델

from openai import OpenAI

client = OpenAI(base_url="https://api.lemondata.cc/v1", api_key="sk-...")

# All these work with the same SDK:
response = client.chat.completions.create(model="gpt-4o", ...)
response = client.chat.completions.create(model="claude-sonnet-4-6", ...)
response = client.chat.completions.create(model="gemini-2.5-flash", ...)

업계 비교

플랫폼OpenAI 형식Anthropic 형식Gemini 형식Responses API
LemonData✅ 모든 모델✅ 모든 모델✅ 모든 모델✅ 모든 모델
OpenRouter✅ 모든 모델
Together AI✅ 모든 모델
Fireworks✅ 모든 모델
대부분의 기능은 형식 간에 작동하지만, Anthropic의 확장 사고와 같은 형식 고유 기능은 네이티브 형식을 사용해야 합니다.