예산 및 속도 제한

예산 및 속도 제한 (Budgets, Rate Limits)

LiteLLM 프록시에서 개인/팀/팀 구성원/에이전트 단위로 예산과 속도 제한을 설정하는 방법을 안내해요. Postgres DB가 필요하며, 지출을 데이터베이스에서 읽어 각 예산을 강제해요.

출처: 문서

본문

예산 설정 옵션:

  • 개인 예산 (Personal budgets): team_id 없이 가상 키를 만들어 개인별 지출 한도를 설정해요.
  • 팀 예산 (Team budgets): 가상 키에 team_id를 추가해 팀의 공유 예산을 사용하게 해요.
  • 팀 구성원 예산 (Team member budgets): 팀의 공유 예산 안에서 개인별 지출 한도를 설정해요.
  • 에이전트 예산 (Agent budgets): 에이전트에 속도 제한(tpm/rpm)과 세션 수준 상한(반복 횟수, 달러 예산)을 설정해요.

키가 팀에 속하면 팀(및 팀 구성원) 예산만 강제되고, 키 소유자의 개인 예산은 적용되지 않아요. v1.94.0skip_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 예산/속도 제한 문서를 참고하세요.

더 알아보기 (Learn more)