GPT-6.1 Sol API를 호출하려면 Bearer 토큰으로 API 키를 전달하고, model에 "gpt-6.1-sol"을 지정해 https://api.openai.com/v1/responses로 POST 요청을 보냅니다. GPT-6 Sol과 표준 입력·출력 가격은 각각 1백만 토큰당 $2·$10으로 같지만, 캐시된 입력 가격은 $0.20에서 $0.10으로 인하됩니다. gpt-6-sol에서의 마이그레이션은 대부분 모델 ID 교체로 끝나지만, reasoning.effort에서 none과 minimal을 사용할 수 없으므로 low로 재매핑해야 합니다.
OpenAI는 2026년 9월 29일 DevDay에서 GPT-6.1 Sol을 출시했습니다. DevDay 2026 요약에서 다른 출시 내용을 확인할 수 있고, GPT-6.1 Sol이란 무엇인가에서 벤치마크를 자세히 다룹니다.
이 글에서는 다음을 구현 중심으로 정리합니다.
- 첫 번째 Responses API 요청 보내기
-
reasoning.effort선택 기준 -
gpt-6-sol에서 필요한 코드 변경 - Batch, Flex, Fast 티어와 캐시 가격
- Apidog에서 두 모델을 비교하는 회귀 테스트
GPT-6 Sol vs GPT-6.1 Sol: API 변경점
대부분의 사양은 동일합니다. 아래 차이점은 GPT-6.1 Sol 모델 페이지, GPT-6 Sol 모델 페이지, OpenAI의 GPT-6 마이그레이션 가이드를 기준으로 정리했습니다.
| 항목 | gpt-6-sol |
gpt-6.1-sol |
조치 사항 |
|---|---|---|---|
| 1백만 토큰당 입력/출력(표준) | $2 / $10 | $2 / $10 | 없음 |
| 1백만 토큰당 캐시된 입력 | $0.20 | $0.10 | 캐시 비용 계산 재실행 |
| 1백만 토큰당 캐시 쓰기 | $2.50 | $2.50 | 없음 |
| 컨텍스트 윈도우 / 최대 입력 / 최대 출력 | 1,050,000 / 922,000 / 128,000 | 1,050,000 / 922,000 / 128,000 | 없음 |
| 지식 차단 시점 | 2026년 4월 20일 | 2026년 4월 30일 | 날짜 민감 평가 재확인 |
reasoning.effort |
none, low, medium(기본값), high, xhigh, max
|
low, medium(기본값), high, xhigh, max
|
none을 low로 이동 후 재평가 |
| Chat Completions 함수 호출 |
reasoning_effort: "none"에서만 가능 |
지원되지 않음 | 도구 호출을 Responses API로 이동 |
| 엔드포인트 | Chat Completions, Responses, Batch | 동일 | 없음 |
| 속도 제한 | 티어 1: 500 RPM / 500K TPM 티어 5: 15,000 RPM / 40M TPM |
동일 | 없음 |
GPT-6 Sol 모델 페이지는 이제 더 새로운 Sol 모델로 GPT-6.1 Sol을 안내합니다.
첫 번째 GPT-6.1 Sol 요청 보내기
먼저 API 키를 환경 변수로 설정합니다.
export OPENAI_API_KEY="your_api_key"
그다음 Responses API를 호출합니다.
curl https://api.openai.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-6.1-sol",
"reasoning": {"effort": "medium"},
"input": "List three ways a webhook retry policy can create duplicate orders. One line each."
}'
Python SDK도 동일한 OPENAI_API_KEY 환경 변수를 사용합니다.
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-6.1-sol",
reasoning={"effort": "medium"},
input="List three ways a webhook retry policy can create duplicate orders. One line each.",
)
print(response.output_text)
print(response.usage)
응답에서 다음 필드를 확인하세요.
status
성공하면completed입니다. 출력 토큰 예산이 부족하면 가시적인 텍스트가 생성되기 전에도status: "incomplete"와incomplete_details.reason: "max_output_tokens"가 반환될 수 있습니다. 추론 가이드는 실험 중 추론과 출력을 위해 최소 25,000토큰을 예약할 것을 제안합니다.output
배열 형태입니다. 실제 답변은type: "message"항목에 들어가며, 그 안의 콘텐츠에서output_text를 읽습니다. 배열 인덱스가 아니라type기준으로 탐색하세요.usage.output_tokens
출력 요율로 청구되는 추론 토큰을 포함합니다. 추론 토큰 수는usage.output_tokens_details.reasoning_tokens에서 확인할 수 있습니다.usage.input_tokens_details
cached_tokens와cache_write_tokens를 제공합니다. 캐시 비용 절감 효과를 계산할 때 사용합니다.
도구 호출이 필요한 워크플로는 Responses API를 사용하세요. GPT-6.1 Sol은 도구가 없는 요청에 대해서만 Chat Completions를 지원합니다. 요청 구조는 Responses API 가이드에서 더 자세히 확인할 수 있습니다.
추론 노력 수준 선택
reasoning.effort는 비용, 지연 시간, 품질에 직접 영향을 주는 주요 설정입니다. 값을 생략하면 기본값은 medium입니다.
OpenAI의 모델 선택 가이드는 medium을 복잡한 기술 작업과 조정된 결과물에, xhigh를 세련된 결과물과 상충하는 증거 기반 의사결정에 연결합니다. 아래는 OpenAI의 출시 게시물에서 보고한 설정별 결과를 정리한 것입니다.
| Effort | 시작하기 좋은 작업 | OpenAI가 GPT-6.1 Sol에 대해 보고한 내용 |
|---|---|---|
low |
채팅, 추출, 분류, 기존에 none으로 실행한 작업 |
사용자가 오류를 표시한 대화에서 사실 오류 응답 비율이 11.4%(GPT-6 Sol)에서 7.7%로 감소 |
medium |
에이전트 자동화, 도구 호출 워크플로 | AutomationBench 1.0.6에서 Claude Opus 5.5보다 약 3분의 1 비용으로 +2.2pp, 동일 설정의 GPT-6 Sol보다 +4.8pp |
high |
어려운 디버깅, 심층 계획 | 설정별 특정 주장 없음 |
xhigh |
세련된 결과물, 긴 비동기 실행 | 설정별 특정 주장 없음 |
max |
컴퓨터 사용, 어려운 과학 작업 | OSWorld 2.0에서 GPT-6 Sol보다 절반 이하 비용으로 +7pp. Terminal-Bench Science 0.1에서 작업당 $5.47 |
두 가지를 주의하세요.
- 사실성 데이터셋은 이전에 오류가 표시된 대화로 구성되어 일반 트래픽을 그대로 대표하지 않습니다.
- Terminal-Bench Science에서는 GPT-6 Astra가 여전히 가장 높은 점수인 68.1%를 기록하므로, OpenAI는 가장 어려운 과학 작업에 Astra를 권장합니다.
기존에 none을 사용한 지연 시간 민감 요청은 low부터 시작해 직접 측정하세요. 추론 가이드는 low를 적당한 지연 시간 증가와 함께 효율적인 추론을 제공하는 설정으로 설명합니다.
대화 중 프롬프트 캐시를 유지한 채 effort를 바꾸려면 요청 수준의 reasoning.effort를 바꾸는 대신 configuration_update 입력 항목을 추가하세요.
gpt-6-sol에서 마이그레이션: 네 가지 코드 변경 사항
1. 모델 ID 교체
gpt-6-sol을 gpt-6.1-sol로 교체합니다. 모델 ID는 코드에 하드코딩하지 말고 환경 변수나 구성 파일에 둬야 롤백이 쉬워집니다.
MODEL_ID=gpt-6.1-sol
import os
model = os.getenv("MODEL_ID", "gpt-6.1-sol")
2. none과 minimal을 low로 재매핑
GPT-6.1 Sol은 none과 minimal을 지원하지 않습니다.
def normalize_effort(effort: str) -> str:
if effort in {"none", "minimal"}:
return "low"
return effort
OpenAI 지침에 따라 기존 none 요청은 low로 이동하고, minimal도 우선 low에서 시작한 뒤 대표 작업으로 품질과 지연 시간을 비교하세요.
none이 없는 GPT-6 Astra에서 해당 값을 전송하면 HTTP 400이 반환되므로, 트래픽을 옮기기 전에 공통 구성 값을 정리해야 합니다.
3. 샘플링 매개변수 제거
effort가 none이 아닌 경우 temperature, top_p, top_logprobs를 제거하세요. Chat Completions를 사용 중이었다면 logprobs도 제거 대상입니다.
# 제거 전
payload = {
"model": "gpt-6-sol",
"reasoning": {"effort": "none"},
"temperature": 0.2,
"top_p": 0.9,
"input": "..."
}
# 제거 후
payload = {
"model": "gpt-6.1-sol",
"reasoning": {"effort": "low"},
"input": "..."
}
4. Chat Completions 도구 호출을 Responses API로 이동
GPT-6 Sol은 reasoning_effort: "none"일 때만 Chat Completions 함수 호출을 허용했습니다. GPT-6.1 Sol에는 이 조합이 없으므로, 도구 호출 워크플로는 Responses API로 이동해야 합니다.
마이그레이션 후에는 최신 정보에 의존하는 평가도 다시 실행하세요. 지식 차단 시점이 2026년 4월 20일에서 2026년 4월 30일로 변경됩니다.
Astra에서 Sol로 이동하는 경우 Astra-to-Sol 마이그레이션 가이드를 먼저 확인하세요.
Batch, Flex, Fast 및 캐시된 입력 가격
GPT-6.1 Sol은 GPT-6 Sol과 같은 티어 구성을 유지하지만, 캐시된 입력 가격은 절반으로 줄었습니다. 가격은 API 가격 페이지를 기준으로 합니다.
GPT-6.1 Sol 모델 페이지에 따르면 입력이 272K 토큰을 초과하는 프롬프트는 GPT-6 Sol과 동일하게 전체 요청에 다음 가중 요율이 적용됩니다.
- 입력 및 캐시 요율: 2배
- 출력 요율: 1.5배
| 티어 | 입력 | 캐시된 입력 | 캐시 쓰기 | 출력 |
|---|---|---|---|---|
| 표준 | $2.00 | $0.10 | $2.50 | $10.00 |
| Batch | $1.00 | $0.05 | $1.25 | $5.00 |
| Flex | $1.00 | $0.05 | $1.25 | $5.00 |
| Fast | $4.00 | $0.20 | $5.00 | $20.00 |
| 표준, 272K 입력 토큰 초과 프롬프트 | $4.00 | $0.20 | $5.00 | $15.00 |
Flex는 요청별로 service_tier: "flex"를 설정합니다.
{
"model": "gpt-6.1-sol",
"service_tier": "flex",
"input": "..."
}
Fast는 service_tier: "fast"를 사용하며, "priority"도 별칭으로 허용됩니다.
{
"model": "gpt-6.1-sol",
"service_tier": "fast",
"input": "..."
}
Fast 모드는 EU 데이터 레지던시에서 사용할 수 없습니다. GPT-6.1 Sol용 Ultrafast는 “곧 출시 예정”이며, 현재는 GPT-6 Astra에서만 광범위하게 사용할 수 있습니다. 자세한 내용은 OpenAI Ultrafast 모드를 참고하세요.
야간 작업에는 OpenAI Batch API 가이드를 사용해 배치 실행을 구성할 수 있습니다.
캐시 절감 효과 계산
프롬프트 캐싱 가이드에 따르면 캐시 읽기 비용은 다음과 같습니다.
- GPT-6 Sol: 입력 요율의 0.1배
- GPT-6.1 Sol: 입력 요율의 0.05배
- 캐시 쓰기: 두 모델 모두 입력 요율의 1.25배
예를 들어 50,000토큰 시스템 프롬프트를 1,000개 요청에서 재사용한다고 가정해 보겠습니다.
- 캐시 쓰기 1회: 두 모델 모두 $0.125
- 캐시 읽기 999회:
- GPT-6 Sol: $9.99
- GPT-6.1 Sol: $5.00
캐시 가능한 최소 접두사는 가시 토큰 1,024개이며, 캐시된 접두사는 마지막 쓰기 또는 재사용 이후 최소 30분 동안 유효합니다. 프롬프트 분할 전략은 GPT-6 프롬프트 캐싱을 참고하세요.
Apidog에서 스왑 테스트하기
정가만 보고 프로덕션 트래픽을 전환하지 마세요. 동일한 요청을 두 모델 ID에 보내고 출력, 토큰 사용량, 비용을 비교해야 합니다.
Apidog에서 다음 순서로 테스트합니다.
- 환경 변수를 생성합니다.
OPENAI_API_KEY = 비밀 값으로 저장
MODEL_ID = gpt-6-sol
EFFORT = medium
- 다음 요청을 생성하고 저장합니다.
POST https://api.openai.com/v1/responses
Authorization: Bearer {{OPENAI_API_KEY}}
Content-Type: application/json
{
"model": "{{MODEL_ID}}",
"reasoning": {"effort": "{{EFFORT}}"},
"max_output_tokens": 25000,
"input": "Return a JSON object with keys risk and fix for this policy: retry any 5xx three times with no idempotency key."
}
- 다음 어설션을 추가합니다.
- HTTP 상태 코드가
200 -
$.status가completed -
$.output[*].type에message포함 -
$.usage.output_tokens가 0보다 큼 -
$.usage.output_tokens_details.reasoning_tokens존재 - 애플리케이션이 파싱하는 키를 포함한 유효한 JSON 반환
-
usage를 요청당 비용으로 변환하는 후처리 스크립트를 추가합니다.
const u = pm.response.json().usage;
const d = u.input_tokens_details || {};
const cached = d.cached_tokens || 0;
const writes = d.cache_write_tokens || 0;
const model = pm.environment.get("MODEL_ID");
const cachedRate = model === "gpt-6.1-sol" ? 0.10 : 0.20;
const cost = (
(u.input_tokens - cached - writes) * 2 +
cached * cachedRate +
writes * 2.5 +
u.output_tokens * 10
) / 1e6;
console.log(model, "cost per call $", cost.toFixed(5));
- 먼저
MODEL_ID=gpt-6-sol로 전송한 뒤,MODEL_ID=gpt-6.1-sol로 바꿔 같은 요청을 다시 실행합니다.
비교할 값은 다음과 같습니다.
reasoning_tokensoutput_tokens- 최종 답변
- 어설션 결과
- 기록된 요청당 비용
기존에 none을 사용했다면 기준선은 none, 후보는 low로 실행해 비교하세요.
CI에서 두 모델 비교 실행
요청과 실제 프롬프트를 테스트 시나리오로 이동한 뒤 Apidog CLI에서 두 번 실행합니다. --env-var를 사용하면 하나의 시나리오에서 모델 ID만 재정의할 수 있습니다.
npm install -g apidog-cli
apidog run \
--access-token "$APIDOG_ACCESS_TOKEN" \
-t "$SCENARIO_ID" \
-e "$ENV_ID" \
--env-var "MODEL_ID=gpt-6-sol" \
-r cli,junit
apidog run \
--access-token "$APIDOG_ACCESS_TOKEN" \
-t "$SCENARIO_ID" \
-e "$ENV_ID" \
--env-var "MODEL_ID=gpt-6.1-sol" \
-r cli,junit
어설션이 실패하면 CI 작업도 실패하며, JUnit 보고서에서 두 실행 결과를 나란히 확인할 수 있습니다. 실행마다 달라지는 출력의 검증 방식은 비결정적 AI 에이전트 테스트를 참고하세요.
FAQ
GPT-6.1 Sol이 GPT-6 Sol보다 비싼가요?
아니요. 두 모델 모두 1백만 토큰당 입력 $2, 출력 $10입니다. 다만 GPT-6.1 Sol의 캐시된 입력은 $0.20에서 $0.10으로 낮아졌으므로 캐시 사용량이 높은 워크로드는 비용이 줄어듭니다.
reasoning.effort: "none"은 어떻게 처리하나요?
GPT-6.1 Sol은 none과 minimal을 지원하지 않습니다. 두 값 모두 low로 매핑하고, temperature와 top_p를 제거한 뒤 전환 전에 평가를 다시 실행하세요.
GPT-6.1 Sol을 Chat Completions에서 사용할 수 있나요?
예. 도구가 없는 요청에 한해 사용할 수 있습니다. 도구 호출은 Responses API가 필요합니다.
무료 GPT-6.1 Sol API 티어가 있나요?
아니요. API 호출은 첫 요청부터 토큰당 요금이 청구됩니다. 가장 저렴한 경로는 GPT-6.1 Sol은 무료인가요?에서 확인할 수 있습니다.
다음 단계
- 첫 번째 Responses API 요청을 저장합니다.
- 현재 effort 설정으로
gpt-6-sol을 실행합니다. - 같은 프롬프트를
gpt-6.1-sol로 실행합니다. - 자체 트래픽 기준으로 출력,
usage, 비용을 비교합니다. - 두 실행을 CI 어설션으로 유지합니다.
반복 가능한 회귀 테스트를 구성하려면 Apidog 다운로드를 이용하세요. Anthropic 모델도 비교 중이라면 GPT-6.1 Sol vs Claude Sonnet 5.5를 참고하세요.
Top comments (0)