Chat Completions
OpenAI 兼容的 GLM 5 Chat Completions 请求与响应参考。
/chat/completions根据一组对话消息生成助手文本或函数调用。
GLM 5 的 Chat Completions 端点采用 OpenAI 兼容的文本对话请求与响应结构。已有 OpenAI 兼容客户端通常只需要修改 Base URL、API Key 和模型 ID,即可继续使用原有 SDK。
https://glm5.app/api/v1
基础请求
curl https://glm5.app/api/v1/chat/completions \
-H "Authorization: Bearer $GLM5_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.3",
"messages": [
{"role": "system", "content": "请用简洁的 Markdown 回答。"},
{"role": "user", "content": "用两点解释什么是幂等性。"}
],
"max_completion_tokens": 600
}'
请求体
| 参数 | 类型 | 必填 | 默认值 | GLM 5 行为 |
|---|---|---|---|---|
model | string | 是 | - | 模型中公开的模型 ID,例如 glm-5.3。 |
messages | array | 是 | - | 当前对话的完整消息列表,至少包含一条有效消息。 |
max_completion_tokens | integer | 否 | 模型默认值 | 可选的输出长度上限。 |
max_tokens | integer | 否 | 模型默认值 | max_completion_tokens 的旧兼容别名。 |
temperature | number | 否 | 模型默认值 | 作为采样温度转发。 |
top_p | number | 否 | 模型默认值 | 作为 nucleus sampling 参数转发。 |
top_k | integer | 否 | 模型默认值 | 所选模型支持时生效。 |
seed | integer | 否 | - | 支持时作为确定性采样提示使用。 |
stop | string 或 string[] | 否 | - | 一个或多个停止序列。 |
stream | boolean | 否 | false | 为 true 时返回 Server-Sent Events。 |
tools | array | 否 | - | OpenAI 兼容的 function tools。 |
tool_choice | string 或 object | 否 | auto | 支持 auto、none、required 或指定函数。 |
请求 JSON 最大为 4 MB。GLM 5 不为所有模型设置同一套 Token 上下文窗口;不同模型的上下文和输出限制可能不同,请求过大时 API 会返回对应错误。
支持的字段
GLM 5 接受本文档列出的 Chat Completions 字段。只有本文档明确说明的字段才保证会影响模型行为。
| 字段 | GLM 5 行为 |
|---|---|
model | 必填,必须是 GET /models 返回的模型 ID。 |
messages | 必填,支持文本消息和函数调用历史。 |
stream | 支持 OpenAI 风格 SSE chunk 与 data: [DONE]。 |
tools | 支持具有工具能力的模型。 |
tool_choice | 支持常规函数工具选择。 |
max_completion_tokens | 提供时设置输出上限;省略时使用模型默认值。 |
max_tokens | max_completion_tokens 的旧兼容别名。 |
temperature | 支持。 |
top_p | 支持。 |
top_k | 所选模型支持时生效。 |
seed | 所选模型支持时生效。 |
stop | 支持停止序列。 |
额外 SDK 字段
部分 SDK 会附带本文档未列出的额外字段。GLM 5 可能为了兼容而忽略未知字段,但应用不应依赖未文档化行为。
当前值得注意的限制包括:
response_format暂不提供 JSON Mode 或 JSON Schema 强制。frequency_penalty、presence_penalty、repetition_penalty、logit_bias当前不生效。logprobs、top_logprobs当前不返回。reasoning、reasoning_effort当前不作为公开 API 控制项。modalities、audio、image_config不适用于当前文本端点。stream_options、service_tier、prediction、parallel_tool_calls当前不生效。
严格集成时,只依赖本文档明确支持的字段。
Messages
messages 是按时间顺序排列的消息数组。GLM 5 的 Chat Completions 是无状态的:如果你的应用没有再次发送历史消息,模型不会记住前一次 API 调用。
| Role | Content 支持 | 用途 |
|---|---|---|
system | 字符串或 OpenAI text parts | 设置应用级指令和行为约束。 |
user | 字符串或 OpenAI text parts | 用户输入或任务数据。 |
assistant | 字符串、tool_calls 或两者同时存在 | 之前的助手输出或函数调用。 |
tool | 字符串或 text parts,并包含对应 tool_call_id | 返回上一轮函数调用的结果。 |
当前公开文本端点只使用文本 part;图片、音频、视频和文件 part 不会作为此端点的有效输入处理。
[
{
"role": "system",
"content": "你是一名简洁的技术助手。"
},
{
"role": "user",
"content": [
{
"type": "text",
"text": "总结这份部署检查清单。"
}
]
}
]
裁剪历史消息时,必须把 assistant 的 tool_calls 和对应的 tool 消息一起保留。没有前置匹配 tool_call_id 的 tool 消息会返回 400 invalid_request_error。
非流式响应
非流式调用返回 chat.completion 对象:
{
"id": "chatcmpl-01...",
"object": "chat.completion",
"created": 1785292800,
"model": "glm-5.3",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "幂等性让同一个请求重复执行时仍保持可预测结果……"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 42,
"completion_tokens": 31,
"total_tokens": 73
}
}
响应字段
| 字段 | 含义 |
|---|---|
id | GLM 5 生成的 completion ID。 |
object | 非流式响应固定为 chat.completion。 |
created | Unix 秒级时间戳。 |
model | 本次请求使用的公开模型 ID。 |
choices[].index | Choice 索引;当前返回一个 choice。 |
choices[].message.role | 通常为 assistant。 |
choices[].message.content | 助手文本;仅返回工具调用时可为 null。 |
choices[].message.tool_calls | 模型请求的函数调用。 |
choices[].finish_reason | 常见为 stop 或 tool_calls。 |
usage.prompt_tokens | 本次完成请求计入的输入 Token。 |
usage.completion_tokens | 本次完成请求计入的输出 Token。 |
usage.total_tokens | 输入加输出 Token。 |
GLM 5 当前不会返回 usage.cost、service_tier、system_fingerprint 等未在本文档定义的扩展字段。
完成原因
| 值 | 含义 |
|---|---|
stop | 模型正常结束输出。 |
tool_calls | 模型请求调用一个或多个函数。 |