속도 제한
Triggerfish에는 LLM 제공자 API 한도에 도달하는 것을 방지하는 슬라이딩 윈도우 속도 제한기가 포함되어 있습니다. 모든 제공자를 투명하게 래핑합니다 -- 에이전트 루프는 속도 제한에 대해 알 필요가 없습니다. 용량이 소진되면 윈도우가 충분히 슬라이딩하여 용량을 확보할 때까지 호출이 자동으로 지연됩니다.
작동 방식
속도 제한기는 슬라이딩 윈도우(기본값 60초)를 사용하여 두 가지 메트릭을 추적합니다:
- 분당 토큰(TPM) -- 윈도우 내 소비된 총 토큰(프롬프트 + 완성)
- 분당 요청(RPM) -- 윈도우 내 총 API 호출
각 LLM 호출 전에 제한기가 두 한도 모두에 대해 사용 가능한 용량을 확인합니다. 둘 중 하나가 소진되면 가장 오래된 항목이 윈도우에서 슬라이딩 아웃되어 충분한 용량이 확보될 때까지 호출이 대기합니다. 각 호출 완료 후 실제 토큰 사용량이 기록됩니다.
스트리밍 및 비스트리밍 호출 모두 동일한 예산에서 소비합니다. 스트리밍 호출의 경우 토큰 사용량은 스트림이 완료될 때 기록됩니다.
OpenAI 티어 한도
속도 제한기는 OpenAI의 게시된 티어 한도에 대한 내장 기본값을 제공합니다:
| 티어 | GPT-4o TPM | GPT-4o RPM | o1 TPM | o1 RPM |
|---|---|---|---|---|
| Free | 30,000 | 500 | 30,000 | 500 |
| Tier 1 | 30,000 | 500 | 30,000 | 500 |
| Tier 2 | 450,000 | 5,000 | 100,000 | 1,000 |
| Tier 3 | 800,000 | 5,000 | 100,000 | 1,000 |
| Tier 4 | 2,000,000 | 10,000 | 200,000 | 10,000 |
| Tier 5 | 30,000,000 | 10,000 | 200,000 | 10,000 |
이것은 OpenAI의 게시된 한도에 기반한 기본값입니다. 실제 한도는 OpenAI 계정 티어 및 사용 이력에 따라 다릅니다. 다른 제공자(Anthropic, Google)는 서버 측에서 자체 속도 제한을 관리합니다 -- 제한기는 클라이언트 측 스로틀링이 429 오류를 방지하는 OpenAI에서 가장 유용합니다. :::
구성
속도 제한은 래핑된 제공자를 사용할 때 자동입니다. 기본 동작에 사용자 구성이 필요하지 않습니다. 제한기가 제공자를 감지하고 적절한 한도를 적용합니다.
고급 사용자는 triggerfish.yaml의 제공자 구성을 통해 한도를 사용자 정의할 수 있습니다:
yaml
models:
providers:
openai:
model: gpt-4o
rate_limit:
tpm: 450000 # 분당 토큰
rpm: 5000 # 분당 요청
window_ms: 60000 # 윈도우 크기 (기본값 60초)속도 제한은 429 오류와 예기치 않은 청구서로부터 보호합니다. 페일오버 체인과 함께 작동합니다 -- 속도 제한에 도달하고 제한기가 시간 초과 내에 대기할 수 없으면 페일오버가 작동하여 다음 제공자를 시도합니다. :::
사용량 모니터링
속도 제한기는 현재 사용량의 실시간 스냅샷을 노출합니다:
{tokensUsed, requestsUsed, tpmLimit, rpmLimit, windowMs}CLI 및 Tide Pool의 컨텍스트 진행 바가 컨텍스트 사용량을 보여줍니다. 속도 제한 상태는 디버그 로그에서 확인할 수 있습니다:
[DEBUG] [provider] Rate limiter: 12,450/30,000 TPM, 8/500 RPM (window: 60s)제한기가 호출을 지연하면 대기 시간을 로깅합니다:
[INFO] [provider] Rate limited: waiting 4.2s for TPM capacity채널 속도 제한
LLM 제공자 속도 제한 외에도 Triggerfish는 메시징 플랫폼 범람을 방지하기 위해 채널별 메시지 속도 제한을 시행합니다. 각 채널 어댑터는 아웃바운드 메시지 빈도를 추적하고 한도에 도달하면 전송을 지연합니다.
이는 다음으로부터 보호합니다:
- 과도한 메시지 볼륨으로 인한 플랫폼 API 차단
- 통제 불능 에이전트 루프로 인한 우발적 스팸
- Webhook 트리거 메시지 폭풍
채널 속도 제한은 채널 라우터에 의해 투명하게 시행됩니다. 에이전트가 채널이 허용하는 것보다 빠르게 출력을 생성하면 메시지가 대기열에 넣어지고 허용된 최대 속도로 전달됩니다.
관련
- LLM 제공자 및 페일오버 -- 속도 제한과 페일오버 체인 통합
- 구성 -- 전체
triggerfish.yaml스키마
