메뉴

LLM API 비용을 70% 절감했습니다: 라우팅과 캐싱을 활용한 AirAi 실전 노트

0. 배경: 결제 문제가 어떻게 발생했는가

저는 몇 개의 사이드 프로젝트를 진행하고 있는데, 초기에는 공식적인 월간 구독 서비스($20/mo)를 구매하거나 국제 신용카드 결제가 거절될 때를 감수해야 했습니다. 월말에 계산을 해보니 두 가지 심각한 문제가 있었습니다:

  1. 요청의 80%가 요약, 분류, 포맷ting과 같은 간단한 작업이었는데, 가장 비싼 모델을 사용하는 것은 완전히 낭비였습니다;

  1. 구독 비용은 고정된 비용이었기 때문에, 호출 횟수가 적을 때는 손해를 보고, 호출 횟수가 많을 때는 모델이 부족했습니다.

그래서 저는 AirAi로 방향을 바꿨습니다: 자체적으로 API 키를 사용하고, 사용량에 따라 요금을 지불하며, 클라이언트를 AirAi의 OpenAI와 호환되는 인터페이스로 연결했습니다.

여기에도 재미있는 에피소드가 있어요. 저는 항상 제대로 된 국제 신용카드를 가지고 있지 않아서, 공식 결제 방법을 사용할 때마다 거절당했어요. 한동안은 가족의 카드를 빌려서 사용했는데, 그로 인해 신용 위험 평가가 발생해서 계정이 바로 차단되었죠. 2주 가까이 항의한 끝에야 해제되었습니다. 그 후로는 국제 카드에 의존하지 않는 결제 방법만을 찾기로 마음먹었습니다. 결국 찾은 이 웹 게이트웨이는 USDT만을 받아들였는데, 국제 카드가 없는 저에게는 오히려 사용하기 가장 쉬운 방법이었습니다. 코인을 충전하면 바로 사용할 수 있고, 월정액도 없으며, KYC(고객 신원 확인) 절차도 필요하지 않았어요. 가장 중요한 것은 가격이었어요. 제가 계산해보니, 가격이 공식 결제 방법의 약 10% 수준이었거든요. 바로 그 점이 저로 하여금 이 웹 게이트웨이를 계속 사용하게 된 진짜 이유였습니다.

1. 한 줄로 전환: 원하는 호환 가능한 게이트웨이로 전환하기

거의 모든 사용자 정의 엔드포인트를 지원하는 클라이언트(Claude Code, Cursor, Open WebUI, LibreChat, Cline 등)는 코드를 수정하지 않고도 한 줄의 환경 변수를 사용하여 게이트웨이를 전환할 수 있습니다. 아래의 두 변수를 자신의 게이트웨이로 설정하기만 하면 됩니다.

export OPENAI_BASE_URL="https://api.airai.cc/v1"
export ANTHROPIC_BASE_URL="https://api.airai.cc/v1"

어떤 게이트웨이를 선택할지는 다른 문제이며, 이 글에서는 구현 방법에만 초점을 맞춥니다.

2. 코드 실전: 라우팅 + 캐싱

빛을 전환하는 것만으로는 충분하지 않습니다. 진정으로 돈을 절약하는 방법은 “올바른 모델이 올바른 작업을 수행하도록 하고 반복적인 요청을 캐싱하는 것”입니다. 다음은 제가 실제 생산 환경에서 사용하는 구조입니다(OpenAI SDK와 호환됨). base_url와 api_key는 모두 환경 변수에서 읽어오며, 코드에 고정되어 있지 않습니다:

import openai, hashlib, os

client = openai.OpenAI(
    base_url=os.getenv("OPENAI_BASE_URL"),
    api_key=os.getenv("OPENAI_API_KEY"),
)

# Routing: small model for light tasks, flagship only for complex reasoning
CHEAP  = "gpt-5.6-luna"   # classification / summarization / formatting
STRONG = "gpt-5.6-sol"    # only called for complex reasoning

_cache: dict[str, str] = {}   # swap for Redis in production

def ask(prompt: str) -> str:
    model = STRONG if len(prompt) > 400 else CHEAP
    key = hashlib.md5(prompt.encode()).hexdigest()
    if key in _cache:                      # cache hit, 0 cost
        return _cache[key]
    resp = client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": prompt}],
    )
    answer = resp.choices[0].message.content
    _cache[key] = answer
    return answer

CHEAP/STRONG당신의 예산과 원하는 결과에 맞게 조정하세요. 모델 이름은 사용하는 게이트웨이의 문서를 참고하여 정하시기 바랍니다. 오프라인 작업은 Batch 인터페이스를 사용하면 일반적으로 비용을 절반 이상 절약할 수 있습니다.

3. 비용 비교 (시안)

개조 전후의 비용 비교시안실제 수치는 청구서를 참고하시기 바랍니다:

프로젝트

공식 구독 / 직접 연결

AirAi + 라우팅 캐싱

결제 방식

고정 월정액 / 공식 가격

사용량 기반 결제

라이트 모델

플래그십 (비효율적)

소형 모델 (더 저렴함)

요청 반복

전체 비용 재계산

캐시 적중률 0, 비용 없음

체감 비용

기준값의 100%

약 10–30% (요청량에 따라 다름)

4. 솔직한 평가 (진실을 말하자면)

  • 모든 사람에게 더 절약되는 것은 아닙니다.: 월간 요청량이 매우 적을 때는 고정 구독이 더 경제적일 수 있습니다; 사용량이 많을 때만 사용량 기반 요금제가 유리합니다. 먼저 자신의 사용량을 계산해 보세요.

  • 지연 및 안정성: 게이트웨이가 한 층 더 추가되면 지연이 조금 증가하며, 핵심 경로에서는 시간 초과와 성능 저하가 발생할 수 있습니다.

  • 키 보안: 키는 환경 변수에 저장하고, 프론트엔드나 공개 저장소에 고정적으로 저장하지 마세요.

5. 요약

성 LLM 비용의 본질은 한마디로 이렇습니다: 저렴한 모델로 대부분의 작업을 처리하고, 비싼 모델은 필요할 때만 사용하며, 낭비되는 토큰을 줄이는 것입니다. “N개의 시스템과 연동”하는 것을 “한 줄의 코드로 수정”하는 것으로 바꾸는 것이죠.base_url"루팅과 캐싱은 무료로 사용할 수 있는 두 가지 도구입니다. 먼저 이것들을 활용해 보는 것이 좋겠습니다."


도움이 되었나요?

기술 지원온라인 상담
侧栏
맨 위로
简体中文ZH-CNDefault繁體中文ZH-TWEnglishEN日本語JA한국어KOภาษาไทยTHTiếng ViệtVIBahasa IndonesiaIDEspañolESFrançaisFRDeutschDEРусскийRUPortuguêsPTItalianoITالعربيةAR