はじめに
Gemini 3.5 Flash-Lite の OpenAI 互換チャットです。1,048,576 トークンの読み取り窓、既定が minimal の推論強度 4 段階、128 個のツール定義、JSON 出力が同期呼び出し 1 回に収まります。逐次で受け取るなら stream: true を付けてください。
Gemini 3.5 Flash-Lite は Google のコスト重視のチャットモデルで、ここでは OpenAI 互換の endpoint 1 本として提供します。1 回のリクエストで最大 1,048,576 トークンを読み、最大 65,536 トークンで返します。推論強度の既定値がいちばん安くていちばん速い minimal なので、分類・翻訳・単純なデータ整形は、こちらから指定しないかぎり最下段で走ります。
主な機能とハイライト
一度に何千行も流れてくる仕事のための一本
難問が 1 つではなく行が 1 万ある仕事では、1 回あたりの単価がそのままやるかどうかを決めます。このモデルはそこに置くためのものです。どの行もモデルに通せるくらい安く、見ているあいだにキューが減っていくくらい速く済みます。
4 段階、しかも既定はいちばん安い段
reasoning_effort は minimal / low / medium / high を取り、既定は minimal です。つまり何も渡さなければ、このモデルのいちばん安くていちばん速い答えが返ります。じっくり考えさせたいときは、その 1 回のリクエストだけ段を上げてください。組み込み全体を変える必要はありません。
資料一式をまるごと 1 回のリクエストに
読み取り窓は 1,048,576 トークンです。長い仕様書、全文の書き起こし、1 か月分のログを、いくつもの窓に切ってから継ぎ直す手間なしに、そのまま 1 回で渡せます。入力トークンは実測で課金されるので、見るべきは呼び出し回数だけでなく素材の量です。
リクエストパラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
messages | はい | 古い順に並べたターンで。内容は文字列、またはテキスト・ |
max_tokens | いいえ | 返答を 65,536 で抑えます。既定は 4,096 です。 |
reasoning_effort | いいえ | minimal / low / medium / high で、既定は minimal です。つまり何も渡さなければ、いちばん安くていちばん速い段になります。 |
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.30 / 出力 $2.50 100 万トークンあたり
ユースケース
まとめて分類・ラベル付け
チケットの振り分け、チャットログのタグ付け、届いたメールの担当割り当て。固定した system を 1 つ、1 回の呼び出しに 1 行、強度は minimal のまま。正規表現ではなくモデルにキュー全体を通せます。
まとめて翻訳
製品文言、サポート返信、カタログのコピー。指示と用語集を system メッセージに置き、原文を user メッセージに入れます。量が多いことが「だからやめておく」理由ではなくなります。
自由記述を決まった欄に流し込む
response_format で JSON オブジェクトを要求し、system メッセージでキーを 1 つずつ名指しして、構造のないメモをデータベースに既にある列へ折り込ませます。解析と検証は利用側の仕事のままです。
エージェントの地味な手順
エージェントの動作の大半は決め手ではありません。ページを読み直す、その結果が関係あるか判断する、いま起きたことを一言でまとめる。そこをこちらに任せ、高いモデルは本当に決める 1 手のために取っておきます。
プロンプトガイドと実践のヒント
指示は system、素材は user に
タスクの説明、出力の形、用語の決まりごとは system メッセージ 1 つにまとめ、user メッセージにはその行・その一節・その文書だけを入れます。まとめて流すあいだ system を動かさないことが、結果どうしを比べられる条件です。
強度はまず触らず、必要になった 1 回だけ上げる
minimal が既定であり、バッチの大半はその段で走らせるべき設定です。判断が要る項目に当たったら、その 1 回だけ low / medium / high にしてください。同じリクエストボディ上の文字列 1 つなので、ほかは何も変わりません。
前提にしておく制限
返答の上限は 65,536 トークンで、それを超える max_tokens はその場で検証に落ちます。メッセージの内容はテキスト・画像・動画で、音声のパーツは拒否されます。動画はアップロード済みファイルとして送り、1 回のリクエストに含める動画は合計 14 MB までです。JSON の response_format は返答の形を整えますが、解析と検証はアプリケーション側の仕事です。モデル内部の知識は 2026 年 3 月で止まっているため、それ以降のことはプロンプトで渡す必要があります。
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.5-flash-lite/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 リファレンスを参照してください。












