Gemini OpenAI 互換フォーマット説明
Fast-Token では OpenAI API プロトコル で Google Gemini シリーズのモデルを呼び出せます。OpenAI SDK や /v1/chat/completions ベースのアプリがある場合、通常は base_url と model を変更するだけで Gemini に接続でき、Gemini ネイティブ API への書き換えは不要です。
本ページは利用方法を中心に説明します。各エンドポイントのリクエスト/レスポンスおよびオンラインデバッグは ChatGPT ドキュメント と、下記の機能対照表のリンクを参照してください。
2 つの接続方式
| 比較項目 | OpenAI 互換フォーマット(本ページ) | Gemini ネイティブ API(同セクションの他ドキュメント) |
|---|---|---|
| 代表的なパス | POST /v1/chat/completions、POST /v1/embeddings | POST /v1beta/models/{model}:generateContent など |
| リクエストボディ | messages、model、stream など OpenAI フィールド | contents、generationConfig など Gemini フィールド |
| 向いている用途 | 既存 OpenAI クライアント、複数モデル統合ゲートウェイ、迅速な移行 | Gemini 固有機能(thinkingConfig、Imagen 専用パラメータなど) |
| ドキュメント | 本ページ + チャット グループ | 本セクションの「チャット」「画像」「ファイル」などの API ページ |
どちらも同じ API Key とゲートウェイ URL を共有します。課金は モデル広場 の該当モデルに従います。
接続設定
ゲートウェイと認証
- Base URL:
https://fast-token.com/v1(クイックスタート と同じ) - 認証:リクエストヘッダー
Authorization: Bearer <Fast-Token_API_KEY> - モデル名:モデル広場 で
geminiを含むモデル ID をコピーし、modelに設定
OpenAI SDK の利用(推奨)
公式 SDK の base_url を Fast-Token に向けるだけで、それ以外は OpenAI と同じです:
from openai import OpenAI
client = OpenAI(
base_url="https://fast-token.com/v1",
api_key="<Fast-Token_API_KEY>",
)
completion = client.chat.completions.create(
model="gemini-2.5-pro", # 以模型广场为准
messages=[
{"role": "user", "content": "用一句话介绍你自己"},
],
)
print(completion.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://fast-token.com/v1",
apiKey: "<Fast-Token_API_KEY>",
});
const completion = await client.chat.completions.create({
model: "gemini-2.5-pro",
messages: [{ role: "user", content: "用一句话介绍你自己" }],
});
console.log(completion.choices[0].message.content);ストリーミングはリクエストで stream: true を指定します。詳細は チャット補完の作成(ストリーミング)。
chat 互換フォーマットの機能一覧
以下はすべて OpenAI 互換パス 経由です。コンソールや Apifox では 「chat 互換フォーマット」 に分類されることが多いです。実装では多くが同一の POST /v1/chat/completions(埋め込みは POST /v1/embeddings)で、モデルとメッセージ構造でシナリオを区別します。
| 機能 | 説明 | 参考ドキュメント |
|---|---|---|
| Gemini 画像生成 | テキスト(および任意の参照画像)から画像を生成・編集 | チャット画像生成(非ストリーム) |
| チャット API | 標準的なマルチターン会話、ストリーム/非ストリーム対応 | 非ストリーム、ストリーム |
| チャット API - 思考 1 | モデルの「思考」出力に対応(バリアント 1) | ストリーム(extra_body.enable_thinking) |
| チャット API - 思考 2 | モデルの「思考」出力に対応(バリアント 2) | 同上。モデルはモデル広場を参照 |
| 画像認識 API | 画像をアップロードして理解・説明・質問 | 画像認識(ストリーム)、画像認識(非ストリーム) |
| チャット + ファイル読み取り | 会話に文書などを添付して分析 | 下記「ファイルとマルチモーダル」 |
| テキスト埋め込み | テキストをベクトルに変換 | 埋め込みの作成 |
モデルの選択
各シナリオの モデル ID は モデル広場 を参照してください。gemini を含み、対応する会話/画像認識/画像生成/埋め込みに対応と記載されたモデルを試してください。「モデルが存在しない」や非対応の場合は、同シナリオの別の Gemini モデルを選んでください。
シナリオ別の利用ポイント
標準チャット
- エンドポイント:
POST /v1/chat/completions messages配列でマルチターン会話を維持。roleはsystem/user/assistant(OpenAI と同じ)- 非ストリーム:
stream: falseまたはstream省略。ストリーム:stream: true - 共通パラメータ(
temperature、max_tokens、top_pなど)は OpenAI ドキュメントと同様。詳細は チャット補完の作成(非ストリーム)
思考モード(思考 1 / 思考 2)
一部の Gemini 思考モデルは ストリーム リクエストで拡張フィールドにより思考出力を有効化できます:
{
"model": "gemini-2.5-pro",
"messages": [{ "role": "user", "content": "解释相对论的核心思想" }],
"stream": true,
"extra_body": {
"enable_thinking": true
}
}- 思考 1 と 思考 2 はゲートウェイ上で異なるモデルまたはルートに対応します。モデル広場で「思考」と記載されたモデルを選び、それぞれテストしてください
thinkingConfig(思考トークン予算など)を完全に制御する場合は、本セクションの Gemini ネイティブ API を使用してください
画像認識(ビジョン)
user メッセージの content に マルチモーダル配列 を使用:text + image_url(URL または Base64)。
{
"model": "gemini-2.5-pro",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "这张图里有什么?" },
{
"type": "image_url",
"image_url": { "url": "https://example.com/photo.jpg" }
}
]
}
],
"stream": true
}Base64 送信は チャット画像認識(ストリーム)Base64。ネイティブの inlineData などは 画像理解。
画像生成
- チャット API + 画像対応 Gemini モデル でテキストから画像、参照画像による編集など
messagesで自然言語の要件を記述。参照画像が必要な場合はcontentにtextとimage_urlを併記- リクエスト/レスポンス:チャット画像生成(非ストリーム)
- アスペクト比・解像度の細かい制御はネイティブ 画像生成 も参照
チャット + ファイル読み取り
OpenAI 互換フォーマットでは 文書・PDF など をマルチモーダル入力の一部として渡せます(対応 MIME とサイズ制限はモデル広場の説明に従う):
- まず
messages[].contentで OpenAI マルチモーダル規約に従って渡す(image_url、またはプラットフォームがサポートするファイル URL / Base64) - 大容量ファイルや複雑なレイアウトはネイティブ 文書理解(
fileData/inlineData)を使い、結果をアプリ側で会話に統合
テキスト埋め込み
- エンドポイント:
POST /v1/embeddings - ボディ:
model+input(文字列または文字列配列)、OpenAI Embeddings API と同じ - 例とフィールド:埋め込みの作成;オブジェクト構造:埋め込みオブジェクト
taskType、output_dimensionalityなど Gemini 専用オプションは Gemini ネイティブテキスト埋め込み
互換フォーマットとネイティブ API の選び方
| ニーズ | 推奨 |
|---|---|
| 迅速な接続、OpenAI SDK / 既存コードの再利用 | OpenAI 互換フォーマット(本ページ) |
ストリーム思考、generationConfig、Google Search Grounding | ネイティブ API(例:テキスト生成+思考-ストリーム、google search) |
| Imagen 専用画像生成、TTS、動画/音声理解 | ネイティブ API の該当章 |
| 「チャット + 画像認識 + 画像生成 + 埋め込み」のみ、OpenAI クライアントあり | OpenAI 互換フォーマット で主要パスをカバー可能 |
よくある質問
Q:OpenAI ドキュメントと完全に一致しないのはなぜ?
A:互換レイヤーはリクエスト/レスポンスを OpenAI に合わせ、実体は Gemini です。OpenAI 専用パラメータの一部は無効または無視される場合があります。実際のモデル対応を優先してください。
Q:model には何を入れる?
A:モデル広場に記載の 完全なモデル ID(通常 gemini の接頭辞または接尾辞を含む)を使用し、略称は使わないでください。
Q:ストリーム応答の形式は?
A:SSE、data: {...} 行と終了の data: [DONE]。OpenAI ストリーム Chat Completions と同じ。チャンクオブジェクトは チャット完了チャンクオブジェクト。
Q:完全なレスポンス JSON 構造は?
A:チャット完了オブジェクト を参照。
関連ドキュメント
- クイックスタート — 初回呼び出しと API Key
- API クイックスタートガイド — Base URL とクライアント設定
- モデル一覧 —
GET /v1/modelsで利用可能モデルを確認 - 本セクションの他ページ — Gemini ネイティブ REST API の詳細パラメータと例