はじめに
xAI の Grok 4.6 を OpenAI 互換のチャットとして呼び出すエンドポイントです。スクリーンショットと、それについての質問を同じユーザーターンに載せられます。
Grok 4.6 は xAI のモデルで、POST https://api.spicyapi.ai/v1/chat/completions にモデル名 xai/grok-4.6 で送ります。リクエストの構成は見慣れたものです。最大 256 ターンの messages 配列、出力上限、サンプリングのつまみ 2 つ、ツール一覧、応答形式、そして書き出す前にどこまで考えるかを決める reasoning_effort があります。コンテキストウィンドウは 500,000 トークン、1 回の返答は 450,000 トークンまで取れるので、予算の大きいほうをプロンプト側ではなく答え側に置けます。content が受け取るのは text パートと image_url パートで、このエンドポイントに file や PDF のパートはありません。モダリティはテキストと画像を入れてテキストが返る形です。
主な機能とハイライト
画像と、それについての一文を、ひとつのターンで
content は素の文字列でも、パートの配列でもかまいません。画像パートは url と、auto / low / high の detail ヒントを持ちます。キャプチャとそれについての問いが一緒に届くので、モデルはお客様の説明ではなくピクセルそのものを読みます。ラベルを付け間違えた軸、端で切れたスタックトレース、ある幅でだけ崩れるレイアウト。答えがそこにかかっているとき、その差はそのまま結果の差になります。画像の内容は 500,000 トークンのコンテキストウィンドウの外ではなく中で計上されるため、大きなキャプチャを何枚も送ると長い履歴と同じ予算を奪い合います。
予算のほとんどを答えに回せます
1 回の返答は 450,000 トークンまで伸びます。チャットモデルとしては珍しい形で、ウィンドウの大半を読むためではなく書くために使えます。max_tokens の既定は 4,096 のままなので、長い生成は自分から要求するものであって、うっかり入り込むものではありません。既定のまま打ち切られても警告は出ません。reasoning_effort は low / medium / high / xhigh から選べ、既定は high です。推論に使った分は出力トークンとして消費されるので、上限と請求額の両方に同時に効きます。
経路に当社のものは何も挟まっていません
お客様とこのモデルのあいだに、当社独自の分類器は置いていません。モデルが書かないと判断したものはモデル自身の振る舞いであって、ここで挟んだ層ではありません。送った内容が途中で走査・採点・書き換えされることもありません。送る素材の権利はお客様に帰属し、返ってきた応答の使い道についてもお客様が責任を負います。
リクエストパラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
messages | はい | 最大 256 ターン。1 つの user メッセージの中で text と |
reasoning_effort | いいえ | low / medium / high / xhigh。既定は high です。 |
max_tokens | いいえ | 表示される応答の長さに上限をかけます(最大 450,000 トークン)。既定の 4,096 は長い回答を警告なく切り詰めます。 |
temperature | いいえ | 0〜2、既定 0.7。2 つのモックアップ、あるいは 2 回の実行を比べるときは 0 にしてください。 |
top_p | いいえ | 0.01〜1。この値か temperature のどちらか一方だけを動かしてください。 |
tools | いいえ | 1 リクエストにつき最大 128 個の関数定義。 128 件以内 |
parallel_tool_calls | いいえ | true か false で、既定値は true です。true ではモデルが 1 ターンで複数のツール呼び出しを要求できます。 デフォルト値: |
tool_choice | いいえ | auto / none / required、または呼ぶ関数を名指しするオブジェクト。 |
response_format | いいえ | 応答を人ではなくコードが読む場合は JSON オブジェクトを指定してください。 |
料金
入力 $2 / 出力 $6 100 万トークンあたり; 200K トークン以上のプロンプト: 入力 $4 / 出力 $12
入力の合計にはキャッシュ済みトークンが含まれます。入力が 200,000 トークン以上になると、そのリクエストの入力・キャッシュ入力・出力のすべてに長コンテキスト料金が適用され、それ未満では標準料金が適用されます。出力には推論トークンが含まれます。送信前に予算を確認してください。最初に確保する保留額はキャッシュによる節約を見込まずに計算し、精算時に実際の使用量との差額を返金します。
ユースケース
説明するかわりにキャプチャを渡す
detail を high にしたスクリーンショットを、質問と同じユーザーメッセージに入れて送ります。モデルはピクセルから読み取ります。ラベルの間違った軸、消えた行、端で切れたフレーム。1 時間違いの 2 枚を同じターンに置けば、手で書き起こした要約についてではなく、どの数字が動いたのかを直接聞けます。
本一冊分を 1 回の呼び出しで書かせる
max_tokens を 450,000 近くまで上げれば、移行ガイドでも長い報告書でもテスト一式でも、継続の連鎖ではなくひとつの応答として返ってきます。つなぎ目のたびに筋が少しずつ失われることもありません。stream: true にすれば、書かれているそばからテキストが届きます。
ツールのループを読めるままにしておく
関数定義を最大 128 個まで宣言し、tool_choice と組み合わせ、結果は次のターンで tool ロールのメッセージとして返します。ループ全体で reasoning_effort を固定すれば、反復ごとに変わるのは会話だけになり、うまくいかなかったときにトレースを読む価値が出ます。
読み手が人ではなくコードのとき
response_format で JSON オブジェクトを指定し、temperature を 0 に落とせば、返ってくるのはパーサーがそのまま受け取れる構造です。画像パートと組み合わせれば、レシートや図表、フォームのキャプチャから、書き起こしの工程を挟まずに抽出できます。
プロンプトガイドと実践のヒント
画像は質問と同じ場所に置く
写真を先に送って質問を後から送るのではなく、text パートと image_url パートを同じユーザーメッセージに入れてください。そこから何を読み取ってほしいのか、数値なのか、差分なのか、判断なのかを書き、パネルが複数あるならどれかを名指しします。detail の high が買えるのは解像度であって、注意の向け先ではありません。
POST https://api.spicyapi.ai/v1/chat/completions
{
"model": "xai/grok-4.6",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "These two captures are an hour apart on the same dashboard. Which metric regressed, and what in the second image explains it?"},
{"type": "image_url", "image_url": {"url": "https://cdn.spicyapi.ai/models/examples/inputs/c681580c3c6a0b63.jpeg", "detail": "high"}},
{"type": "image_url", "image_url": {"url": "https://cdn.spicyapi.ai/models/examples/inputs/59f0bc6291069978.jpeg", "detail": "high"}}
]
}
],
"reasoning_effort": "high",
"max_tokens": 4000
}
推論は答えが変わる場面に使う
reasoning_effort の既定は high なので、指定を省いた時点で、慎重なほうの設定とそれに伴う出力トークンの代金を払っていることになります。一度で正しくなければ困る仕事に xhigh を取っておき、ふつうのレビューは medium、短い機械的なターンは low に落とします。推論は出力として課金されるため、返答そのものと上限を分け合います。xhigh に大きな上限を組み合わせれば、二重の意味で大きなリクエストになります。
どちらの料金段に入るかを送信前に確かめる
入力とキャッシュ入力は合算され、200,000 トークンからはリクエスト全体に長コンテキスト料金が適用されます。超えた分だけではありません。履歴を 210,000 トークンから 190,000 まで削ると、削ったトークンの代金以上のものが変わるということです。呼び出し前に確保する保留額はキャッシュによる節約をまったく見込まずに計算し、精算時に実測との差額を返金します。手前に見えている数字は価格ではなく上限です。
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": "xai/grok-4.6/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 リファレンスを参照してください。










