본문으로 건너뛰기

LLM 가격과 컨텍스트를 한 API로 통합

llm-specs-api가 3,214개 LLM의 가격·컨텍스트·기능을 조회하고 호출 비용까지 추적합니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

llm-specs-api는 LiteLLM의 모델 가격 데이터셋을 부팅 시 메모리에 적재해 3,214개 모델과 127개 provider의 가격, Context Window, 기능 플래그를 하나의 REST API로 조회하게 합니다. 모델 목록은 provider와 mode, 지원 기능, 토큰 범위, 가격 조건으로 필터링하고 필요한 필드만 투영할 수 있으며, /v1/estimate는 입력·출력·캐시 사용량마다 실제 적용한 rate_key를 기록해 총비용을 재현합니다. Decimal 계산과 unpriced[] 분리로 작은 단가와 미확인 가격을 구별하지만, 검색 비용·tiered_pricing·DBU 요금처럼 아직 계산하지 않는 항목이 있습니다. 호스팅 인스턴스는 작성 시점에 배포되지 않았고, Docker나 Bun으로 로컬 실행하거나 직접 배포해야 합니다.

섹션별 상세

01
모델을 선택하려면 가격, Context Window, 기능 지원 여부, 지원 종료일을 함께 확인해야 하지만 원본 정보는 1.7 MB JSON 파일에 흩어져 있어 직접 파싱해야 했습니다. llm-specs-api는 부팅 시 데이터셋을 한 번 읽어 3,214개 모델과 127개 provider를 메모리에서 조회하도록 구성했습니다. 필터, 정렬, 필드 투영, 페이지네이션을 REST API로 통합해 애플리케이션이 모델 선택 조건을 한 번의 요청으로 좁힐 수 있다는 점이 핵심입니다.
02
개별 모델 조회 엔드포인트는 기본 가격뿐 아니라 특정 토큰 임계값과 캐시 작업에만 적용되는 요율까지 함께 반환합니다. 예시 응답에는 max_input_tokens 200000, max_output_tokens 64000, supports_prompt_caching true, supports_vision true와 함께 200k 초과 입력 가격과 1시간 캐시 생성 가격이 별도 키로 들어 있습니다. 따라서 모델 이름만 비교하는 대신 실제 요청의 입력 규모와 기능 요구사항을 가격표와 함께 판단할 수 있습니다.
03
POST /v1/estimate는 총액 하나가 아니라 각 사용량에 적용한 rate_key와 수량, 단가, 소계를 담은 영수증을 반환합니다. 200k 토큰 임계값을 넘은 예시에서는 입력 190000토큰, 출력 4000토큰, 캐시 읽기 20000토큰, 1시간 캐시 쓰기 8000토큰을 조합해 1.338 USD를 계산했습니다. 임계값에 따라 출력까지 재가격화되고 캐시 보존 시간이 추가 조건으로 결합되는 과정을 응답에서 추적할 수 있어 비용 검증이 가능합니다.
04
비용 엔진은 부동소수점 대신 Decimal을 사용하고, 가격이 없는 사용량을 0으로 처리하지 않고 unpriced[]에 분리합니다. 카탈로그에서 output_cost_per_token이 0인 258개 모델은 무료 가격과 미확인 가격을 구별해야 하므로 그대로 유지되며, 알 수 없는 사용량은 총액을 조용히 바꾸지 않습니다. 반면 web_search와 search_results, tiered_pricing, Databricks DBU 요금처럼 현재 계산하지 않는 항목도 있으므로 총액을 모든 과금 요소의 완전한 대체값으로 볼 수는 없습니다.
05
서비스는 데이터셋을 이미지에 포함하고 부팅 때 If-None-Match로 upstream을 재검증해 304 응답이면 데이터를 다시 전송하지 않습니다. 네트워크가 끊겨도 로컬 사본을 계속 사용하고 /health에 상태를 남기며, Docker Compose에서는 named volume으로 갱신된 데이터셋을 재시작 뒤에도 보존합니다. 반대로 빈 bind mount나 data/ 경로를 가리는 GCS FUSE 마운트는 이미지 안의 원본 파일을 숨길 수 있어 별도 경로와 DATASET_PATH 설정이 필요합니다.
06
API는 /v1/models, /v1/compare, /v1/providers, /v1/modes, /v1/attributes, /v1/meta, /v1/estimate 등으로 조회와 비용 계산을 분리합니다. /v1/models에는 provider, mode, 37개 supports_* 키, 토큰 범위, 가격 상한, 정렬, 필드 선택, 페이지네이션 조건이 있으며 limit의 기본값은 50, 최대값은 500입니다. 모든 오류를 RFC 9457 application/problem+json과 안정적인 type slug로 반환해 model-not-found나 invalid-query에 따른 클라이언트 분기를 지원합니다.
07
데이터 원본은 MIT 라이선스의 LiteLLM model_prices_and_context_window.json이며, 프로젝트는 이를 data/에 포함하고 litellm_provider를 provider로 바꾸는 정규화만 수행합니다. 가격을 직접 수정하거나 협상하지 않고 비현실적인 값을 표시하는 방식이어서 실제 가격의 최신성과 정확성은 upstream 데이터에 의존합니다. Bun, TypeScript, Express 5 기반으로 별도 빌드 단계와 데이터베이스 없이 실행되며, 모든 엔드포인트와 가격 규칙에 테스트를 두는 구조입니다.

