Skip to main content

Gemini 流式对话示例

以下示例展示如何使用Gemini的 /v1beta/models/{model}:streamGenerateContent 接口进行流式文本生成。

快速开始

只需要替换 <API-KEY> 为你的实际API密钥即可运行。
curl -X POST "https://model-api.skyengine.com.cn/v1beta/models/gemini-2.5-flash:streamGenerateContent" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <API-KEY>" \
  -d '{
    "contents": [
      {
        "parts": [
          {
            "text": "讲个300个字的故事"
          }
        ]
      }
    ],
    "generationConfig": {
      "maxOutputTokens": 3000,
      "temperature": 0.7
    }
  }' \
  --no-buffer

Gemini流式响应格式

data: {"sdkHttpResponse":{"headers":{"Alt-Svc":["h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"],"Content-Disposition":["attachment"],"Content-Type":["text/event-stream"],"Date":["Tue, 23 Sep 2025 10:26:07 GMT"],"Server":["scaffolding on HTTPServer2"],"Vary":["Origin","X-Origin","Referer"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"],"X-Xss-Protection":["0"]}},"candidates":[{"content":{"parts":[{"text":"小丽独自一人在后院荡秋千,阳光暖洋洋地洒在她身上,却驱不散她心头一丝淡淡的无聊。她踢着脚下的泥土,突然,一抹异样的光亮吸引了她的目光。\n\n她好奇地跳下秋千,拨开"}],"role":"model"}}],"createTime":"2025-09-23T10:25:59.125309Z","modelVersion":"gemini-2.5-flash","responseId":"446d21a1adfb4964ad98073db9eade14","usageMetadata":{"trafficType":"ON_DEMAND"}}

.
.
.

data: {"sdkHttpResponse":{"headers":{"Alt-Svc":["h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"],"Content-Disposition":["attachment"],"Content-Type":["text/event-stream"],"Date":["Tue, 23 Sep 2025 10:26:07 GMT"],"Server":["scaffolding on HTTPServer2"],"Vary":["Origin","X-Origin","Referer"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"],"X-Xss-Protection":["0"]}},"candidates":[{"content":{"parts":[{"text":"\n\n小丽决定把这颗发光的石头藏起来,成为她最珍贵的秘密。每当夜幕降临,她都会偷偷拿出它,感受那份独一无二的温暖与慰藉。她知道,这不仅仅是一块普通的石头,更是她童年中最璀璨的奇迹。"}],"role":"model"}}],"createTime":"2025-09-23T10:25:59.125309Z","modelVersion":"gemini-2.5-flash","responseId":"446d21a1adfb4964ad98073db9eade14","usageMetadata":{"trafficType":"ON_DEMAND"}}

data: {"sdkHttpResponse":{"headers":{"Alt-Svc":["h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"],"Content-Disposition":["attachment"],"Content-Type":["text/event-stream"],"Date":["Tue, 23 Sep 2025 10:26:07 GMT"],"Server":["scaffolding on HTTPServer2"],"Vary":["Origin","X-Origin","Referer"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"],"X-Xss-Protection":["0"]}},"candidates":[{"content":{"parts":[{}],"role":"model"},"finishReason":"STOP"}],"createTime":"2025-09-23T10:25:59.125309Z","modelVersion":"gemini-2.5-flash","responseId":"446d21a1adfb4964ad98073db9eade14","usageMetadata":{"candidatesTokenCount":247,"candidatesTokensDetails":[{"modality":"TEXT","tokenCount":247}],"promptTokenCount":8,"promptTokensDetails":[{"modality":"TEXT","tokenCount":8}],"thoughtsTokenCount":1324,"totalTokenCount":1579,"trafficType":"ON_DEMAND"}}

重要参数说明

  • streamGenerateContent: 使用专门的流式端点
  • candidates: 包含生成的候选内容
  • parts: 每个部分包含文本片段
  • finishReason: 生成结束的原因