Langsung ke konten utama

Ikhtisar

LemonData menyediakan beberapa format API sehingga alat pengkodean umum, SDK, dan framework dapat berintegrasi dengan sedikit kode penghubung. Halaman ini sengaja dibuat lebih sempit dibanding matriks pemasaran:
  • Supported berarti kami mendokumentasikan jalur pengaturan konkret dan LemonData mengekspos bentuk protokol yang diharapkan jalur tersebut.
  • Strong native path berarti repositori juga memiliki adaptor langsung atau bukti format permintaan untuk keluarga protokol tersebut.
  • Best-effort berarti integrasi dapat bekerja, tetapi klien upstream tidak menganggap alur gateway kustom ini sebagai kontrak yang stabil.
Field yang tidak didukung tidak ditangani secara seragam. Pada rute kompatibilitas, beberapa field diabaikan atau dinormalisasi. Pada /v1/responses, field yang tidak didukung dapat mengembalikan error 400 atau 503 yang eksplisit ketika rute tersebut tidak dapat menjamin perilaku yang diminta.

Supported API Formats

EndpointFormatKasus Penggunaan
/v1/chat/completionsOpenAI ChatKompatibilitas universal
/v1/responsesOpenAI ResponsesPercakapan berstatus
/v1/messagesAnthropic MessagesFitur asli Claude
/v1beta/models/:model:generateContentGoogle GeminiFitur asli Gemini

Kompatibilitas IDE & CLI

Jalur Alat yang Didokumentasikan

AlatTingkat DukunganFormatCatatan
CursorDidukung dengan batasanKompatibel OpenAIBekerja untuk alur chat/editor BYOK standar, bukan sebagai pengganti fitur yang dikelola Cursor seperti Tab Completion
Claude Code CLIStrong native pathAnthropicRute native /v1/messages dengan cakupan adaptor untuk thinking dan tool_choice
Codex CLIDidukung dengan batas model/jalurOpenAI ResponsesAnggap /v1/responses sebagai jalur lanjutan untuk alur kerja spesifik Codex; beberapa field yang hanya ada di Responses tidak dijamin berlaku pada setiap model dan jalur yang dirutekan
Gemini CLIBest-effort / eksperimentalGeminiAlur URL basis LemonData kustom bukan kontrak upstream yang stabil
OpenCodeDidukungKompatibel OpenAIGunakan penyedia kompatibel OpenAI secara default; beralih ke penyedia berbasis Responses hanya ketika Anda secara eksplisit membutuhkannya
Editor dan alat agen OpenAI-compatible lainnya sering bekerja dengan pola URL dasar yang sama, tetapi repo ini saat ini tidak memelihara cakupan regresi khusus-alat untuk Windsurf, Aider, Continue.dev, Cline/Roo Code, GitHub Copilot, dan klien serupa.

Contoh Konfigurasi

Base URL: https://api.lemondata.cc/v1
API Key: sk-your-lemondata-key
Cursor menggunakan format alat gaya Anthropic secara internal. LemonData mendukung keduanya:
  • Format OpenAI: { type: "function", function: { name, parameters } }
  • Format Anthropic: { name, input_schema } (no type field)

Kompatibilitas SDK

Jalur SDK & Framework yang Didokumentasikan

SDK / FrameworkBahasaTingkat DukunganCatatan
OpenAI SDKPython/JS/GoJalur inti yang didukungChat Completions dan Embeddings adalah jalur yang didokumentasikan secara default; beberapa field yang hanya ada di Responses tidak dijamin berlaku pada setiap model dan jalur yang dirutekan
Anthropic SDKPython/JSStrong native pathRute Messages native dengan bukti langsung untuk tools, thinking, dan prompt caching
Vercel AI SDKTypeScriptPola integrasi yang direkomendasikanLebih suka @ai-sdk/openai-compatible; gunakan @ai-sdk/openai hanya ketika Anda secara eksplisit menginginkan perilaku Responses-native
LangChainPython/JSPermukaan standar yang didukungChatOpenAI dan OpenAIEmbeddings adalah ruang lingkup yang dimaksud; tambahan native vendor berada di luar ruang lingkup
LlamaIndexPythonDidukung melalui OpenAILikeGunakan OpenAILike, bukan kelas OpenAI bawaan, untuk gateway pihak ketiga seperti LemonData
Dify-Didukung dengan batas cakupanPenyedia OpenAI dan alur berorientasi chat-completions adalah jalur yang dimaksud; tidak cocok untuk Responses spesifik Codex atau perilaku WebSocket

Parameter Chat Completions

Parameter Inti

ParameterTipeDeskripsi
modelstringIdentifikasi model (dibutuhkan)
messagesarrayPesan percakapan (dibutuhkan)
max_tokensintegerToken keluaran maksimum
temperaturenumberTemperatur sampling (0-2)
top_pnumberNucleus sampling (0-1)
streambooleanAktifkan streaming

Pemanggilan Tool

{
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "Get weather for a location",
        "parameters": {
          "type": "object",
          "properties": {
            "location": { "type": "string" }
          }
        },
        "strict": true
      }
    }
  ],
  "tool_choice": "auto",
  "parallel_tool_calls": true
}

Opsi Tool Choice

