요약 답변
콘텐츠 필터가 작동할 때 스트리밍 모드와 비스트리밍 모드에서 동일한 콘텐츠라도 전혀 다르게 종료될 수 있습니다:
- 비스트리밍: 공식 경로에서 콘텐츠 안전 필터가 트리거되면 APIYI는 다른 공식 경로에서 요청을 자동으로 재생성합니다. 클라이언트는 완전한 결과를 받게 되며 1회만 과금됩니다.
- 스트리밍: 출력이 생성되는 즉시 클라이언트로 전송되므로 스트리밍 도중에는 경로를 전환할 수 없습니다. 요청은
finish_reason: "content_filter"로 종료되며, 이미 생성된 부분은 정상적으로 과금됩니다. - 선택 방법: 사용자에게 token 단위로 표시되는 콘텐츠(채팅, 에이전트 응답)에는 스트리밍을 사용하십시오. 생성이 완료된 후 프로그램에서 처리하는 콘텐츠(스크립트, 스토리보드, 번역, 구조화된 데이터)에는 비스트리밍을 사용하십시오.
필터링이 발생하는 두 가지 시점
제공업체의 콘텐츠 안전 필터는 두 가지 시점에서 개입할 수 있으며, 두 경우 모두 스트리밍 모드에서 나타납니다:
두 경우 모두 HTTP 상태는
200이며 stream은 data: [DONE]과 함께 정상적으로 종료됩니다. HTTP 오류 로그에는 아무것도 나타나지 않으며, 오직 stream의 마지막 이벤트만이 어떤 일이 발생했는지 알려줍니다.
스트리밍 vs 비스트리밍
비스트리밍 요청의 자동 장애 조치는 성공률을 크게 높여주지만, 100%는 아닙니다. 제공업체의 사용 정책을 명백히 위반하는 콘텐츠는 다른 라우트에서도 모델 자체에 의해 거절될 수 있습니다. 해당 응답 형태에 대해서는 OpenAI 모델 거절은 어떤 형태인가요?를 참조하십시오.
테스트 결과
2026-09-25 (UTC+8)에 두 가지 모드에서gpt-5.6-terra에 동일한 파라미터(max_tokens=35000, temperature=0, reasoning_effort=high)를 적용하여 동일한 영화 스토리보드 스크립트 세트를 전송했습니다:
스트리밍 모드에서 동일한 콘텐츠로 재시도해도 기본적으로 동일한 결과가 나타납니다. 필터링 트리거 여부는 운이 아니라 주로 콘텐츠에 따라 결정됩니다.
잘린 스트림의 형태
choices을 포함하는 마지막 이벤트에는 내용이 없으며, 종료 사유만 포함됩니다:
선택 방법
스트리밍 사용
- 사용자가 출력을 즉시 확인해야 하는 채팅, 고객 지원 및 에이전트 응답
- 사용자가 중간에 생성을 중단할 수 있는 시나리오
- 일상적인 대화는 콘텐츠 필터링을 트리거하는 경우가 드물어 스트리밍 경험이 더 중요한 환경
비스트리밍 사용
- 대본, 스토리보드, 소설 챕터 및 기타 긴 창작물 작성
- 일괄 번역, 정보 추출, 구조화된 JSON
- 사용자에게 표시되기 전에 파싱 및 저장되는 결과
- 민감한 줄거리를 다룰 가능성이 있는 콘텐츠(격투, 부상, 범죄)
stream을 false로 설정하기만 하면 되며 다른 모든 설정은 변경하지 않고 그대로 유지하시면 됩니다.
비스트리밍 요청은 전체 응답이 모두 생성된 후에만 반환됩니다. 추론 모델의 긴 출력은 30초에서 100초 이상 걸릴 수 있으므로, 이러한 요청에 대한 클라이언트 타임아웃은 최소 300초로 설정하십시오. 자세한 내용은 API 타임아웃을 방지하려면 어떻게 해야 하나요?를 참고하십시오. UI에서 진행 상황을 표시해야 하는 경우, “생성 중” 상태를 표시하고 완료된 후 결과를 보여주십시오.
반드시 stream을 사용해야 하는 경우
1
stream을 읽는 동안 finish_reason 기록
finish_reason이(가) choices을(를) 포함하는 마지막 이벤트에서 content_filter인 경우, 응답이 필터링된 것입니다. HTTP 상태 코드에 의존하지 마십시오.2
끝부분의 거부 메시지 제거
생성 단계에서 출력이 중단되면 텍스트 끝에 영어 거부 메시지가 포함됩니다. 부분적으로 생성된 출력을 어떻게 처리할지 결정하기 전에 이 메시지를 제거하십시오.
3
스트리밍 없이 재시도
플랫폼이 경로를 자동으로 전환할 수 있도록 잘린 부분을 비스트리밍 요청으로 다시 전송하십시오. 이는 스트리밍을 통해 이어서 생성하는 것보다 성공할 확률이 훨씬 높습니다.
4
계속 차단되는 경우 표현 수정
동일한 작업에 대해 비스트리밍 요청마저 실패하는 경우, 민감한 세부 정보를 더 일반적인 표현으로 바꾸어 다시 시도하십시오. 동일한 내용을 변경 없이 그대로 재전송하지 마십시오.
자주 묻는 질문
중단된 스트리밍 요청도 과금됩니까?
중단된 스트리밍 요청도 과금됩니까?
그렇습니다. 제공업체에서 해당 콘텐츠를 실제로 생성했으므로 실제 입력 및 출력 tokens에 대해 과금됩니다. 필터링을 유발하기 쉬운 콘텐츠의 경우 비스트리밍 방식이 더 저렴합니다. 성공한 시도에 대해서만 과금되기 때문입니다.
콘텐츠 필터링을 끌 수 있습니까?
콘텐츠 필터링을 끌 수 있습니까?
아닙니다. 필터링은 제공업체에서 적용하므로 APIYI에서 이를 끄거나 엄격도를 변경할 수 없습니다. 플랫폼에서 할 수 있는 조치는 필터링된 비스트리밍 요청을 다른 공식 라우트에서 재시도하는 것뿐입니다.
동일한 콘텐츠가 어떤 때는 통과하고 어떤 때는 중단되는 이유는 무엇입니까?
동일한 콘텐츠가 어떤 때는 통과하고 어떤 때는 중단되는 이유는 무엇입니까?
공식 라우트마다 필터링 엄격도에 다소 차이가 있고, 모델이 매번 출력을 다르게 표현하므로 경계선에 있는 콘텐츠는 어떤 때는 통과하고 다음에는 중단될 수 있습니다. 명백하게 민감한 콘텐츠는 일관되게 차단됩니다.
플랫폼에서 스트리밍 요청을 자동으로 재시도하지 않는 이유는 무엇입니까?
플랫폼에서 스트리밍 요청을 자동으로 재시도하지 않는 이유는 무엇입니까?
생성 단계에서의 중단은 이미 콘텐츠가 전송된 후에 발생하며, 클라이언트는 이미 앞부분을 수신하여 표시한 상태입니다. 그 시점에서 다른 라우트에서 처음부터 다시 생성하면 이미 표시된 내용과 일치하지 않게 됩니다. 따라서 스트리밍 요청은 클라이언트가
content_filter을(를) 확인한 후 직접 처리해야 합니다.관련 문서
OpenAI 모델 거부는 어떤 형태입니까?
모델 자체가 거부할 때의 응답 형태 및 감지
스트리밍 vs 비스트리밍 호출
두 가지 모드의 연동, 과금 및 흔한 오해
API 타임아웃은 어떻게 방지합니까?
긴 비스트리밍 출력을 위한 타임아웃 설정
콘텐츠 안전 및 규정 준수
플랫폼 콘텐츠 안전 및 규정 준수 정책