將 OpenAI 程式庫與 Gemini Enterprise Agent Platform 搭配使用

Chat Completions API 是與 OpenAI 相容的端點,可讓您在 Gemini Enterprise Agent Platform 上,使用 OpenAI 的 Python 和 REST 程式庫,輕鬆與 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

支援的參數

Chat Completions API 支援下列 Google 模型的 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 bucket 並上傳檔案,請參閱「探索物件儲存庫」。
  • Assistant message
  • Tool message
  • Function message:這個欄位已淘汰,但仍支援回溯相容性。
model
detail 如果是 Gemini 3 之前的模型,所有訊息和內容的 detail 欄位必須一致 (屬於要求層級)。在 Gemini 3 以上版本,這會對應至部分層級的 `media_resolution`。詳情請參閱「媒體解析度」。
max_completion_tokens max_tokens 的別名。
modalities 支援 audio、image 和 text。
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:解讀為將「application/json」傳遞至 Gemini API。
  • json_schema。不支援 完全遞迴結構定義。支援 additional_properties。
  • text:解讀為將「text/plain」傳遞至 Gemini API。
  • 任何其他 MIME 類型都會直接傳遞至模型,例如直接傳遞「application/json」。
seed 對應至 GenerationConfig.seed。
stop
stream
temperature
top_p
tools
  • type
  • function
    • name
    • description
    • parameters:使用 OpenAPI 規格指定參數。這與 OpenAI 參數欄位不同,後者會描述為 JSON 結構定義物件。如要瞭解 OpenAPI 和 JSON 結構定義之間的關鍵字差異,請參閱 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 格式。
    請注意,image_url 做為網址時,預設會採用 image/* MIME 類型,而 image_url 做為 blob 資料時,則可做為任何多模態輸入內容。
  • detail:與媒體解析度類似,這項設定會決定要求中每張圖片的權杖數量上限。請注意,OpenAI 的欄位是依圖片設定,Gemini 則會對整個要求強制執行相同的詳細程度,在單一要求中傳遞多個詳細程度類型會擲回錯誤。

一般來說,data 參數可以是 URI,也可以是 MIME 類型和 Base64 編碼位元組的組合,格式為 "data:<MIME-TYPE>;base64,<BASE64-ENCODED-BYTES>"。如需 MIME 類型的完整清單,請參閱 GenerateContent。如要進一步瞭解 OpenAI 的 base64 編碼,請參閱相關說明文件。

如需使用方式,請參閱多模態輸入範例。

Gemini 專屬參數

Gemini 支援多項 OpenAI 模型不具備的功能。這些特徵仍可做為參數傳入,但必須包含在 extra_content 或 extra_body 中,否則會遭到忽略。

extra_body 項功能

加入 google 欄位,以包含任何 Gemini 專屬 extra_body 功能。

{
  ...,
  "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 專屬內容,避免遭到忽略。

加入 google 欄位,以包含任何 Gemini 專屬 extra_content 功能。

{
  ...,
  "extra_content": {
     "google": {
       ...,
       // Add extra_content features here.
     }
   }
}
thought 這個欄位會明確標示欄位是否為思考,且優先順序高於 thought_tag_marker。這有助於區分思考過程中的不同步驟,尤其是在使用工具時,中間步驟可能會被誤認為最終答案。只要將輸入內容的特定部分標記為思考,就能引導模型將這些內容視為內部推論,而非面向使用者的回覆。
thought_signature 這個位元組欄位提供思考簽章,用於驗證模型傳回的思考。這個欄位與 thought 不同,後者是布林值欄位。詳情請參閱「思考簽章」。
parts 工具訊息專用,用於將多模態函式回覆部分傳回模型。 詳情請參閱「 FunctionResponsePart」和「多模態函式回覆」。

後續步驟