generateContent 和 streamGenerateContent 两个端点。
与 Chat Completions API 的区别
Gemini Generate Content API 使用 Google 官方原生请求格式(contents 字段),而不是 OpenAI 兼容格式(messages 字段)。如果你已经使用 Google Gemini SDK 或熟悉官方 API 格式,可以直接使用此 API 而无需修改请求格式。
当前支持范围
当前支持文本、图片、视频、思考配置和自定义函数声明。以下能力暂不开放:- 音频输入或音频输出;
codeExecution、googleSearch、urlContext等内置工具;cachedContent显式上下文缓存。
400,不会静默忽略或按普通文本计费。
申请流程
使用 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 价格计算。
usage 对象,跨模型协议统一从 usage.cost 读取本次调用费用。cost 是可选的费用预览;价格预览暂时不可用时,模型响应仍会正常返回,但可能不包含该字段。最终账单以用量记录为准。
Streaming(流式)
发送 POST 请求到/v1beta/models/{model}:streamGenerateContent?alt=sse:
usageMetadata 和规范化的 usage,费用仍位于 usage.cost:
data: [DONE]。如果终态价格预览暂时不可用,usage 仍会返回 token 用量,但会省略 cost。
支持的模型
高级功能
系统指令
生成配置
JSON 模式
思考模式(Thinking)
支持思考功能的模型(如 gemini-2.5-flash、gemini-2.5-pro)可以启用思考模式:函数调用
多轮对话
图片理解
安全设置
可通过safetySettings 控制内容过滤:

