メインコンテンツへスキップ

概要

LemonData は単一の API キーで 3 つのネイティブ API フォーマット をサポートします。設定を変更することなく、ユースケースに最適なフォーマットを選んでください。

OpenAI フォーマット

/v1/chat/completions 標準フォーマット、最も幅広い互換性

Anthropic フォーマット

/v1/messages Extended thinking、Claude 固有の機能

Gemini フォーマット

/v1beta/models/:model:generateContent Google エコシステムとの統合

なぜマルチフォーマットか?

利点説明
SDK の切り替え不要お好みの SDK で任意のモデルを使用可能
ネイティブ機能フォーマット固有の機能にアクセス
簡単な移行公式 API からベース URL を変更するだけで移行可能
単一課金1 つのアカウント、1 つの API キー、すべてのフォーマット

フォーマット比較

特徴OpenAIAnthropicGemini
Endpoint/v1/chat/completions/v1/messages/v1beta/models/:model:generateContent
Auth HeaderAuthorization: Bearerx-api-keyAuthorization: Bearer
System Promptmessages 配列内別の system フィールドsystemInstruction
Extended Thinking
Streaming✅ 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。Extended thinking のような 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!"}
    ]
)

Extended Thinking (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 固有の機能
  • Extended thinking モード
  • ネイティブ 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 で任意のモデルを使用できます。ゲートウェイがフォーマット変換を自動で処理します。

任意の SDK → 任意のモデル

# 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 の Extended thinking のようなフォーマット固有の機能はネイティブなフォーマットが必要です。