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

Tổng quan

TokenLab cung cấp nhiều định dạng API để các công cụ lập trình, SDK và framework phổ biến có thể tích hợp với lượng mã kết nối (glue code) tối thiểu. Trang này được thiết kế có chủ đích để tập trung hơn so với một ma trận tiếp thị:
  • Được hỗ trợ (Supported): Nghĩa là chúng tôi cung cấp tài liệu về lộ trình thiết lập cụ thể và TokenLab cung cấp cấu trúc giao thức mà lộ trình đó yêu cầu.
  • Lộ trình native mạnh mẽ (Strong native path): Nghĩa là kho lưu trữ cũng có bằng chứng về bộ điều hợp (adapter) trực tiếp hoặc định dạng yêu cầu cho họ giao thức đó.
  • Nỗ lực tốt nhất (Best-effort): Nghĩa là việc tích hợp có thể hoạt động, nhưng client thượng nguồn không coi quy trình gateway tùy chỉnh này là một hợp đồng ổn định.
Các trường không được hỗ trợ không được xử lý đồng nhất. Trên các lộ trình tương thích, một số trường bị bỏ qua hoặc được chuẩn hóa. Trên /v1/responses, các trường không được hỗ trợ có thể trả về lỗi 400 hoặc 503 rõ ràng khi lộ trình đó không thể đảm bảo hành vi được yêu cầu.

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 (Stateful)
/v1/messagesAnthropic MessagesCác tính năng native của Claude
/v1beta/models/:model:generateContentGoogle GeminiCác tính năng native của Gemini

Khả năng tương thích của IDE & CLI

Các lộ trình công cụ đã được ghi nhận

Công cụMức độ hỗ trợĐịnh dạngGhi chú
CursorĐược hỗ trợ với giới hạnTương thích OpenAIHoạt động cho các luồng chat/editor tiêu chuẩn BYOK, không thay thế cho các tính năng do Cursor quản lý như Tab Completion
Claude Code CLILộ trình native mạnh mẽAnthropicLộ trình /v1/messages native với phạm vi bao phủ bộ điều hợp cho thinking và tool_choice
Codex CLIĐược hỗ trợ với giới hạn mô hình/lộ trìnhOpenAI ResponsesCoi /v1/responses là lộ trình nâng cao cho các quy trình làm việc cụ thể của Codex; một số trường chỉ dành cho Responses không được đảm bảo trên mọi mô hình và lộ trình
Gemini CLINỗ lực tốt nhất / thử nghiệmGeminiLuồng URL cơ sở TokenLab tùy chỉnh không phải là tích hợp Gemini CLI chính thức
OpenCodeĐược hỗ trợTương thích OpenAISử dụng nhà cung cấp tương thích OpenAI theo mặc định; chỉ chuyển sang nhà cung cấp dựa trên Responses khi bạn thực sự cần
OpenHandsĐược hỗ trợTương thích OpenAISử dụng lộ trình LiteLLM/tương thích OpenAI với openai/<model> và URL cơ sở /v1 của TokenLab
Các trình soạn thảo và công cụ agent tương thích OpenAI khác thường hoạt động với cùng mẫu URL cơ sở; hãy kiểm tra hỗ trợ nhà cung cấp tùy chỉnh của chính công cụ đó trước khi sử dụng trong môi trường production.

Ví dụ cấu hình

Base URL: https://api.tokenlab.sh/v1
API Key: sk-your-tokenlab-key
Cursor sử dụng định dạng công cụ kiểu Anthropic ở bên trong. TokenLab 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)

Khả năng tương thích của SDK

Các lộ trình SDK & Framework đã được ghi nhận

