跳转到主要内容
Google Gemini 是一个非常强大的 AI 对话系统,通过输入提示就能在几秒内生成流畅自然的回复。本文档主要描述 Gemini Generate Content API 的使用方法,这是 Google 官方原生 API 格式,支持 generateContent 和 streamGenerateContent 两个端点。

与 Chat Completions API 的区别

Gemini Generate Content API 使用 Google 官方原生请求格式(contents 字段),而不是 OpenAI 兼容格式(messages 字段)。如果你已经使用 Google Gemini SDK 或熟悉官方 API 格式,可以直接使用此 API 而无需修改请求格式。

当前支持范围

接口接受文本、图片、视频和音频输入(inlineData 或 fileData)、思考配置及自定义函数声明。音频输出、内置工具和显式上下文缓存等原生字段尚无统一可用性保证,请以具体模型的实际返回为准。 使用 fileData.fileUri 提交音频等文件时,请确保文件可通过 HTTPS 直接访问,不依赖登录态,并让签名链接的有效期覆盖整个请求处理时间。非流式音频分析需要在模型完成处理后才返回结果,可能超过 90 秒;客户端应按文件大小和业务场景设置足够长的总超时,避免在服务端仍在处理时断开连接。

申请流程

使用 Gemini Generate Content API 前,请先访问 Gemini Generate Content API 页面,点击 “获取” 按钮来获得请求所需的凭证。 如果尚未登录或注册,会自动跳转到登录页面。首次申请会有免费额度。

基本用法

Non-Streaming(非流式)

发送 POST 请求到 /v1beta/models/{model}:generateContent:
提示:gemini-3.x 系列 flash 为思考模型,会先消耗 reasoning tokens;请把 generationConfig.maxOutputTokens 设到 512 以上,否则可能只返回空内容。
返回结果示例:
usageMetadata 中的 token 字段会按原生 Gemini 语义计费:
  • promptTokenCount 包含 cachedContentTokenCount,缓存命中的部分按缓存读取价格计算,不会重复计为普通输入。
  • promptTokensDetails 与 cacheTokensDetails 会规范化为 usage.prompt_tokens_details 下的 text_tokens、image_tokens、video_tokens、audio_tokens 及对应 cached_* 明细。这些值分别包含在 prompt_tokens 与 cached_tokens 中;不同模态仅按各自价格重算,不会重复计费。
  • candidatesTokenCount 和 thoughtsTokenCount 均按输出 token 价格计算。
  • toolUsePromptTokenCount 是独立的工具输入 token,按输入 token 价格计算。
Ace Data Cloud 额外返回规范化的 usage 对象,跨模型协议统一从 usage.cost 读取本次调用费用。cost 是可选的费用预览;价格预览暂时不可用时,模型响应仍会正常返回,但可能不包含该字段。最终账单以用量记录为准。

Streaming(流式)

发送 POST 请求到 /v1beta/models/{model}:streamGenerateContent?alt=sse:
流式返回会以 SSE(Server-Sent Events)格式逐步返回内容。中间事件通常只包含增量内容;含权威用量的终态事件会包含 usageMetadata 和规范化的 usage,费用仍位于 usage.cost:
连接关闭即表示流结束;原生 Gemini 流不会发送 data: [DONE]。如果终态价格预览暂时不可用,usage 仍会返回 token 用量,但会省略 cost。

支持的模型

高级功能

系统指令

生成配置

JSON 模式

思考模式(Thinking)

支持思考功能的模型(如 gemini-2.5-flash、gemini-2.5-pro)可以启用思考模式:

函数调用

多轮对话

图片理解

安全设置

可通过 safetySettings 控制内容过滤:

错误处理