generate_content_stream — 같은 인자, iterator 반환
Streaming method 가 non-streaming 과 나란히 살고 같은 인자 받음. 차이는 반환값뿐 — single GenerateContentResponse 대신 partial response 의 iterator (sync) 또는 async iterator (async) 받음.
기억할 패턴 세 개
- Sync stream:
for chunk in client.models.generate_content_stream(...) - Async stream:
async for chunk in await client.aio.models.generate_content_stream(...)(호출 자체에await후async for) - Streaming chat:
chat.send_message_stream(...)/chat.aio.send_message_stream(...)
진행하면서 concat, 마지막에 usage 잡아
각 chunk 의 chunk.text 가 그 slice 의 partial text. Full reply 로 concat. usage_metadata 는 final chunk 에만 — iterate 하면서 lazy 하게 capture.
Multimodal 도 같은 방식으로 stream
Image, 업로드된 파일, non-streaming 에서 쓸 multi-part contents 어느 거나 pass 가능. 모델이 첫 text 토큰 생산하자마자 stream 시작.