AI 초보자 QnA
질문
OpenAI API 답변이 중간에 끊기면 왜 그런가요?
답변
OpenAI Responses API의 글이 문장 중간에서 멈췄다면 먼저 응답의 status와 incomplete_details.reason을 확인하세요. 출력 토큰 한도에 닿으면 status가 incomplete이고 reason이 max_output_tokens일 수 있습니다. 글이 아예 보이지 않아도 추론 과정에서 한도를 다 쓴 경우가 있습니다.
이 글은 생성된 답이 출력 한도 때문에 미완료인지 판별하는 방법입니다. 스트리밍 연결이 끊겼는지 또는 서버 오류가 났는지 확인하는 절차와는 구분해야 합니다. 답이 짧다고 모두 출력 한도 문제로 단정하지 마세요.
짧게 답하면
상태 확인 → 미완료 이유 확인 → 사용량 확인 → 필요한 출력 공간 확보 → 새 응답 검토 순서로 살펴보세요. 앞의 부분 답변을 완성본으로 저장하거나 JSON으로 바로 읽지 않습니다.
status
completed인지 incomplete인지 먼저 읽습니다. 문자열이 잠시 멈춘 것만으로 완료라고 보지 않습니다.
incomplete_details
미완료 이유가 max_output_tokens인지 보고, 다른 오류와 구분합니다.
usage
output_tokens와 추론 토큰 내역을 확인합니다. 화면의 글 길이와 같지 않을 수 있습니다.
처음 쓰는 사람 기준으로 설명하면
출력 한도를 300토큰으로 정했다고 해서 그만큼의 글자가 화면에 나온다는 뜻은 아닙니다. 추론 모델은 내부 추론에도 출력 토큰을 사용합니다. 공식 가이드는 한도에 닿으면 status가 incomplete로 바뀌고 incomplete_details.reason에 max_output_tokens가 표시된다고 설명합니다. 글이 나오기 전에 한도에 닿을 수도 있습니다.
응답의 usage.output_tokens는 눈에 보이는 답변 토큰 수와 같지 않을 수 있습니다. 추론 토큰 외에도 응답 형식을 위한 비가시 토큰이 생길 수 있으므로 글자 수만 보고 남은 한도를 계산하지 마세요. 입력 토큰을 미리 세는 일과 출력이 실제로 얼마나 생성됐는지 확인하는 일도 서로 다릅니다.
JSON을 기대했다면 특히 주의하세요. 중간에 끊긴 결과는 닫는 중괄호가 빠졌거나 필수 필드가 없을 수 있습니다. 구조화 출력 가이드도 완료 여부와 중단 이유를 먼저 판별하도록 안내합니다. 정상 완료와 내용의 정확성은 또 다른 점검입니다.
한 줄 정리: 글이 짧으면 출력 토큰 설정을 의심하되, 원인은 화면 글자 수가 아니라 응답 상태와 이유에서 확인하세요.
바로 따라 해보기
1단계. 응답 상태를 기록합니다.
사용 가능한 모델로 민감 정보 없는 짧은 요청을 보내고 반환 객체의 status를 읽으세요. 화면에 부분 글이 남아 있어도 incomplete이면 미완료로 표시합니다. 응답 ID와 사용한 출력 한도도 함께 적어 둡니다.
2단계. 한도 원인을 분리합니다.
incomplete_details.reason이 max_output_tokens인지 확인하고 usage의 output_tokens와 output_tokens_details.reasoning_tokens를 살펴보세요. 한도 도달이 아니라면 연결 오류나 실패 응답을 따로 조사합니다. 로그에 API 키나 개인 자료를 적지는 마세요.
3단계. 작은 요청으로 다시 비교합니다.
필요한 경우 max_output_tokens에 여유를 주거나 요청할 답의 범위를 줄여 새 응답을 만드세요. 두 응답의 상태·사용량·본문을 비교하고 completed를 확인한 뒤 내용을 검토합니다. 한도를 늘리면 사용량과 비용이 달라질 수 있으니 무작정 키우지 않습니다.
주의할 점
max_output_tokens를 크게 설정해도 무조건 긴 답변이 나오는 것은 아닙니다. 모델의 컨텍스트 창과 요청 내용도 영향을 줍니다. 미완료 답을 그대로 후속 자동화에 넘기면 빠진 결론이나 잘못 닫힌 JSON 때문에 다음 작업이 실패할 수 있습니다.
글이 몇 줄 나왔다는 이유만으로 응답을 성공 처리하고 외부에 게시합니다. 반드시 상태를 읽고 중요한 사실은 다시 확인하세요.
usage의 output_tokens를 화면에서 센 단어 수로 오해합니다. 추론 토큰과 보이지 않는 형식 토큰을 포함할 수 있습니다.
미완료 JSON을 정상 결과로 간주하거나 원인도 보지 않고 같은 요청을 계속 다시 보냅니다. 재시도 전에 한도와 상태부터 확인하세요.
웹사이트와 앱 중 무엇부터 쓰면 좋을까요?
개념 확인은 공식 웹 문서에서
Reasoning models와 Counting tokens 문서에서 상태와 토큰 구성을 읽으세요. 모델별 지원 조건은 해당 모델 문서에서 다시 확인합니다.
실제 판별은 API 응답에서
SDK나 개발 환경에서 반환 객체를 읽어야 상태와 사용량을 확인할 수 있습니다. ChatGPT 웹·앱에서 보이는 답변의 길이로 API 요청의 종료 이유를 판정하지 마세요.
확인한 공식 자료
OpenAI 공식 가이드 — Reasoning models — 출력 한도 도달 때 incomplete 상태와 reason, 보이지 않는 추론 토큰을 확인했습니다.
OpenAI 공식 가이드 — Counting tokens — 출력 토큰 수와 보이는 글자 수가 다를 수 있고 한도가 비가시 토큰까지 포함함을 확인했습니다.
OpenAI 공식 가이드 — Structured model outputs — 중단된 JSON을 완성본으로 처리하지 않는 예외 처리와 응답 상태 점검을 확인했습니다.
