재시도와 폴백을 분리하기
재시도는 실패가 일시적일 수 있으므로 요청을 동일한 라우트로 다시 보냅니다. 폴백은 원래 라우트가 사용할 수 없거나 부적절하므로 제공자나 모델을 변경합니다.
이 두 동작을 하나의 일반적인 재시도 루프로 취급하면 장애를 진단하기 어려워지고, 성공률을 개선하지 못한 채 비용만 늘어날 수 있습니다.
- 재시도: 타임아웃, 연결 재설정, 429 또는 일시적인 5xx 응답.
- 폴백: 반복되는 제공자 실패, 모델 용량 문제 또는 정책 제한.
- 중단: 잘못된 요청, 지원되지 않는 매개변수 또는 출력 검증 실패.
기능 호환 라우트 테이블 구축하기
폴백 모델은 브랜드가 아니라 기능을 기준으로 그룹화해야 합니다. 비전 요청은 텍스트 전용 모델로 폴백할 수 없고, 엄격한 JSON 워크플로우는 스키마를 자주 위반하는 모델로 라우팅해서는 안 됩니다.
- 필수 입력 및 출력 모달리티.
- 최소 컨텍스트 및 출력 길이.
- 도구 호출 및 구조화된 출력 지원.
- 허용 가능한 최대 가격 및 지연 시간.
하나의 요청 수준 예산 적용하기
요청 예산은 모든 재시도와 폴백 시도를 포함해야 합니다. 다음 시도를 시작하기 전에 남은 지연 시간과 비용 예산으로 감당할 수 있는지 확인해야 합니다.
const routePolicy = {
maxAttempts: 3,
maxLatencyMs: 18_000,
maxEstimatedCost: 0.12,
retryOn: [408, 429, 500, 502, 503, 504],
fallbackModels: ['primary-model', 'quality-fallback', 'fast-fallback'],
};가용성뿐 아니라 폴백 품질 측정하기
성공적으로 반환된 요청도 제품 실패일 수 있습니다. 폴백 이벤트 이후의 출력 검증, 사용자 수정률, 작업 완료율을 추적하세요.
권장 대시보드: 라우트 성공률, 폴백 비율, p95 지연 시간, 추정 비용, 검증 통과율, 모델별 품질 점수.
