はじめに
Claude Opus 4.5 は Anthropic の Opus 系チャットモデルで、ここでは /v1/chat/completions の OpenAI 互換エンドポイント 1 本として提供しています。198,000 トークンの枠に数十ターン分の履歴をそのまま収め、1 回の返答は最大 32,768 トークン。1 つの場面や短い章なら一度に書き切れます。
推論の強さ low・medium・high に加えて、temperature(0〜1、既定値 1)と top_p を指定できます。メッセージの内容はテキストと画像で、1 リクエストに最大 128 個のツールを付けられ、必要なら Server-Sent Events で返答をストリーミングします。
主な機能とハイライト
198,000 トークンを書かれたまま読む
ロールプレイが 30 ターン続いたとき、先に崩れるのは文章ではなく記憶です。キャラクターの生い立ち、受け入れた約束、決して越えないと言った一線。198,000 トークンあれば、その履歴をリクエストにそのまま載せられるので、肝心な行が抜け落ちた要約ではなく元のせりふをモデルに読ませられます。
まだ調整できるサンプリング
temperature は 0〜1 で既定値は 1、top_p は 0.01〜1 です。新しい要素を一切足してほしくない整合性チェックでは temperature を下げ、意外性がほしい会話では 1 のままにします。推論の強さは low・medium・high の別の設定です。
ツール呼び出しを強制して構造化出力
このエンドポイントには response_format がないため、機械で読む出力はツール経由になります。1 リクエストに最大 128 個の関数定義を載せ、tool_choice は auto・none・required・特定の関数から選べます。JSON スキーマをツールのパラメーターに置いてそのツールを強制し、返ってきた引数を検証してください。
リクエストパラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
messages | はい | 順序付きの会話ターン。内容は文字列、または text と |
max_tokens | いいえ | 返答を 32,768 で抑えます。読み込み枠のおよそ 6 分の 1 です。 |
reasoning_effort | いいえ | low / medium / high、既定は medium です。モデルが書き出す前に細部を突き合わせる必要があるときは上げてください。 |
stop | いいえ | 最大 4 件の停止シーケンスを、文字列か配列で指定します。モデルがそのいずれかを書いた時点で応答が終わり、一致した文字列そのものは返されません。 1 文字以上 · 1 件以上 · 4 件以内 |
temperature | いいえ | 0〜1、既定 1。返答をコードが解析する場合は 0 に保ち、一作の声が決まったら触らないでください。 |
top_p | いいえ | 0.01〜1。同じ比較の中で、これと temperature を同時に動かさないでください。 |
tools | いいえ | 1 リクエストにつき最大 128 個の関数定義。 128 件以内 |
parallel_tool_calls | いいえ | true か false で、既定値は true です。true ではモデルが 1 ターンで複数のツール呼び出しを要求できます。 デフォルト値: |
tool_choice | いいえ | auto / none / required、または呼ぶ関数を名指しするオブジェクト。 |
料金
入力 $4.50 / 出力 $22.50 100 万トークンあたり
ユースケース
役を外れないキャラクターチャット
キャラクター設定を system メッセージに、進行中の会話ログを messages に入れます。数十ターン後でも 3 ターン目の約束をモデルが引用できるのは、3 ターン目がまだリクエストの中にあるからです。
1 場面分の続きを書かせる
32,768 トークンは長めの場面 1 つ、あるいは短い章 1 つほどです。既定の 4,096 から max_tokens を引き上げて次の場面を依頼すれば、手でつないだ 3 つの断片ではなく、ひと続きの文章として届きます。
アプリに保存できる物語の状態
場所・人間関係・未回収の伏線を項目に持つ update_story_state のようなツールを定義し、数ターンごとに強制して、その引数をアプリに保存します。本文と状態が同じ文脈から出てくるので、両者が食い違いません。
プロンプトガイドと実践のヒント
人物設定と一線は system メッセージに
生い立ち、話し方、越えない一線、人称、時制は、リクエストから押し出されることのない system メッセージに置きます。user メッセージは今のターンだけにしておけば、あとで長さを詰めても削れるのは会話ログで、キャラクターは残ります。
長さを求める前に max_tokens を上げる
既定値の 4,096 トークンでは数ページ分にしかなりません。1 場面を丸ごと書かせるなら、max_tokens を最大 32,768 まで明示的に指定してください。段落の途中で切れた返答は、最初から短く設計した返答より立て直しが大変です。
枠の終わりを把握しておく
読む量は書く量のおよそ 6 倍なので、長い入力の再現を求めると先に返答の上限に達します。32,768 を超える max_tokens は検証で弾かれます。動画パートと音声パートは受け付けず、198,000 トークンには system プロンプト、履歴、すべてのツール結果がまとめて含まれます。
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": "anthropic/claude-opus-4.5/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 リファレンスを参照してください。














