Skip to content

Gemini OpenAI 互換フォーマット説明

Fast-Token では OpenAI API プロトコル で Google Gemini シリーズのモデルを呼び出せます。OpenAI SDK や /v1/chat/completions ベースのアプリがある場合、通常は base_urlmodel を変更するだけで Gemini に接続でき、Gemini ネイティブ API への書き換えは不要です。

本ページは利用方法を中心に説明します。各エンドポイントのリクエスト/レスポンスおよびオンラインデバッグは ChatGPT ドキュメント と、下記の機能対照表のリンクを参照してください。

2 つの接続方式

比較項目OpenAI 互換フォーマット(本ページ)Gemini ネイティブ API(同セクションの他ドキュメント)
代表的なパスPOST /v1/chat/completionsPOST /v1/embeddingsPOST /v1beta/models/{model}:generateContent など
リクエストボディmessagesmodelstream など OpenAI フィールドcontentsgenerationConfig など Gemini フィールド
向いている用途既存 OpenAI クライアント、複数モデル統合ゲートウェイ、迅速な移行Gemini 固有機能(thinkingConfig、Imagen 専用パラメータなど)
ドキュメント本ページ + チャット グループ本セクションの「チャット」「画像」「ファイル」などの API ページ

どちらも同じ API Key とゲートウェイ URL を共有します。課金は モデル広場 の該当モデルに従います。

接続設定

ゲートウェイと認証

  • Base URLhttps://fast-token.com/v1クイックスタート と同じ)
  • 認証:リクエストヘッダー Authorization: Bearer <Fast-Token_API_KEY>
  • モデル名モデル広場gemini を含むモデル ID をコピーし、model に設定

OpenAI SDK の利用(推奨)

公式 SDK の base_url を Fast-Token に向けるだけで、それ以外は OpenAI と同じです:

python
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)
javascript
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 配列でマルチターン会話を維持。rolesystem / user / assistant(OpenAI と同じ)
  • 非ストリーム:stream: false または stream 省略。ストリーム:stream: true
  • 共通パラメータ(temperaturemax_tokenstop_p など)は OpenAI ドキュメントと同様。詳細は チャット補完の作成(非ストリーム)

思考モード(思考 1 / 思考 2)

一部の Gemini 思考モデルは ストリーム リクエストで拡張フィールドにより思考出力を有効化できます:

json
{
  "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)。

json
{
  "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 で自然言語の要件を記述。参照画像が必要な場合は contenttextimage_url を併記
  • リクエスト/レスポンス:チャット画像生成(非ストリーム)
  • アスペクト比・解像度の細かい制御はネイティブ 画像生成 も参照

チャット + ファイル読み取り

OpenAI 互換フォーマットでは 文書・PDF など をマルチモーダル入力の一部として渡せます(対応 MIME とサイズ制限はモデル広場の説明に従う):

  1. まず messages[].content で OpenAI マルチモーダル規約に従って渡す(image_url、またはプラットフォームがサポートするファイル URL / Base64)
  2. 大容量ファイルや複雑なレイアウトはネイティブ 文書理解fileData / inlineData)を使い、結果をアプリ側で会話に統合

テキスト埋め込み

互換フォーマットとネイティブ 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:チャット完了オブジェクト を参照。

関連ドキュメント