OpenAI는 2026년 9월 3일 GPT-6 Astra를 발표했다. API 식별자는 gpt-6-astra이고, 4일에 API 고객에게 열렸다. “어떻게 호출하나”로 검색하는 사람은 $10/$50나 105만 토큰 창에서 막히지 않는다. ChatGPT에는 GPT-6 Pro가 보이는데 Python은 model_not_found를 낸다. 작년 Chat Completions 예제를 그대로 붙이면 첫 tools에서 400이 난다. 이 글은 Astra가 무엇인지 다시 쓰지 않는다. 그 내용은 출시·가격·Agent 해설에 있다. 여기서는 API Key부터 첫 output_text까지 通는다.
첫 요청이 자주 실패하는 이유
예전에는 플래그십이 나온 날 모델 문자열만 바꿨다. 지금은 네 가지를 맞춘다. 유료 프로젝트, 환경 변수에만 있는 Key, 올바른 엔드포인트, 고정한 모델 ID와 effort. 分水嶺는 OpenAI()를 쓸 줄 아는가가 아니다. ChatGPT 창과 API 프로젝트를 한 시스템으로 보느냐다.
실패 다섯 경로는 서로 무관한데 겹친다. 첫째, Plus / Pro로 GPT-6 Pro와 대화해도 platform.openai.com 프로젝트에 Astra가 있다는 뜻은 아니다. 둘째, 기업 워크스페이스는 기본으로 끄고, SDK는 “관리자에게 물어라”가 아니라 모델 불가를 낸다. 셋째, 무료 티어는 미지원이니 결제 전에 SDK를 의심하지 마라. 넷째, 평문은 Chat Completions도 되지만 도구 호출은 Responses다. 다섯째, 소스·노트북·채팅에 Key를 두면 폐기 후 갑자기 401이 난다.
지식 컷오프는 2026년 4월 30일이다. reasoning.effort는 low, medium, high, xhigh, max다. none은 불가이며 400이다. 게이트웨이 기본은 종종 low다. 첫 ping은 low. 通선을 확인하는 것이지 “hello”에 max 추론비를 태우는 일이 아니다.
분류: Key, 엔드포인트, 모델 ID
들리는 이름을 네 층으로 나눠 “ChatGPT에 로그인했다”를 “API를 칠 수 있다”로 읽지 마라.
| 층 | 들리는 이름 | 첫 요청의 실제 의미 |
|---|---|---|
| 제품 입구 | ChatGPT / API / Azure / Bedrock | 이 튜토리얼은 OpenAI API. 클라우드는 각자 SDK와 배포 이름 |
| 비밀 | User key / Project key | 유료 프로젝트에서 만들고 환경에만, 소스 금지 |
| 엔드포인트 | Responses / Chat Completions / Batch | 신규는 Responses. 구 텍스트는 Completions. 오프라인 대량은 Batch |
| 모델 | GPT-6 / Astra / GPT-6 Pro / Ultra | 보내는 값은 gpt-6-astra. 운영은 카탈로그 스냅샷 |
Key까지 最短 경로: platform.openai.com을 열고 조직·프로젝트에 결제가 있으며 무료 티어가 아님을 확인한 뒤, 이 노트북 또는 이 CI 전용 키를 만들고 한 번만 복사한다. UI는 이후 전체 값을 보여 주지 않는다. Windows는 시스템 또는 비밀 관리, macOS / Linux는 export. 동료 채팅에 붙이지 말고 Jupyter 저장 출력에도 남기지 마라.
# macOS / Linux export OPENAI_API_KEY="sk-..." # never commit the key echo 'OPENAI_API_KEY=sk-...' >> .env echo '.env' >> .gitignore
공식 openai 패키지를 설치한다. 오래된 클라이언트는 client.responses 자체가 없다. “Astra가 닫혔다”처럼 보이지만 실체는 Completions 전용 SDK다.
python3 -m pip install -U "openai>=1.0" python3 -c "import openai; print(openai.__version__)"
출시 시점 입출력은 텍스트·이미지 입력과 텍스트 출력이다. 오디오·비디오 입력은 열려 있지 않다. Responses 도구는 웹 검색, 파일 검색, 이미지 생성, 코드 인터프리터, 호스팅 shell, apply patch, Skills, Computer Use, MCP, tool search다. 함수 호출과 구조화 출력은 되고 파인튜닝은 안 된다. 모두 “첫 텍스트가 성공한 뒤”의 이야기다. 1단계에서 Computer Use를 붙이지 마라.
Responses와 Chat Completions
비대칭 결론: 평문은 두 길로 Astra에 닿는다. 도구, 호스팅 기능, 비동기 tool은 Responses가 필수다. messages 배열에 익숙하다고 새 Agent를 Completions에 용접하지 마라.
| 능력 | Responses API | Chat Completions | Batch / Flex |
|---|---|---|---|
평문 gpt-6-astra | 지원, 신규 기본 | 지원, 기존 텍스트 경로 | 지원, 표준 50% |
| 함수 호출 / 구조화 출력 | 지원, 권장 입구 | 새 Astra 도구 체인의 기본으로 쓰지 말 것 | 배치 규칙 |
| 호스팅 도구(검색, shell, Computer Use) | 지원 | 주 경로 아님 | 대화형 데스크톱에 부적합 |
| 스트리밍 | 지원 | 지원 | 실시간 터미널용이 아님 |
| 첫 탐침 | 권장 | 구 게이트만 남을 때 | Key 확인에 쓰지 말 것 |
가격은 백만 토큰당 입력 $10, 출력 $50. 캐시 읽기 $1, 쓰기 $12.50. 컨텍스트 1,050,000, 최대 출력 128,000. 입력 272K 초과는 요청 전체가 입력·캐시 2배, 출력 1.5배다. Fast는 적용 요금의 2배. 검색과 Computer Use는 별도 도구비. 한 문장·low 첫 ping은 무시할 금액이어야 한다. 처음부터 긴 추론이 나오면 탐침이 아니라 평가를 쓴 것이다.
도구 루프 프로토콜은 그대로다. 모델이 구조화 요청을 내고 런타임이 부작용을 실행한다. 세 벤더 JSON 방언이 업무 if/else에 남아 있으면 내부 ToolCall을 먼저 접어라. Function Calling 대조와 Agent Memory 비용을 참고하라.
최소 Python: Key에서 첫 요청까지
아래 스크립트는 세 가지만 한다. 환경을 읽고 gpt-6-astra를 고정하며 low effort로 한 문장을 확인한다. 성공은 문체가 아니다. output_text와 response.id를 인쇄하는 것이다. ID를 남겨라. “된 것 같다”는 장애 기록이 아니다.
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-6-astra",
instructions="You are a concise engineering assistant.",
input="Reply with one sentence: Astra API is reachable.",
reasoning={"effort": "low"},
)
print(response.output_text)
print(response.id)
print(getattr(response, "usage", None))
레거시 게이트가 messages만 보낼 수 있으면 텍스트 탐침은 Chat Completions로 해도 된다. Key와 모델 ID는 증명된다. 나중에 hosted shell을 붙일 수 있는지는 증명되지 않는다.
from openai import OpenAI
client = OpenAI()
completion = client.chat.completions.create(
model="gpt-6-astra",
messages=[
{"role": "system", "content": "You are a concise engineering assistant."},
{"role": "user", "content": "Reply with one sentence: Astra API is reachable."},
],
)
print(completion.choices[0].message.content)
스트리밍은 선택적 2단계이지 첫 수업이 아니다. 비스stream=True. 이벤트 타입은 설치한 SDK를 따른다. 아래는 흔한 response.output_text.delta다. 필드가 다르면 event.type을 찍어 공식 표와 맞추고 추측하지 마라.
from openai import OpenAI
client = OpenAI()
stream = client.responses.create(
model="gpt-6-astra",
input="List three safe checks before a production cutover.",
reasoning={"effort": "low"},
stream=True,
)
for event in stream:
if getattr(event, "type", "") == "response.output_text.delta":
print(event.delta, end="", flush=True)
모든 오류를 재시도하지 마라. 연결 실패는 네트워크와 프록시. 429는 Retry-After와 사용 티어. 400은 모델 ID, effort, 스키마 오류이며 만 번 재시도해도 낫지 않는다. 401 / 403은 프로젝트 스위치와 Key 범위. 무료 티어나 기업 잠금이 원인이면 앱 계층에서 모델을 몰래 바꾸지 마라. 운영이 옛 플래그십을 따라간다.
from openai import APIConnectionError, APIStatusError, OpenAI, RateLimitError
client = OpenAI()
try:
client.responses.create(
model="gpt-6-astra",
input="ping",
reasoning={"effort": "low"},
)
except APIConnectionError as exc:
print("network", exc)
except RateLimitError as exc:
print("rate_limit", exc)
except APIStatusError as exc:
print(exc.status_code, exc.message)
장면을 고르는 법
| 당신이 | 고를 것 | 이유 |
|---|---|---|
| Key와 모델 ID를 처음 확인한다 | Responses + gpt-6-astra + effort low | 가장 짧고 싸고 디버그 필드가 많다 |
| messages 전용 게이트에 묶여 있다 | 텍스트 탐침만 Chat Completions | 접근은 증명된다. 새 도구는 Responses로 |
| 함수, 검색, shell, Computer Use를 붙인다 | Responses. Completions 용접 금지 | 호스팅 도구는 Responses에 있다 |
| 미뤄도 되는 오프라인 평가 | Batch / Flex | 반값. “지금 첫 문장”용이 아니다 |
| 저장소 수정, 테스트, 브라우저 | 아무 텍스트 경로 + 격리 Mac | 부족한 것은 실행 경계 |
| 공격형 보안 연구 | 공개 모델로 공격 증명을 쓰지 말 것 | 거부된다. 심사 경로로 |
권장 스택
A — 개인: 로컬 환경 변수, 공식 SDK, Responses 최소 스크립트. 기본은 low. 그 경로가 지루할 만큼 안정된 뒤에 스트리밍. API Key와 ChatGPT 로그인을 분리. 일상 완성은 싼 모델, Astra는 실패한 재시도와 긴 작업.
B — 소팀 게이트: 프로젝트 Key. CI는 읽기 전용. 설정에서 gpt-6-astra와 스냅샷을 고정하고 떠도는 “최신 플래그십”을 쫓지 마라. 채팅은 저렴, 코딩과 computer-use는 Astra. 호스팅 도구 전에 JSON 프로토콜을 접어라.
C — 기업: 관리자가 먼저 워크스페이스를 연다. 제로 데이터 보존은 별도 신청. 예산 경보는 프로젝트 단위. 긴 프롬프트는 캐시 접두사를 강제하고 272K 일괄 인상을 감시. 쓰기 세션은 폐기 가능한 원격 Mac과 경로 화이트리스트. 도움말과 Mac mini 가격.
흔한 오해
- ChatGPT의 GPT-6 Pro를 API 개방의 증거로 본다.
- Key를 소스, 노트북, 채팅에 두고 모델이 불안정하다고 말한다.
- 처음부터
effort=max나 반 저장소를 넣어 긴 추론과 272K를 밟는다. - 새 도구 체인을 Chat Completions에 용접해 hosted shell이 전부 400이 된다.
gpt-6,chatgpt-6, 소문의 Ultra를 보낸다.
7단계
- API 프로젝트에 결제가 있고 무료 티어가 아님을 확인. 기업은 관리자에게 Astra를 열어 달라고 한다.
- 플랫폼에서 Key를 만들고 환경 또는 비밀 관리에만 두며
.gitignore에 넣는다. - 최신
openaiSDK를 설치하고client.responses.create가 있는지 확인한다. - Responses로
model="gpt-6-astra",reasoning.effort="low"한 문장을 보낸다. output_text,response.id, usage를 인쇄하고 ID를 남긴다.- 텍스트 경로가 안정된 뒤 스트리밍이나 도구. JSON은 Function Calling 글과 맞춘다.
- 파일 수정, 명령, 브라우저는 격리 원격 Mac으로. 세션이 끝나면 폐기.
FAQ
ChatGPT에 GPT-6 Pro가 있는데 Python이 실패하는 이유는?
ChatGPT와 API는 다른 청구와 게이트다. 기업은 기본으로 Astra를 끄고, 무료 API 티어는 미지원이다. platform.openai.com 유료 프로젝트에서 Key를 만든다.
첫 요청은 Responses인가 Chat Completions인가?
평문은 둘 다 된다. 신규는 Responses. 함수, 호스팅 도구, 구조화 출력, 비동기 도구는 Responses가 필수다.
모델 ID는?
gpt-6-astra. 운영에서는 공식 카탈로그의 날짜 스냅샷. gpt-6, chatgpt-6, Ultra를 추측하지 마라.
reasoning.effort를 none으로?
안 된다. low, medium, high, xhigh, max. none은 400. 첫 ping은 low.
키를 소스에 넣어도 되나?
안 된다. 환경 변수나 비밀 관리. Git에 올리지 마라. 유출되면 즉시 폐기.
정리
GPT-6 Astra의 첫 수업은 플래그십 숭배가 아니다. 유료 프로젝트, 소스에 들어가지 않는 Key, Responses(또는 어쩔 수 없이 남긴 Completions 텍스트 경로), 고정한 gpt-6-astra를 맞추는 일이다. 첫 요청은 한 문장과 low. output_text가 나와야 通선이다. 도구, 긴 컨텍스트, Computer Use는 다음 수업이며 폐기 가능한 호스트에 둔다. 안정된 원격 Mac은 대여와 가격. 계정은 도움말.