外观
流式生成内容(Gemini)
POST
https://vip.zen-ai.top/v1beta/models/{model}:streamGenerateContent与 生成内容 的请求体完全相同,区别是结果以流的形式逐段返回。请加上查询参数 alt=sse,响应即为标准 SSE,每个 data: 事件是一个 GenerateContentResponse 片段。
请求头
x-goog-api-keystring必填你的令牌 sk-xxxx。
Content-Typestring必填application/json
路径与查询参数
modelstring必填模型名称,写在路径中。
altstring设为 sse 时返回 SSE 事件流;不加时返回一个逐步输出的 JSON 数组。
请求体
与 生成内容 相同:contents、systemInstruction、generationConfig、tools 等。
响应
每个事件的 data 是一个响应片段,增量文本位于 candidates[0].content.parts[].text;最后一个片段带有 finishReason 与完整的 usageMetadata。
请求示例
bash
curl -N "https://vip.zen-ai.top/v1beta/models/gemini-3.5-flash:streamGenerateContent?alt=sse" \
-H "x-goog-api-key: $VIP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{"role": "user", "parts": [{"text": "写一篇 300 字的短文:清晨的菜市场。"}]}
]
}'python
from google import genai
from google.genai import types
client = genai.Client(
api_key="sk-xxxxxxxx",
http_options=types.HttpOptions(base_url="https://vip.zen-ai.top"),
)
for chunk in client.models.generate_content_stream(
model="gemini-3.5-flash",
contents="写一篇 300 字的短文:清晨的菜市场。",
):
print(chunk.text or "", end="", flush=True)响应示例
text
data: {"candidates":[{"content":{"parts":[{"text":"天刚蒙蒙亮,"}],"role":"model"},"index":0}],"modelVersion":"gemini-3.5-flash"}
data: {"candidates":[{"content":{"parts":[{"text":"菜市场里已经人声鼎沸……"}],"role":"model"},"index":0}],"modelVersion":"gemini-3.5-flash"}
data: {"candidates":[{"content":{"parts":[{"text":""}],"role":"model"},"finishReason":"STOP","index":0}],"usageMetadata":{"promptTokenCount":16,"candidatesTokenCount":412,"totalTokenCount":428},"modelVersion":"gemini-3.5-flash"}