Gemini generateContent uç noktasının akış (streaming) sürümüdür. Server-Sent Events döndürür.
Yol Parametreleri
Model adı (örneğin, gemini-2.5-pro, gemini-3.5-flash).
Sorgu Parametreleri
API anahtarı (header kimlik doğrulamasına alternatif).
İstek Gövdesi
İçerik Oluşturma ile aynıdır.
Streaming isteklerinde generationConfig.candidateCount alanını atlayın veya 1 olarak bırakın; daha büyük değerler, ek adayları sessizce düşürmek yerine reddedilir.
Yanıt
Her biri kısmi bir yanıt içeren bir JSON nesneleri akışı döndürür.
cURL
Python
JavaScript
Go
PHP
curl -X POST "https://api.tokenlab.sh/v1beta/models/gemini-2.5-pro:streamGenerateContent?key=sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{
"parts": [{"text": "Tell me a story"}]
}
]
}'
import google.generativeai as genai
genai.configure(
api_key = "sk-your-api-key" ,
transport = "rest" ,
client_options = { "api_endpoint" : "api.tokenlab.sh" }
)
model = genai.GenerativeModel( "gemini-2.5-pro" )
response = model.generate_content( "Tell me a story" , stream = True )
for chunk in response:
print (chunk.text, end = "" )
const response = await fetch (
'https://api.tokenlab.sh/v1beta/models/gemini-2.5-pro:streamGenerateContent?key=sk-your-api-key' ,
{
method: 'POST' ,
headers: { 'Content-Type' : 'application/json' },
body: JSON . stringify ({
contents: [{ parts: [{ text: 'Tell me a story' }] }]
})
}
);
const reader = response . body . getReader ();
const decoder = new TextDecoder ();
while ( true ) {
const { done , value } = await reader . read ();
if ( done ) break ;
console . log ( decoder . decode ( value ));
}
package main
import (
" bufio "
" bytes "
" encoding/json "
" fmt "
" net/http "
)
func main () {
payload := map [ string ] interface {}{
"contents" : [] map [ string ] interface {}{
{ "parts" : [] map [ string ] string {{ "text" : "Tell me a story" }}},
},
}
jsonData , _ := json . Marshal ( payload )
req , _ := http . NewRequest ( "POST" ,
"https://api.tokenlab.sh/v1beta/models/gemini-2.5-pro:streamGenerateContent?key=sk-your-api-key" ,
bytes . NewBuffer ( jsonData ))
req . Header . Set ( "Content-Type" , "application/json" )
client := & http . Client {}
resp , _ := client . Do ( req )
defer resp . Body . Close ()
scanner := bufio . NewScanner ( resp . Body )
for scanner . Scan () {
fmt . Println ( scanner . Text ())
}
}
<? php
$payload = [
'contents' => [
[ 'parts' => [[ 'text' => 'Tell me a story' ]]]
]
];
$ch = curl_init ( 'https://api.tokenlab.sh/v1beta/models/gemini-2.5-pro:streamGenerateContent?key=sk-your-api-key' );
curl_setopt_array ( $ch , [
CURLOPT_RETURNTRANSFER => true ,
CURLOPT_POST => true ,
CURLOPT_HTTPHEADER => [ 'Content-Type: application/json' ],
CURLOPT_POSTFIELDS => json_encode ( $payload ),
CURLOPT_WRITEFUNCTION => function ( $ch , $data ) {
echo $data ;
return strlen ( $data );
}
]);
curl_exec ( $ch );
curl_close ( $ch );
Akışlı vision istekleri, akış olmayan uç nokta ile aynı contents[].parts[] yapısını kullanır.
{
"contents" : [
{
"role" : "user" ,
"parts" : [
{ "text" : "Please describe this image." },
{
"inline_data" : {
"mime_type" : "image/jpeg" ,
"data" : "/9j/4AAQSkZJRgABAQ..."
}
}
]
}
]
}
{
"candidates" : [
{
"content" : {
"role" : "model" ,
"parts" : [
{ "text" : "Once upon a time" }
]
}
}
]
}