generateContent 是 Gemini API 的核心接口,用于接收多模态输入并返回结构化生成结果;需构造含 model 和 contents 的 JSON 请求,支持文本、图像、音频、视频及 PDF 混合输入,响应含 candidates、safety_ratings 等关键字段。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您正在使用 Gemini API 构建生成式 AI 应用,generateContent 是您必须调用的核心接口。该方法负责接收输入内容(如文本、图片、视频等多模态提示),交由模型推理,并返回结构化的生成结果。以下是该接口的详细解析:
一、基础请求结构与必需参数
调用 generateContent 必须构造符合 REST 或 gRPC 协议的请求体,其中 content 字段为必填项,用于封装用户输入的多模态数据。请求需携带有效 API 密钥,并指定模型名称(如 gemini-1.5-flash)。
1、构建 JSON 请求体,根对象包含 model 和 contents 两个顶层字段。
2、在 contents 数组中,每个元素为一个 Part 对象,至少包含 text 字段或 inline_data 字段之一。
3、若传入图片,需将图像二进制数据 Base64 编码后填入 inline_data.data,并设置 mime_type 为 image/png 或 image/jpeg。
4、发送 POST 请求至 https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent?key={API_KEY}。
二、支持的输入类型组合方式
generateContent 接口原生支持文本、图像、音频、视频及 PDF 的混合输入,所有模态均通过 contents 数组中的不同 Part 类型表达,系统自动识别并路由至对应编码器。
1、纯文本输入:contents 数组仅含一个 text 类型 Part,value 为 UTF-8 字符串。
2、图文混合输入:contents 数组包含一个 text 类型 Part 和一个 inline_data 类型 Part,后者承载 Base64 图像数据。
3、多图输入:contents 数组包含多个 inline_data 类型 Part,每个均带独立 mime_type 和 data。
4、PDF 文件输入:将 PDF 二进制 Base64 编码后填入 inline_data.data,mime_type 设为 application/pdf。
三、响应结构关键字段解析
成功响应返回 JSON 对象,核心为 candidates 数组,每个 candidate 包含 content 字段,其 parts 数组即模型生成的输出片段。安全过滤与候选状态信息位于 safety_ratings 和 finish_reason 字段中。
1、读取 candidates[0].content.parts[0].text 获取首条生成文本内容。
使用AIsa生成图像与视频。仅需一个API密钥即可调用Gemini 3 Pro Image(图像)和Qwen Wan 2.6(视频)。
2、检查 finish_reason 字段值是否为 STOP,确认生成正常终止;若为 MAX_TOKENS 则表示被截断。
3、遍历 safety_ratings 数组,比对 category 与 blocked 状态,判断是否触发内容安全拦截。
4、若需流式响应,改用 generateContentStream 端点,响应体为 Server-Sent Events 格式。
四、常见错误码与定位方式
HTTP 状态码直接反映请求合法性与服务可用性。4xx 错误通常源于客户端构造问题,5xx 错误则指向服务侧异常,需结合 error.details 字段进一步识别具体原因。
1、400 Bad Request:检查 contents 是否为空数组、Part 中 text 与 inline_data 是否同时存在、Base64 数据是否格式错误。
2、403 Forbidden:验证 API 密钥是否启用 Gemini API 服务、配额是否耗尽、项目是否绑定计费账户。
3、429 Too Many Requests:确认是否超出每分钟请求数或每分钟令牌数限制,需引入指数退避重试逻辑。
4、500 Internal Error:记录 request_id 并联系 Google Cloud 支持团队,该错误不可由客户端修复。
五、请求头与认证配置要点
除 API 密钥外,部分部署场景需显式声明请求头以确保兼容性与性能。Authorization 头非必需(因 key 参数已提供认证),但 Accept 和 Content-Type 头必须严格匹配。
1、设置 Content-Type 为 application/json,禁止使用 multipart/form-data。
2、设置 Accept 为 application/json,避免服务端返回非 JSON 格式响应。
3、如需跨区域调用,添加 x-goog-user-project 头,值为对应结算项目的 ID。
4、对于企业级部署,可附加 x-goog-api-client 头,标识 SDK 版本与运行环境信息。

















