将 OpenAI 库与 Vertex AI 搭配使用

Chat Completions API 可用作与 Open AI 兼容的端点,旨在通过使用 Python 和 REST 的 OpenAI 库,让您更轻松地与 Vertex AI 上的 Gemini 交互。如果您已经在使用 OpenAI 库,则可以使用此 API 以低成本的方式在调用 OpenAI 模型和 Vertex AI 托管模型之间切换,以比较输出、成本和可伸缩性,而无需更改现有代码。如果您尚未使用 OpenAI 库,我们建议您使用 Google Gen AI SDK

支持的模型

Chat Completions API 同时支持 Gemini 模型和来自 Model Garden 的部分自行部署模型。

Gemini 模型

以下模型支持 Chat Completions API:

来自 Model Garden 的自行部署模型

Hugging Face 文本生成接口 (HF TGI)Vertex AI Model Garden 预构建 vLLM 容器支持 Chat Completions API。不过,并非部署到这些容器中的所有模型都支持 Chat Completions API。下表包含按容器列出的最常用受支持模型:

HF TGI

vLLM

支持的参数

对于 Google 模型,Chat Completions API 支持以下 OpenAI 参数。如需了解每个参数的说明,请参阅 OpenAI 有关创建聊天补全的文档。 针对第三方模型的参数支持因模型而异。如需查看支持的参数,请参阅模型的文档。

messages
  • System message
  • User message:支持 textimage_url 类型。image_url 类型支持以 "data:<MIME-TYPE>;base64,<BASE64-ENCODED-BYTES>" 形式采用 Cloud Storage URI 或 base 64 编码存储的图片。如需了解如何创建 Cloud Storage 存储桶并向其中上传文件,请参阅探索对象存储。 不支持 detail 选项。
  • Assistant message
  • Tool message
  • Function message:此字段已弃用,但仍受支持,以实现向后兼容性。
model
max_tokens
n
frequency_penalty
presence_penalty
response_format
  • json_object:解释为将“application/json”传递给 Gemini API。
  • text:解释为将“text/plain”传递给 Gemini API。
  • 任何其他 MIME 类型都会按原样传递给模型,例如直接传递“application/json”。
stop
stream
temperature
top_p
tools
  • type
  • function
    • name
    • description
    • parameters:使用 OpenAPI 规范指定参数。该字段与 OpenAPI 参数字段不同,后者被描述为 JSON 架构对象。如需了解 OpenAPI 和 JSON 架构的关键字有何差异,请参阅 OpenAPI 指南
tool_choice
  • none
  • auto
  • required:对应于 FunctionCallingConfig 中的 ANY 模式。
function_call 此字段已弃用,但仍受支持,以实现向后兼容性。
functions 此字段已弃用,但仍受支持,以实现向后兼容性。

如果您传递任何不受支持的参数,系统会忽略该参数。

多模态输入参数

Chat Completions API 支持部分多模态输入。

input_audio
  • data: 任何 URI 或有效的 blob 格式。我们支持所有 blob 类型,包括图片、音频和视频。支持 GenerateContent 支持的任何内容(HTTP、Cloud Storage 等)。
  • format: OpenAI 同时支持 wav(音频/wav)和 mp3(音频/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 编码,请参阅 OpenAI 的文档

如需了解用法,请参阅我们的多模态输入示例

Gemini 专用参数

Gemini 支持的多项功能在 OpenAI 模型中不可用。这些功能仍然可以作为参数传入,但必须包含在 extra_contentextra_body 中,否则会被忽略。

extra_body 个功能

safety_settings 这对应于 Gemini 的 SafetySetting
cached_content 这对应于 Gemini 的 GenerateContentRequest.cached_content
thought_tag_marker 对于支持思考功能的模型,用于将模型的想法与其回答分开。
如果未指定,系统将不会在模型的想法周围返回任何标记。如果存在,后续查询将会移除想法标记,并根据上下文对想法进行适当标记。这有助于为后续查询保留适当的上下文。

后续步骤