프로바이더 라우팅
프로바이더 라우팅 (Provider Routing)
프로바이더가 다운되거나 속도 한도에 걸리면 애플리케이션이 멈추고 사용자가 불만을 갖기 마련이에요. Helicone AI 게이트웨이는 같은 모델을 여러 프로바이더에서 쓸 수 있게 라우팅해서, 특정 프로바이더에 문제가 생겨도 자동으로 다른 곳으로 넘겨 줘요. 별도 설정이나 코드 변경 없이 요청이 계속 성공하도록 만드는 게 이 기능의 핵심이에요.
해결하려는 문제
- 프로바이더 장애 — 프로바이더가 다운되면 앱이 멈추고 사용자가 불편해져요.
- 속도 제한 — 프로바이더 할당량에 걸리면 사용자가 서비스를 못 쓰게 돼요.
- 지역 제한 — 특정 지역에서 가용성이 낮으면 글로벌 도달 범위가 줄어들어요.
- 벤더 종속 — 한 프로바이더에 묶이면 비용 최적화와 유연성이 떨어져요.
해결책
프로바이더 라우팅은 같은 모델을 여러 프로바이더에서 제공받게 해 줘요. 예를 들어 OpenAI가 다운되면 Helicone이 관리하는 키로 Azure나 AWS Bedrock으로 자동 전환되고, 속도 한도에 부딪히면 트래픽을 다른 프로바이더로 흘려 보내요. 설정이나 코드 수정은 필요 없어요.
사용법
설정은 전혀 필요 없어요. 그냥 모델을 요청하면 돼요.
const response = await client.chat.completions.create({
model: "gpt-4o-mini",
messages: [{ role: "user", content: "Hello!" }]
});
이 요청 하나로 게이트웨이가 자동으로:
- 이 모델을 제공하는 모든 프로바이더를 찾고,
- 가장 저렴한 프로바이더로 라우팅하며,
- 프로바이더에 문제가 생기면 즉시 폴백해요.
동작 방식
게이트웨이는 모델 레지스트리를 이용해 요청한 모델을 지원하는 모든 프로바이더를 찾은 뒤 스마트 라우팅을 적용해요.
라우팅 우선순위:
- 설정해 둔 프로바이더 키(BYOK)가 있으면 그것부터 써요.
- Helicone 관리 키(크레딧) — 마크업 0%로 자동 폴백 역할을 해요.
선택: 가장 저렴한 프로바이더부터 라우팅하고, 비용이 같으면 로드 밸런싱해요.
폴백: 속도 제한·타임아웃·서버 오류 같은 에러가 나면 즉시 다음 프로바이더를 시도해요.
크레딧을 이용하면 100개가 넘는 LLM 프로바이더를 각각 가입 없이 쓸 수 있어요. Helicone 계정에 자금을 넣으면 모든 프로바이더 API 키를 대신 관리하고, 프로바이더가 청구하는 그대로(마크업 0%)만 내요.
고급: 라우팅 커스터마이징
기본 라우팅이 대부분의 경우를 처리하니, 구체적인 제어가 필요할 때만 아래 기능을 쓰면 돼요.
특정 프로바이더 고정
프로바이더 이름을 슬래시 뒤에 붙여 한 프로바이더로만 강제해요.
model: "gpt-4o-mini/openai" // Only route through OpenAI
쓰는 때: 컴플라이언스 요구로 특정 프로바이더를 써야 하거나, 프로바이더 고유 기능을 테스트할 때예요.
결과: 게이트웨이는 이 프로바이더만 시도하고, 다른 프로바이더로의 자동 폴백은 없어요.
자체 배포 지정
프로바이더 설정에서 구성한 특정 배포를 대상으로 삼아요.
model: "gpt-4o-mini/azure/clm1a2b3c" // Your Azure deployment ID
쓰는 때: 데이터를 특정 지역에 보관해야 하는 규정(예: EU GDPR)을 지키거나, 프로바이더 크레딧을 쓰고 싶을 때예요.
결과: 요청은 설정된 배포로만 흘러가요. 배포 ID(CUID)는 프로바이더 설정에서 확인할 수 있어요.
수동 폴백 체인
시도할 프로바이더를 순서대로 정확히 지정해요.
model: "gpt-4o-mini/azure,gpt-4o-mini/openai,gpt-4o-mini"
쓰는 때: Azure 크레딧을 우선 쓰고, Azure가 실패하면 OpenAI로, 그래도 안 되면 다른 모든 프로바이더를 시도하고 싶을 때예요.
결과: 게이트웨이는 지정한 정확한 순서대로 각 프로바이더를 시도해요.
BYOK (자체 키 사용)
프로바이더 API 키를 프로바이더 설정에 추가하면, 그 키가 항상 먼저 시도되고 Helicone 관리 키가 폴백으로 이어져요. 프로바이더 계정에 대한 제어권을 쥐면서도 자동 폴백은 그대로 유지할 수 있어요.
게이트웨이는 레지스트리에 없는 모델·프로바이더 조합도 그대로 전달해요. 다만 미등록 모델은 BYOK 배포로만 라우팅돼요.
특정 프로바이더 제외
자동 라우팅에서 특정 프로바이더를 빼고 싶을 때 쓰는 것.
model: "!openai,gpt-4o-mini" // Use any provider EXCEPT OpenAI
여러 프로바이더를 제외하려면 쉼표로 나열하면 돼요: "!openai,!anthropic,gpt-4o-mini".
폴백 트리거
게이트웨이는 다음 오류에서 자동으로 다음 프로바이더를 시도해요.
| 오류 | 설명 |
|---|---|
| 429 | 속도 제한 오류 |
| 401 | 인증 오류 |
| 400 | 컨텍스트 길이 오류 |
| 408 | 타임아웃 오류 |
| 500+ | 서버 오류 |
실전 예시
OpenAI 장애 시나리오: 운영 앱이 GPT-4를 쓰는데 새벽 3시에 OpenAI가 다운돼요. 코드는 그대로 두고, 게이트웨이가 Azure OpenAI로, 필요하면 AWS Bedrock으로 자동 폴백해서 앱은 계속 온라인 상태를 유지해요.
Azure 크레딧 활용: 연말까지 써야 할 Azure 크레딧이 있을 때, model: "gpt-4o-mini/azure,gpt-4o-mini"로 지정하면 Azure 배포를 우선 쓰면서 실패 시 다른 프로바이더로 폴백해 크레딧과 안정성을 균형 있게 맞춰요.
EU 컴플라이언스: GDPR 때문에 EU 고객 데이터가 EU 지역에 머물러야 한다면, 커스텀 EU 배포에 model: "gpt-4o/azure/eu-frankfurt-deployment"처럼 지정해서 요청이 Frankfurt 배포로만 흐르게 해요. 데이터가 EU 밖으로 나가지 않아요.
특정 프로바이더 회피: 어느 프로바이더의 지연·오류가 오늘 유난히 많다면 model: "!openai,gpt-4o-mini"로 제외하면 나머지 모든 프로바이더로 자동 라우팅돼요.
더 알아보기
- 모델 레지스트리 — 사용 가능한 모델·프로바이더 둘러보기
- 프로바이더 키 추가 — 프로바이더 계정 연결
- 프롬프트 관리 — 라우팅과 관리형 프롬프트 조합