Unquant

Opening your workspace…

Unquant

Tạo phản hồi hội thoại

Tạo phản hồi trò chuyện tương thích với OpenAI, hỗ trợ truyền phản hồi theo luồng, hình ảnh, gọi công cụ và điều chỉnh suy luận.

POST /v1/chat/completions

curl https://api.unquant.io/v1/chat/completions \
  -H "Authorization: Bearer $UNQUANT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"glm-5.3-flash",
       "messages":[{"role":"user","content":"Hello!"}]}'

Các trường trong yêu cầu

Cơ bản
modelchuỗiBắt buộc

glm-5.3-flash hoặc qwen-3.8-flash-next.

messagesmảngBắt buộc

Các vai trò gồm system, user, assistant và tool. Nội dung là một chuỗi hoặc một mảng gồm các phần text và image_url.

streamluận lý

Truyền phản hồi theo luồng dưới dạng sự kiện do máy chủ gửi.

stream_optionsđối tượng

{"include_usage": true} thêm một phần dữ liệu cuối cùng chứa số lượng token.

Độ dài
max_tokenssố nguyên

Giới hạn tối đa cho độ dài phản hồi.

max_completion_tokenssố nguyên

Tương đương max_tokens.

Lấy mẫu
temperaturesố

Mức độ ngẫu nhiên khi lấy mẫu.

top_psố

Lấy mẫu từ tập token có tổng xác suất đạt ngưỡng chỉ định.

top_ksố nguyên

Lấy mẫu từ k token có xác suất cao nhất.

min_psố

Xác suất tương đối tối thiểu của một token.

seedsố nguyên

Giá trị khởi tạo để có thể tái lập kết quả lấy mẫu.

stopchuỗi hoặc mảng

Các chuỗi ký tự báo hiệu dừng.

Lặp lại
frequency_penaltysố

Áp dụng mức phạt cho token theo tần suất đã xuất hiện.

presence_penaltysố

Áp dụng mức phạt cho mọi token đã từng xuất hiện.

repetition_penaltysố

Hệ số phạt lặp lại theo phép nhân.

Công cụ
toolsmảng

Các hàm mà mô hình có thể gọi, theo định dạng của OpenAI.

tool_choicechuỗi hoặc đối tượng

auto, none, required hoặc một hàm được chỉ định theo tên.

parallel_tool_callsluận lý

Cho phép gọi nhiều công cụ trong một lượt.

Đầu ra
response_formatđối tượng

Đầu ra ở định dạng JSON.

logprobsluận lý

Trả về logarit xác suất của các token.

top_logprobssố nguyên

Số lựa chọn thay thế được trả về cho mỗi token.

nsố nguyên

Phải là 1: mỗi yêu cầu chỉ tạo một phản hồi.

Suy luận
reasoning_effortchuỗi

Cả hai mô hình đều hỗ trợ none, low hoặc high; GLM-5.3-Flash còn hỗ trợ max.

chat_template_kwargsđối tượng

Các tùy chọn bật/tắt của mẫu trò chuyện, chẳng hạn như {"enable_thinking": false}.

Các trường khác sẽ bị bỏ qua.

Phản hồi

response.choices[0].message.content

Số liệu sử dụng được trả về để bạn tự theo dõi; chúng không bao giờ được dùng để tính phí.

Truyền phản hồi theo luồng

Khi đặt "stream": true, phản hồi được gửi dưới dạng sự kiện do máy chủ gửi, theo định dạng từng phần dữ liệu của OpenAI, và kết thúc bằng data: [DONE]. Đọc văn bản từ choices[0].delta.content.

Hình ảnh

Cả hai mô hình đều nhận hình ảnh qua các phần image_url chứa URL dữ liệu base64 (data:image/png;base64,..., JPEG hoặc WebP). Hệ thống không tải ảnh từ liên kết URL và sẽ trả về lỗi 400 nếu bạn gửi loại liên kết này.

{"role": "user", "content": [
  {"type": "text", "text": "Describe this image."},
  {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,/9j/4AAQ..."}}
]}

Gọi công cụ

Truyền tools như khi dùng API OpenAI. Khi mô hình gọi công cụ, phản hồi sẽ có finish_reason: "tool_calls" và message.tool_calls; hãy chạy công cụ, thêm một tin nhắn tool chứa kết quả cùng tool_call_id tương ứng, rồi gọi API lần nữa.

Suy luận

Cả hai mô hình đều suy luận trước khi trả lời và đều hỗ trợ reasoning_effort: none để trả lời trực tiếp, low để suy luận ở mức nhẹ hoặc high cho các bài toán khó hơn; GLM-5.3-Flash còn có mức max và mặc định dùng high. Nội dung suy luận được trả về riêng trong reasoning_content, không bao giờ trộn vào content. Bạn cũng có thể tắt suy luận bằng "thinking": {"type": "disabled"} hoặc "chat_template_kwargs": {"enable_thinking": false}.

Xử lý đồng thời

Gói của bạn quy định số yêu cầu có thể chạy cùng lúc, tính chung trên tất cả khóa API của bạn. Yêu cầu vượt giới hạn này sẽ nhận mã 429 ngay lập tức và không được đưa vào hàng đợi; các yêu cầu đang chạy không bị ảnh hưởng.

Hướng dẫn dành cho lập trình viên