게이트웨이를 여럿이 쓰면 "누가 얼마나 쓰는가"를 통제해야 한다. LiteLLM은 마스터 키로 가상 키(virtual key)를 발급하고, 키마다 예산·속도 한도·허용 모델을 건다. 지출이 상한을 넘으면 자동 차단된다.
이 강의 목표는 게이트웨이에 마스터 키·DB를 붙이고, 팀·유저별 가상 키를 발급·관리하는 것이다.
1. 마스터 키 · DB 설정
가상 키·지출을 저장하려면 Postgres가 필요하다.
general_settings:
master_key: sk-1234 # 관리자 키(env 권장)
database_url: os.environ/DATABASE_URL # Postgres
2. 가상 키 발급
curl http://localhost:4000/key/generate \
-H "Authorization: Bearer sk-1234" \
-H "Content-Type: application/json" \
-d '{
"models": ["gpt-4o"],
"max_budget": 10,
"duration": "30d",
"tpm_limit": 100000,
"rpm_limit": 60,
"metadata": {"team": "network"}
}'
# → {"key": "sk-abc...", ...}
3. 발급 키로 호출
발급된 sk-abc...를 각 팀·앱에 나눠준다. 이 키로 부른 호출은 예산·한도가 자동 적용되고, 지출이 팀에 귀속된다.
client = OpenAI(base_url="http://localhost:4000", api_key="sk-abc...")
핵심 명령·용어
| 이름 | 뜻 |
|---|---|
master_key |
관리자 전용 최상위 키 |
/key/generate |
가상 키 발급 엔드포인트 |
max_budget |
키 누적 지출 상한($) |
tpm_limit/rpm_limit |
분당 토큰·요청 한도 |
예제
# 팀 단위 생성 후, 그 팀에 속한 키 발급
curl http://localhost:4000/team/new -H "Authorization: Bearer sk-1234" \
-d '{"team_alias":"network","max_budget":100}'
# 지출 조회
curl http://localhost:4000/spend/logs -H "Authorization: Bearer sk-1234"
해설) 팀→키 계층으로 예산을 나누면, 팀 전체 상한과 키별 상한을 동시에 걸 수 있다. /spend/logs로 실시간 사용량을 감사한다.
댓글 0
댓글은 운영자만 작성할 수 있어요.