Skip to content

Gemini OpenAI 兼容格式说明

Fast-Token 支持通过 OpenAI 接口协议 调用 Google Gemini 系列模型。若你已有基于 OpenAI SDK 或 /v1/chat/completions 的应用,通常只需修改 base_urlmodel,即可接入 Gemini,无需改写为 Gemini 原生 API。

本页以使用说明为主;各接口的请求体、响应字段与在线调试,请参阅 ChatGPT 文档 及下方能力对照表中的链接。

两种接入方式

对比项OpenAI 兼容格式(本页)Gemini 原生 API(同目录其他文档)
典型路径POST /v1/chat/completionsPOST /v1/embeddingsPOST /v1beta/models/{model}:generateContent
请求体messagesmodelstream 等 OpenAI 字段contentsgenerationConfig 等 Gemini 字段
适用场景已有 OpenAI 客户端、多模型统一网关、快速迁移需使用 Gemini 独有能力(如 thinkingConfig、Imagen 专用参数等)
文档位置本文 + 聊天 分组本目录「聊天」「图片」「文件」等分组下的接口页

两种方式共用同一套 API Key 与网关地址,计费以 模型广场 中对应模型为准。

接入配置

网关与鉴权

  • 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 图片创作根据文本(及可选参考图)生成或编辑图像创建聊天创作图(非流式)
聊天接口标准多轮文本对话,支持流式 / 非流式非流式流式
聊天接口 - 思考 1支持模型「思考」过程的对话(变体一)流式extra_body.enable_thinking
聊天接口 - 思考 2支持模型「思考」过程的对话(变体二)同上;具体模型以模型广场为准
识图接口上传图片,进行理解、描述或问答识图(流式)识图(非流式)
聊天 + 读取文件在对话中附带文档等内容进行分析见下文「文件与多模态」
文本嵌入将文本转为向量创建嵌入

模型选择

各场景对应的 模型 ID模型广场 为准。名称中带 gemini、且标注支持对应对话 / 识图 / 生图 / 嵌入能力的模型均可尝试;若返回「模型不存在」或能力不支持,请换用同场景下的其他 Gemini 模型条目。

各场景使用要点

标准聊天

  • 端点:POST /v1/chat/completions
  • 使用 messages 数组维护多轮对话;role 支持 system / 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(如思考 token 预算),请改用本目录下的 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)见 图片理解

图片创作

  • 通过聊天接口 + 图像类 Gemini 模型 完成文生图、参考图编辑等
  • messages 中用自然语言描述需求;需要参考图时,在 content 中同时提供 textimage_url
  • 请求与响应结构见 创建聊天创作图(非流式)
  • 若需精细控制宽高比、分辨率等,可同时参考原生接口 图片生成

聊天 + 读取文件

在 OpenAI 兼容格式下,可将 文档、PDF 等 作为多模态输入的一部分(具体支持的 MIME 类型与大小限制以模型广场说明为准):

  1. 优先在 messages[].content 中按 OpenAI 多模态约定传入(如 image_url、或平台支持的文件 URL / Base64 形式)
  2. 大文件或复杂版面解析,建议使用原生 文档理解fileData / inlineData),再在业务层把结果并入对话

文本嵌入

  • 端点:POST /v1/embeddings
  • 请求体:model + input(字符串或字符串数组),与 OpenAI Embeddings API 一致
  • 示例与响应字段见 创建嵌入;嵌入对象结构见 嵌入对象
  • 若需 taskTypeoutput_dimensionality 等 Gemini 专有选项,请使用 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:见 聊天完成对象

延伸阅读