跳轉到主要內容

概覽

LemonData API 旨在與所有主流 AI 開發工具實現 無縫相容 (drop-in compatibility)。本指南記錄了支援的參數與經過驗證的整合方案。
所有參數皆經過驗證並透傳至上游供應商。針對特定模型不支援的參數將會被自動忽略,以確保最大程度的相容性。

支援的 API 格式

端點格式使用場景
/v1/chat/completionsOpenAI Chat通用相容性
/v1/responsesOpenAI Responses有狀態對話
/v1/messagesAnthropic MessagesClaude 原生功能
/v1beta/models/:model:generateContentGoogle GeminiGemini 原生功能

IDE 與 CLI 相容性

經過驗證的工具

工具狀態格式備註
Cursor✅ 完全支援OpenAI支援 Anthropic 工具格式
Claude Code CLI✅ 完全支援Anthropic擴展思考、tool_choice
Windsurf✅ 完全支援OpenAI標準 OpenAI 格式
Aider✅ 完全支援OpenAI支援所有模型
Continue.dev✅ 完全支援OpenAI/Anthropic支援雙格式
OpenCode✅ 完全支援OpenAI支援多供應商
Cline/Roo Code✅ 完全支援OpenAI透過 OpenRouter 格式
GitHub Copilot✅ 完全支援OpenAI標準格式
Codex CLI✅ 完全支援OpenAIOpenAI Responses API
Gemini CLI✅ 完全支援Gemini原生 Gemini 格式

配置範例

Base URL: https://api.lemondata.cc/v1
API Key: sk-your-lemondata-key
Cursor 內部使用 Anthropic 風格的工具格式。LemonData 同時支援以下兩者:
  • OpenAI 格式:{ type: "function", function: { name, parameters } }
  • Anthropic 格式:{ name, input_schema } (無 type 欄位)

SDK 相容性

經過驗證的 SDK

SDK語言狀態備註
OpenAI SDKPython/JS/Go✅ 完全支援支援所有參數
Anthropic SDKPython/JS✅ 完全支援擴展思考、工具
Vercel AI SDKTypeScript✅ 完全支援streamText, generateObject
LangChainPython/JS✅ 完全支援ChatOpenAI, bind_tools
LlamaIndexPython✅ 完全支援相容 OpenAI
Dify-✅ 完全支援OpenAI 格式

Chat Completions 參數

核心參數

參數類型說明
modelstring模型識別碼 (必填)
messagesarray對話訊息 (必填)
max_tokensinteger最大輸出 token 數
temperaturenumber採樣溫度 (0-2)
top_pnumber核採樣 (0-1)
streamboolean啟用串流

工具呼叫 (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
}

工具選擇選項 (Tool Choice Options)

格式範例說明
String"auto", "none", "required"簡單選擇
OpenAI Object{ "type": "function", "function": { "name": "fn" } }強制指定特定函數
Anthropic Object{ "type": "tool", "name": "fn", "disable_parallel_tool_use": true }Anthropic 原生格式

進階參數

參數類型說明
stream_optionsobject用於 token 計數的 { include_usage: true }
reasoning_effortstring用於 o1/o3 模型的 "low""medium""high"
service_tierstring"auto""default"
seedinteger確定性輸出
logprobsboolean回傳對數機率
top_logprobsinteger前幾名對數機率的數量 (0-20)
logit_biasobjectToken 偏好映射 (-100 至 100)
frequency_penaltynumber重複懲罰 (-2 至 2)
presence_penaltynumber主題懲罰 (-2 至 2)
stopstring/array停止序列
ninteger生成結果數量 (1-128)
userstring用於追蹤的使用者識別碼

OpenAI 進階功能

參數類型說明
modalitiesarray用於多模態的 ["text", "audio"]
audioobject音訊輸出配置 (語音、格式)
predictionobject用於加速生成的預測輸出
metadataobject用於追蹤的鍵值對
storeboolean儲存以便稍後檢索

供應商特定選項

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

Anthropic Messages 參數

核心參數

參數類型說明
modelstring模型識別碼
messagesarray對話訊息
max_tokensinteger最大輸出 (最高 128000)
systemstring/array系統提示詞
streamboolean啟用串流

工具呼叫 (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
  }
}

Responses API 參數

核心參數

參數類型說明
modelstring模型識別碼
inputstring/array輸入內容
instructionsstring系統指令
max_output_tokensinteger最大輸出 token 數
previous_response_idstring繼續對話

進階參數

參數類型說明
truncation_strategystring"auto""disabled"
includearray["reasoning.encrypted_content"]
reasoning_effortstring用於推理模型
service_tierstring優先級層級

工具格式

支援 OpenAI 與 Anthropic 兩種工具格式:
// OpenAI 格式
{ "type": "function", "name": "fn", "parameters": {...} }

// Anthropic 格式 (Cursor 相容性)
{ "name": "fn", "input_schema": {...} }

Gemini API 參數

核心參數

參數類型說明
contentsarray對話內容
systemInstructionobject系統提示詞
generationConfigobject生成設定

工具 (Tools)

{
  "tools": [{
    "functionDeclarations": [{
      "name": "search",
      "description": "搜尋網路",
      "parameters": {...}
    }],
    "codeExecution": {},
    "googleSearch": {}
  }],
  "toolConfig": {
    "functionCallingConfig": {
      "mode": "AUTO"
    }
  }
}

安全設定 (Safety Settings)

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

額外參數

參數類型說明
cachedContentstring快取內容引用
responseMimeTypestring"text/plain""application/json"
responseSchemaobject用於結構化輸出的 JSON schema

串流 (Streaming)

所有端點皆支援 Server-Sent Events (SSE) 串流:
# 對話補全
curl https://api.lemondata.cc/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -d '{"model": "gpt-4o", "messages": [...], "stream": true}'

# 包含用量追蹤
-d '{"...", "stream_options": {"include_usage": true}}'

錯誤處理

LemonData 回傳與 OpenAI 相容的錯誤回應:
{
  "error": {
    "message": "Invalid API key",
    "type": "invalid_api_key",
    "code": "invalid_api_key"
  }
}
詳情請參閱 錯誤處理指南

最佳實踐

所有 schema 皆使用 .passthrough() — 未知參數將被轉發至上游供應商。
在串流回應中啟用 stream_options.include_usage 以獲得準確的 token 計數。
請符合您 SDK 預期的格式。LemonData 接受 OpenAI 與 Anthropic 兩種格式。