OpenAI-compatible

POST /v1/chat/completions theo chuẩn OpenAI Chat Completions. SDK OpenAI chính thức hoạt động khi đổi baseURL thành https://YOUR_DOMAIN/v1.

Tham số

Tham sốBắt buộcGhi chú
modelModel id công khai (xem Models)
messagesTối đa 1000 message
max_tokens / max_completion_tokensKhôngKhông vượt giới hạn output của model
streamKhôngtrue ⇒ SSE
stream_optionsKhôngNền tảng tự bật include_usage
temperature, top_p, stopKhôngTheo chuẩn OpenAI
tools, tool_choiceKhôngChỉ với model hỗ trợ tool use
reasoning_effortKhôngGiá trị hợp lệ khác nhau theo model; gửi sai trả 400 kèm danh sách hợp lệ
nKhôngChỉ hỗ trợ 1
userKhôngĐược chấp nhận và bỏ qua

Tham số nền tảng chưa hỗ trợ nhưng vô hại sẽ được bỏ qua để SDK không gãy. Nếu tham số xung đột với khả năng thật của model (ví dụ tool use với model không hỗ trợ), request bị từ chối bằng 400 thay vì âm thầm bỏ qua.

Response

200 OK
{
  "id": "chatcmpl-...",
  "object": "chat.completion",
  "created": 1788000000,
  "model": "claude-haiku-4-5",
  "choices": [
    {
      "index": 0,
      "message": { "role": "assistant", "content": "..." },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 10,
    "completion_tokens": 4,
    "total_tokens": 14
  }
}

Content-Type là application/json. Nền tảng chuẩn hóa phản hồi upstream nên bạn không bao giờ nhận SSE khi gửi stream: false.

Streaming

text/event-stream
data: {"id":"chatcmpl-...","choices":[{"delta":{"content":"Xin"}}]}

data: {"id":"chatcmpl-...","choices":[{"delta":{"content":" chào"}}]}

data: {"id":"chatcmpl-...","choices":[{"delta":{}}],"usage":{"prompt_tokens":10,"completion_tokens":4,"total_tokens":14}}

data: [DONE]

Mỗi chunk được đẩy ngay khi nhận (không buffer). Nếu upstream lỗi giữa stream, nền tảng phát một event lỗi theo đúng định dạng OpenAI rồi đóng kết nối — không cắt cụt im lặng.

Liệt kê model

curl
curl https://YOUR_DOMAIN/v1/models -H "Authorization: Bearer sk_live_YOUR_KEY"

Chỉ trả các model mà gói của key được phép dùng. Không lộ model id nội bộ của nhà cung cấp phía sau.