はじめに
GLM 5.3 Flash は Z.ai の長文脈チャットモデルで、ここでは /v1/chat/completions の OpenAI 互換エンドポイント 1 本として提供しています。最大 256 メッセージ、合計 1,048,576 トークンまでを読み、最大 131,072 トークンで答えます。推論の強さは low・high・max から選べます。
既定は max です。temperature(0〜1)と top_p を受け付け、response_format で JSON オブジェクトを返し、1 リクエストに最大 128 個のツールを宣言できます。メッセージの内容はテキスト・画像・動画で、必要なら返答を Server-Sent Events でストリーミングします。
主な機能とハイライト
推論の強さは 3 段
low・high・max は同じリクエスト本文で指定します。大きなエクスポートへのラベル付けや抽出には low、レビューには high、そして既定の max は揺らいではいけない答えのためにあります。切り替えで変わるのは文字列 1 つで、連携そのものは変わりません。
100 万トークンを読んで結論を返す
枠は 1,048,576 トークン、返答は最大 131,072 トークンで、およそ 8 対 1 です。エクスポート、議事録のアーカイブ、文書一式を読み、送ったものを書き直すのではなく、ラベル、集計表、所見のリストを返す仕事の形です。
パイプライン向けの構造化出力
response_format を json_object にすればコードで解析できるオブジェクトが返り、最大 128 個のツールでモデルからシステムを呼び出せます。実行ごとに形が変わらないよう system メッセージですべてのキーを指定し、後段が動く前に検証してください。
リクエストパラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
messages | はい | 順序付きのターンを最大 256 件、内容は文字列、または text・ |
reasoning_effort | いいえ | low / high / max。Z.ai 自身の API と同じく既定は max なので、指定を省いたリクエストでも最も丁寧な設定になります。 |
stop | いいえ | 停止シーケンスは 1 件だけで、文字列か要素 1 つの配列で指定します(Z.ai が読むのは 1 件のみです)。モデルがそれを書いた時点で応答が終わり、一致した文字列は返されません。 1 文字以上 · 1 件以上 · 1 件以内 |
max_tokens | いいえ | 返答を 131,072 で抑えます。読み込み枠の 8 分の 1 です。 |
temperature | いいえ | 0〜1、既定 1。返答をコードが解析する場合は 0 に保ってください。 |
top_p | いいえ | 0.01〜1、既定 0.95。同じ比較の中で、これと temperature を同時に動かさないでください。 |
tools | いいえ | 1 リクエストにつき最大 128 個の関数定義。 128 件以内 |
tool_choice | いいえ | auto / none / required、または呼ぶ関数を名指しするオブジェクト。 |
response_format | いいえ | JSON オブジェクトを要求し、キーはすべて system メッセージで名指ししてください。 |
料金
入力 $0.1275 / 出力 $0.425 100 万トークンあたり
ユースケース
low でチケットを振り分ける
チケットのエクスポートをまるごと、固定のラベル一覧とともに送り、チケットごとに 1 つのラベルを JSON で返させます。low なら安く回せ、チェックで弾かれたチケットだけを high で送り直します。
議事録アーカイブへの質問
数か月分の会議やサポートの記録を 1 リクエストに入れ、どこで決定が下され、誰が反対したかを引用付きで尋ねます。何も切り分けていないので、3 月の一行と 7 月の一行を並べて引用できます。
ツールを呼ぶアシスタント
検索・作成・更新など、アシスタントに許す関数を宣言し、いつ呼ぶかは tool_choice に任せます。結果は tool ロールのメッセージで戻るので、やり取り全体が 1 つの会話に収まります。
プロンプトガイドと実践のヒント
推論の段は必要なところだけ上げる
1 回目は low で回し、検証に通らなかったものを high で送り直し、それでも判断が割れる少数だけを max にします。段の違いだけが変数になるよう、パス間でメッセージは同一に保ってください。
そのまま使えるラベル付けの呼び出し
POST https://api.spicyapi.ai/v1/chat/completions に {"model": "zai/glm-5.3-flash", "messages": [{"role": "system", "content": "Label each ticket with one of: billing, access, bug, feature. Return JSON: {\"labels\": [{\"id\": ..., \"label\": ...}]}."}, {"role": "user", "content": "<the ticket export>"}], "reasoning_effort": "low", "max_tokens": 20000, "response_format": {"type": "json_object"}} を送ります。オブジェクトを解析し、すべての ID が戻ったかを確かめ、欠けたものを送り直してください。
予算と上限
max_tokens の既定値は 32,768 で、推論トークンも出力として課金されるため、期待する返答より余裕を持たせてください。131,072 を超える値は検証で弾かれます。音声とファイルのパートは受け付けず、JSON の response_format は返答の形を整えるだけで、アプリ側の解析の代わりにはなりません。
API クイックスタート
curl --fail-with-body -sN https://api.spicyapi.ai/v1/chat/completions \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "zai/glm-5.3-flash/chat",
"messages": [
{
"role": "user",
"content": "Summarise the following release notes into three bullet points."
}
],
"stream": true
}' \
| jq --unbuffered -Rrj 'select(startswith("data: ")) | .[6:] | select(. != "[DONE]") | fromjson | if .error then "\n[error] \(.error.message)\n" else (.choices[0].delta.content? // empty) end'
認証、完全なスキーマ、ポーリング、エラー処理は API リファレンスを参照してください。







