AI 초보자 QnA
질문
OpenAI API 답변에서 글자만 어떻게 꺼내나요?
답변
공식 Python SDK로 받은 Responses 응답에서는
response.
로 답변의 텍스트를 읽습니다. 여러 텍스트 조각을 한 문자열로 모아 주는 편의 속성입니다. 응답 전체를 문자열로 바꾸는 기능과는 다릅니다.
이 글은 이미 받은 비스트리밍 응답에서 화면에 표시할 글을 꺼내는 방법입니다. 출력 한도를 늘리거나 새 답변을 만드는 작업은 아닙니다. 글이 비어 있다면 응답 상태와 항목 종류부터 확인하세요.
짧게 답하면
사용한 API 확인 → SDK의 output_text 읽기 → 빈 값이면 output 점검 → 내용 검토 순서입니다. 응답 배열의 첫 항목에 항상 답변 글이 있다고 가정하지 마세요.
output
메시지·추론·도구 호출 등 서로 다른 종류의 출력 항목을 담습니다.
output_text
SDK가 메시지의 텍스트 블록을 모아 주는 속성입니다. 함수 호출 인수는 포함하지 않습니다.
status
응답의 생성 상태입니다. 글이 추출됐다는 사실과 정상 완료는 따로 확인합니다.
처음 쓰는 사람 기준으로 설명하면
예를 들어 요약 응답을 받았는데 앱 화면에는 아무 글도 없다고 해 보세요. 모델이 답하지 않은 경우도 있지만, 프로그램이 답변이 아닌 항목을 읽었을 수도 있습니다. 먼저 같은 응답에서 무엇을 꺼내는지 살피면 불필요한 재호출을 줄일 수 있습니다.
Text generation 가이드는
output[
에 텍스트가 있다고 가정하는 방식이 안전하지 않다고 설명합니다. output에는 도구 호출이나 추론 항목도 들어갈 수 있습니다. Python SDK의 공식 예시는
print(
를 사용합니다.
Chat Completions 예제의
completion.
를 Responses 응답에 그대로 붙이지 마세요. 마이그레이션 가이드는 두 API의 반환 구조를 구분합니다. HTTP로 받은 원시 JSON에는 SDK 편의 속성이 같은 최상위 필드로 들어 있다고 기대하지 않습니다.
한 줄 정리: Responses의 텍스트는 SDK의 output_text로 읽고, 나머지 항목과 상태는 원래 응답에서 따로 확인하세요.
바로 따라 해보기
1단계. 응답을 받은 경로를 확인합니다.
이미 동작하는 공식 openai Python 코드에서
client.
의 반환값을
response
변수로 둡니다. 스트림 이벤트나 Chat Completions 객체가 아닌지 먼저 보세요. 새 키를 만들거나 모델을 바꿀 필요는 없습니다.
2단계. 텍스트와 상태를 나눠 읽습니다.
text =
로 글을 읽고
response.
도 확인하세요. 민감 정보가 없는 시험 응답만 화면에서 비교합니다. 이 속성은 텍스트 조각 사이에 새 줄을 자동으로 넣지 않으므로 여러 조각의 경계가 필요하면 직접 구분합니다.
3단계. 비어 있으면 항목 종류부터 봅니다.
[
으로 종류를 확인하세요. 원시 JSON을 직접 읽는다면 output 전체에서
type=
인 항목의 content를 순회하고
type=
인 블록의 text를 모읍니다. 거절·함수 호출을 일반 답변 글로 처리하지 않습니다.
주의할 점
공식 Python 구현은 텍스트 블록이 없으면 빈 문자열을 반환합니다. 빈 값만으로 실패·토큰 부족·거절 중 하나를 확정하지 마세요. 상태·오류·항목 종류와 앱의 후속 처리 흐름을 확인합니다. 이 글은 공식 문서 기반 절차이며 실제 API 호출 결과를 제시한 것은 아닙니다.
첫 항목만 읽고 텍스트가 없다는 이유로 같은 생성 요청을 반복합니다. 기존 응답의 전체 output을 먼저 점검하세요.
output_text를 응답 전체나 비공개 추론 기록으로 봅니다. 도구 호출, 인용 정보와 사용량은 필요한 원래 필드에서 따로 읽습니다.
문자열을 얻었으니 답변도 완성됐고 정확하다고 믿습니다. 미완료·실패 응답을 정상 결과로 넘기지 말고 사실과 형식도 검토하세요.
웹사이트와 앱 중 무엇부터 쓰면 좋을까요?
구조 확인은 공식 웹 문서에서
Text generation의 출력 배열 설명과 Python SDK 예시를 함께 읽으세요. 이전 Chat Completions 코드를 옮기는 중이라면 마이그레이션 문서에서 반환 구조부터 대조합니다.
실제 점검은 API를 쓰는 프로그램에서
ChatGPT 웹·모바일 앱의 복사 버튼을 바꾸는 설정이 아닙니다. 프로그램이 받은 응답과 표시한 글을 나란히 보세요. 키·인증 헤더·고객 원문이 섞인 전체 응답은 공개 로그에 남기지 않습니다.
같이 보면 좋은 질문
확인한 공식 자료
OpenAI 공식 가이드 — Text generation — 출력 배열의 다양한 항목과 첫 항목 고정 접근의 위험, 텍스트 집계 속성을 확인했습니다.
OpenAI 공식 가이드 — Migrate to the Responses API — Chat Completions의 choices와 Responses의 output 반환 구조 차이를 확인했습니다.
OpenAI 공식 문서 — Python API library — 비스트리밍 Responses 요청 뒤 response.output_text를 읽는 예시를 확인했습니다.
OpenAI 공식 Python SDK — Response 구현 — 메시지의 텍스트 블록만 모으며 구분자를 추가하지 않고, 없으면 빈 문자열을 반환함을 확인했습니다.
