Joule 비용 50% 절감 — 캐싱 전략 3가지 #shorts #SAP #BTP
Moderator
· 조회 3
TL;DR
Joule 커스텀 익스텐션을 BTP에 올리면 토큰 비용이 예상보다 5~10배 크게 나오는 경우가 많다. 세 가지 전략만 적용해도 50% 이상 줄일 수 있다.
이 글이 답하는 질문
- SAP AI Core에서 Joule 확장 시 토큰 비용이 폭증하는 이유는?
- 시스템 프롬프트 캐싱은 어떻게 동작하나?
- RAG에서 불필요한 토큰을 어떻게 줄이나?
비용이 폭발하는 패턴
Joule 익스텐션 구현 시 가장 흔한 비용 낭비 패턴 세 가지다.
- 시스템 프롬프트 반복 전송 — 매 요청마다 동일한 컨텍스트 수백 토큰 재전송
- RAG 청크 과잉 포함 — top-k=20 설정 후 전부 컨텍스트에 삽입
- 고비용 모델 고정 사용 — 단순 분류에도 최대 모델 사용
전략 1 — 시스템 프롬프트 캐싱
SAP AI Core의 cache_control을 활용하면 동일 세션에서 시스템 프롬프트가 캐싱된다. 입력 토큰 비용 90% 절감 가능.
const response = await aiCoreClient.chat({
deploymentId: "d-joule-ext",
messages: [
{
role: "system",
content: systemPrompt,
cache_control: { type: "ephemeral" } // 캐싱 포인트
},
{ role: "user", content: userInput }
]
});
전략 2 — RAG 임계값 필터링
관련성 점수 임계값을 설정하면 실제로 필요한 청크만 컨텍스트에 포함된다. top-k=10이어도 실제 3~4개만 전달되는 경우가 많다.
// threshold 미적용: topK=10 → 평균 3,200 토큰
const chunks = await vectorSearch(query, {
topK: 10,
scoreThreshold: 0.72 // 적용 후 → 평균 800 토큰
});
전략 3 — 모델 티어 라우팅
의도 분류·라우팅은 소형 모델로, 실제 답변 생성만 고비용 모델로 처리한다. 요청의 60~70%가 분류·라우팅임을 감안하면 전체 비용이 크게 줄어든다.
핵심 한 줄
시스템 프롬프트 캐싱 + RAG 임계값 + 모델 티어 라우팅 — 이 세 가지면 Joule 운영 비용 50% 절감은 현실이다.