응답 생성
OpenAI Responses API의 요청 형식(input/instructions)으로 모델 응답을 요청합니다. 내부적으로 Chat Completions 형식으로 변환되어 지원되는 모든 모델로 라우팅됩니다 — 이는 변환 레이어이며 별도의 추론 경로가 아닙니다. 이것은 상태 비저장 엔드포인트입니다: store: true 또는 null이 아닌 previous_response_id를 전달하면 400을 반환합니다(별도의 오류 형식은 아래 400 항목 참조) — 매 호출마다 전체 대화 내용을 input에 담아야 합니다. 스트리밍 시 reasoning은 response.reasoning_text.delta 이벤트와 type:"reasoning" 출력 항목으로 표시됩니다.
/api/v1/responses인증
Authorization필수Authorization 헤더에 Bearer 토큰으로 API 키를 전달합니다.
Body
model필수사용할 모델. 공급자 접두사 형식, 예: "openai/gpt-5.2".
"openai/gpt-5.2"input필수대화 입력 — 단일 문자열 또는 구조화된 항목 배열(message/function_call/function_call_output). 메시지는 일반 텍스트 또는 input_image를 포함한 콘텐츠 블록 배열을 사용할 수 있습니다.
instructions시스템 수준 지시사항으로, 변환된 messages 배열 맨 앞에 첫 번째 system 메시지로 삽입됩니다.
streamtrue이면 Responses API의 SSE 이벤트(response.created, response.output_item.added, response.output_text.delta, response.reasoning_text.delta, response.completed 등)로 스트리밍합니다. 생략하거나 false이면 단일 JSON 응답을 반환합니다.
max_output_tokens응답이 생성할 수 있는 최대 토큰 수(업스트림 Chat Completions의 max_tokens로 변환됨).
tools모델이 호출할 수 있는 도구/함수 정의 목록. Responses 스펙의 평면 형식 {type:"function", name, description, parameters}(권장)와 Chat Completions의 중첩 형식 {type:"function", function:{...}}(하위 호환용으로 허용, 그대로 통과)을 모두 받습니다. 응답 객체의 tools 필드는 여기서 실제로 보낸 값을 그대로 반영합니다.
tool_choice모델이 도구 호출을 강제받는지/어떻게 강제받는지 제어합니다. 예: {type:"function", name:"..."}(평면 형식, 권장, 업스트림용으로 자동 변환) 또는 "auto". 응답 객체의 tool_choice 필드는 여기서 보낸 값을 반영하며, 생략 시 기본값은 "auto"입니다.
parallel_tool_callstools가 제공될 때 병렬 도구 호출을 허용할지 여부. 생략 시 기본값은 true입니다. 응답 객체의 parallel_tool_calls 필드는 여기서 보낸 값을 반영합니다.
plugins플러그인 배열(예: 웹 검색을 켜는 {id:"web"}). 일부 모델 라우트에서만 지원되며 그 외에는 무효입니다. :online 모델 변형은 plugins를 보내지 않았을 때만 {id:"web"}을 자동 삽입하며, 이 역시 지원 라우트에 한합니다.
store⚠️ 이 엔드포인트는 상태 비저장입니다 — true를 전달하면 즉시 400을 반환하며, 절대 수락되거나 조용히 무시되지 않습니다. 생략하거나 false를 전달하는 것만이 유효한 사용법입니다.
previous_response_id⚠️ 이 엔드포인트는 상태 비저장입니다 — null이 아닌 값을 전달하면 즉시 400을 반환하며, 절대 수락되거나 조용히 무시되지 않습니다. 대화를 이어가려면 전체 기록을 input 배열에 담아 보내세요.
models대체 모델 목록 — 순서대로 시도되며, 기본 모델의 후보 그룹이 모두 소진된 후에만 사용됩니다.
reasoning추론 모델의 사고 제어 객체(예: {effort, max_tokens}). 그대로 업스트림으로 전달되며 기본값이 주입되지 않습니다.
reasoning_effortreasoning.effort의 평면 축약 필드.
lowmediumhighthinkingClaude 확장 사고의 추가 토큰 예산(예: {type:"enabled", budget_tokens:2048}), max_output_tokens에 더해집니다 — 그대로 전달되며 기본값이 주입되지 않습니다.
enable_thinkingQwen3/GLM 계열 모델의 사고 켜기/끄기 토글. 사용자의 선택을 그대로 전달합니다.