이미지 분석

llm-specs-api가 하나의 REST API로 LLM 가격, Context Window, 기능 정보를 조회하는 화면입니다.
Screenshot

이미지는 claude-sonnet-4-5 모델 조회용 curl 요청과 JSON 응답을 보여주며, 응답에 입력·출력 토큰 가격, 200k 초과 단가, 최대 입력 토큰 수, Prompt Caching과 Vision 지원 여부가 포함됩니다. 하단에는 3,214개 모델과 127개 provider를 데이터베이스 없이 메모리에서 제공한다는 서비스 규모가 표시되어 본문의 카탈로그 통합 구조를 시각적으로 뒷받침합니다.

llm-specs-api가 하나의 REST API로 LLM 가격, Context Window, 기능 정보를 조회하는 화면입니다.

용어 해설

REST API
HTTP 메서드와 URL을 이용해 데이터와 기능을 주고받는 인터페이스입니다. 이 프로젝트에서는 모델 목록 조회, 세부 정보 검색, 비교, 비용 계산을 각각의 엔드포인트로 나누고 JSON 응답으로 결과를 반환합니다.
Context Window
모델이 한 번의 요청에서 처리할 수 있는 입력과 출력 토큰의 범위입니다. 모델 선택에서는 최대 입력 토큰 수가 긴 문서나 대화 기록을 수용할 수 있는지 판단하는 기준으로 쓰입니다.
Prompt Caching
반복되는 입력 프롬프트를 캐시에 저장해 이후 요청에서 재계산을 줄이는 기능입니다. 이 서비스는 캐시 생성, 읽기, 보존 시간, 토큰 임계값에 따른 요금 키를 별도로 적용해 실제 비용을 계산합니다.
Decimal Arithmetic
부동소수점 오차를 줄이기 위해 십진수 기반으로 값을 누적하는 계산 방식입니다. 매우 작은 토큰 단가와 직렬화된 부동소수점 노이즈가 포함된 모델 가격을 다룰 때 비용 합계의 재현성을 높입니다.
RFC 9457 문제 응답(RFC 9457)
HTTP API 오류를 application/problem+json 형식으로 표현하는 표준입니다. 이 프로젝트는 model-not-found와 limits-exceeded처럼 안정적인 type slug를 함께 반환해 클라이언트가 오류 유형별 분기 처리를 할 수 있게 합니다.

코드 예제

bash
curl 'https://api-llm-specs.axium-lab.com/v1/models?provider=anthropic&mode=chat&sort=input_cost_per_token:desc&fields=id,input_cost_per_token,output_cost_per_token,max_input_tokens&limit=3'

Anthropic의 chat 모델을 입력 토큰 가격 내림차순으로 정렬하고 지정한 필드만 반환받는 요청입니다.

bash
git clone https://github.com/axium-lab/llm-specs-api.git
cd llm-specs-api
bun install
bun start # http://localhost:8080

저장소를 복제하고 Bun 의존성을 설치한 뒤 로컬 HTTP 서버를 시작하는 과정입니다.

bash
docker run --rm -p 8080:8080 ghcr.io/axium-lab/llm-specs-api:latest

데이터셋이 포함된 공개 컨테이너 이미지로 빌드 없이 서비스를 실행하는 명령입니다.

bash
curl 'localhost:8080/v1/models?mode=chat&min_input_tokens=1000000&sort=input_cost_per_token:asc&fields=id,provider,input_cost_per_token&limit=5'

Context Window가 1M 이상인 chat 모델을 입력 가격 오름차순으로 조회하는 요청입니다.

bash
gcloud run deploy llm-specs-api --source . --region europe-west1 \
--min-instances 1 --cpu-boost --allow-unauthenticated --min-instances 1

Cloud Run에 소스 코드를 배포하고 최소 인스턴스와 CPU 부스트를 설정하는 명령입니다.

기술

  • REST API
  • Bun
  • TypeScript
  • Express 5
  • Docker
  • Docker Compose
  • Cloud Run
  • Decimal
  • LiteLLM
  • If-None-Match
  • ETag
  • RFC 9457

활용 사례

  • 여러 provider의 LLM 가격과 Context Window를 조건별로 비교하는 모델 선택 도구
  • 입력·출력·캐시 토큰을 구분해 호출 비용을 산출하는 비용 추정기
  • 1M Context Window와 최저 입력 단가를 함께 검색하는 내부 모델 카탈로그
  • Docker 또는 Cloud Run으로 사내 LLM 메타데이터 API를 운영하는 환경
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 27.수집 2026. 08. 27.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.