API 参考
Gemini generateContent 原生接口
Gemini 原生接口 generateContent 的请求头、路径、参数、请求与响应示例。格式与 Google Gemini API 一致,Google Gen AI SDK 改 base URL 即可使用,已在本站实测。
Gemini 原生接口按 Google Gemini API 的格式收发数据:模型名写在 URL 路径里,请求体用 contents 和 parts 组织对话,生成参数放进 generationConfig。已经用 Google Gen AI SDK 写好的代码,把 base URL 改成 https://open.tutujin.com 即可。本接口(generateContent)已在本站实测。
https://open.tutujin.com/v1beta/models/gemini-3.8-flash:generateContent路径格式是 /v1beta/models/模型名:generateContent,把模型名换成你要调用的模型,请求体里不需要再写 model。
请求头
| 请求头 | 必填 | 说明 |
|---|---|---|
x-goog-api-key | 二选一 | 控制台创建的 API Key(sk-...)。Google Gen AI SDK 默认用这个请求头 |
Authorization | 二选一 | Bearer sk-...,和 x-goog-api-key 任选一种 |
Content-Type | 是 | application/json |
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
contents | array | 是 | 对话内容,按时间顺序排列。每项包含 role(user 或 model)和 parts |
contents[].parts | array | 是 | 内容片段。文本写 {"text": "..."};图片、PDF 等用 inlineData,包含 mimeType 和 base64 编码的 data |
systemInstruction | object | 否 | 系统提示词,结构和一条内容相同,例如 {"parts": [{"text": "..."}]} |
generationConfig | object | 否 | 生成参数,见下表 |
safetySettings | array | 否 | 按类别设置安全过滤阈值 |
tools | array | 否 | 工具,例如 functionDeclarations 函数声明 |
toolConfig | object | 否 | 函数调用模式,例如只允许调用指定函数 |
generationConfig
| 字段 | 类型 | 说明 |
|---|---|---|
temperature | number | 采样温度,越高越发散 |
topP | number | 核采样 |
topK | integer | 只从概率最高的 K 个 token 里采样 |
maxOutputTokens | integer | 本次最多生成多少 tokens |
stopSequences | array | 遇到这些字符串时停止生成 |
responseMimeType | string | 设为 application/json 时要求输出 JSON |
responseSchema | object | 配合 JSON 输出使用的结构定义 |
thinkingConfig | object | 思考配置,例如 {"thinkingBudget": 1024};支持的字段因模型而异 |
candidateCount | integer | 返回几个候选回答 |
请求示例
curl "https://open.tutujin.com/v1beta/models/gemini-3.8-flash:generateContent" \
-H "x-goog-api-key: $TUTUJIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"systemInstruction": {"parts": [{"text": "你是电商运营助手,回答简洁。"}]},
"contents": [
{"role": "user", "parts": [{"text": "给一款 500ml 保温杯写 3 个卖点"}]}
],
"generationConfig": {"temperature": 0.7, "maxOutputTokens": 512}
}'import os
from google import genai
from google.genai import types
client = genai.Client(
api_key=os.environ["TUTUJIN_API_KEY"],
http_options=types.HttpOptions(base_url="https://open.tutujin.com"),
)
resp = client.models.generate_content(
model="gemini-3.8-flash",
contents="给一款 500ml 保温杯写 3 个卖点",
config=types.GenerateContentConfig(
system_instruction="你是电商运营助手,回答简洁。",
temperature=0.7,
max_output_tokens=512,
),
)
print(resp.text)
print(resp.usage_metadata)import { GoogleGenAI } from '@google/genai'
const ai = new GoogleGenAI({
apiKey: process.env.TUTUJIN_API_KEY,
httpOptions: { baseUrl: 'https://open.tutujin.com' },
})
const resp = await ai.models.generateContent({
model: 'gemini-3.8-flash',
contents: '给一款 500ml 保温杯写 3 个卖点',
config: {
systemInstruction: '你是电商运营助手,回答简洁。',
temperature: 0.7,
maxOutputTokens: 512,
},
})
console.log(resp.text)
console.log(resp.usageMetadata)SDK 会在 base URL 后面拼接 /v1beta/models/...,所以 base URL 只填站点根地址。
响应示例
{
"candidates": [
{
"content": {
"role": "model",
"parts": [{ "text": "1. 双层真空,保温 12 小时……" }]
},
"finishReason": "STOP",
"index": 0
}
],
"usageMetadata": {
"promptTokenCount": 28,
"candidatesTokenCount": 96,
"totalTokenCount": 124
},
"modelVersion": "gemini-3.8-flash"
}| 字段 | 说明 |
|---|---|
candidates[].content.parts[].text | 模型的回答,可能分成多个片段 |
candidates[].finishReason | STOP 正常结束;MAX_TOKENS 达到生成上限;SAFETY 被安全过滤拦截 |
usageMetadata.promptTokenCount | 输入 tokens,按输入单价计费 |
usageMetadata.candidatesTokenCount | 输出 tokens,按输出单价计费 |
usageMetadata.thoughtsTokenCount | 思考 tokens,开启思考的模型才有,计入输出 |
usageMetadata.cachedContentTokenCount | 命中缓存的输入 tokens,出现时按缓存读取价计费 |
流式输出
Gemini 的流式接口路径是 /v1beta/models/模型名:streamGenerateContent?alt=sse,SDK 里对应 generate_content_stream(Python)和 generateContentStream(Node.js)。
流式请求会按原格式转发,但本站没有单独实测 Gemini 原生格式的流式输出,上线前请先用小流量自测。也可以改用 Chat Completions 格式调用目录里支持该接口的 Gemini 模型,用 "stream": true 获取流式输出。
注意事项
- 模型名写在 URL 路径里,大小写要和模型广场一致。
- 对话里模型一方的
role是model,不是assistant。 - 图片、PDF 等文件用
inlineData以 base64 放进请求体;文件越大,请求体越大,注意控制大小。 - 开启思考的模型,思考 tokens 计入输出,可以用
thinkingConfig控制预算。 - 不同 Gemini 分组的线路和价格不同,见选择分组。同一个 Gemini 模型通常也可以用 Chat Completions 调用,方便和其他厂商的模型共用一套代码。
支持此接口的模型
| 模型 | 厂商 | 最低价分组 | 输入 ¥/百万 | 输出 ¥/百万 | 按次 ¥/次 |
|---|---|---|---|---|---|
| gemini-3.8-flash | 标准 | ¥1.5 | ¥7.5 | — | |
| gemini-3.1-pro-preview | 标准 | ¥4 | ¥24 | — | |
| gemini-2.5-flash-image | Gemini 优质 | — | — | ¥0.16 | |
| Nano-banana | Gemini 优质 | — | — | ¥0.16 | |
| gemini-nano-banana-2.1 | 标准 | — | — | ¥0.2 | |
| gemini-nano-banana-2.1-2k | 标准 | — | — | ¥0.2 | |
| gemini-nano-banana-2.1-4k | 标准 | — | — | ¥0.2 | |
| gemini-3.1-flash-lite-image | Gemini 优质 | — | — | ¥0.2 |
价格为人民币,取各模型最低价分组;价格更新于 2026年11月12日 20:17。
共 63 个模型支持此接口,上表列出其中一部分。 在模型广场查看全部
没找到答案?加客服微信 JsnonoChat,发送报错信息里的 request id,我们帮你排查。