Chat Completions

OpenAI 兼容的 GLM 5 Chat Completions 请求与响应参考。

POST/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 行为
modelstring-模型中公开的模型 ID,例如 glm-5.3
messagesarray-当前对话的完整消息列表,至少包含一条有效消息。
max_completion_tokensinteger模型默认值可选的输出长度上限。
max_tokensinteger模型默认值max_completion_tokens 的旧兼容别名。
temperaturenumber模型默认值作为采样温度转发。
top_pnumber模型默认值作为 nucleus sampling 参数转发。
top_kinteger模型默认值所选模型支持时生效。
seedinteger-支持时作为确定性采样提示使用。
stopstring 或 string[]-一个或多个停止序列。
streambooleanfalsetrue 时返回 Server-Sent Events。
toolsarray-OpenAI 兼容的 function tools。
tool_choicestring 或 objectauto支持 autononerequired 或指定函数。

请求 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_tokensmax_completion_tokens 的旧兼容别名。
temperature支持。
top_p支持。
top_k所选模型支持时生效。
seed所选模型支持时生效。
stop支持停止序列。

额外 SDK 字段

部分 SDK 会附带本文档未列出的额外字段。GLM 5 可能为了兼容而忽略未知字段,但应用不应依赖未文档化行为。

当前值得注意的限制包括:

  • response_format 暂不提供 JSON Mode 或 JSON Schema 强制。
  • frequency_penaltypresence_penaltyrepetition_penaltylogit_bias 当前不生效。
  • logprobstop_logprobs 当前不返回。
  • reasoningreasoning_effort 当前不作为公开 API 控制项。
  • modalitiesaudioimage_config 不适用于当前文本端点。
  • stream_optionsservice_tierpredictionparallel_tool_calls 当前不生效。

严格集成时,只依赖本文档明确支持的字段。

Messages

messages 是按时间顺序排列的消息数组。GLM 5 的 Chat Completions 是无状态的:如果你的应用没有再次发送历史消息,模型不会记住前一次 API 调用。

RoleContent 支持用途
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_idtool 消息会返回 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
  }
}

响应字段

字段含义
idGLM 5 生成的 completion ID。
object非流式响应固定为 chat.completion
createdUnix 秒级时间戳。
model本次请求使用的公开模型 ID。
choices[].indexChoice 索引;当前返回一个 choice。
choices[].message.role通常为 assistant
choices[].message.content助手文本;仅返回工具调用时可为 null
choices[].message.tool_calls模型请求的函数调用。
choices[].finish_reason常见为 stoptool_calls
usage.prompt_tokens本次完成请求计入的输入 Token。
usage.completion_tokens本次完成请求计入的输出 Token。
usage.total_tokens输入加输出 Token。

GLM 5 当前不会返回 usage.costservice_tiersystem_fingerprint 等未在本文档定义的扩展字段。

完成原因

含义
stop模型正常结束输出。
tool_calls模型请求调用一个或多个函数。

增量输出请查看流式输出,工具调用循环请查看函数调用