設定

言語

OpenAIからLemonDataへ5分で移行する方法

L
LemonData
·2026年2月26日·41 回表示
#チュートリアル#移行#OpenAI#はじめに
OpenAIからLemonDataへ5分で移行する方法

5分でOpenAIからLemonDataへ移行する方法

OpenAIの公式APIからLemonDataへの切り替えは、わずか2行の変更で完了します。既存のコード、プロンプト、モデル名はすべてそのまま機能します。また、同じAPI keyを使用して、OpenAI、Anthropic、Google、DeepSeekなど、300以上のモデルにアクセスできるようになります。

クイック手順

  1. lemondata.ccでサインアップし、API keyを取得します(1ドルの無料クレジットが付与されます)
  2. base_urlapi_keyを置き換えます
  3. 完了です。それ以外はすべて同じです。

Python (OpenAI SDK)

# 変更前 — OpenAI公式
from openai import OpenAI
client = OpenAI(api_key="sk-openai-xxx")

# 変更後 — LemonData(2行変更)
from openai import OpenAI
client = OpenAI(
    api_key="sk-lemon-xxx",
    base_url="https://api.lemondata.cc/v1"
)

# その他はすべて同じです
response = client.chat.completions.create(
    model="gpt-4.1",
    messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)

ストリーミング、function calling、visionはすべて同様に動作します。OpenAI Python SDKは、指定されたbase_urlにリクエストを送信します。

Node.js (OpenAI SDK)

// 変更前 — OpenAI公式
import OpenAI from 'openai';
const openai = new OpenAI({ apiKey: 'sk-openai-xxx' });

// 変更後 — LemonData(2行変更)
import OpenAI from 'openai';
const openai = new OpenAI({
  apiKey: 'sk-lemon-xxx',
  baseURL: 'https://api.lemondata.cc/v1',
});

// その他はすべて同じです
const completion = await openai.chat.completions.create({
  model: 'gpt-4.1',
  messages: [{ role: 'user', content: 'Hello!' }],
});
console.log(completion.choices[0].message.content);

注意:Node.js SDKでは、base_urlではなくbaseURL(キャメルケース)を使用します。

curl

# 変更前 — 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"}]}'

# 変更後 — LemonData(URLとキーを変更)
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"}]}'

エンドポイントのパス、リクエストボディ、レスポンス形式はすべて同じです。

環境変数によるアプローチ

コードが環境変数から読み込む設定になっている場合(推奨)、コードを修正する必要すらありません:

# 変更前
export OPENAI_API_KEY="sk-openai-xxx"
export OPENAI_BASE_URL="https://api.openai.com/v1"

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

OpenAI SDKは環境からOPENAI_API_KEYOPENAI_BASE_URLを自動的に読み込みます。コードの変更は不要です。

移行後のメリット

LemonDataに移行すると、OpenAIとの完全な互換性を維持したまま、追加の機能を利用できるようになります:

300以上のモデルを1つのAPI Keyで

既存のOpenAIコードで、Claude、Gemini、DeepSeek、Mistralなど数百のモデルが利用可能になります。modelパラメータを変更するだけです:

# GPT-4.1 (OpenAI) — 100万tokenあたり $2.00/$8.00
response = client.chat.completions.create(model="gpt-4.1", messages=messages)

# Claude Sonnet 4.6 (Anthropic) — 100万tokenあたり $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 — 100万tokenあたり $0.28/$0.42 ("deepseek-chat" またはエイリアス "deepseek-v3" を使用)
response = client.chat.completions.create(model="deepseek-chat", messages=messages)

マルチチャネルの冗長性により、アップストリームプロバイダーに問題が発生した場合、ゲートウェイが自動的に代替チャネルにルーティングします。コードの変更は必要ありません。

ネイティブプロトコルへのアクセス(オプション)

AnthropicやGoogleのモデルを、ネイティブ機能(extended thinking、cache_controlによるプロンプトキャッシュ、Google検索のグラウンディングなど)をフルに活用して使用したい場合、LemonDataは同じbase URLを通じてネイティブプロトコルをサポートしています:

# Anthropicネイティブ — Anthropic SDKを使用
# Extended thinking, cache_control, Citationsがすべてネイティブで動作
from anthropic import Anthropic
client = Anthropic(
    api_key="sk-lemon-xxx",
    base_url="https://api.lemondata.cc"  # /v1は不要 — Anthropic SDKが自動で /v1/messages を付与
)

# Google Geminiネイティブ — Google SDKを使用
# Search grounding, grounding_metadataがすべてネイティブで動作
from google import genai
client = genai.Client(
    api_key="sk-lemon-xxx",
    http_options={"base_url": "https://api.lemondata.cc"}  # パスのサフィックスは不要 — SDKが自動で /v1beta/models/... を付与
)

これは完全にオプションです。OpenAI互換のエンドポイントはすべてのモデルで動作します。しかし、Anthropicのextended thinkingやGoogleのグラウンディングが必要な場合、ネイティブプロトコルアクセスを使用することで、フォーマット変換による損失なしにこれらの機能を利用できます。

主要なインテグレーションの移行

Cursor

Settings → Models → 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"
)

移行の確認

切り替え後の簡単な動作確認:

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

モデルオブジェクトを含むJSONレスポンスが表示されれば、設定は完了です。

FAQ

既存のプロンプトは機能しますか? はい。LemonDataはOpenAIと完全に互換性があります。リクエスト形式もレスポンス形式も同じです。

モデル名を変更する必要はありますか? いいえ。gpt-4.1gpt-4ogpt-4.1-miniなど、標準的なOpenAIモデル名はすべて機能します。LemonDataには3層のモデル解決システムがあります:完全一致 → エイリアス検索(gpt4からgpt-4gpt-3.5からgpt-3.5-turboなど21の静的エイリアス) → 曖昧補正(レーベンシュタイン距離 ≤ 3)。そのため、非推奨の名前であるgpt-4-turboや、gpt4oのようなタイポでも正しく解決されます。

ストリーミングはどうなりますか? 同様に動作します。SSE形式、チャンク構造も同じです。ネイティブのAnthropic/Geminiプロトコルの場合、各プロバイダーのネイティブSSE形式(extended thinkingのthinking deltasを含む)が取得されます。

function calling / toolsはどうなりますか? 完全にサポートされています。同じスキーマ、同じ動作です。

エラーハンドリングはどうなりますか? LemonDataは、OpenAI互換のエラーに加えて、エージェントフレンドリーな追加フィールド(retryabledid_you_meansuggestionsretry_after)を返します。標準のOpenAI SDKのエラーハンドリングはそのまま機能し、追加フィールドは付加的な情報として提供されます。

元に戻すことはできますか? はい。2行を元に戻すだけです。ロックインはありません。独自のフォーマットやデータの移行も不要です。


APIドキュメント(全文): docs.lemondata.cc
クイックスタートガイド: docs.lemondata.cc/quickstart

Share: