TokenLab

Văn bản

Tạo Chat Completion

Tạo một phản hồi hoàn thiện cho tin nhắn trò chuyện

POST
/v1/chat/completions

Thân yêu cầu

Các tham số tùy chọn được hỗ trợ, giá trị chấp nhận và giá trị mặc định phụ thuộc vào model đã chọn. Hãy kiểm tra chi tiết model trước khi thiết lập các tùy chọn lấy mẫu (sampling), suy luận (reasoning) hoặc công cụ (tool).

modelstringbắt buộc

ID của model cần sử dụng. Xem Models để biết các tùy chọn khả dụng.

messagesarraybắt buộc

Danh sách các tin nhắn tạo nên cuộc hội thoại.

Mỗi đối tượng tin nhắn bao gồm:

  • role (string): system, developer, user, assistant, tool, function
  • content (string | array | null): Nội dung tin nhắn

Đối với tin nhắn assistant chứa tool_calls, content có thể được bỏ qua hoặc đặt là null.

Khi content là một mảng, TokenLab hỗ trợ các khối đa phương thức (multimodal) có cấu trúc cho các model tương thích:

  • text: { "type": "text", "text": "..." }
  • image: { "type": "image_url", "image_url": { "url": "https://..." } }
  • video: { "type": "video_url", "video_url": { "url": "https://..." } }
  • audio: { "type": "audio_url", "audio_url": { "url": "https://..." } }

Đối với đầu vào đa phương thức, hãy sử dụng các URL https có thể truy cập công khai. Các loại phương tiện được hỗ trợ phụ thuộc vào model đã chọn.

temperaturenumber

Nhiệt độ lấy mẫu (Sampling temperature). Khả năng hỗ trợ, giá trị cho phép và giá trị mặc định phụ thuộc vào model đã chọn; hãy bỏ qua trường này để sử dụng giá trị mặc định của model.

max_tokensinteger

Số lượng token tối đa cần tạo.

streambooleanmặc định: false

Nếu là true, các phần delta của tin nhắn sẽ được gửi dưới dạng sự kiện SSE.

stream_optionsobject

Các tùy chọn cho việc truyền phát (streaming). Thiết lập include_usage: true để nhận thông tin sử dụng token trong các đoạn stream.

top_pnumber

Tham số lấy mẫu Nucleus. Chúng tôi khuyến nghị thay đổi tham số này hoặc temperature, không nên thay đổi cả hai.

frequency_penaltynumber

Số nằm trong khoảng từ -2.0 đến 2.0. Các giá trị dương sẽ phạt các token bị lặp lại.

presence_penaltynumber

Số nằm trong khoảng từ -2.0 đến 2.0. Các giá trị dương sẽ phạt các token đã xuất hiện trong văn bản.

stopstring | array

Chuỗi dừng hoặc danh sách các chuỗi dừng. Khả năng hỗ trợ và giới hạn chuỗi phụ thuộc vào model đã chọn.

toolsarray

Danh sách các công cụ mà model có thể gọi (function calling).

tool_choicestring | object

Kiểm soát cách model sử dụng công cụ. Các tùy chọn: auto, none, required, hoặc một đối tượng công cụ cụ thể.

parallel_tool_callsboolean

Cho phép thực hiện nhiều lệnh gọi công cụ trong một lượt của assistant, khi được model đã chọn hỗ trợ.

max_completion_tokensinteger

Số lượng token tối đa cho phần hoàn thiện. Đây là lựa chọn thay thế cho max_tokens, hữu ích cho các dòng model mới có khả năng suy luận.

reasoning_effortstring

Nỗ lực suy luận cho các model hỗ trợ tính năng này. Các giá trị chấp nhận được phụ thuộc vào model đã chọn.

Đối với các model Claude, giá trị này thiết lập tư duy của model: mức độ nỗ lực trên các model có tư duy thích ứng, hoặc ngân sách tư duy trên các model sử dụng ngân sách. none sẽ tắt tư duy trên các model cho phép điều đó. Khi tư duy đang bật, Claude sẽ từ chối temperature khác 1, top_k, top_p nằm ngoài khoảng 0.95–1, và tin nhắn assistant được điền trước. Một tool_choice bắt buộc hoạt động với tư duy thích ứng nhưng không hoạt động với ngân sách tư duy.

anthropic_optionsobject

