Ollama API 스트리밍
Ollama API 스트리밍
Ollama의 일부 API 엔드포인트는 기본적으로 응답을 스트리밍 방식으로 돌려줘요. /api/generate가 대표적인데, 이때 응답은 줄바꿈으로 구분된 JSON, 즉 application/x-ndjson 형식으로 내려와요.
출처: 공식문서 - Streaming
스트리밍 응답 예시
아래처럼 토큰 하나가 나올 때마다 각각 한 줄씩 JSON으로 응답이 흘러와요.
{"model":"gemma4","created_at":"2025-10-26T17:15:24.097767Z","response":"That","done":false}
{"model":"gemma4","created_at":"2025-10-26T17:15:24.109172Z","response":"'","done":false}
{"model":"gemma4","created_at":"2025-10-26T17:15:24.121485Z","response":"s","done":false}
{"model":"gemma4","created_at":"2025-10-26T17:15:24.132802Z","response":" a","done":false}
{"model":"gemma4","created_at":"2025-10-26T17:15:24.143931Z","response":" fantastic","done":false}
{"model":"gemma4","created_at":"2025-10-26T17:15:24.155176Z","response":" question","done":false}
{"model":"gemma4","created_at":"2025-10-26T17:15:24.166576Z","response":"!","done":true, "done_reason": "stop"}
각 줄의 response에 생성된 조각이 들어 있고, 마지막 줄의 done이 true가 되면 생성이 끝났다는 뜻이에요.
스트리밍 끄기
스트리밍을 지원하는 엔드포인트라면 요청 본문에 {"stream": false}를 넣어 스트리밍을 끌 수 있어요. 이 경우 응답은 application/json 형식으로 한 번에 돌아와요.
{"model":"gemma4","created_at":"2025-10-26T17:15:24.166576Z","response":"That's a fantastic question!","done":true}
스트리밍 vs 비스트리밍
스트리밍 (기본값):
- 실시간으로 응답이 생성돼요
- 체감 지연이 낮아요
- 긴 생성물에 유리해요
비스트리밍:
- 처리하기 단순해요
- 짧은 응답이나 구조화된 출력에 좋아요
- 일부 애플리케이션에서 다루기 쉬워요