.aio surface
client.models 의 모든 method 가 client.aio.models 에 async sibling 있음. 같은 인자, 같은 반환 모양, await 만 추가. 같은 트릭이 client.aio.chats, client.aio.files 등에 적용.
Streaming 은 함수 이름이 바뀌어
Streaming 위해서는 함수 이름 자체가 generate_content 에서 generate_content_stream 으로 바뀌어. non-streaming 은 단일 response 반환; streaming 은 chunk 의 iterator (sync) 또는 async iterator (async) 반환.
왜 streaming 이 중요한가
Flash 의 time to first token (TTFT) 은 보통 200–400ms. 500 단어 답변의 last 토큰 시간은 3–8 초. Streaming 은 TTFT 에서 rendering 시작하게 해서 — 전체 시간 똑같아도 — 극적으로 빠르게 느껴져.
각 chunk 는 partial GenerateContentResponse
chunk 는 full response 와 같은 모양인데 chunk.text 에 text slice 만 들어있음. 진행하면서 concat. usage_metadata 는 final chunk 에만 나타남.