Chuyển đến nội dung chính

Tổng quan

LemonData API được thiết kế để tương thích thay thế trực tiếp (drop-in compatibility) với tất cả các công cụ phát triển AI chính. Hướng dẫn này tài liệu hóa các tham số được hỗ trợ và các tích hợp đã được xác minh.
Tất cả các tham số đều được xác thực nhưng được chuyển tiếp đến các nhà cung cấp thượng nguồn (upstream providers). Các tham số không được hỗ trợ cho các mô hình cụ thể sẽ bị bỏ qua một cách âm thầm, đảm bảo khả năng tương thích tối đa.

Các định dạng API được hỗ trợ

EndpointĐịnh dạngTrường hợp sử dụng
/v1/chat/completionsOpenAI ChatTương thích phổ quát
/v1/responsesOpenAI ResponsesHội thoại có trạng thái
/v1/messagesAnthropic MessagesCác tính năng gốc của Claude
/v1beta/models/:model:generateContentGoogle GeminiCác tính năng gốc của Gemini

Tương thích IDE & CLI

Các công cụ đã xác minh

Công cụTrạng tháiĐịnh dạngGhi chú
Cursor✅ Đầy đủOpenAIHỗ trợ định dạng công cụ của Anthropic
Claude Code CLI✅ Đầy đủAnthropicSuy nghĩ mở rộng (Extended thinking), tool_choice
Windsurf✅ Đầy đủOpenAIĐịnh dạng OpenAI tiêu chuẩn
Aider✅ Đầy đủOpenAIHỗ trợ tất cả các mô hình
Continue.dev✅ Đầy đủOpenAI/AnthropicHỗ trợ định dạng kép
OpenCode✅ Đầy đủOpenAIHỗ trợ đa nhà cung cấp
Cline/Roo Code✅ Đầy đủOpenAIQua định dạng OpenRouter
GitHub Copilot✅ Đầy đủOpenAIĐịnh dạng tiêu chuẩn
Codex CLI✅ Đầy đủOpenAIAPI OpenAI Responses
Gemini CLI✅ Đầy đủGeminiĐịnh dạng Gemini gốc

Ví dụ cấu hình

Base URL: https://api.lemondata.cc/v1
API Key: sk-your-lemondata-key
Cursor sử dụng định dạng công cụ kiểu Anthropic trong nội bộ. LemonData hỗ trợ cả hai:
  • Định dạng OpenAI: { type: "function", function: { name, parameters } }
  • Định dạng Anthropic: { name, input_schema } (không có trường type)

Tương thích SDK

Các SDK đã xác minh

SDKNgôn ngữTrạng tháiGhi chú
OpenAI SDKPython/JS/Go✅ Đầy đủHỗ trợ tất cả các tham số
Anthropic SDKPython/JS✅ Đầy đủSuy nghĩ mở rộng (Extended thinking), công cụ
Vercel AI SDKTypeScript✅ Đầy đủstreamText, generateObject
LangChainPython/JS✅ Đầy đủChatOpenAI, bind_tools
LlamaIndexPython✅ Đầy đủTương thích OpenAI
Dify-✅ Đầy đủĐịnh dạng OpenAI

Tham số Chat Completions

Các tham số cốt lõi

Tham sốKiểuMô tả
modelstringĐịnh danh mô hình (bắt buộc)
messagesarrayCác tin nhắn hội thoại (bắt buộc)
max_tokensintegerSố lượng token đầu ra tối đa
temperaturenumberNhiệt độ lấy mẫu (0-2)
top_pnumberLấy mẫu hạt nhân (Nucleus sampling) (0-1)
streambooleanBật truyền phát (streaming)

Gọi công cụ (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
}

Các tùy chọn Tool Choice

Định dạngVí dụMô tả
String"auto", "none", "required"Lựa chọn đơn giản
OpenAI Object{ "type": "function", "function": { "name": "fn" } }Bắt buộc một hàm cụ thể
Anthropic Object{ "type": "tool", "name": "fn", "disable_parallel_tool_use": true }Định dạng gốc của Anthropic

Các tham số nâng cao

