Gemini OpenAI 兼容格式说明
Fast-Token 支持通过 OpenAI 接口协议 调用 Google Gemini 系列模型。若你已有基于 OpenAI SDK 或 /v1/chat/completions 的应用,通常只需修改 base_url 与 model,即可接入 Gemini,无需改写为 Gemini 原生 API。
本页以使用说明为主;各接口的请求体、响应字段与在线调试,请参阅 ChatGPT 文档 及下方能力对照表中的链接。
两种接入方式
| 对比项 | OpenAI 兼容格式(本页) | Gemini 原生 API(同目录其他文档) |
|---|---|---|
| 典型路径 | POST /v1/chat/completions、POST /v1/embeddings | POST /v1beta/models/{model}:generateContent 等 |
| 请求体 | messages、model、stream 等 OpenAI 字段 | contents、generationConfig 等 Gemini 字段 |
| 适用场景 | 已有 OpenAI 客户端、多模型统一网关、快速迁移 | 需使用 Gemini 独有能力(如 thinkingConfig、Imagen 专用参数等) |
| 文档位置 | 本文 + 聊天 分组 | 本目录「聊天」「图片」「文件」等分组下的接口页 |
两种方式共用同一套 API Key 与网关地址,计费以 模型广场 中对应模型为准。
接入配置
网关与鉴权
- Base URL:
https://fast-token.com/v1(与 快速开始 一致) - 鉴权:请求头
Authorization: Bearer <Fast-Token_API_KEY> - 模型名称:在 模型广场 复制带
gemini的模型 ID,填入model字段
使用 OpenAI SDK(推荐)
将官方 SDK 的 base_url 指向 Fast-Token,其余调用方式与 OpenAI 相同:
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)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 - 通用参数(
temperature、max_tokens、top_p等)行为与 OpenAI 文档一致,详见 创建聊天补全(非流式)
思考模式(思考 1 / 思考 2)
部分 Gemini 思考模型在 流式 请求中可通过扩展字段开启思考输出:
{
"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)。
{
"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中同时提供text与image_url - 请求与响应结构见 创建聊天创作图(非流式)
- 若需精细控制宽高比、分辨率等,可同时参考原生接口 图片生成
聊天 + 读取文件
在 OpenAI 兼容格式下,可将 文档、PDF 等 作为多模态输入的一部分(具体支持的 MIME 类型与大小限制以模型广场说明为准):
- 优先在
messages[].content中按 OpenAI 多模态约定传入(如image_url、或平台支持的文件 URL / Base64 形式) - 大文件或复杂版面解析,建议使用原生 文档理解(
fileData/inlineData),再在业务层把结果并入对话
文本嵌入
- 端点:
POST /v1/embeddings - 请求体:
model+input(字符串或字符串数组),与 OpenAI Embeddings API 一致 - 示例与响应字段见 创建嵌入;嵌入对象结构见 嵌入对象
- 若需
taskType、output_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:见 聊天完成对象。
延伸阅读
- 快速开始 — 首次调用与 API Key
- API 快速开始指南 — Base URL 与客户端配置
- 列出模型 —
GET /v1/models查看可用模型列表 - 本目录其他页面 — Gemini 原生 REST API 的详细参数与示例