Các tùy chọn cho model Claude.

  • prompt_caching (boolean): Thiết lập true để lưu vào bộ nhớ đệm phần đầu của prompt. TokenLab đánh dấu phần cuối của system prompt và tin nhắn người dùng mới nhất làm các điểm lưu bộ nhớ đệm. Một yêu cầu sau đó bắt đầu bằng cùng nội dung sẽ đọc từ bộ nhớ đệm. Nếu bất kỳ tin nhắn nào đã có cache_control, TokenLab sẽ không thêm các điểm lưu bộ nhớ đệm.
  • prompt_caching_ttl (string): 5m (mặc định) hoặc 1h. Nếu tuyến đường phục vụ không hỗ trợ một giờ, TokenLab sẽ sử dụng năm phút và không từ chối yêu cầu.

extra.prompt_caching và extra.prompt_caching_ttl được chấp nhận như các tùy chọn tương đương. Xem Prompt caching để biết giá cả và cách kiểm tra các token đã lưu trong bộ nhớ đệm.

seedinteger

Seed lấy mẫu cho các model hỗ trợ. Không đảm bảo kết quả đầu ra giống hệt nhau.

ninteger

Số lượng kết quả hoàn thiện cần tạo (1-128).

logprobsboolean

Liệu có trả về xác suất log hay không.

top_logprobsinteger

Số lượng xác suất log cao nhất cần trả về (0-20). Yêu cầu logprobs: true.

top_kinteger

Lấy mẫu Top-K cho các model hỗ trợ.

response_formatobject

Định dạng phản hồi. Sử dụng {"type": "json_object"} cho chế độ JSON hoặc {"type": "json_schema", "json_schema": {...}} cho một JSON schema. Khả năng hỗ trợ phụ thuộc vào model đã chọn.

logit_biasobject

Thay đổi khả năng xuất hiện của các token được chỉ định. Ánh xạ ID token (dưới dạng chuỗi) tới các giá trị bias từ -100 đến 100.

userstring

Một định danh duy nhất đại diện cho người dùng cuối của bạn để giám sát hành vi lạm dụng.

Phản hồi

idstring

Định danh duy nhất cho kết quả hoàn thiện.

objectstring

Luôn là chat.completion.

createdinteger

Dấu thời gian Unix khi kết quả hoàn thiện được tạo.

modelstring

Model được sử dụng để hoàn thiện.

choicesarray

Danh sách các lựa chọn hoàn thiện.

Mỗi lựa chọn bao gồm:

  • index (integer): Chỉ số của lựa chọn
  • message (object): Tin nhắn được tạo
  • finish_reason (string): Lý do model dừng lại, ví dụ: stop, length, hoặc tool_calls

Khi model đang suy luận, message cũng có thể chứa:

  • reasoning_content (string): Văn bản tư duy. Một số model chỉ trả về tóm tắt hoặc không trả về văn bản nào.
  • reasoning_details (array): Các khối tư duy cùng với chữ ký của chúng. Để tiếp tục cuộc hội thoại với tư duy, ví dụ sau khi gọi công cụ, hãy gửi chúng lại nguyên trạng trong tin nhắn assistant.

Trong một stream, các trường tương tự sẽ đến dưới dạng delta.reasoning_content và delta.reasoning_details.

usageobject

Thống kê sử dụng token.

  • prompt_tokens (integer): Số token trong prompt
  • completion_tokens (integer): Số token trong phần hoàn thiện, bao gồm cả các token tư duy
  • total_tokens (integer): Tổng số token đã sử dụng
  • completion_tokens_details.reasoning_tokens (integer): Các token tư duy, khi model báo cáo chúng

Yêu cầu

curl -X POST "https://api.tokenlab.sh/v1/chat/completions" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.6-terra",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "Hello!"}
    ],
    "max_tokens": 1000
  }'

Ví dụ đa phương thức (Multimodal)

{
  "model": "gemini-2.5-pro",
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "Describe this video briefly." },
        { "type": "video_url", "video_url": { "url": "https://example.com/demo.mp4" } }
      ]
    }
  ],
  "max_tokens": 64
}

Phản hồi

Response
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1706000000,
  "model": "gpt-5.6-terra",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I help you today?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 20,
    "completion_tokens": 9,
    "total_tokens": 29
  }
}

Xác thực

BearerAuth
AuthorizationBearer <token>

Xác thực bằng Khóa API. Tạo hoặc quản lý khóa API trong Dashboard > API > API Keys.

Vị trí: header

Header

X-TokenLab-Delivery-Policy?string

Chính sách phân phối theo yêu cầu. Ghi đè các mặc định của API key và Workspace. Tự động thử TokenLab Verified trước và có thể chuyển đổi một lần sang Official chỉ trước khi xuất, chấp nhận yêu cầu hoặc tạo tài nguyên cố định.

Giá trị hợp lệ

  • "auto"
  • "verified"
  • "official"

Nội dung yêu cầu

application/json

Phản hồi

application/json

application/json

application/json

application/json

application/json

application/json

application/json