TL;DR
vernLLM은 여러 LLM 공급자를 하나의 인터페이스로 연결하고 재시도, circuit breaking, fallback, rate limiting, caching, middleware를 애플리케이션 프로세스 안에서 처리하는 TypeScript 기반 npm 패키지입니다. 예시에서는 OpenAI의 gpt-4o를 기본 모델로 사용하고 호출 실패 시 Anthropic의 claude-sonnet-5로 전환하며, 분당 요청 500회·토큰 100,000개·동시 실행 20개 제한을 설정합니다. retryBudget으로 60초 동안 최소 20회 호출에서 재시도 비율을 0.2로 제한하고, 최대 재시도 3회와 타임아웃 10,000밀리초도 지정합니다. OpenAI 호환 API뿐 아니라 Groq, Mistral, DeepSeek, Cerebras, Together AI, Fireworks AI, Ollama, Gemini, AWS Bedrock과 HTTP 기반 공급자를 fromFetch adapter로 연결할 수 있어 모델 전환과 운영 제어를 호출 코드에 통합합니다.
섹션별 상세
import Anthropic from '@anthropic-ai/sdk';
import OpenAI from 'openai';
import { fromAnthropic, fromOpenAI, VernLLM } from 'vern-llm';
const openai = fromOpenAI(new OpenAI({ apiKey: process.env.OPENAI_API_KEY }));
const anthropic = fromAnthropic(new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY }));
const llm = new VernLLM({
client: openai,
model: 'gpt-4o',
fallback: { client: anthropic, model: 'claude-sonnet-5', circuitBreaker: true },
rateLimit: { requestsPerMinute: 500, tokensPerMinute: 100_000, maxConcurrent: 20 },
retryBudget: { windowMs: 60_000, minCalls: 20, retryRatio: 0.2 },
maxRetries: 3,
timeoutMs: 10_000,
defaultMaxTokens: 1000,
defaultReasoningEffort: 'medium',
});
const result = await llm.call({ userContent: "What's the weather in New York?" });OpenAI와 Anthropic 클라이언트를 VernLLM으로 감싸고, fallback·회로 차단·호출량 제한·재시도 예산·타임아웃을 한 번에 설정합니다.
용어 해설
- 서킷 브레이커(Circuit Breaker)
- — LLM 호출 실패가 반복될 때 요청을 일시적으로 차단해 장애가 다른 요청으로 확산되는 일을 막는 패턴입니다. 일정 시간 뒤 호출을 재개해 서비스 복구 여부를 확인하며, vernLLM에서는 fallback과 함께 다른 모델이나 공급자로 전환하는 기반으로 쓰입니다.
- 속도 제한(Rate Limiting)
- — 분당 요청 수나 토큰 수를 기준으로 LLM 호출량을 제한하는 방식입니다. 공급자의 사용량 한도를 넘지 않도록 요청을 조절하고, vernLLM에서는 동시 실행 수까지 함께 지정해 애플리케이션 내부에서 호출 흐름을 제어합니다.
- 재시도 예산(Retry Budget)
- — 실패한 요청을 무제한으로 다시 보내지 않도록 일정 시간 창 안에서 재시도 비율과 최소 호출 수를 제한하는 설정입니다. vernLLM은 retryBudget과 maxRetries를 함께 사용해 재시도가 트래픽을 악화시키는 상황을 통제합니다.
- LLM 캐시(LLM Cache)
- — 동일하거나 재사용 가능한 LLM 요청의 결과를 저장해 모델 호출을 줄이는 기능입니다. 캐시가 적용되면 반복 요청의 지연과 비용을 낮출 수 있으며, vernLLM은 별도의 네트워크 홉 없이 애플리케이션 프로세스 안에서 호출 제어 기능을 묶습니다.
- 대체 경로(Fallback)
- — 주요 모델이나 공급자의 호출이 실패하거나 차단됐을 때 미리 지정한 다른 모델로 요청을 넘기는 처리 방식입니다. 제공된 예시에서는 OpenAI 호출이 실패하면 Anthropic의 claude-sonnet-5로 전환하고 circuitBreaker를 함께 활성화합니다.
기술
- vernLLM
- OpenAI
- Anthropic
- Groq
- Mistral
- DeepSeek
- Cerebras
- Together AI
- Fireworks AI
- Ollama
- Gemini
- AWS Bedrock
- TypeScript
- pnpm
- Fumadocs
활용 사례
- 여러 LLM 공급자를 사용하는 애플리케이션의 통합 호출 계층
- 기본 모델 장애 시 대체 모델로 전환하는 서비스
- 요청 수·토큰 수·동시 실행 수를 제한해야 하는 LLM 서비스
- 재시도·타임아웃·캐시를 공통 정책으로 관리하는 백엔드
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.