SDK / FrameworkNgôn ngữMức độ hỗ trợGhi chú
OpenAI SDKPython/JS/GoLộ trình cốt lõi được hỗ trợLộ trình tương thích cho Chat Completions và Embeddings /v1; sử dụng các lộ trình nhà cung cấp native cho hành vi cụ thể của nhà cung cấp, và không giả định các trường chỉ dành cho Responses hoạt động trên mọi mô hình
Anthropic SDKPython/JSLộ trình native mạnh mẽLộ trình Messages native với bằng chứng trực tiếp cho tools, thinking và prompt caching
Vercel AI SDKTypeScriptMẫu tích hợp được khuyến nghịƯu tiên @ai-sdk/openai-compatible; chỉ sử dụng @ai-sdk/openai khi bạn thực sự muốn hành vi native của Responses
LangChainPython/JSCác bề mặt tiêu chuẩn được hỗ trợChatOpenAIOpenAIEmbeddings là phạm vi dự kiến; các tính năng bổ sung native của nhà cung cấp nằm ngoài phạm vi
LlamaIndexPythonĐược hỗ trợ qua OpenAILikeSử dụng OpenAILike, không phải các lớp OpenAI tích hợp sẵn, cho các gateway bên thứ ba như TokenLab
OpenAI Agents SDKPythonLộ trình chat-completions được hỗ trợSử dụng AsyncOpenAI(base_url="https://api.tokenlab.sh/v1") với OpenAIChatCompletionsModel; hành vi Responses native phụ thuộc vào mô hình và lộ trình được chọn
AutoGenPythonLộ trình endpoint tùy chỉnh được hỗ trợSử dụng OpenAIChatCompletionClient với base_url: https://api.tokenlab.sh/v1
Semantic Kernel.NETLộ trình endpoint tùy chỉnh được hỗ trợSử dụng endpoint tùy chỉnh của trình kết nối hoàn thiện chat OpenAI và trỏ nó đến https://api.tokenlab.sh/v1
CrewAIPythonLộ trình endpoint tùy chỉnh được hỗ trợĐặt OPENAI_API_BASE hoặc LLM(base_url=...) thành endpoint /v1 của TokenLab
Pydantic AIPythonLộ trình nhà cung cấp tương thích OpenAI được hỗ trợSử dụng OpenAIChatModel với OpenAIProvider(base_url="https://api.tokenlab.sh/v1")
DSPyPythonLộ trình endpoint tùy chỉnh được hỗ trợSử dụng dspy.LM("openai/<model>", api_base="https://api.tokenlab.sh/v1")
LangflowPython / WebĐược hỗ trợ với giới hạn phạm viSử dụng trường OpenAI API Base của thành phần OpenAI với endpoint /v1 của TokenLab
HaystackPythonLộ trình endpoint tùy chỉnh được hỗ trợSử dụng OpenAIChatGenerator(api_base_url="https://api.tokenlab.sh/v1")
GraphitiPythonLộ trình endpoint tùy chỉnh được hỗ trợSử dụng OpenAIGenericClient với endpoint /v1 của TokenLab
Dify-Được hỗ trợ với giới hạn phạm viNhà cung cấp OpenAI và các luồng hướng chat-completions là lộ trình dự kiến; không phù hợp cho các hành vi Responses hoặc WebSocket cụ thể của Codex
FlowiseWeb / NodeĐược hỗ trợ với giới hạn phạm viSử dụng node chat TokenLab khi có sẵn, hoặc node tương thích ChatOpenAI trỏ đến https://api.tokenlab.sh/v1
Mem0PythonLộ trình endpoint tùy chỉnh được hỗ trợGiữ nhà cung cấp OpenAI và đặt openai_base_url thành endpoint /v1 của TokenLab
AgnoPythonLộ trình được hỗ trợSử dụng trình bao bọc mô hình TokenLab khi có sẵn, hoặc lộ trình URL cơ sở tương thích OpenAI
Browser UsePythonLộ trình endpoint tùy chỉnh được hỗ trợSử dụng ChatOpenAILike với endpoint /v1 của TokenLab
VoltAgentTypeScriptLộ trình endpoint tùy chỉnh được hỗ trợTruyền nhà cung cấp OpenAI của AI SDK được cấu hình với baseURL: "https://api.tokenlab.sh/v1"
RagasPythonLộ trình endpoint tùy chỉnh được hỗ trợTruyền AsyncOpenAI(base_url="https://api.tokenlab.sh/v1") vào llm_factory
GuardrailsPythonLộ trình xác thực được hỗ trợTruyền một callable chat completions của OpenAI SDK được cấu hình với endpoint /v1 của TokenLab
Prompt flowPython / CLILộ trình endpoint tùy chỉnh được hỗ trợTạo kết nối OpenAI với base_url=https://api.tokenlab.sh/v1
PromptfooCLI / NodeLộ trình được hỗ trợSử dụng các nhà cung cấp chat hoặc Responses của OpenAI với apiBaseUrl: https://api.tokenlab.sh/v1
Portkey GatewayGatewayLộ trình được hỗ trợSử dụng TokenLab làm nhà cung cấp thượng nguồn cho lưu lượng chat và Responses tương thích OpenAI
HeliconeGateway / ObservabilityLộ trình quan sát được hỗ trợĐịnh tuyến các yêu cầu tương thích OpenAI qua Helicone Gateway với Helicone-Target-Url: https://api.tokenlab.sh
LangfuseObservabilityLộ trình theo dõi được hỗ trợCấu hình tích hợp OpenAI của Langfuse với URL cơ sở /v1 của TokenLab
OpenLITObservabilityLộ trình theo dõi được hỗ trợInstrument một client OpenAI SDK được cấu hình với URL cơ sở /v1 của TokenLab
OpenLLMetryObservabilityLộ trình theo dõi được hỗ trợSử dụng instrumentation của OpenAI SDK với URL cơ sở /v1 của TokenLab
PhoenixObservabilityLộ trình theo dõi được hỗ trợTự động instrument client OpenAI SDK được cấu hình với URL cơ sở /v1 của TokenLab
OpikObservabilityLộ trình theo dõi được hỗ trợWrap một client OpenAI SDK được cấu hình với URL cơ sở /v1 của TokenLab
LangBotBot PlatformLộ trình chat được hỗ trợSử dụng requester TokenLab khi có sẵn, hoặc cấu hình requester tương thích OpenAI với endpoint /v1 của TokenLab
Open WebUIWeb ChatLộ trình ứng dụng chat được hỗ trợThêm TokenLab làm kết nối API tương thích OpenAI và làm mới danh sách mô hình
Chatbox / DeepChat / Jan / LibreChat / Cherry StudioDesktop / WebLộ trình ứng dụng chat được hỗ trợSử dụng luồng nhà cung cấp tùy chỉnh tương thích OpenAI của mỗi ứng dụng; các ứng dụng này thường hướng đến chat-completions