FormatContohDeskripsi
String"auto", "none", "required"Pilihan sederhana
OpenAI Object{ "type": "function", "function": { "name": "fn" } }Memaksa fungsi tertentu
Anthropic Object{ "type": "tool", "name": "fn", "disable_parallel_tool_use": true }Format native Anthropic

Parameter Lanjutan

ParameterTipeDeskripsi
stream_optionsobject{ include_usage: true } untuk penghitungan token
reasoning_effortstring"low", "medium", "high" untuk model GPT-5 dengan reasoning diaktifkan
service_tierstring"auto" atau "default"
seedintegerKeluaran deterministik
logprobsbooleanMengembalikan probabilitas log
top_logprobsintegerJumlah top logprobs (0-20)
logit_biasobjectPeta bias token (-100 hingga 100)
frequency_penaltynumberPenalti pengulangan (-2 hingga 2)
presence_penaltynumberPenalti kemunculan topik (-2 hingga 2)
stopstring/arraySekuen stop
nintegerJumlah completions (1-128)
userstringPengidentifikasi pengguna untuk pelacakan

Fitur Lanjutan OpenAI

ParameterTipeDeskripsi
modalitiesarray["text", "audio"] untuk multimodal
audioobjectKonfigurasi output audio (voice, format)
predictionobjectOutput prediksi untuk penyelesaian yang lebih cepat
metadataobjectPasangan kunci-nilai untuk pelacakan
storebooleanSimpan untuk pengambilan nanti

Opsi Spesifik Provider

{
  "anthropic_options": {
    "thinking": {
      "type": "enabled",
      "budget_tokens": 10000
    },
    "prompt_caching": true
  },
  "google_options": {
    "safety_settings": [...],
    "google_search": true,
    "code_execution": true
  }
}

Parameter Anthropic Messages

Parameter Inti

ParameterTipeDeskripsi
modelstringIdentifikasi model
messagesarrayPesan percakapan
max_tokensintegerKeluaran maksimum (hingga 128000)
systemstring/arrayPrompt sistem
streambooleanAktifkan streaming

Pemanggilan Tool

{
  "tools": [
    {
      "name": "get_weather",
      "description": "Get weather",
      "input_schema": {
        "type": "object",
        "properties": {
          "location": { "type": "string" }
        }
      }
    }
  ],
  "tool_choice": {
    "type": "auto",
    "disable_parallel_tool_use": false
  }
}

Extended Thinking

{
  "model": "claude-opus-4-6",
  "thinking": {
    "type": "enabled",
    "budget_tokens": 10000
  }
}

Parameter API Responses

Parameter Inti

ParameterTipeDeskripsi
modelstringIdentifikasi model
inputstring/arrayKonten input
instructionsstringInstruksi sistem
max_output_tokensintegerToken keluaran maksimum
previous_response_idstringLanjutkan percakapan

Parameter Lanjutan

ParameterTipeDeskripsi
truncation_strategystring"auto" atau "disabled"
includearray["reasoning.encrypted_content"]
reasoning_effortstringUntuk model reasoning
service_tierstringTingkat prioritas

Format Tool

Mendukung format alat OpenAI dan Anthropic:
// OpenAI format
{ "type": "function", "name": "fn", "parameters": {...} }

// Anthropic format (Cursor compatibility)
{ "name": "fn", "input_schema": {...} }

Parameter API Gemini

Parameter Inti

ParameterTipeDeskripsi
contentsarrayKonten percakapan
systemInstructionobjectPrompt sistem
generationConfigobjectPengaturan generasi

Tools

{
  "tools": [{
    "functionDeclarations": [{
      "name": "search",
      "description": "Search the web",
      "parameters": {...}
    }],
    "codeExecution": {},
    "googleSearch": {}
  }],
  "toolConfig": {
    "functionCallingConfig": {
      "mode": "AUTO"
    }
  }
}

Safety Settings

{
  "safetySettings": [
    {
      "category": "HARM_CATEGORY_HARASSMENT",
      "threshold": "BLOCK_MEDIUM_AND_ABOVE"
    }
  ]
}

Parameter Tambahan

ParameterTipeDeskripsi
cachedContentstringReferensi konten cache
responseMimeTypestring"text/plain" atau "application/json"
responseSchemaobjectSkema JSON untuk keluaran terstruktur

Streaming

Semua endpoint mendukung streaming Server-Sent Events (SSE):
# Chat Completions
curl https://api.lemondata.cc/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -d '{"model": "gpt-4o", "messages": [...], "stream": true}'

# With usage tracking
-d '{"...", "stream_options": {"include_usage": true}}'

Penanganan Kesalahan

LemonData mengembalikan respons error yang kompatibel dengan OpenAI:
{
  "error": {
    "message": "Invalid API key",
    "type": "invalid_api_key",
    "code": "invalid_api_key"
  }
}
Lihat Panduan Penanganan Kesalahan untuk detail.

Praktik Terbaik

Semua skema menggunakan .passthrough() - parameter yang tidak dikenal diteruskan ke penyedia upstream.
Aktifkan stream_options.include_usage untuk penghitungan token yang akurat dalam respons streaming.
Cocokkan dengan format yang diharapkan SDK Anda. LemonData menerima format OpenAI dan Anthropic.