컨텐츠로 건너뛰기
主站 新闻 控制台

스트리밍 및 비스트리밍 응답

본 페이지는 Claude 네이티브 호출(/v1/messages)의 응답 처리를 설명하며, 연동 방법은 Claude 네이티브 호출 기초를 참조하세요.

비스트리밍 응답

{
"id": "msg_xxx",
"type": "message",
"role": "assistant",
"content": [{ "type": "text", "text": "……" }],
"stop_reason": "end_turn",
"usage": { "input_tokens": 24, "output_tokens": 180 }
}
  • 본문은 content 배열 안에 블록(text / tool_use / thinking) 단위로 구성되며, 블록별로 순회한 후 이어 붙입니다;
  • stop_reason: end_turn 정상 종료, max_tokens 잘림, tool_use 도구 호출 요청.

스트리밍 응답(SSE)

요청에 "stream": true를 추가하면 이벤트가 유형별로 전송됩니다:

이벤트의미
message_start세션 시작, 입력 토큰 수 포함
content_block_start콘텐츠 블록 시작(text/tool_use/thinking)
content_block_delta본문 증분, delta.text를 이어 붙이면 됩니다
content_block_stop현재 콘텐츠 블록 종료
message_delta후미 메타데이터(stop_reason, 출력 토큰 수)
message_stop전체 종료
with client.messages.stream(
model="claude-sonnet-5", max_tokens=1024,
messages=[{"role": "user", "content": "写一首关于大海的短诗"}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)

주의사항

  • 공식 Anthropic SDK를 사용할 경우 이러한 이벤트는 이미 캡슐화되어 있으며, SSE를 직접 작성할 때만 이벤트별로 처리해야 합니다;
  • 토큰 사용량은 message_start(입력) + message_delta(출력) 기준이며, 청구 내역과 일치합니다;
  • 사고 모드의 thinking 블록 파싱은 사고 모드를 참조하세요.