CLI 인자
CLI 인자 (CLI Arguments)
이 페이지는 LiteLLM 프록시 서버에서 사용할 수 있는 모든 커맨드라인 인터페이스(CLI) 인자를 문서화해요.
출처: 문서
본문
서버 구성 (Server Configuration)
--host
- 기본값:
'0.0.0.0' - 서버가 수신할 호스트.
litellm --host 127.0.0.1
환경 변수로 설정하기: HOST
export HOST=127.0.0.1
litellm
--port
- 기본값:
4000 - 서버를 바인딩할 포트.
litellm --port 8080
환경 변수로 설정하기: PORT
export PORT=8080
litellm
--num_workers
- 기본값: 시스템의 논리 CPU 수, 또는 판별 불가 시 4
- 실행할 워커 프로세스 수 (uvicorn, gunicorn, 또는 Granian
--workers).
litellm --num_workers 4
환경 변수로 설정하기: NUM_WORKERS
export NUM_WORKERS=4
litellm
--config
- 짧은 형식:
-c - 기본값: None
- 프록시 콘피그 파일 경로 (예: config.yaml).
litellm --config path/to/config.yaml
--log_config
- 기본값: None
- 타입: str
- uvicorn용 로깅 콘피그 파일 경로.
litellm --log_config path/to/log_config.conf
--keepalive_timeout
- 기본값: None
- 타입: int
- uvicorn keepalive 타임아웃 설정 (초, uvicorn
timeout_keep_alive파라미터).
litellm --keepalive_timeout 30
환경 변수로 설정하기: KEEPALIVE_TIMEOUT
export KEEPALIVE_TIMEOUT=30
litellm
--timeout_worker_healthcheck
- 기본값: None (uvicorn의 자체 기본값 5초 적용)
- 타입: int
- uvicorn 워커 헬스체크 타임아웃 설정 (초, uvicorn
timeout_worker_healthcheck파라미터).--num_workers > 1로 uvicorn을 실행하면 슈퍼바이저 프로세스가 각 워커를 ping 해요. 이 창 안에 응답하지 않는 워커(예: 이벤트 루프가 동기 작업에 막힌 경우)는 SIGKILL로 종료되고 교체돼요. 종료는 로그에Waiting for child process [<pid>]다음에Child process [<pid>] died로 나타나요. 긴 동기 작업 중에 정상 워커가 재활용된다면 이 값을 올리세요. uvicorn>=0.37.0필요. 오래된 uvicorn 버전에서는 플래그가 효과가 없어요: LiteLLM이 시작 시Ignoring the flag경고를 출력하고 uvicorn의 내장 5초 타임아웃이 적용돼요. 이 플래그를 설정했다면 시작 로그에서 그 경고를 확인해 효과가 있었는지 확인하세요.--num_workers > 1로 uvicorn을 직접 실행할 때만 적용돼요.--run_gunicorn/--run_hypercorn에서는 무시돼요.
litellm --num_workers 4 --timeout_worker_healthcheck 30
환경 변수로 설정하기: TIMEOUT_WORKER_HEALTHCHECK
export TIMEOUT_WORKER_HEALTHCHECK=30
litellm
--max_requests_before_restart
- 기본값: None
- 타입: int
- 이 요청 수만큼 처리한 후 워커를 재시작해요. 시간이 지남에 따른 메모리 증가를 완화하는 데 유용해요.
- uvicorn:
limit_max_requests로 매핑 - gunicorn:
max_requests로 매핑
litellm --max_requests_before_restart 10000
환경 변수로 설정하기: MAX_REQUESTS_BEFORE_RESTART
export MAX_REQUESTS_BEFORE_RESTART=10000
litellm
--max_requests_before_restart_jitter
- 기본값: None
- 타입: int
- 각 워커에
--max_requests_before_restart에 대해 [0, jitter] 범위의 무작위 값을 더해, 워커가 한꺼번에가 아니라 분산된 요청 수로 재활용되게 해요.--max_requests_before_restart없이는 효과가 없어요. - uvicorn:
limit_max_requests_jitter로 매핑 (uvicorn>=0.41.0필요. 오래된 버전에서는 경고와 함께 무시됨) - gunicorn:
max_requests_jitter로 매핑
litellm --max_requests_before_restart 10000 --max_requests_before_restart_jitter 1000
환경 변수로 설정하기: MAX_REQUESTS_BEFORE_RESTART_JITTER
export MAX_REQUESTS_BEFORE_RESTART=10000
export MAX_REQUESTS_BEFORE_RESTART_JITTER=1000
litellm
서버 백엔드 옵션 (Server Backend Options)
--run_gunicorn
- 기본값: False
- 타입: bool (Flag)
- uvicorn 대신 gunicorn으로 프록시를 시작해요. 프로덕션에서 여러 워커를 관리하는 데 더 좋아요.
litellm --run_gunicorn
--run_hypercorn
- 기본값: False
- 타입: bool (Flag)
- uvicorn 대신 hypercorn으로 프록시를 시작해요. HTTP/2를 지원해요.
litellm --run_hypercorn
--run_granian
- 기본값: False
- 타입: bool (Flag)
- 상태: Beta. 더 높은 게이트웨이 처리량을 원할 때 옵트인하세요. uvicorn이 기본값으로 유지돼요.
- uvicorn 대신 Granian(Rust 기반 ASGI 서버)으로 프록시를 시작해요. HTTP/1과 HTTP/2를 지원해요.
- 왜 사용하나요: Granian은 HTTP 계층을 Python에서 Rust 런타임으로 옮겨서, uvicorn 단독보다 동시 프록시 트래픽을 더 예측 가능하게 처리하는 경향이 있어요. LiteLLM 부하 테스트에서 Granian은 동등한 uvicorn 멀티 워커 설정보다 10–20 RPS 향상을 보였고, 지속 부하에서 더 나은 안정성과 더 적은 요청 실패를 보였어요.
- 요구사항: Python 3.10+와 granian 패키지 (
litellm[proxy]에 포함). - Granian 사용 시 제한사항:
--max_requests_before_restart는 지원되지 않아요 (Granian은 요청당 한도가 아닌 초 단위workers_lifetime을 사용).--ciphers는 적용되지 않아요.--keepalive_timeout와--log_config는 uvicorn에만 적용돼요.
litellm --config config.yaml --run_granian --num_workers 4
--skip_server_startup
- 기본값: False
- 타입: bool (Flag)
- 설정 후 서버 시작을 건너뛰어요 (데이터베이스 마이그레이션에만 유용).
litellm --skip_server_startup
SSL/TLS 구성 (SSL/TLS Configuration)
--ssl_keyfile_path
- 기본값: None
- 타입: str
- SSL 키파일 경로. 프록시 시작 시 SSL 인증서를 제공하고 싶을 때 사용해요.
litellm --ssl_keyfile_path /path/to/key.pem --ssl_certfile_path /path/to/cert.pem
환경 변수로 설정하기: SSL_KEYFILE_PATH
export SSL_KEYFILE_PATH=/path/to/key.pem
litellm
--ssl_certfile_path
- 기본값: None
- 타입: str
- SSL 인증서 파일 경로. 프록시 시작 시 SSL 인증서를 제공하고 싶을 때 사용해요.
litellm --ssl_certfile_path /path/to/cert.pem --ssl_keyfile_path /path/to/key.pem
환경 변수로 설정하기: SSL_CERTFILE_PATH
export SSL_CERTFILE_PATH=/path/to/cert.pem
litellm
--ciphers
- 기본값: None
- 타입: str
- SSL 설정에 사용할 Ciphers.
--run_hypercorn에서만 사용돼요.
litellm --run_hypercorn --ssl_keyfile_path /path/to/key.pem --ssl_certfile_path /path/to/cert.pem --ciphers "ECDHE+AESGCM"
모델 구성 (Model Configuration)
--model 또는 -m
- 기본값: None
- LiteLLM에 전달할 모델 이름.
litellm --model gpt-5.6-luna
--alias
- 기본값: None
- 모델의 별칭. 사용자 친화적 참조용. litellm 모델 이름(예:
"huggingface/codellama/CodeLlama-7b-Instruct-hf")에 더 사용자 친화적인 이름(예:"codellama")을 주는 데 사용해요.
litellm --alias my-gpt-model
--api_base
- 기본값: None
- LiteLLM이 호출해야 하는 모델의 API base.
litellm --model huggingface/tinyllama --api_base https://k58ory32yinf1ly0.us-east-1.aws.endpoints.huggingface.cloud
--api_version
- 기본값: 2024-07-01-preview
- Azure 서비스의 경우 API 버전을 지정해요.
litellm --model azure/gpt-deployment --api_version 2023-08-01 --api_base https://<your api base>"
--headers
- 기본값: None
- API 호출용 헤더 (JSON 문자열).
litellm --model my-model --headers '{"Authorization": "Bearer token"}'
--add_key
- 기본값: None
- 모델 콘피그에 키를 추가해요.
litellm --add_key my-api-key
--save
- 타입: bool (Flag)
- 모델별 콘피그 저장.
litellm --model gpt-5.6-luna --save
모델 파라미터 (Model Parameters)
--temperature
- 기본값: None
- 타입: float
- 모델의 temperature 설정.
litellm --temperature 0.7
--max_tokens
- 기본값: None
- 타입: int
- 모델 출력의 최대 토큰 수 설정.
litellm --max_tokens 50
--request_timeout
- 기본값: None
- 타입: int
- completion 호출의 타임아웃(초) 설정.
litellm --request_timeout 300
--max_budget
- 기본값: None
- 타입: float
- API 호출의 최대 예산 설정. OpenAI, TogetherAI, Anthropic 같은 호스팅 모델에서 동작해요.
litellm --max_budget 100.0
--drop_params
- 타입: bool (Flag)
- 매핑되지 않은 파라미터를 버려요.
litellm --drop_params
--add_function_to_prompt
- 타입: bool (Flag)
- 함수가 전달됐지만 지원되지 않으면, 프롬프트의 일부로 전달해요.
litellm --add_function_to_prompt
데이터베이스 구성 (Database Configuration)
--iam_token_db_auth
- 기본값: False
- 타입: bool (Flag)
- Amazon RDS 또는 Amazon Aurora의 PostgreSQL에 저장된 비밀번호 대신 수명이 짧은 IAM 토큰으로 인증해요.
- LiteLLM은 boto3로 토큰을 생성하고 만료 전에 갱신해요.
- 이 옵션은 AWS만 지원해요. Azure Database for PostgreSQL은
--azure_postgresql_auth를 사용하세요. Google Cloud SQL은--auto-iam-authn으로 Cloud SQL Auth Proxy를 실행한 후DATABASE_URL을 로컬 프록시 연결로 구성하세요. Cloud SQL에서는 이 플래그를 활성화하지 마세요. - 필수 환경 변수:
DATABASE_HOST- RDS 데이터베이스 호스트DATABASE_PORT- 데이터베이스 포트DATABASE_USER- 데이터베이스 사용자DATABASE_NAME- 데이터베이스 이름DATABASE_SCHEMA(선택) - 데이터베이스 스키마
litellm --iam_token_db_auth
환경 변수로 설정하기: IAM_TOKEN_DB_AUTH
export IAM_TOKEN_DB_AUTH=True
export DATABASE_HOST=mydb.us-east-1.rds.amazonaws.com
export DATABASE_PORT=5432
export DATABASE_USER=mydbuser
export DATABASE_NAME=mydb
litellm
Amazon ECS 설정
Amazon ECS에서 LiteLLM을 실행하는 경우:
- Amazon RDS 또는 Aurora PostgreSQL 인스턴스에서 IAM 데이터베이스 인증을 활성화하세요.
- IAM 인증용 PostgreSQL 사용자를 구성하세요.
- ECS 태스크 역할에 그 사용자로 데이터베이스에 연결할 권한을 부여하세요.
- ECS 태스크 정의에
IAM_TOKEN_DB_AUTH=True와 필수DATABASE_*변수를 설정하세요. - LiteLLM은 태스크 역할의 AWS 자격 증명을 사용해 데이터베이스 토큰을 생성·갱신해요. 정적 데이터베이스 비밀번호는 필요 없어요.
- 이 설정들은 LiteLLM이 시작할 때 태스크 환경에서 읽혀요. 플래그나 연결 파라미터를 바꾸려면 새 태스크 정의를 배포하거나 프록시 태스크를 재시작하세요. 토큰 갱신은 재시작이 필요 없어요.
--azure_postgresql_auth
- 기본값: False
- 타입: bool (Flag)
- Azure Database for PostgreSQL Flexible Server에 저장된 비밀번호 대신 수명이 짧은 Microsoft Entra ID 액세스 토큰으로 인증해요.
- LiteLLM은 Azure Identity 라이브러리를 통해
https://ossrdbms-aad.database.windows.net/.default스코프의 토큰을 요청하고 만료 전에 갱신해요. - 이 옵션은 Azure만 지원하며
--iam_token_db_auth와 결합할 수 없어요. 둘 다 활성화되면 시작 시 프록시가 종료돼요. - 필수 환경 변수:
DATABASE_HOST- 서버 호스트 (예:myserver.postgres.database.azure.com)DATABASE_USER- PostgreSQL 역할로 존재하는 Microsoft Entra 주체 (예: 관리 ID 이름이나 사용자 주체 이름)DATABASE_NAME- 데이터베이스 이름DATABASE_PORT(선택) - 데이터베이스 포트, 기본 5432DATABASE_SCHEMA(선택) - 데이터베이스 스키마
litellm --azure_postgresql_auth
환경 변수로 설정하기: AZURE_POSTGRESQL_AUTH
export AZURE_POSTGRESQL_AUTH=True
export DATABASE_HOST=myserver.postgres.database.azure.com
export DATABASE_USER=litellm-proxy
export DATABASE_NAME=litellm
litellm
Azure ID 선택 (Choosing the Azure identity)
LiteLLM은 자격 증명을 환경에서 읽으므로, 하나의 플래그가 모든 호스팅 모델을 다뤄요.
| ID | 선택 방법 |
|---|---|
| 사용자 할당 관리 ID (User-assigned managed identity) | ID의 client ID로 AZURE_CLIENT_ID 설정 |
| 시스템 할당 관리 ID (System-assigned managed identity) | 호스트에 연결된 경우 추가 설정 없음 |
| AKS의 워크로드 ID (Workload identity on AKS) | 워크로드 ID 웹훅이 pod에 AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_AUTHORITY_HOST, AZURE_FEDERATED_TOKEN_FILE 주입 |
| 서비스 주체 (Service principal) | AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET 설정 |
| 로컬 개발 (Local development) | az login 실행, LiteLLM이 그 세션 사용 |
DATABASE_USER 설정
주체를 PostgreSQL이 아는 그대로 DATABASE_USER에 넣으세요. @ 포함. [email protected] 같은 사용자 주체 이름은 그대로 들어가고, LiteLLM은 연결 URL을 조립하며 이를 퍼센트 인코딩해요. litellm%40contoso.onmicrosoft.com처럼 이미 퍼센트 인코딩된 값은 그대로 통과되므로, RDS IAM 인증에서 이어받은 배포도 계속 동작해요.
Azure Kubernetes Service 설정
AKS에서 워크로드 ID로 LiteLLM을 실행하는 경우:
- Azure Database for PostgreSQL Flexible Server에서 Microsoft Entra 인증을 활성화하세요.
- 워크로드 ID용 PostgreSQL 역할을 생성하세요. Microsoft Entra 관리자로 추가하거나, 기존 관리자가
pgaadauth_create_principal을 실행해 만들 수 있어요. - 그 역할에 LiteLLM이 데이터베이스에서 필요로 하는 권한을 부여하세요.
- LiteLLM 서비스 계정에 ID의 client ID를 어노테이션하고 pod를 워크로드 ID용으로 라벨링하세요.
- 배포에
AZURE_POSTGRESQL_AUTH=True와 필수DATABASE_*변수를 설정하세요. - LiteLLM은 pod의 페더레이션 토큰을 사용해 데이터베이스 토큰을 요청·갱신해요. 정적 데이터베이스 비밀번호가 필요 없으므로 서버는 비밀번호 인증을 비활성화한 채 유지할 수 있어요.
- 이 설정들은 LiteLLM이 시작할 때 환경에서 읽혀요. 플래그나 연결 파라미터를 바꾸려면 프록시를 재시작하세요. 토큰 갱신은 재시작이 필요 없어요.
Helm 차트로 배포하기 (Deploying with the Helm chart)
차트는 데이터베이스 엔드포인트별로 플래그를 켜요. database.writer.useAzureEntraAuth를 설정하면 AZURE_POSTGRESQL_AUTH=true를 내보내고 DATABASE_PASSWORD를 생략하므로, writer는 Secret에 비밀번호가 필요 없어요. 사용자 이름은 여전히 passwordSecret.usernameKey에서 와요.
database:
writer:
host: myserver.postgres.database.azure.com
dbname: litellm
useAzureEntraAuth: true
passwordSecret:
name: litellm-writer-secret
usernameKey: username
읽기 복제본은 database.reader 아래 같은 키를 받으며, 프록시가 하나의 전역 토글을 읽으므로 writer가 Entra 인증을 사용해야 해요. 같은 엔드포인트에 useIAMAuth와 useAzureEntraAuth를 설정하면 둘을 명명하는 메시지와 함께 렌더가 실패해요.
--use_prisma_db_push
- 기본값: False
- 타입: bool (Flag)
- 데이터베이스 스키마 업데이트에 prisma migrate 대신 prisma db push를 사용해요. 마이그레이션 파일을 만들지 않고 스키마를 빠르게 동기화하고 싶을 때 유용해요.
litellm --use_prisma_db_push
디버깅 (Debugging)
--debug
- 기본값: False
- 타입: bool (Flag)
- 입력에 대한 디버깅 모드 활성화.
litellm --debug
환경 변수로 설정하기: DEBUG
export DEBUG=True
litellm
--detailed_debug
- 기본값: False
- 타입: bool (Flag)
- 상세 디버그 로그를 보기 위한 상세 디버깅 모드 활성화.
litellm --detailed_debug
환경 변수로 설정하기: DETAILED_DEBUG
export DETAILED_DEBUG=True
litellm
--local
- 기본값: False
- 타입: bool (Flag)
- 로컬 디버깅용.
litellm --local
테스트 및 헬스 체크 (Testing & Health Checks)
--test
- 타입: bool (Flag)
- 프록시 chat completions URL에 테스트 요청을 보내요.
litellm --test
--test_async
- 기본값: False
- 타입: bool (Flag)
/queue/requests와/queue/response비동기 엔드포인트 호출.
litellm --test_async
--num_requests
- 기본값: 10
- 타입: int
- 비동기 엔드포인트에 보낼 요청 수 (
--test_async와 함께 사용).
litellm --test_async --num_requests 100
--health
- 타입: bool (Flag)
- config.yaml의 모든 모델에 대해 헬스 체크를 실행해요.
litellm --health
기타 옵션 (Other Options)
--version
- 짧은 형식:
-v - 타입: bool (Flag)
- LiteLLM 버전을 출력하고 종료.
litellm --version
--use_queue
- 기본값: False
- 타입: bool (Flag)
- 비동기 엔드포인트용 celery 워커를 사용하려면.
litellm --use_queue