Генерация текста - стриминг

Примеры ниже опираются на базовый пример.

Для того, чтобы ответ модели выводился в качестве потока сообщений, как это происходит, например, в ChatGPT, когда текст появляется постепенно, необходимо послать запрос в режиме stream.

Для этого в Gemini необходимо вызвать правильный endpoint и дополнительно указать параметр alt=sse.

Структура запроса

POST https://api.proxyapi.ru/google/v1/models/gemini-1.5-pro:streamGenerateContent?alt=see

Пример для Node.js

...
const result = await model.generateContentStream([prompt]);
let text = '';
for await (const chunk of result.stream) {
  const chunkText = chunk.text();
  console.log(chunkText);
}

Пример для Python

...
url = "https://api.proxyapi.ru/google/v1/models/gemini-1.5-pro:streamGenerateContent?alt=sse"
...
with requests.post(url, json=data, headers=headers, stream=True) as response:
    for line in response.iter_lines():
        if line:
            print(line.decode("utf-8"))