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ạng Trường hợp sử dụng /v1/chat/completionsOpenAI Chat Tương thích phổ quát /v1/responsesOpenAI Responses Hội thoại có trạng thái /v1/messagesAnthropic Messages Các tính năng gốc của Claude /v1beta/models/:model:generateContentGoogle Gemini Cá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ạng Ghi chú Cursor ✅ Đầy đủ OpenAI Hỗ trợ định dạng công cụ của Anthropic Claude Code CLI ✅ Đầy đủ Anthropic Suy nghĩ mở rộng (Extended thinking), tool_choice Windsurf ✅ Đầy đủ OpenAI Định dạng OpenAI tiêu chuẩn Aider ✅ Đầy đủ OpenAI Hỗ trợ tất cả các mô hình Continue.dev ✅ Đầy đủ OpenAI/Anthropic Hỗ trợ định dạng kép OpenCode ✅ Đầy đủ OpenAI Hỗ trợ đa nhà cung cấp Cline/Roo Code ✅ Đầy đủ OpenAI Qua định dạng OpenRouter GitHub Copilot ✅ Đầy đủ OpenAI Định dạng tiêu chuẩn Codex CLI ✅ Đầy đủ OpenAI API OpenAI Responses Gemini CLI ✅ Đầy đủ Gemini Định dạng Gemini gốc
Ví dụ cấu hình
Cursor
Claude Code
OpenCode
Aider
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)
export ANTHROPIC_BASE_URL = "https://api.lemondata.cc"
export ANTHROPIC_API_KEY = "sk-your-lemondata-key"
export OPENAI_API_KEY = "sk-your-lemondata-key"
export LOCAL_ENDPOINT = "https://api.lemondata.cc/v1"
export OPENAI_API_KEY = "sk-your-lemondata-key"
export OPENAI_API_BASE = "https://api.lemondata.cc/v1"
aider --model gpt-4o
Tương thích SDK
Các SDK đã xác minh
SDK Ngôn ngữ Trạng thái Ghi chú OpenAI SDK Python/JS/Go ✅ Đầy đủ Hỗ trợ tất cả các tham số Anthropic SDK Python/JS ✅ Đầy đủ Suy nghĩ mở rộng (Extended thinking), công cụ Vercel AI SDK TypeScript ✅ Đầy đủ streamText, generateObjectLangChain Python/JS ✅ Đầy đủ ChatOpenAI, bind_toolsLlamaIndex Python ✅ Đầ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ểu Mô tả modelstring Định danh mô hình (bắt buộc) messagesarray Các tin nhắn hội thoại (bắt buộc) max_tokensinteger Số lượng token đầu ra tối đa temperaturenumber Nhiệt độ lấy mẫu (0-2) top_pnumber Lấy mẫu hạt nhân (Nucleus sampling) (0-1) streamboolean Bật truyền phát (streaming)
{
"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
}
Định dạng Ví 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ểu Mô tả stream_optionsobject { include_usage: true } để đếm số lượng tokenreasoning_effortstring "low", "medium", "high" cho các mô hình o1/o3service_tierstring "auto" hoặc "default"seedinteger Đầu ra xác định (Deterministic outputs) logprobsboolean Trả về xác suất log (log probabilities) top_logprobsinteger Số lượng logprobs hàng đầu (0-20) logit_biasobject Bản đồ độ lệch token (Token bias map) (-100 đến 100) frequency_penaltynumber Hình phạt lặp lại (-2 đến 2) presence_penaltynumber Hình phạt chủ đề (-2 đến 2) stopstring/array Các chuỗi dừng (Stop sequences) ninteger Số 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ểu Mô tả modalitiesarray ["text", "audio"] cho đa phương thức (multimodal)audioobject Cấ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 metadataobject Các cặp khóa-giá trị để theo dõi storeboolean Lư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ểu Mô tả modelstring Định danh mô hình messagesarray Các tin nhắn hội thoại max_tokensinteger Đầu ra tối đa (lên đến 128000) systemstring/array Lời nhắc hệ thống (System prompt) streamboolean Bật truyền phát (streaming)
{
"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ểu Mô tả modelstring Định danh mô hình inputstring/array Nội dung đầu vào instructionsstring Hướng dẫn hệ thống max_output_tokensinteger Số lượng token đầu ra tối đa previous_response_idstring Tiếp tục hội thoại
Các tham số nâng cao
Tham số Kiểu Mô tả truncation_strategystring "auto" hoặc "disabled"includearray ["reasoning.encrypted_content"]reasoning_effortstring Cho các mô hình suy luận (reasoning models) service_tierstring Cấ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ểu Mô tả contentsarray Nội dung hội thoại systemInstructionobject Lời nhắc hệ thống (System prompt) generationConfigobject Cà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ểu Mô tả cachedContentstring Tham chiếu nội dung được lưu trong bộ nhớ đệm (cached content) responseMimeTypestring "text/plain" hoặc "application/json"responseSchemaobject JSON 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
Sử dụng passthrough cho các tham số không xác định
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.
Ưu tiên stream_options để tính phí chính xác
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.
Sử dụng định dạng tool_choice phù hợp
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.