Tham sốKiểuMô tả
stream_optionsobject{ include_usage: true } để đếm số lượng token
reasoning_effortstring"low", "medium", "high" cho các mô hình o1/o3
service_tierstring"auto" hoặc "default"
seedintegerĐầu ra xác định (Deterministic outputs)
logprobsbooleanTrả về xác suất log (log probabilities)
top_logprobsintegerSố lượng logprobs hàng đầu (0-20)
logit_biasobjectBản đồ độ lệch token (Token bias map) (-100 đến 100)
frequency_penaltynumberHình phạt lặp lại (-2 đến 2)
presence_penaltynumberHình phạt chủ đề (-2 đến 2)
stopstring/arrayCác chuỗi dừng (Stop sequences)
nintegerSố lượng kết quả hoàn thành (1-128)
userstringĐịnh danh người dùng để theo dõi

Các tính năng nâng cao của OpenAI

Tham sốKiểuMô tả
modalitiesarray["text", "audio"] cho đa phương thức (multimodal)
audioobjectCấu hình đầu ra âm thanh (giọng nói, định dạng)
predictionobjectĐầu ra dự đoán để hoàn thành nhanh hơn
metadataobjectCác cặp khóa-giá trị để theo dõi
storebooleanLưu trữ để truy xuất sau

Các tùy chọn riêng của nhà cung cấp

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

Tham số Anthropic Messages

Các tham số cốt lõi

Tham sốKiểuMô tả
modelstringĐịnh danh mô hình
messagesarrayCác tin nhắn hội thoại
max_tokensintegerĐầu ra tối đa (lên đến 128000)
systemstring/arrayLời nhắc hệ thống (System prompt)
streambooleanBật truyền phát (streaming)

Gọi công cụ (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
  }
}

Suy nghĩ mở rộng (Extended Thinking)

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

Tham số Responses API

Các tham số cốt lõi

Tham sốKiểuMô tả
modelstringĐịnh danh mô hình
inputstring/arrayNội dung đầu vào
instructionsstringHướng dẫn hệ thống
max_output_tokensintegerSố lượng token đầu ra tối đa
previous_response_idstringTiếp tục hội thoại

Các tham số nâng cao

Tham sốKiểuMô tả
truncation_strategystring"auto" hoặc "disabled"
includearray["reasoning.encrypted_content"]
reasoning_effortstringCho các mô hình suy luận (reasoning models)
service_tierstringCấp độ ưu tiên (Priority tier)

Định dạng công cụ

Hỗ trợ cả định dạng công cụ của OpenAI và Anthropic:
// Định dạng OpenAI
{ "type": "function", "name": "fn", "parameters": {...} }

// Định dạng Anthropic (tương thích với Cursor)
{ "name": "fn", "input_schema": {...} }

Tham số Gemini API

Các tham số cốt lõi

Tham sốKiểuMô tả
contentsarrayNội dung hội thoại
systemInstructionobjectLời nhắc hệ thống (System prompt)
generationConfigobjectCài đặt tạo (Generation settings)

Công cụ

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

Cài đặt an toàn

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

Các tham số bổ sung

Tham sốKiểuMô tả
cachedContentstringTham chiếu nội dung được lưu trong bộ nhớ đệm (cached content)
responseMimeTypestring"text/plain" hoặc "application/json"
responseSchemaobjectJSON schema cho đầu ra có cấu trúc

Truyền phát (Streaming)

Tất cả các endpoint đều hỗ trợ truyền phát 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}'

# Với theo dõi mức sử dụng
-d '{"...", "stream_options": {"include_usage": true}}'

Xử lý lỗi

LemonData trả về các phản hồi lỗi tương thích với OpenAI:
{
  "error": {
    "message": "Invalid API key",
    "type": "invalid_api_key",
    "code": "invalid_api_key"
  }
}
Xem Hướng dẫn xử lý lỗi để biết thêm chi tiết.

Thực hành tốt nhất

Tất cả các schema đều sử dụng .passthrough() - các tham số không xác định sẽ được chuyển tiếp đến các nhà cung cấp thượng nguồn.
Bật stream_options.include_usage để đếm số lượng token chính xác trong các phản hồi truyền phát.
Khớp với định dạng mong đợi của SDK của bạn. LemonData chấp nhận cả định dạng OpenAI và Anthropic.