Các tham số Chat Completions

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

Tham sốLoạiMô tả
modelstringĐịnh danh mô hình (bắt buộc)
messagesarrayTin nhắn hội thoại (bắt buộc)
max_tokensintegerSố token đầu ra tối đa
temperaturenumberNhiệt độ lấy mẫu (0-2)
top_pnumberLấy mẫu Nucleus (0-1)
streambooleanBậ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
}

Tùy chọn Tool Choice

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

Các tham số nâng cao

Tham sốLoạiMô tả
stream_optionsobjectChỉ Chat Completions: { include_usage: true } để đếm token
reasoning_effortstring"low", "medium", "high" cho các mô hình GPT-5 có khả năng suy luận
service_tierstring"auto" hoặc "default"
seedintegerĐầu ra tất định
logprobsbooleanTrả về xác suất log
top_logprobsintegerSố lượng logprobs hàng đầu (0-20)
logit_biasobjectBản đồ thiên kiến token (-100 đến 100)
frequency_penaltynumberPhạt lặp lại (-2 đến 2)
presence_penaltynumberPhạt chủ đề (-2 đến 2)
stopstring/arrayChuỗi dừng
nintegerSố lượng hoàn thiện (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ốLoạiMô tả
modalitiesarray["text", "audio"] cho đa phương thức
audioobjectCấu hình đầu ra âm thanh (giọng nói, định dạng)
predictionobjectĐầu ra dự đoán để hoàn thiện nhanh hơn
metadataobjectCặp khóa-giá trị để theo dõi
storebooleanLưu trữ để truy xuất sau

Các tùy chọn cụ thể 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
  }
}

Các tham số Anthropic Messages

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

Tham sốLoạiMô tả
modelstringĐịnh danh mô hình
messagesarrayTin nhắn hội thoại
max_tokensintegerĐầu ra tối đa (lên đến 128000)
systemstring/arraySystem prompt
streambooleanBậ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 luận mở rộng (Extended Thinking)

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

Các tham số Responses API

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

Tham sốLoạiMô tả
modelstringĐịnh danh mô hình
inputstring/arrayNội dung đầu vào
instructionsstringHướng dẫn hệ thống
max_output_tokensintegerSố 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ốLoạiMô tả
truncation_strategystring"auto" hoặc "disabled"
includearray["reasoning.encrypted_content"]
reasoning_effortstringCho các mô hình suy luận
service_tierstringCấp độ ưu tiên

Định dạng công cụ

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

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

Các tham số Gemini API

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

Tham sốLoạiMô tả
contentsarrayNội dung hội thoại
systemInstructionobjectSystem prompt
generationConfigobjectCài đặt tạo nội dung

Công cụ

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

Cài đặt an toàn (Safety Settings)

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

Các tham số bổ sung

Tham sốLoạiMô tả
cachedContentstringTham chiếu nội dung đã lưu cache
responseMimeTypestring"text/plain" hoặc "application/json"
responseSchemaobjectJSON schema cho đầu ra có cấu trúc

Streaming

Các endpoint tạo nội dung hỗ trợ stream: true, bao gồm Chat Completions và Responses, sử dụng Server-Sent Events (SSE):
# Chat Completions
curl https://api.tokenlab.sh/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -d '{"model": "gpt-4o", "messages": [...], "stream": true}'

# Theo dõi sử dụng Chat Completions
-d '{"...", "stream_options": {"include_usage": true}}'

Xử lý lỗi

TokenLab 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.

Các phương pháp tốt nhất

Các tham số không xác định chỉ được chuyển tiếp khi lộ trình công khai và mô hình được chọn hỗ trợ chúng.
Đối với streaming Chat Completions, hãy bật stream_options.include_usage để có số lượng token chính xác. Responses có hợp đồng streaming riêng và không cung cấp tùy chọn chỉ dành cho Chat này.
Khớp với định dạng dự kiến của SDK của bạn. TokenLab chấp nhận cả định dạng OpenAI và Anthropic.