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에 생성된 조각이 들어 있고, 마지막 줄의 donetrue가 되면 생성이 끝났다는 뜻이에요.

스트리밍 끄기

스트리밍을 지원하는 엔드포인트라면 요청 본문에 {"stream": false}를 넣어 스트리밍을 끌 수 있어요. 이 경우 응답은 application/json 형식으로 한 번에 돌아와요.

{"model":"gemma4","created_at":"2025-10-26T17:15:24.166576Z","response":"That's a fantastic question!","done":true}

스트리밍 vs 비스트리밍

스트리밍 (기본값):

  • 실시간으로 응답이 생성돼요
  • 체감 지연이 낮아요
  • 긴 생성물에 유리해요

비스트리밍:

  • 처리하기 단순해요
  • 짧은 응답이나 구조화된 출력에 좋아요
  • 일부 애플리케이션에서 다루기 쉬워요

더 알아보기