Source: https://aiprimetech.io/ko/docs/api-reference/streaming/ [홈](/ko/) / [문서](/ko/docs/) / 스트리밍 # 스트리밍 두 형식의 서버 전송 이벤트 — 이벤트 구조가 다르므로 혼동하면 아무 응답도 없는 것처럼 보입니다. 페이지 복사 [ Markdown으로 보기](/ko/docs/api-reference/streaming.md) [ ChatGPT에 질문](https://chatgpt.com/?q=Read%20https%3A//aiprimetech.io/docs/api-reference/streaming.md%20and%20answer%20questions%20about%20it.%20Start%20with%20a%20short%20summary.) [ Claude에서 질문](https://claude.ai/new?q=Read%20https%3A//aiprimetech.io/docs/api-reference/streaming.md%20and%20answer%20questions%20about%20it.%20Start%20with%20a%20short%20summary.) 설정할 항목: stream 값을 true로 설정하면 응답은 다음 형식이 됩니다: text/event-stream. 두 엔드포인트 모두 스트리밍을 지원하지만, 다음과 같이 전송합니다: 서로 다른 이벤트 구조. ## Anthropic 형식 ``` Copycurl -N https://aiprimetech.io/v1/messages \ -H "x-api-key: $CLAUDEAPIKEY" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{"model":"claude-sonnet-4-6","max_tokens":512,"stream":true, "messages":[{"role":"user","content":"Count to five"}]}' ``` ``` Copyevent: message_start data: {"type":"message_start","message":{"id":"msg_...","usage":{"input_tokens":9}}} event: content_block_delta data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"One"}} event: message_delta data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":14}} event: message_stop data: {"type":"message_stop"} ``` 텍스트는 다음 이벤트로 수신됩니다: content_block_delta 이벤트 내 다음 위치에서: delta.text. 최종 출력 토큰 수는 다음으로 수신됩니다: message_delta, 다음은 사용하지 마세요: message_start. ## OpenAI 형식 ``` Copydata: {"choices":[{"delta":{"content":"One"},"index":0}]} data: {"choices":[{"delta":{},"finish_reason":"stop","index":0}]} data: [DONE] ``` 텍스트는 다음 위치에서 수신됩니다: choices[0].delta.content, 스트림은 다음 리터럴로 끝납니다: data: [DONE] JSON이 아닌 종료 표식입니다. 이 불일치로 인해 오류 없이 빈 응답이 발생합니다. 다음을 파싱하는 클라이언트는 choices[].delta.content Messages 스트림에서 매번 아무것도 찾지 못하면서도 성공으로 보고합니다. 스트리밍이 작동하는 것처럼 보이지만 아무 내용도 반환하지 않는다면 어떤 구조를 파싱하고 있는지 확인하세요. ## Python, Anthropic SDK ``` Copyfrom anthropic import Anthropic client = Anthropic(api_key=class="s">"sk-your-key", base_url=class="s">"https://aiprimetech.io") with client.messages.stream( model=class="s">"claude-sonnet-4-6", max_tokens=512, messages=[{class="s">"role": class="s">"user", class="s">"content": class="s">"Count to five"}], ) as stream: for text in stream.text_stream: print(text, end=class="s">"", flush=True) ``` ## 운영 참고 사항 - 다음을 사용하세요: curl -N 수동으로 테스트할 때 사용하세요. 그렇지 않으면 curl이 전체 스트림을 버퍼링하여 아무 일도 일어나지 않는 것처럼 보입니다. - 앱 앞단의 프록시 버퍼링을 비활성화하세요(proxy_buffering off nginx에서). 그렇지 않으면 클라이언트는 마지막에 응답 전체를 한꺼번에 받게 됩니다. - 스트리밍 도중 연결이 끊겨도 이미 생성된 토큰에는 요금이 부과됩니다. - 스트리밍은 가격을 바꾸지 않으며, 바이트가 도착하는 시점만 바꿉니다. [Messages API비스트리밍 참조](/ko/docs/api-reference/messages/)[오류스트리밍 도중 발생하는 오류](/ko/docs/api-reference/errors/)[문제 해결빈 응답](/ko/docs/guides/troubleshooting/) [이전모델 엔드포인트](/ko/docs/api-reference/models-endpoint/)[다음오류](/ko/docs/api-reference/errors/)