예산 및 속도 제한
예산 및 속도 제한 (Budgets, Rate Limits)
LiteLLM 프록시에서 개인/팀/팀 구성원/에이전트 단위로 예산과 속도 제한을 설정하는 방법을 안내해요. Postgres DB가 필요하며, 지출을 데이터베이스에서 읽어 각 예산을 강제해요.
출처: 문서
본문
예산 설정 옵션:
- 개인 예산 (Personal budgets):
team_id없이 가상 키를 만들어 개인별 지출 한도를 설정해요. - 팀 예산 (Team budgets): 가상 키에
team_id를 추가해 팀의 공유 예산을 사용하게 해요. - 팀 구성원 예산 (Team member budgets): 팀의 공유 예산 안에서 개인별 지출 한도를 설정해요.
- 에이전트 예산 (Agent budgets): 에이전트에 속도 제한(tpm/rpm)과 세션 수준 상한(반복 횟수, 달러 예산)을 설정해요.
키가 팀에 속하면 팀(및 팀 구성원) 예산만 강제되고, 키 소유자의 개인 예산은 적용되지 않아요. v1.94.0은 skip_user_budget_on_team_key 옵트아웃 뒤에서 개인 예산도 잠깐 강제했지만, 강제와 플래그 모두 v1.95.0에서 제거됐어요.
요구 사항:
- Postgres 데이터베이스 필요 (예: Supabase, Neon 등). Set Up을 참고하세요.
예산은 DB가 필요해요
이 페이지의 모든 예산은 데이터베이스에서 읽은 지출을 기준으로 강제되므로, DB 없는 배포에서는 어떤 것도 제한하지 않아요. litellm_settings.max_budget은 그 환경에서 오류 대신 열린 채로 실패해요(fails open): 프록시의 글로벌 지출은 데이터베이스 클라이언트가 있을 때만 로드되고, 비교할 총액이 없으면 글로벌 예산 검사를 건너뛰고 한도를 넘어 요청을 계속 제공해요. DB가 연결되지 않은 상태로 예산을 설정하면 시작 시 한 번 경고가 기록되지만 요청 시점에 차단되지는 않아요. 키, 팀, 사용자 예산도 같은 이유로 사용할 수 없어요(가상 키는 DB 없이는 해석할 수 없음 - No connected db.). 지출을 묶는 방법의 일부로 예산을 쓴다면 DB와 함께 실행하세요.
예산 설정하기
글로벌 프록시
프록시의 모든 호출에 예산을 적용해요.
1단계. config.yaml 수정:
general_settings:
master_key: os.environ/LITELLM_MASTER_KEY
litellm_settings:
# other litellm settings
max_budget: 0 # (float) sets max budget as $0 USD
budget_duration: 30d # (str) frequency of reset - You can set duration as seconds ("30s"), minutes ("30m"), hours ("30h"), days ("30d").
2단계. 프록시 시작:
litellm /path/to/config.yaml
3단계. 테스트 호출:
curl --location 'http://0.0.0.0:4000/chat/completions' \
--header "Autherization: Bearer $LITELLM_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-5.6-luna",
"messages": [
{
"role": "user",
"content": "what llm are you"
}
],
}'
팀
팀에 예산을 추가할 수 있어요.
info
팀에서 예산 설정/재설정에 대한 단계별 튜토리얼은 여기(API 또는 Admin UI 사용)를 참고하세요.
팀에 예산 추가하기
curl --location 'http://localhost:4000/team/new' \
--header 'Authorization: Bearer ***' \
--header 'Content-Type: application/json' \
--data-raw '{
"team_alias": "my-new-team_4",
"members_with_roles": [{"role": "admin", "user_id": "5c4a0aa3-a1e1-43dc-bd87-3c2da8382a3a"}],
"rpm_limit": 99
}'
팀은 max_budget, rpm_limit, tpm_limit 등의 필드를 받아들여 팀 수준 예산과 속도 제한을 설정할 수 있어요. 팀 구성원별 max_budget을 설정해 팀의 공유 예산 안에서 개인별 상한을 둘 수 있어요.
사용자/키/에이전트 예산
개인(사용자) 예산은 user_id가 있는 키에, 에이전트 예산은 에이전트 관련 키에 max_budget, rpm_limit, tpm_limit, 반복/세션 상한 필드를 설정해 적용할 수 있어요. 각 예산은 데이터베이스의 지출을 기준으로 강제되며, 예산 기간(budget_duration)마다 카운터가 재설정돼요.
예산 강제 동작
- 예산을 초과하면 프록시는 요청을
429또는400으로 거부해요. - 예산 기간이 지나면 카운터가 자동으로 재설정돼요.
- 키/팀/사용자/에이전트 단위로 세분화된 예산과 속도 제한을 설정할 수 있어요.
자세한 내용과 모든 파라미터는 LiteLLM 예산/속도 제한 문서를 참고하세요.