Text
Tài liệu API GLM-5.3
Các trường yêu cầu GLM-5.3, suy luận, công cụ, truyền luồng, mức sử dụng và ví dụ Chat, Responses, Messages đầy đủ.
GLM-5.3 nhận văn bản và trả về văn bản hoặc lệnh gọi công cụ. Mô hình luôn suy luận, hỗ trợ mức low, high và max, cho phép tối đa 131.072 token đầu ra. Dùng glm-5.3 cho hạng Default. Nhóm mặc định là glm; glm-5.3:glm vẫn là lựa chọn tường minh cho cùng nhóm đó. Nhóm bổ sung dùng hậu tố mô hình riêng.
URL cơ sở: https://api.seedrouter.ai. Xác thực bằng Authorization: Bearer $SEEDROUTER_API_KEY. Giữ thông tin xác thực trên máy chủ. Messages cũng nhận header tương thích x-api-key.
Tài liệu này theo hợp đồng Chat Z.ai, schema Responses của nhà sản xuất và hướng dẫn tương thích Messages. Giới hạn riêng của mô hình lấy từ hướng dẫn GLM-5.3. Khớp tài liệu không xác nhận mọi hành vi thực tế. Kiểm tra ngày 29 tháng 10 năm 2026 đã hoàn tất yêu cầu văn bản và truyền luồng ở cả ba định dạng, gọi hàm Chat, xuất đối tượng JSON và tiếp tục phản hồi đã lưu. Chưa xác nhận trúng bộ nhớ đệm, thời gian lưu tường minh và từng điều khiển tương thích. Các trường tham chiếu Messages bên dưới được phân biệt với trường GLM do nhà sản xuất công bố.
Đặc tả OpenAPI · Tài liệu Markdown · Mô hình và Playground · Hướng dẫn giá
Bắt đầu nhanh
Mỗi ví dụ gửi một yêu cầu Chat Completions. max_tokens: 2048 là ngân sách ví dụ, không phải mặc định. Suy luận và câu trả lời hiển thị dùng chung ngân sách; kiểm tra finish_reason trước khi coi câu trả lời là đầy đủ.
curl https://api.seedrouter.ai/v1/chat/completions \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model":"glm-5.3","messages":[{"role":"user","content":"Explain an idempotency key with one concrete example."}],"reasoning_effort":"low","max_tokens":2048}'import os
from openai import OpenAI
client = OpenAI(api_key=os.environ["SEEDROUTER_API_KEY"], base_url="https://api.seedrouter.ai/v1")
response = client.chat.completions.create(
model="glm-5.3",
messages=[{"role": "user", "content": "Explain an idempotency key with one concrete example."}],
max_tokens=2048,
extra_body={"reasoning_effort": "low"},
)
print(response.choices[0].message.content)
print(response.usage)import OpenAI from 'openai';
const client = new OpenAI({apiKey: process.env.SEEDROUTER_API_KEY, baseURL: 'https://api.seedrouter.ai/v1'});
const response = await client.chat.completions.create({
model: 'glm-5.3',
messages: [{role: 'user', content: 'Explain an idempotency key with one concrete example.'}],
reasoning_effort: 'low',
max_tokens: 2048,
});
console.log(response.choices[0].message.content);
console.log(response.usage);package main
import (
"bytes"
"fmt"
"io"
"net/http"
"os"
"time"
)
func main() {
body := []byte(`{"model":"glm-5.3","messages":[{"role":"user","content":"Explain an idempotency key with one concrete example."}],"reasoning_effort":"low","max_tokens":2048}`)
req, err := http.NewRequest("POST", "https://api.seedrouter.ai/v1/chat/completions", bytes.NewReader(body))
if err != nil { panic(err) }
req.Header.Set("Authorization", "Bearer " + os.Getenv("SEEDROUTER_API_KEY"))
req.Header.Set("Content-Type", "application/json")
client := &http.Client{Timeout: 3 * time.Minute}
res, err := client.Do(req)
if err != nil { panic(err) }
defer res.Body.Close()
data, err := io.ReadAll(res.Body)
if err != nil { panic(err) }
if res.StatusCode != http.StatusOK { panic(fmt.Sprintf("HTTP %d: %s", res.StatusCode, data)) }
fmt.Println(string(data))
}Chat Completions
POST /v1/chat/completions nhận 16 trường cấp cao nhất. Trường không nhận null trừ khi được nêu rõ. Có thể bỏ trường tùy chọn; không gửi null thay cho việc bỏ trường.
| Trường | Kiểu | Bắt buộc | Mặc định và ràng buộc |
|---|---|---|---|
model | chuỗi | Có | glm-5.3 (Default) |
messages | mảng | Có | Ít nhất một tin nhắn; phải có tin nhắn user hoặc tool |
do_sample | boolean | Không | true; false khiến temperature và top_p không có tác dụng |
stream | boolean | Không | false |
thinking | đối tượng | Không | type: enabled; clear_thinking: true |
reasoning_effort | chuỗi | Không | low, high, max; mặc định max |
temperature | số | Không | 0–1 kể cả hai biên; mặc định 1 |
top_p | số | Không | 0.01–1 kể cả hai biên; mặc định 0.95 |
max_tokens | số nguyên | Không | 1–131072; Chat chưa công bố mặc định |
tool_stream | boolean | Không | false; true yêu cầu stream: true |
tools | mảng | Không | Hàm, retrieval hoặc web_search; tối đa 128 mục |
tool_choice | chuỗi | Không | Chỉ auto |
stop | mảng chuỗi | Không | Tối đa bốn chuỗi theo schema chính thức; yêu cầu thực tế đã nhận bốn chuỗi, nhưng chưa thử đối sánh stop |
response_format | đối tượng | Không | Bắt buộc type: text hoặc json_object; mặc định text |
request_id | chuỗi | Không | 6–64 ký tự; mã yêu cầu duy nhất từ bên gọi |
user_id | chuỗi | Không | 6–128 ký tự; tránh thông tin cá nhân |
Tin nhắn system và user yêu cầu content dạng chuỗi. Tin nhắn assistant có thể mang content dạng chuỗi, reasoning_content và tool_calls. Tin nhắn tool yêu cầu content và tool_call_id. Giữ chính xác suy luận lịch sử khi dùng thinking.clear_thinking: false, gồm thứ tự lệnh gọi của trợ lý và kết quả công cụ. Không thể tắt suy luận.
Công cụ hàm dùng {type:"function", function:{name, description, parameters}}. Tên gồm 1–64 chữ cái ASCII, chữ số, dấu gạch dưới hoặc gạch nối. Schema máy yêu cầu description và parameters; phần văn xuôi đề cập bỏ chúng với hàm không tham số. Dùng cấu trúc đầy đủ cho đến khi giải quyết mâu thuẫn này. parameters là JSON Schema của hàm, không được hiểu là nội dung tin nhắn.
Công cụ truy xuất dùng {type:"retrieval", retrieval:{knowledge_id, prompt_template?}}. ID tri thức thuộc tài khoản phục vụ yêu cầu; khai báo công cụ không tạo cơ sở tri thức.
Công cụ tìm kiếm web dùng {type:"web_search", web_search:{search_engine:"search_pro_jina"}}. Trường tùy chọn gồm enable, search_query, count (1–50), search_domain_filter, search_recency_filter (oneDay, oneWeek, oneMonth, oneYear, noLimit), content_size (medium, high), result_sequence (before, after), search_result, require_search và search_prompt. Xem kiểu chính xác trong OpenAPI. Khả năng tìm kiếm và truy xuất theo tài khoản cần xác minh thực tế.
Chế độ đối tượng JSON tạo JSON, không cưỡng chế tuân thủ JSON Schema được cung cấp. Nêu các trường mong muốn trong prompt và kiểm tra kết quả trong ứng dụng.
Responses
POST /v1/responses nhận 15 trường tạo cấp cao nhất. Đây là schema Responses của nhà sản xuất được cụ thể hóa cho GLM-5.3; hành vi chính xác giữa các dịch vụ vẫn cần xác minh.
curl https://api.seedrouter.ai/v1/responses \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model":"glm-5.3","input":[{"type":"message","role":"user","content":"Give a concise example of a safe retry."}],"reasoning":{"effort":"low"},"max_output_tokens":2048,"store":false}'| Trường | Kiểu | Bắt buộc | Mặc định và ràng buộc |
|---|---|---|---|
model | chuỗi | Có | glm-5.3 |
input | chuỗi hoặc mảng | Có | Mục đầu vào gốc liệt kê bên dưới |
instructions | chuỗi | Không | Chỉ dẫn hệ thống |
stream | boolean | Không | false |
temperature | số | Không | 0–1, tối đa hai chữ số thập phân; mặc định 1 |
top_p | số | Không | 0.01–1, tối đa hai chữ số thập phân; mặc định 0.95 |
max_output_tokens | số nguyên | Không | 1–131072; mặc định 65536, gồm suy luận |
stop | mảng chuỗi | Không | Giao thức này không công bố giới hạn số lượng |
tools | mảng | Không | Hàm, namespace, custom hoặc web_search |
tool_choice | chuỗi | Không | none hoặc auto |
reasoning | đối tượng | Không | effort: low, high, max; mặc định max |
text | đối tượng | Không | format.type: text hoặc json_object |
prompt_cache_key | chuỗi | Không | Khóa bộ nhớ đệm; không công bố giới hạn độ dài |
previous_response_id | chuỗi | Không | Tham chiếu phản hồi đã lưu trước đó |
store | boolean | Không | false; có lưu phản hồi này hay không |
Mục tin nhắn đầu vào yêu cầu type: "message", vai trò (user, system, assistant, developer) và nội dung. Nội dung có thể là chuỗi, một khối văn bản hoặc mảng khối văn bản. Dùng input_text hoặc output_text của trợ lý với text dạng chuỗi. Schema hình ảnh/tệp chung không cấp khả năng thị giác cho mô hình chỉ nhận văn bản này.
Mục đầu vào gọi hàm yêu cầu type: "function_call", name, call_id và arguments là chuỗi JSON; namespace tùy chọn. Kết quả yêu cầu type: "function_call_output", call_id và output dạng chuỗi. Mục suy luận dùng type: "reasoning" và một đối tượng content: {type:"reasoning_text", text:"..."}. Giữ nguyên, không chuyển thành mảng.
Công cụ hàm yêu cầu type: "function" và name, với description và parameters tùy chọn. Công cụ namespace yêu cầu type: "namespace" và name, có thể chứa tools dạng hàm. Công cụ tùy chỉnh yêu cầu type: "custom" và name. Công cụ tìm kiếm web yêu cầu type: "web_search". Không sao chép các trường bắt buộc của hàm Chat sang định dạng này.
Phản hồi trước được tham chiếu phải đã được lưu. Lưu phản hồi hiện tại là lựa chọn riêng; previous_response_id không ép store: true cho hiện tại. Thời hạn lưu của nhà sản xuất là bảy ngày. Kiểm tra thực tế đã lưu thành công phản hồi và tiếp tục từ ID đó với store: false hiện tại; điều này không xác nhận mọi thao tác với phản hồi đã lưu.
Thao tác với phản hồi đã lưu
Khi store: true thành công, giữ nguyên ID phản hồi trả về. Các thao tác có xác thực này dùng cùng tài khoản đã tạo phản hồi:
GET /v1/responses/{response_id}lấy phản hồi đã lưu.GET /v1/responses/{response_id}/input_itemsliệt kê mục đầu vào. Trường truy vấn tùy chọn:order(aschoặcdesc, mặc địnhdesc),limit(số nguyên 1–100, mặc định 20) vàafter(last_id của trang trước).DELETE /v1/responses/{response_id}xóa phản hồi đã lưu.
Yêu cầu tạo tiếp theo có thể dùng ID đã lưu làm previous_response_id. Truy cập yêu cầu quyền dùng mô hình hiện tại của người dùng ban đầu. Lưu tối đa bảy ngày; phản hồi hết hạn hoặc đã xóa không thể tiếp tục. Truy xuất, xóa và tiếp tục giữ ràng buộc tài khoản ban đầu. Không có endpoint hủy được công bố. Các thao tác có kiểm thử hợp đồng cục bộ. Kiểm tra thực tế ngày 29 tháng 10 xác nhận lưu và tiếp tục; truy xuất và liệt kê mục đầu vào trả về 404, còn xóa chưa được kiểm tra. Chưa nên dựa vào truy xuất, liệt kê hoặc xóa cho đến khi xác nhận khả dụng.
Tương thích Messages
POST /v1/messages dùng cấu trúc bao tương thích Anthropic. Kèm anthropic-version: 2023-06-01. Nhà sản xuất minh họa trực tiếp model, messages, max_tokens và stream. Họ không công bố schema GLM Messages đầy đủ và cảnh báo khác biệt với Claude. Các điều khiển còn lại là trường từ tài liệu tương thích, không phải khả năng GLM đã được xác minh riêng từng trường.
curl https://api.seedrouter.ai/v1/messages \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H 'Content-Type: application/json' \
-H 'anthropic-version: 2023-06-01' \
-d '{"model":"glm-5.3","messages":[{"role":"user","content":"Explain a safe retry in two sentences."}],"max_tokens":2048}'| Trường | Cấu trúc và kiểm tra | Bằng chứng |
|---|---|---|
model | Chuỗi bắt buộc glm-5.3 | Ví dụ GLM |
messages | Mảng user/assistant bắt buộc không rỗng; chuỗi hoặc khối văn bản/công cụ gốc | Ví dụ văn bản GLM; cấu trúc khối theo tài liệu tương thích |
max_tokens | Số nguyên bắt buộc 1–131072 | Ví dụ GLM và giới hạn đầu ra mô hình |
stream | Boolean; mặc định false | Ví dụ GLM |
system | Chuỗi hoặc mảng khối văn bản | Tài liệu tương thích |
temperature | Số 0–1 | Tài liệu tương thích; ánh xạ chưa xác minh |
top_p | Số 0.01–1 | Tài liệu tương thích; ánh xạ chưa xác minh |
top_k | Số nguyên không âm | Tài liệu tương thích; ánh xạ chưa xác minh |
stop_sequences | Mảng chuỗi | Tài liệu tương thích |
tools | Công cụ client: name, input_schema, description tùy chọn | Tài liệu tương thích |
tool_choice | Đối tượng có type auto, none, any hoặc tool; công cụ chỉ định tên yêu cầu name | Tài liệu tương thích |
thinking | enabled với budget_tokens, hoặc adaptive; không thể tắt suy luận | Tài liệu tương thích và quy tắc GLM luôn suy luận |
output_config | Đối tượng có effort low, high hoặc max | Tên trường tương thích; ánh xạ chưa xác minh |
metadata | Đối tượng với user_id tùy chọn | Tài liệu tương thích |
cache_control | Dấu ephemeral, ttl 5m hoặc 1h tùy chọn | Chỉ theo tài liệu giao thức; hành vi TTL tường minh GLM chưa xác minh |
Ngân sách tương thích của suy luận enabled ít nhất là 1024 và nhỏ hơn max_tokens. Khối văn bản yêu cầu text; lịch sử suy luận yêu cầu thinking và signature; suy luận đã che yêu cầu data. Khối dùng công cụ yêu cầu id, name và input; khối kết quả công cụ yêu cầu tool_use_id. Không nhận khối hình ảnh, âm thanh hoặc video. Dấu bộ nhớ đệm tường minh không xác nhận trúng bộ nhớ đệm, thời gian lưu hay giá riêng. Bộ nhớ đệm ngữ cảnh được công bố của mô hình là tự động.
Đầu ra, truyền luồng và mức sử dụng
Chat trả về id, created, model, choices và usage, với request_id và web_search tùy chọn. Đọc choices[].message.content, reasoning_content và tool_calls. Phản hồi gọi công cụ có thể không có văn bản trả lời. SSE gửi phần chênh lệch suy luận, văn bản và đối số công cụ, rồi [DONE]. Ghép các mảnh đối số theo chỉ số lệnh gọi. Yêu cầu GLM Chat chính thức không có trường stream_options.
Responses trả về hợp kiểu output gốc: tin nhắn, suy luận và lệnh gọi công cụ. SSE gồm response.created, response.in_progress, sự kiện mục đầu ra và phần nội dung, phần chênh lệch văn bản/suy luận/đối số hàm, tiến độ tìm kiếm và trạng thái cuối response.completed, response.incomplete hoặc response.failed. Không yêu cầu dấu [DONE]. Giữ chỉ số và số thứ tự.
Messages trả về cấu trúc tin nhắn gốc với khối nội dung, stop_reason và usage. Tên sự kiện gồm message_start, content_block_start/delta/stop, message_delta và message_stop. Giữ nguyên chữ ký suy luận và ID công cụ như dữ liệu lịch sử không diễn giải.
| Định dạng | Tổng đầu vào | Đầu vào từ bộ nhớ đệm | Đầu ra |
|---|---|---|---|
| Chat | prompt_tokens | prompt_tokens_details.cached_tokens | completion_tokens |
| Responses | input_tokens | input_tokens_details.cached_tokens | output_tokens |
| Messages | input_tokens cộng cache_read_input_tokens và cache_creation_input_tokens nếu có | cache_read_input_tokens | output_tokens |
Suy luận là tập con đầu ra, không phải phí bổ sung. Đầu vào từ bộ nhớ đệm Chat/Responses là tập con tổng đầu vào. Trừ phần bộ nhớ đệm được báo cáo riêng trước khi áp dụng giá đầu vào thông thường. Phản hồi công khai hiển thị mức sử dụng token, không hiển thị phí tiền. Giá hiện tại lấy từ cấu hình tính phí trực tiếp; yêu cầu thất bại không bị tính phí.
Kiểm tra và lỗi
Kiểu không hợp lệ, tắt suy luận, mức không hỗ trợ, ngân sách đầu ra vượt giới hạn và đầu vào phương tiện đều không qua kiểm tra. tool_stream của Chat yêu cầu stream. Trường cấp cao nhất không hỗ trợ được bỏ qua thay vì chuyển tiếp. Bắt buộc xác thực; số dư không đủ ngăn yêu cầu có tính phí. Lỗi dùng cấu trúc lỗi công khai (Messages dùng cấu trúc lỗi gốc). Không coi luồng bị ngắt là câu trả lời hoàn tất hoặc tự gửi lại yêu cầu có kết quả chưa chắc chắn.
Playground hiển thị cùng các trường được chấp nhận cho định dạng đã chọn. Giá trị tùy chọn trống được bỏ qua; false và zero tường minh được giữ. Đổi định dạng bắt đầu hội thoại mới. Ước tính sử dụng cần cả mức sử dụng được báo cáo và giá hiện tại.
