• 直接使用 Google Generative Language 原生结构
  • 保留 contents、parts、generationConfig 等原生字段
  • 需要视频理解、长音频、原生 grounding 时优先用这条路
POST/v1beta/models/gemini-2.5-pro:generateContent

认证

string必填

所有接口均使用 Bearer Token 进行认证。

也兼容 x-goog-api-key。

获取 API Key:访问控制台 创建。

请求时在请求头中添加:

Authorization: Bearer YOUR_OAIRoute_KEY

请求参数

array必填

对话内容数组。与 OpenAI 的 messages 不同,角色只有 user 与 model。

contents[] 的元素字段 · 5 项
string可选

取值 user 或 model。首轮通常省略。

array必填

内容片段数组,一个 part 可以是一段文本、一张图或一段音频。

string可选

文本片段。

object可选

内联二进制数据,含 mime_type 与 data(Base64)。

object可选

已上传文件的引用,含 mime_type 与 file_uri。

object可选

系统指令,结构与 contents 的一项相同。

generationConfig 的元素字段 · 7 项
number可选

采样温度。

number可选

核采样阈值。

integer可选

每步采样的候选数量。

integer可选

输出 token 上限。

array可选

停止序列。

string可选

设为 application/json 时要求输出 JSON。

object可选

配合上面的 JSON 输出,给出字段结构。

array可选

安全过滤等级设置,按类别分别指定阈值。

array可选

工具清单,支持 functionDeclarations、googleSearch、codeExecution。

响应

array

候选回复数组。

candidates[] 的元素字段 · 2 项
array

回复内容片段。

string

结束原因。STOP 正常结束,MAX_TOKENS 触达上限,SAFETY 被安全策略拦截。

usageMetadata 的元素字段 · 3 项
integer

输入 token 数。

integer

输出 token 数。

integer

两者之和。

与 OpenAI 结构的差异

OpenAIGemini 原生
messagescontents
role: assistantrole: model
content 字符串parts 数组
temperature 在顶层在 generationConfig 里
max_tokensmaxOutputTokens

Gemini 的参数名是驼峰式(maxOutputTokens、topP),与 OpenAI 的下划线风格不同。从 OpenAI 迁过来时最容易在这里出错。

支持的模型列表

以下模型均可通过本接口调用,清单由模型目录自动生成,实际可用范围以你的账号分组为准:

Google 系列

  • gemini-4-argon旗舰,多模态
  • gemini-3.8-flash主力,速度快
  • gemini-3.5-flash-lite轻量,批量任务
  • gemini-3-pro-image图像生成 等

Google 图像 系列

  • gemini-3-pro-image旗舰,4K 输出与文字渲染强
  • gemini-3.1-flash-image轻量,适合批量 等

Google 语音 系列

  • gemini-3.1-flash-tts-preview轻量语音合成,多语言 等

更多模型持续更新中…

想按上下文长度、价格或能力标签挑选模型,可查阅 模型列表元数据接口,或直接读取 GET /api/pricing。

错误码

错误响应的格式、状态码与重试建议见错误码与限流,常见报错的排查步骤见常见问题。

使用示例

基础对话

Gemini 原生的消息字段叫 contents,角色用 user 与 model,正文放在 parts 数组里。生成参数统一收进 generationConfig。

多轮对话

历史轮次按顺序放进 contents,模型回复的角色写 model。同样不需要服务端保存会话。

系统提示词

Gemini 的系统提示走独立的 systemInstruction 字段,不放在 contents 里。

生成参数

temperature、maxOutputTokens、topP 都放在 generationConfig 下,不在顶层。

流式输出

路径换成 streamGenerateContent 并加 alt=sse,返回 SSE 事件流,每个事件是一段 JSON。

图片输入

图片作为 inline_data 或 file_data 放进 parts,和文字并列。

结构化输出

在 generationConfig 里设 responseMimeType 为 application/json,并用 responseSchema 约束字段,返回的 text 可以直接解析。