Gemini Enterprise Agent Platform での OpenAI ライブラリの使用

Chat Completions API は、OpenAI 互換のエンドポイントとして機能します。これは、Python と REST 用の OpenAI ライブラリを使用して、Gemini Enterprise Agent Platform の Gemini とのインターフェースを容易にするように設計されています。すでに OpenAI ライブラリを使用している場合は、この API を使用して OpenAI モデルと Agent Platform ホストモデルの呼び出しを切り替えることで、既存のコードを変更することなく、出力、コスト、スケーラビリティを比較できます。OpenAI ライブラリを使用していない場合は、Google Gen AI SDK を使用することをおすすめします。既存の OpenAI SDK コードを移行して Google Gen AI SDK を使用するには、OpenAI SDK から Google Gen AI SDK に移行するをご覧ください。

サポートされているモデル

Chat Completions API は、Gemini モデルと、Model Garden から選択したセルフデプロイ モデルの両方をサポートしています。

Gemini モデル

次のモデルは Chat Completions API をサポートしています。

クリックしてサポートされているモデルを開く

Model Garden からセルフデプロイされたモデル

Hugging Face Text Generation Interface(HF TGI)コンテナと Agent Platform Model Garden のビルド済み vLLM コンテナは、Chat Completions API をサポートしています。ただし、これらのコンテナにデプロイされたすべてのモデルが Chat Completions API をサポートしているわけではありません。次の表に、コンテナ別にサポートされている最も一般的なモデルを示します。

HF TGI

vLLM

サポートされるパラメータ

Google モデルの場合、Chat Completions API は次の OpenAI パラメータをサポートしています。各パラメータの説明については、OpenAI のチャット補完の作成に関するドキュメントをご覧ください。サードパーティ モデルのパラメータのサポートはモデルによって異なります。サポートされているパラメータを確認するには、モデルのドキュメントをご覧ください。

messages
  • System message
  • User message: text タイプと image_url タイプがサポートされています。image_url 型は、Cloud Storage URI または "data:<MIME-TYPE>;base64,<BASE64-ENCODED-BYTES>" 形式の Base64 エンコードで保存された画像をサポートします。Cloud Storage バケットを作成してファイルをアップロードする方法については、オブジェクト ストレージを検出するをご覧ください。
  • Assistant message
  • Tool message
  • Function message: このフィールドは非推奨ですが、下位互換性確保のためにサポートされています。
model
detail Gemini 3 より前のモデルの場合、detail フィールドはすべてのメッセージとコンテンツで一貫している必要があります(リクエスト レベル)。Gemini 3 以降の場合、これはパートレベルの `media_resolution` に対応します。詳細については、メディアの解像度をご覧ください。
max_completion_tokens max_tokens のエイリアス。
modalities audioimagetext をサポートします。
max_tokens
n
frequency_penalty
presence_penalty
reasoning_effort レスポンスで使用される時間とトークンの数を構成します。
  • low: 1024
  • medium: 8192
  • high: 24576
レスポンスに思考が含まれていないため、reasoning_effort または extra_body.google.thinking_config のいずれか一つのみを指定できます。
response_format
  • json_object: Gemini API に「application/json」を渡すものとして解釈されます。
  • json_schema: 完全に再帰的なスキーマはサポートされていません。additional_properties はサポートされています。
  • text: Gemini API に「text/plain」を渡すものとして解釈されます。
  • 他の MIME タイプはそのままモデルに渡されます(「application/json」を直接渡すなど)。
seed GenerationConfig.seed に対応します。
stop
stream
temperature
top_p
tools
  • type
  • function
    • name
    • description
    • parameters: OpenAPI 仕様を使用してパラメータを指定します。これは、JSON Schema オブジェクトとして記述される OpenAI パラメータ フィールドとは異なります。OpenAPI と JSON Schema のキーワードの違いについては、OpenAPI ガイドをご覧ください。
tool_choice
  • none
  • auto
  • required: FunctionCallingConfig のモード ANY に対応します。
  • validated: FunctionCallingConfig のモード VALIDATED に対応します。これは Google 固有のものです。
web_search_options GoogleSearch ツールに対応します。サブオプションはサポートされていません。
function_call このフィールドは非推奨ですが、下位互換性確保のためにサポートされています。
functions このフィールドは非推奨ですが、下位互換性確保のためにサポートされています。

