12API logo12API
API 手册

Gemini Generate Content

Gemini 原生生成内容接口

Gemini Generate Content 适合使用 Gemini 原生格式的项目,支持文本、多模态输入、函数调用、JSON 输出和流式返回。

接口概览

能力方法路径
生成内容POST/v1beta/models/{model}:generateContent
流式生成POST/v1beta/models/{model}:streamGenerateContent

Gemini 原生格式使用 Query 参数认证:

?key=$API_KEY

请求体

参数类型必填说明
contentsarray当前对话内容
systemInstructionobject系统指令
generationConfigobject生成参数
toolsarray函数调用、代码执行等工具
toolConfigobject工具调用配置
safetySettingsarray安全过滤配置
cachedContentstring缓存内容名称
labelsobject请求标签

contents

参数类型必填说明
rolestringusermodelfunctiontool
partsarray内容块数组

parts

字段说明
text文本内容
inlineDatabase64 媒体内容
fileData文件 URI 引用
functionCall模型发起的函数调用
functionResponse工具调用结果

字段大小写

Gemini API 的类型定义使用 lowerCamelCase,例如 systemInstructiongenerationConfiginlineDatamimeType。Google REST 示例里有时会出现 inline_datamime_type 这类 snake_case 写法;如果遇到客户端兼容问题,优先使用官方 SDK 或保持同一种写法。

请求示例

curl "https://cdn.12ai.org/v1beta/models/gemini-3-pro-preview:generateContent?key=$API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [{"text": "用一句话解释 Gemini API"}]
    }]
  }'
from google import genai

client = genai.Client(
    api_key="sk-xxx",
    http_options={"base_url": "https://cdn.12ai.org"},
)

response = client.models.generate_content(
    model="gemini-3-pro-preview",
    contents="用一句话解释 Gemini API",
)

print(response.text)
{
  "contents": [
    {"role": "user", "parts": [{"text": "我有两只狗。"}]},
    {"role": "model", "parts": [{"text": "好的。"}]},
    {"role": "user", "parts": [{"text": "它们一共有几条腿?"}]}
  ]
}
{
  "contents": [{
    "parts": [{"text": "列出 3 个常见 HTTP 状态码,返回 JSON"}]
  }],
  "generationConfig": {
    "responseMimeType": "application/json"
  }
}
curl "https://cdn.12ai.org/v1beta/models/gemini-3-pro-preview:streamGenerateContent?alt=sse&key=$API_KEY" \
  -H "Content-Type: application/json" \
  --no-buffer \
  -d '{
    "contents": [{
      "parts": [{"text": "写一个很短的故事"}]
    }]
  }'

响应结构

字段类型说明
candidatesarray候选输出
usageMetadataobjecttoken 用量
modelVersionstring模型版本
responseIdstring响应 ID
promptFeedbackobject提示词过滤或拦截信息,可能为空

candidates

字段说明
content.parts输出内容块
finishReason停止原因,例如 STOPMAX_TOKENSSAFETY
safetyRatings安全评分

响应示例

{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "text": "Gemini API 是 Google Gemini 模型的原生内容生成接口。"
          }
        ],
        "role": "model"
      },
      "finishReason": "STOP",
      "index": 0
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 8,
    "candidatesTokenCount": 18,
    "totalTokenCount": 26
  },
  "modelVersion": "gemini-3-pro-preview",
  "responseId": "response_xxx"
}

多模态输入

图片、音频、视频、PDF 等文件建议使用 inlineData 传入 base64 内容。

{
  "contents": [{
    "parts": [
      {"text": "描述这张图片"},
      {
        "inlineData": {
          "mimeType": "image/jpeg",
          "data": "<BASE64_IMAGE_DATA>"
        }
      }
    ]
  }]
}

函数调用

{
  "contents": [{
    "parts": [{"text": "把灯调成蓝色"}]
  }],
  "tools": [{
    "functionDeclarations": [{
      "name": "set_light_color",
      "description": "设置灯光颜色",
      "parameters": {
        "type": "object",
        "properties": {
          "color": {"type": "string"}
        },
        "required": ["color"]
      }
    }]
  }]
}

生成配置

参数说明
generationConfig.temperature随机性
generationConfig.topP核采样参数
generationConfig.topKTop-K 采样
generationConfig.maxOutputTokens最大输出 token 数
generationConfig.responseMimeType输出 MIME 类型,例如 application/json
generationConfig.responseSchema结构化输出 schema

常见错误

状态码Gemini 状态处理方式
400INVALID_ARGUMENT检查 contents、参数大小写和 JSON 结构
401UNAUTHENTICATED检查 ?key=$API_KEY
404NOT_FOUND检查模型名和路径
429RESOURCE_EXHAUSTED降低频率或稍后重试
500INTERNAL重试;如持续出现,联系支持

更多参数细节可参考 Google Gemini Generate Content API

On this page