AI 초보자 QnA
질문
OpenAI Python SDK에서 요청 본문에 항목을 더하려면 어떻게 하나요?
답변
공식 Python SDK에서는
extra_body
에 딕셔너리를 전달해 요청 본문에 항목을 추가합니다. 서버가 지원하지만 현재 SDK의 정식 인수에서 찾기 어려운 필드가 있는지 먼저 확인하세요.
이 글은 JSON 본문을 보내는 기존 호출의 추가 입력 위치를 설명합니다. URL 쿼리의 extra_query, HTTP 헤더의 extra_headers와 구분하세요. 이름을 마음대로 만들어 넣는다고 서버에 새 기능이 생기지는 않습니다.
짧게 답하면
서버의 필드 정의 확인 → SDK 인수 대조 → extra_body 구성 → 최종 본문과 응답 점검 순서입니다. 정식 인수가 이미 있으면 그 인수를 먼저 쓰고 같은 이름을 두 곳에 지정하지 않습니다.
extra_body
현재 호출의 요청 본문에 추가할 항목입니다. 프롬프트 문자열과 다릅니다.
extra_query·extra_headers
URL 쿼리와 HTTP 헤더를 위한 별도 옵션입니다. 본문을 넣는 자리가 아닙니다.
정식 인수
메서드가 이름·타입을 정의한 입력입니다. 편집기의 자동완성만 보지 말고 공식 문서와 대조하세요.
처음 쓰는 사람 기준으로 설명하면
공식 예시에는 새 필드가 있는데 설치된 SDK에서는 같은 이름의 인수를 찾기 어렵다고 해 보세요. 먼저 사용 중인 패키지 버전과 호출 경로를 확인합니다. 다른 API나 다른 모델의 옵션을 가져온 경우도 구분해야 합니다.
Python API library는 추가 요청 매개변수의 전달 수단으로 extra_query·extra_body·extra_headers를 안내합니다. 이 글에서는 파일을 올리는 multipart 요청이 아니라 JSON 본문을 보내는 경우로 범위를 좁힙니다.
현재 공식 SDK 구현은 일반 본문과 extra_body를 합칠 때 같은 이름의 추가 값이 우선합니다. 중첩 객체도 내부 항목을 재귀적으로 합치는 방식이 아닙니다. 같은 최상위 이름을 넣으면 기존 객체 전체를 바꿀 수 있으므로 최종 구조를 확인하세요.
한 줄 정리: extra_body는 값을 전달하는 자리입니다. 필드의 지원 여부·자료형·중첩 위치는 해당 API 문서로 따로 확인합니다.
바로 따라 해보기
1단계. 필드 정의와 실행 환경을 확인합니다.
공식 openai Python 패키지와 실행 버전을 확인하세요. 사용할 API의 요청 본문에서 필드 이름·자료형·모델 조건을 읽습니다. 정식 인수가 있으면 그것을 쓰고, 없다면 SDK 업데이트 필요성도 시험 환경에서 검토합니다.
2단계. 확인한 항목만 딕셔너리로 준비합니다.
body_options
에 공식 문서로 확인한 이름과 값을 담습니다. 기존
client.responses.create
호출에
extra_body=body_options
를 추가하고 model·input은 유지하세요. body_options는 직접 준비할 변수이며 이 표기는 전체 실행 예제가 아닙니다.
3단계. 전송 본문과 처리 결과를 따로 봅니다.
승인된 시험 환경에서 기존 요청과 추가 후의 본문 구조를 대조하세요. 문서에 중첩된 필드는 같은 중첩 위치를 유지합니다. 실제 상태 코드·응답 상태·내용도 확인하고 전송됐다는 사실만으로 기능이 적용됐다고 기록하지 않습니다.
주의할 점
중첩 객체의 일부만 넣어 나머지가 유지된다고 가정하지 마세요. 기존 본문과 겹치는 최상위 이름은 피하는 편이 명확합니다. 꼭 바꿔야 한다면 필요한 내부 항목을 모두 검토하고 변경 전 설정을 남기세요.
SDK가 딕셔너리를 받았으니 서버도 모든 이름을 지원한다고 믿습니다. 필드명·자료형·모델·권한을 확인하고 실제 오류를 읽으세요.
본문에 extra_body라는 새 JSON 필드를 직접 만듭니다. extra_body는 Python 메서드의 옵션이며 그 안의 항목이 요청 본문에 합쳐집니다.
기존 입력을 덮어쓴 사실을 모르거나 진단용 본문 전체를 공개합니다. 필요한 비민감 항목만 확인하고 API 키·고객 자료는 출력하지 마세요.
웹사이트와 앱 중 무엇부터 쓰면 좋을까요?
옵션 구분은 공식 웹 문서에서
Python API library의 추가 요청 옵션과 사용할 API의 본문 정의를 함께 읽으세요. model_extra는 받은 응답의 추가 필드를 읽는 속성이므로 보내는 extra_body와 혼동하지 않습니다.
실제 점검은 API 개발 환경에서
ChatGPT 웹·모바일 앱 메뉴가 아니라 Python 프로그램에서 확인합니다. 시험·운영 프로젝트를 분리하고 키는 서버 환경 변수나 비밀 저장소에서 불러오세요. 이 글은 문서 기반 안내이며 실제 API 호출 결과가 아닙니다.
확인한 공식 자료
OpenAI Python API library — 추가 요청 매개변수 옵션과 정식 타입·버전 확인 방법을 확인했습니다.
OpenAI API Overview — 인증·서버의 키 보관 원칙과 새 요청 매개변수의 호환성 기준을 확인했습니다.
OpenAI Production best practices — 시험·운영 프로젝트 분리와 환경 변수·비밀 관리 서비스 사용 권고를 확인했습니다.
OpenAI Python SDK 요청 본문 병합 구현 — 일반 본문과 extra_body의 병합, 같은 이름의 우선순위와 비재귀 병합을 확인했습니다.