サポートされていないパラメータを渡した場合、そのパラメータは無視されます。

マルチモーダル入力パラメータ

Chat Completions API は、選択したマルチモーダル入力をサポートしています。

input_audio
  • data: URI または有効な BLOB 形式。画像、音声、動画など、すべての BLOB タイプがサポートされています。GenerateContent でサポートされているものはすべてサポートされます(HTTP、Cloud Storage など)。
  • format: OpenAI は wav(audio/wav)と mp3(audio/mp3)の両方をサポートしています。Gemini では、有効な MIME タイプはすべてサポートされています。
image_url
  • data: input_audio と同様に、URI または有効な BLOB 形式がサポートされます。
    URL としての image_url はデフォルトで image/* MIME タイプになり、blob データとしての image_url は任意のマルチモーダル入力として使用できます。
  • detail: メディアの解像度と同様に、リクエストの画像あたりの最大トークン数を決定します。OpenAI のフィールドは画像ごとに設定されますが、Gemini はリクエスト全体で同じ詳細を適用します。1 回のリクエストで複数の詳細タイプを渡すと、エラーがスローされます。

一般に、data パラメータは URI、または "data:<MIME-TYPE>;base64,<BASE64-ENCODED-BYTES>" 形式の MIME タイプと Base64 エンコード バイトの組み合わせにできます。MIME タイプの完全なリストについては、GenerateContent をご覧ください。OpenAI の Base64 エンコードの詳細については、OpenAI のドキュメントをご覧ください。

使用方法については、マルチモーダル入力の例をご覧ください。

Gemini 固有のパラメータ

Gemini でサポートされている機能のうち、OpenAI モデルでは利用できないものがいくつかあります。これらの機能はパラメータとして渡すことができますが、extra_content または extra_body 内に含める必要があります。そうしないと無視されます。

extra_body 機能

Gemini 固有の extra_body 機能を含む google フィールドを含めます。

{
  ...,
  "extra_body": {
     "google": {
       ...,
       // Add extra_body features here.
     }
   }
}
safety_settings これは Gemini の SafetySetting に対応します。
cached_content これは Gemini の generateContent.cached_content フィールドに対応します。
thinking_config これは Gemini の GenerationConfig.ThinkingConfig に対応します。
thought_tag_marker 思考が利用可能なモデルで、モデルの思考とレスポンスを分離するために使用されます。
指定しない場合、モデルの思考に関するタグは返されません。存在する場合、後続のクエリでは思考タグが削除され、コンテキストに合わせて思考が適切にマークされます。これにより、後続のクエリに適したコンテキストを維持できます。
stream_function_call_arguments 関数呼び出しの引数を JSON のセグメントとしてストリーミングします。詳細については、 関数呼び出しの引数のストリーミングをご覧ください。
tools `GenerateContent` と同様のツールを指定します。詳細については、Tool をご覧ください。
media_resolution `GenerateContent` と同様に、リクエスト レベルのメディアの解像度を指定します。詳細については、 MediaResolution をご覧ください。

extra_content 件の機能

extra_content を使用すると、無視すべきでない Gemini 固有のコンテンツを指定できます。

Gemini 固有の extra_content 機能を含む google フィールドを含めます。

{
  ...,
  "extra_content": {
     "google": {
       ...,
       // Add extra_content features here.
     }
   }
}
thought このフィールドは、フィールドが思考であるかどうかを明示的にマークし、thought_tag_marker よりも優先されます。思考プロセスのさまざまなステップを区別するのに役立ちます。特に、中間ステップが最終的な回答と誤解される可能性があるツール使用シナリオで役立ちます。入力の特定の部分を思考としてタグ付けすることで、モデルがそれらをユーザー向けのレスポンスではなく内部の推論として扱うように誘導できます。
thought_signature モデルから返された思考を検証するための思考署名を提供するバイト フィールド。このフィールドは、ブール値フィールドである thought とは異なります。詳細については、思考署名をご覧ください。
parts マルチモーダル関数レスポンス部分をモデルに渡すための Tool メッセージに固有のものです。詳細については、 FunctionResponsePartマルチモーダル関数レスポンスをご覧ください。

次のステップ