Langsung ke konten utama

Gambaran Umum

LemonData API dirancang untuk kompatibilitas drop-in dengan semua alat pengembangan AI utama. Panduan ini mendokumentasikan parameter yang didukung dan integrasi yang telah diverifikasi.
Semua parameter divalidasi tetapi diteruskan ke penyedia upstream. Parameter yang tidak didukung untuk model tertentu akan diabaikan secara diam-diam, memastikan kompatibilitas maksimal.

Format API yang Didukung

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

Kompatibilitas IDE & CLI

Alat yang Terverifikasi

AlatStatusFormatCatatan
Cursor✅ PenuhOpenAIFormat tool Anthropic didukung
Claude Code CLI✅ PenuhAnthropicExtended thinking, tool_choice
Windsurf✅ PenuhOpenAIFormat OpenAI standar
Aider✅ PenuhOpenAISemua model didukung
Continue.dev✅ PenuhOpenAI/AnthropicDukungan format ganda
OpenCode✅ PenuhOpenAIDukungan multi-provider
Cline/Roo Code✅ PenuhOpenAIMelalui format OpenRouter
GitHub Copilot✅ PenuhOpenAIFormat standar
Codex CLI✅ PenuhOpenAIOpenAI Responses API
Gemini CLI✅ PenuhGeminiFormat Gemini native

Contoh Konfigurasi

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

Kompatibilitas SDK

SDK yang Terverifikasi

SDKBahasaStatusCatatan
OpenAI SDKPython/JS/Go✅ PenuhSemua parameter didukung
Anthropic SDKPython/JS✅ PenuhExtended thinking, tools
Vercel AI SDKTypeScript✅ PenuhstreamText, generateObject
LangChainPython/JS✅ PenuhChatOpenAI, bind_tools
LlamaIndexPython✅ PenuhKompatibel dengan OpenAI
Dify-✅ PenuhFormat OpenAI

Parameter Chat Completions

Parameter Inti

ParameterTipeDeskripsi
modelstringPengidentifikasi model (wajib)
messagesarrayPesan percakapan (wajib)
max_tokensintegerToken output maksimum
temperaturenumberSuhu sampling (0-2)
top_pnumberSampling nucleus (0-1)
streambooleanAktifkan streaming

Tool Calling

{
  "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"Seleksi sederhana
OpenAI Object{ "type": "function", "function": { "name": "fn" } }Paksa fungsi spesifik
Anthropic Object{ "type": "tool", "name": "fn", "disable_parallel_tool_use": true }Format native Anthropic

Parameter Lanjutan

ParameterTipeDeskripsi
stream_optionsobject{ include_usage: true } untuk jumlah token
reasoning_effortstring"low", "medium", "high" untuk model o1/o3
service_tierstring"auto" atau "default"
seedintegerOutput deterministik
logprobsbooleanKembalikan probabilitas log
top_logprobsintegerJumlah logprob teratas (0-20)
logit_biasobjectMap bias token (-100 hingga 100)
frequency_penaltynumberPenalti repetisi (-2 hingga 2)
presence_penaltynumberPenalti topik (-2 hingga 2)
stopstring/arrayUrutan stop
nintegerJumlah penyelesaian (1-128)
userstringPengidentifikasi pengguna untuk pelacakan

Fitur Lanjutan OpenAI

ParameterTipeDeskripsi
modalitiesarray["text", "audio"] untuk multimodal
audioobjectKonfigurasi output audio (suara, format)
predictionobjectOutput yang diprediksi untuk penyelesaian lebih cepat
metadataobjectPasangan key-value untuk pelacakan
storebooleanSimpan untuk pengambilan nanti

Opsi Spesifik Penyedia

{
  "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
modelstringPengidentifikasi model
messagesarrayPesan percakapan
max_tokensintegerOutput maksimum (hingga 128000)
systemstring/arrayPrompt sistem
streambooleanAktifkan streaming

Tool Calling

{
  "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-5",
  "thinking": {
    "type": "enabled",
    "budget_tokens": 10000
  }
}

Parameter Responses API

Parameter Inti

ParameterTipeDeskripsi
modelstringPengidentifikasi model
inputstring/arrayKonten input
instructionsstringInstruksi sistem
max_output_tokensintegerToken output maksimum
previous_response_idstringLanjutkan percakapan

Parameter Lanjutan

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

Format Tool

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

// Format Anthropic (kompatibilitas Cursor)
{ "name": "fn", "input_schema": {...} }

Parameter Gemini API

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"
    }
  }
}

Pengaturan Keamanan

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

Parameter Tambahan

ParameterTipeDeskripsi
cachedContentstringReferensi konten yang di-cache
responseMimeTypestring"text/plain" atau "application/json"
responseSchemaobjectSkema JSON untuk output 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}'

# Dengan pelacakan penggunaan
-d '{"...", "stream_options": {"include_usage": true}}'

Penanganan Error

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

Praktik Terbaik

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