Gemini 原生端点:generateContent 用法

使用 Gemini 原生协议调用 Gemini 全系列模型:generateContent 结构、多模态输入、system instruction、thinking 配置与流式响应。

端点:https://api.zaimod.com/v1beta/models/{model}:generateContent,与 Google 官方 Gemini API 同构。官方 google-genai SDK 通过自定义 base_url 直连。

用官方 SDK 接入

Python
from google import genai
from google.genai import types

client = genai.Client(
    api_key="sk-your-zaimod-key",
    http_options=types.HttpOptions(base_url="https://api.zaimod.com"),
)

resp = client.models.generate_content(
    model="gemini-3.1-flash-lite-preview",
    contents="用三句话解释 RAG",
)
print(resp.text)

直接 HTTP 调用

Shell
curl "https://api.zaimod.com/v1beta/models/gemini-3.1-flash-lite-preview:generateContent" \
  -H "x-goog-api-key: $ZAIMOD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{"parts": [{"text": "Hello"}]}]
  }'

也可用 OpenAI 兼容头:Authorization: Bearer $ZAIMOD_API_KEY。

请求结构

JSON
{
  "systemInstruction": {"parts": [{"text": "你是一个严谨的编辑。"}]},
  "contents": [
    {"role": "user", "parts": [{"text": "润色这段话:……"}]},
    {"role": "model", "parts": [{"text": "……"}]},
    {"role": "user", "parts": [{"text": "再短一点"}]}
  ],
  "generationConfig": {
    "temperature": 0.3,
    "maxOutputTokens": 2048
  }
}

角色只有 user 和 model 两种,历史需要完整传入。

多模态输入

Gemini 的 parts 可以混排文本与媒体:

JSON
{
  "contents": [{
    "role": "user",
    "parts": [
      {"text": "这张图里是什么产品?"},
      {"inlineData": {"mimeType": "image/jpeg", "data": "<base64>"}}
    ]
  }]
}

支持图片、音频、视频(Gemini 优质分组对视频分析支持最完整)。URL 方式用 fileData 传入。

流式响应

端点换成 :streamGenerateContent?alt=sse:

Shell
curl -N "https://api.zaimod.com/v1beta/models/gemini-3.1-pro-preview:streamGenerateContent?alt=sse" \
  -H "x-goog-api-key: $ZAIMOD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"contents": [{"parts": [{"text": "讲个冷笑话"}]}]}'

SDK 侧:

Python
for chunk in client.models.generate_content_stream(
    model="gemini-3.1-pro-preview",
    contents="讲个冷笑话",
):
    print(chunk.text, end="")

思考模式(thinking 系列模型)

gemini-3.7-flash-thinking-* / gemini-3.8-flash-thinking-* 支持思考预算:

JSON
{
  "contents": [{"parts": [{"text": "证明:任意三角形内角和为180°"}]}],
  "generationConfig": {"thinkingConfig": {"thinkingBudget": 4096}}
}

后缀 -low / -medium / -high 对应不同默认思考强度,直接选后缀即可,无需额外参数。

结构化输出

JSON
{
  "contents": [{"parts": [{"text": "抽取公司名和金额"}]}],
  "generationConfig": {"responseMimeType": "application/json"}
}

在架 Gemini 模型

模型定位
gemini-3.1-flash-lite-preview最低成本日常档
gemini-2.5-flash / 3.5-flash多模态主力
gemini-3.1-pro-preview长上下文旗舰
gemini-3.8-flash 系列编程与 Agent

价格见 价格页。

← Claude 原生端点:/v1/messages 用法 图像与视频模型接入 →