GPT 6 Astra 효율적으로 사용하는 활용 가이드, 토큰 절약

프롬프트 캐싱과 5단계 추론 강도로 비용·속도·품질을 조절하는 방법
- 참고 자료
프롬포트 캐싱
Prompt caching | OpenAI API
Learn how prompt caching reduces latency and cost for long prompts in OpenAI's API.
developers.openai.com
추론 모델
Reasoning models | OpenAI API
Learn how to use OpenAI reasoning models in the Responses API, choose a reasoning effort, manage reasoning tokens, and keep reasoning state across turns.
developers.openai.com
핵심 요약
GPT-6 Astra를 효율적으로 사용하는 방법은 간단하다.
- 반복되는 긴 지침은 프롬프트 캐싱으로 재사용한다.
- 요청 난이도에 맞춰 low부터 max까지 추론 강도를 선택한다.
- 대부분의 요청은 low 또는 medium으로 시작한다.
- 어렵거나 실패 위험이 큰 작업에만 high, xhigh, max를 사용한다.
- 품질뿐 아니라 캐시 적중률, 비용, 응답 시간을 함께 측정한다.
GPT-6 Astra가 low, medium, high, xhigh, max를 지원하는 것은 공식 기능이다.
이 문서의 업무 분류 방식은 팀에서 적용할 수 있도록 만든 권장 운영 방법이다.
1. 프롬프트 캐싱이란?
같은 내용으로 시작하는 긴 프롬프트를 반복 호출할 때, 이전에 처리한 부분을 재사용하는 기능이다.
예를 들어 모든 요청에 다음 내용을 반복해서 보낸다고 가정하자.
- 서비스 운영 규칙
- 답변 형식
- 공통 참고자료
- 예시
- 도구 정의
이 내용을 프롬프트 앞부분에 고정하면 다음 요청부터 캐시로 재사용할 수 있다.
정확히 무엇이 절약되는가?
캐싱은 입력 토큰 자체를 없애는 기능이 아니다. 캐시로 읽은 토큰도 API 사용량에 표시된다. 대신 해당 토큰의 비용과 처리시간을 줄인다.
GPT-6 Astra의 현재 입력 가격은 다음과 같다.
구분 100만 토큰당 가격
| 일반 입력 | $10.00 |
| 캐시 읽기 | $1.00 |
| 캐시 쓰기 | $12.50 |
첫 캐시 쓰기는 일반 입력보다 25% 비싸지만, 이후 읽기는 일반 입력의 10% 가격이다. 따라서 같은 긴 prefix를 반복해서 사용하는 업무에 효과가 크다.
가격은 변경될 수 있으므로 적용 전에 GPT-6 Astra 공식 모델 페이지를 확인한다.
2. Astra의 5단계 추론 강도
reasoning.effort는 모델이 문제를 해결할 때 사용할 추론 강도를 조절한다.
단계 설정 사용하기 좋은 작업
| 1 | low | 추출, 분류, 짧은 요약, 단순 코드 수정 |
| 2 | medium | 일반 분석, 코드 작성, 코드 리뷰 |
| 3 | high | 복잡한 디버깅, 설계, 여러 조건의 분석 |
| 4 | xhigh | 어려운 장기 작업, 높은 정확도가 필요한 작업 |
| 5 | max | 최고 난도 문제, 실패 비용이 큰 최종 검토 |
권장 시작점은 다음과 같다.
- 명확하고 단순한 요청: low
- 일반적인 개발 업무: medium
- 복잡하거나 실패 위험이 큰 업무: high
- 매우 어려운 업무: xhigh
- 다른 단계로 해결되지 않거나 최종 검증이 중요한 업무: max
모든 요청에 max를 사용하면 비용과 응답 시간이 불필요하게 증가할 수 있다. 또한 GPT-6 Astra는 none을 지원하지 않는다.
3. 가장 단순한 라우팅 방법
처음부터 복잡한 자동 분류기를 만들 필요는 없다. 업무 종류별로 기본값을 정하는 것부터 시작한다.
type ReasoningEffort = "low" | "medium" | "high" | "xhigh" | "max";
type WorkType =
| "extract"
| "summarize"
| "code"
| "debug"
| "architecture"
| "critical-review";
function selectEffort(workType: WorkType): ReasoningEffort {
const routes: Record<WorkType, ReasoningEffort> = {
extract: "low",
summarize: "low",
code: "medium",
debug: "high",
architecture: "xhigh",
"critical-review": "max",
};
return routes[workType];
}
운영하면서 실제 품질과 비용을 보고 업무별 기본값을 조정한다.
낮은 단계에서 결과 검증에 실패하면 한 단계 높여 다시 실행할 수 있지만, 최대 재시도 횟수는 제한해야 한다.
4. 캐시가 잘 작동하는 프롬프트 구조
캐시는 프롬프트의 처음부터 동일한 부분을 찾는다. 따라서 고정 내용은 앞에, 매번 바뀌는 내용은 뒤에 둔다.
[고정 영역]
- 개발자 지침
- 출력 규칙
- 공통 참고자료와 예시
- 도구 정의
--- 캐시 경계 ---
[동적 영역]
- 사용자 정보
- 검색 결과
- 현재 요청
- 날짜와 요청 ID
다음 항목을 고정 영역 중간에서 자주 바꾸면 캐시 적중률이 낮아질 수 있다.
- 모델과 추론 강도
- 개발자 지침
- 도구 이름, 설명, 스키마와 순서
- 출력 형식과 Structured Output 스키마
- text.verbosity
GPT-5.6 이상 모델은 캐시 가능한 prefix가 최소 1,024토큰이어야 한다.
짧은 프롬프트나 한 번만 사용하는 프롬프트는 캐싱 효과가 거의 없다.
5. 바로 적용할 수 있는 TypeScript 예제
OpenAI SDK를 설치한다.
npm install openai
API 키는 소스 코드에 넣지 않고 OPENAI_API_KEY 환경 변수로 설정한다.
import OpenAI from "openai";
const client = new OpenAI();
type ReasoningEffort = "low" | "medium" | "high" | "xhigh" | "max";
// 실제 환경에서는 반복해서 사용하는 규칙, 참고자료, 예시를 넣는다.
// 캐싱하려면 전체 고정 prefix가 최소 1,024토큰인지 확인한다.
const STATIC_INSTRUCTIONS = `
당신은 코드 리뷰 도우미다.
정확성, 보안, 성능과 유지보수성을 검토한다.
문제가 있으면 근거, 영향과 수정 방법을 함께 제시한다.
근거가 부족한 내용은 추측이라고 표시한다.
`;
export async function reviewCode(
code: string,
effort: ReasoningEffort = "medium",
) {
const response = await client.responses.create({
model: "gpt-6-astra",
reasoning: { effort },
text: { verbosity: "low" },
// 같은 업무와 프롬프트 버전에는 같은 키를 사용한다.
prompt_cache_key: `code-review:v1:astra-${effort}`,
prompt_cache_options: {
mode: "explicit",
ttl: "30m",
},
input: [
{
role: "developer",
content: [
{
type: "input_text",
text: STATIC_INSTRUCTIONS,
prompt_cache_breakpoint: { mode: "explicit" },
},
],
},
{
role: "user",
content: `다음 코드를 검토해줘:\n\n${code}`,
},
],
});
return {
text: response.output_text,
usage: response.usage,
};
}
주요 설정
설정 의미
| model | GPT-6 Astra 선택 |
| reasoning.effort | 요청 난이도에 맞는 추론 강도 |
| text.verbosity | 최종 답변 길이 조절 |
| prompt_cache_key | 같은 업무의 요청을 묶는 안정적인 키 |
| prompt_cache_options.ttl | 현재 지원되는 캐시 최소 유지시간 30m |
| prompt_cache_breakpoint | 고정 영역이 끝나는 위치 표시 |
명시적 경계가 필요하지 않은 단순한 업무는 mode: "implicit"으로 시작해도 된다.
이 경우 OpenAI가 캐시 경계를 자동으로 선택한다.
6. 캐시 적용 여부 확인
응답의 usage.input_tokens_details를 확인한다.
const details = response.usage?.input_tokens_details;
console.log({
inputTokens: response.usage?.input_tokens,
cachedTokens: details?.cached_tokens,
cacheWriteTokens: details?.cache_write_tokens,
outputTokens: response.usage?.output_tokens,
});
- 첫 요청에서는 cache_write_tokens가 발생할 수 있다.
- 같은 prefix를 다시 사용하면 cached_tokens가 증가해야 한다.
- cached_tokens가 계속 0이면 고정 prefix 길이와 변경되는 설정을 확인한다.
캐시 적중률만 보지 말고 다음 항목을 함께 기록한다.
- 선택한 reasoning.effort
- 전체 비용
- 응답 시간
- 결과 검증 성공 여부
- 상위 단계로 재시도한 횟수
가장 중요한 지표는 성공한 작업 한 건당 비용이다.
7. 권장 적용 순서
1단계: 현재 상태 측정
대표 요청을 모아 품질, 비용과 응답 시간을 기록한다.
2단계: 캐싱 적용
고정 내용을 앞에 배치하고 prompt_cache_key와 캐시 옵션을 추가한다. 두 번째 요청부터 cached_tokens가 발생하는지 확인한다.
3단계: 추론 강도 분리
기본값을 medium으로 시작한다. 평가를 통과한 단순 업무만 low로 낮추고, 어려운 업무만 high 이상으로 올린다.
4단계: 운영 데이터로 조정
업무별 품질과 성공 비용을 비교해 라우팅 기준을 수정한다. 변경 전후를 같은 평가 요청으로 비교한다.
8. 꼭 피해야 할 실수
- 모든 요청에 max를 사용한다.
- 날짜, 사용자 ID 등 매번 바뀌는 값을 프롬프트 앞에 둔다.
- 도구 정의나 순서를 요청마다 바꾼다.
- 재사용하지 않는 짧은 프롬프트까지 캐싱한다.
- 캐싱이 실제 입력 토큰 수를 없앤다고 생각한다.
- cached_tokens만 보고 전체 비용이 줄었다고 판단한다.
- 출력 길이를 관리하지 않는다. Astra는 출력 단가도 높으므로 text.verbosity를 함께 설정한다.
대화 중 effort를 변경하면서 캐시를 유지해야 하는 고급 사용 사례에는 Astra의 configuration_update를 사용할 수 있다. 현재 Standard·단일 에이전트 모드 등의 제한이 있으므로 Reasoning models 공식 문서의 최신 조건을 확인한다.
9. 최종 체크리스트
- Responses API와 gpt-6-astra를 사용한다.
- 대부분의 요청은 low 또는 medium으로 시작한다.
- 고정 내용을 프롬프트 앞에 배치했다.
- 동적 내용을 캐시 경계 뒤에 배치했다.
- 고정 prefix가 최소 1,024토큰인지 확인했다.
- 같은 업무에 안정적인 prompt_cache_key를 사용한다.
- cached_tokens와 cache_write_tokens를 기록한다.
- 품질, 비용과 응답 시간을 함께 비교한다.
- max는 꼭 필요한 작업에만 사용한다.
공식 문서
- https://openai.com/index/gpt-6-astra/
- GPT-6 Astra 모델 및 가격
- GPT-6 Astra 사용 가이드
- Prompt caching
- Reasoning models
- Responses API로 마이그레이션
가격, 기능과 API 제한은 변경될 수 있다. 운영에 적용하기 전에 공식 OpenAI 문서를 다시 확인한다.
'Tech Note :' 카테고리의 다른 글
| 간단하게 윈도우에서 iOS 빌드하고 아이폰 앱 설치하는 방법 / Github Actions, Sideloadly, iTunes (0) | 2026.09.01 |
|---|---|
| 실시간 재고와 정확한 재고는 동시에 가능할까 | 외부 WMS를 통한 실시간 재고 관리 (0) | 2026.06.02 |
| 신규 ERP 프론트엔드 초기 세팅에 적용한 보안·협업 자동화 패턴 | pnpm 공급망 격리, Husky v9, commitlint 등 (0) | 2026.05.27 |
| Redis 에서 Valkey 로 | 사내 시스템 캐시 인프라 결정 (0) | 2026.05.19 |