はじめに
Gemini 2.5 Flash の OpenAI 互換チャットです。1,048,576 トークンの読み取り窓、推論強度 3 段階、ツール呼び出し、JSON 出力が同期呼び出し 1 回に収まります。逐次で受け取るなら stream: true を付けてください。メッセージの内容はテキスト、画像、動画、音声です。
Gemini 2.5 Flash は Google のハイブリッド推論 Flash 型番で、ここでは OpenAI 互換のチャットエンドポイント 1 本として公開しています。1 回のリクエストで最大 1,048,576 トークンを読み、最大 65,535 トークンで返し、推論強度は 3 段階で切り替えられます。ツール呼び出しと JSON 出力は OpenAI の書き方です。知識のカットオフは Google が 2025 年 1 月と公表しているため、それ以降の事実はプロンプトで渡してください。
主な機能とハイライト
長く読ませて、短く答えさせる
契約書 1 通、ログの塊、四半期分の問い合わせ。まとめて 1 通のメッセージで送り、返ってくるのは 3 行です。この形こそ 1,048,576 トークンの窓で買えるもので、この ID が多くの処理系に入り込んだ理由でもあります。答えが短ければ、請求の高いほうの半分は小さいままです。
3 段階、違いは文字列 1 つ
low / medium / high、既定は medium です。ふだんの処理は low に置き、外せない 1 回だけ上げます。同じリクエスト本文の文字列なので、切り替えに実装コストはかかりません。公開するのは段階だけで思考トークンの予算は出しません。Google 側に段階ごとの数字がないからです。
その後のことは知りません
Google はこの型番の知識のカットオフを 2025 年 1 月としており、ここでは自分で検索しません。それより新しいこと、たとえばライブラリのバージョン、現在の価格、ある人の今の職務は、事実をプロンプトに入れてそこから答えさせてください。カットオフ後のことを聞いてもモデルは答えますし、その口調は正解のときと同じ確信を帯びています。
リクエストパラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
messages | はい | 古い順に並べたターンです。内容は文字列、または text・ |
max_tokens | いいえ | 返答を 65,535 で抑えます。既定は 16,384 です。 |
reasoning_effort | いいえ | low / medium / high、既定は medium です。ふだんの処理は low で十分で、外せない 1 回だけ high に上げられます。 |
stop | いいえ | 最大 4 件の停止シーケンスを、文字列か配列で指定します。モデルがそのいずれかを書いた時点で応答が終わり、一致した文字列そのものは返されません。 1 文字以上 · 1 件以上 · 4 件以内 |
seed | いいえ | 任意の整数です。ほかが同じリクエストで同じ seed を使うと応答がほぼ再現されるため、1 か所ずつ変えて公平に比べられます。 |
temperature | いいえ | 0〜2、既定 1。返答をコードで解析するなら 0 寄りに、文章の口調をゆるめたいなら上げます。 |
top_p | いいえ | 0.01〜1。これか temperature のどちらか一方だけを動かしてください。 |
tools | いいえ | 1 リクエストにつき最大 128 個の関数定義です。 128 件以内 |
tool_choice | いいえ | auto / none / required、または呼ぶ関数を名指しするオブジェクトです。 |
response_format | いいえ | JSON オブジェクトを要求し、キーはすべて system メッセージで名指しします。返答が解析可能な形で返るのはこの指定のおかげです。 |
料金
入力 $0.285 / 出力 $2.375 100 万トークンあたり
ユースケース
長い資料 1 つに、短い答え 1 つ
契約書、ログ、文字起こし、2 版の差分。まとめて 1 通で渡し、3 行で答えさせます。窓が大きいので入力を分割する場面はほとんどなく、答えが短い分だけ出力側の費用も小さく収まります。
大量のラベル付けと整形
問い合わせへのタグ付け、要約の書き直し、自由記述を決まった項目へ落とし込む作業です。こうした仕事は 1 回あたりの単価で成立するかどうかが決まりますし、名の知れた ID なら引き継ぎもしやすくなります。
構造化した抽出
response_format で JSON オブジェクトを要求し、キーはすべて system メッセージで名指しし、temperature は低めにして形を安定させます。返ってきたものの検証は、それでもアプリケーション側の仕事です。
既存の OpenAI クライアントの差し替え先
OpenAI 形式のクライアントからすでに gemini-2.5-flash を呼んでいるなら、こちらへ向けるのは base URL と鍵と model 文字列の変更だけです。今動いているものと比べてみる費用は安く済みます。
プロンプトガイドと実践のヒント
資料を丸ごと渡し、答えは短く縛る
材料は user メッセージ 1 通にまとめ、答えの長さも指定します。要約や差分なら max_tokens は 300〜1,000 がちょうどよく、65,535 の上限は本当に長い文章がほしいときのためのものです。
段階はリクエスト単位で切り替える
大半のトラフィックは low で流し、外せない 1 回だけ high で送ります。エンドポイントも本文も同じで、違うのは文字列 1 つです。
前提にしておく制限
返答の上限は 65,535 トークンで、それを超える max_tokens は検証の時点で弾かれます。メッセージ内容はテキスト、画像、動画、音声です。アップロードした動画と音声は、1 リクエストの合計で 14 MB まで扱えます。response_format で JSON を要求しても形が整うだけで、解析と検証はアプリケーション側の仕事のままです。
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": "google/gemini-2.5-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 リファレンスを参照してください。












