はじめに
Gemini 3 Flash Preview の OpenAI 互換チャット。256,000 トークンの読み取り窓、推論強度 3 段階、ツール呼び出し、JSON 出力が同期呼び出し 1 回に収まります。逐次で受け取るなら stream: true を付けてください。
Gemini 3 Flash Preview は Google の軽量チャットモデルで、ここでは OpenAI 互換の endpoint 1 本として提供します。単価が低く最初のトークンが早いため、ターン制のロールプレイや対話型フィクションで最初に選ぶ一台です。最大 256,000 トークンを読み、最大 65,536 トークンで返し、推論強度 3 段階・ツール呼び出し・JSON 出力に対応します。
主な機能とハイライト
短いターンを何百回も回す枠
1 時間に何百ターンも進むシーンで体感を決めるのは、単価と最初のトークンまでの時間であって、モデルの上限性能ではありません。このモデルはその仕事のためにあります。プレイヤーの一言ごとにモデルを通しても割に合う安さと、会話が待ち時間で止まらない速さです。
ターンごとに「もう一段考えるか」を決める
low / medium / high の 3 段階で、既定は medium です。ふだんの往復は low にして最初のトークンを早くし、伏線を回収するターンだけ high に上げます。同じリクエストボディの文字列 1 つなので、切り替えに実装の変更は要りません。
いつ変わってもおかしくない
プレビュー版の寿命は Google が握っていて、挙動も提供状況も予告なく動きます。本番に組み込む前に、提供終了の日にどのモデルへ逃がすかを決めておいてください。
リクエストパラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
messages | はい | 古い順に並べたターンです。内容は文字列、または text・ |
max_tokens | いいえ | 返答を 65,536 で抑えます。既定は 16,384 です。 |
reasoning_effort | いいえ | minimal / low / medium / high、既定は medium です。ふだんの往復は low で十分で、決めどころのターンだけ high に上げられます。 |
stop | いいえ | 最大 4 件の停止シーケンスを、文字列か配列で指定します。モデルがそのいずれかを書いた時点で応答が終わり、一致した文字列そのものは返されません。 1 文字以上 · 1 件以上 · 4 件以内 |
seed | いいえ | 任意の整数です。ほかが同じリクエストで同じ seed を使うと応答がほぼ再現されるため、1 か所ずつ変えて公平に比べられます。 |
temperature | いいえ | 0〜2、既定 1 です。Gemini 3 系は既定の 1.0 のまま使うことを Google が強く勧めており、1.0 を下回ると出力が堂々巡りになったり質が落ちたりすることがあります。 |
top_p | いいえ | 0.01〜1。これか temperature のどちらか一方だけを動かしてください。 |
tools | いいえ | 1 リクエストにつき最大 128 個の関数定義。 128 件以内 |
tool_choice | いいえ | auto / none / required、または呼ぶ関数を名指しするオブジェクト。 |
response_format | いいえ | JSON オブジェクトを要求し、キーはすべて system メッセージで名指しします。分岐の選択肢が解析可能な形で返るのはこの指定のおかげです。 |
料金
入力 $0.45 / 出力 $2.70 100 万トークンあたり
ユースケース
ターン制の掛け合い
キャラクター設定と世界観、語り口を 1 つの system メッセージに固定し、各ターンでは新しい一言だけを送ります。1 時間に何百ターンという速度では、モデルの上限性能より単価と最初のトークンまでの時間のほうが体感を左右します。
地の文と選択肢の生成
場面を一段進める地の文と、分岐の選択肢 3 つをまとめて出させます。response_format で JSON オブジェクトを要求し。キーを system メッセージで名指ししておけば選択肢の形は安定します。テキストアドベンチャーの 1 画面はこの呼び出し 1 回です。
長い会話の段階分け
ふだんの往復はこのモデルに任せ、正体が明かされる場面や対決、40 ターンを一段落に畳む処理だけ高価なモデルに回します。どちらも OpenAI 形式なので、変えるのは model の値だけです。
一括のラベル付けと整形
会話ログへのタグ付け、要約の書き直し、自由記述を決まった項目に整える作業。こうした仕事が回るかどうかは、推論の上限ではなく 1 回あたりの単価で決まります。
プロンプトガイドと実践のヒント
設定は system、芝居は user に置く
キャラクターシート、世界観、語りの決まりごとは 1 つの system メッセージにまとめ、各ターンでは新しい user と assistant を足すだけにします。system を動かさないからこそ、口調を変えたのはどの一言かが分かります。
強度は実装単位ではなくターン単位で切り替える
ふだんの往復は low で最初のトークンを早くし、決着をつけるターンだけ high で送ります。endpoint もボディも同じで、違うのは文字列 1 つです。
前提にしておく制限
返答の上限は 65,536 トークンで、それを超える max_tokens は検証で弾かれます。メッセージ内容はテキスト、画像、動画、音声です。アップロードした動画と音声は、1 リクエストの合計で 14 MB まで扱えます。JSON の response_format は返答の形を整えますが、解析と検証はアプリケーション側の仕事です。プレビュー版なので Google が挙動を変えることも提供を止めることもあり得ます。本番トラフィックを載せる前に、切り替え先のモデルを決めておいてください。
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-3-flash-preview/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 リファレンスを参照してください。












