응답 헤더
응답 헤더 (Response Headers)
프록시에 요청을 보내면, 프록시는 다음과 같은 헤더를 반환해요.
레이트 리밋 헤더
| 헤더 | 타입 | 설명 |
|---|---|---|
x-ratelimit-remaining-requests |
Optional[int] | 레이트 리밋이 소진되기 전에 허용된 남은 요청 수 |
x-ratelimit-remaining-tokens |
Optional[int] | 레이트 리밋이 소진되기 전에 허용된 남은 토큰 수 |
x-ratelimit-limit-requests |
Optional[int] | 레이트 리밋이 소진되기 전에 허용된 최대 요청 수 |
x-ratelimit-limit-tokens |
Optional[int] | 레이트 리밋이 소진되기 전에 허용된 최대 토큰 수 |
x-ratelimit-reset-requests |
Optional[int] | 레이트 리밋이 리셋되는 시점 |
x-ratelimit-reset-tokens |
Optional[int] | 레이트 리밋이 리셋되는 시점 |
레이트 리밋 헤더 동작 방식
키에 레이트 리밋이 설정된 경우
프록시는 그 키의 남은 레이트 리밋을 반환해요.
키에 레이트 리밋이 설정되지 않은 경우
프록시는 백엔드 제공자가 반환하는 남은 요청/토큰을 반환해요. (LiteLLM은 백엔드 제공자의 응답 헤더를 OpenAI 형식에 맞게 표준화해요.)
백엔드 제공자가 이 헤더들을 반환하지 않으면 값은 None이 돼요.
이 헤더들은 클라이언트가 현재 레이트 리밋 상태를 이해하고 요청 속도를 그에 맞게 조절하는 데 유용해요.
레이턴시 헤더
| 헤더 | 타입 | 설명 |
|---|---|---|
x-litellm-response-duration-ms |
float | 요청이 LiteLLM Proxy에 도달한 순간부터 클라이언트에 반환되는 순간까지의 총 시간 |
x-litellm-overhead-duration-ms |
float | LiteLLM 처리 오버헤드(밀리초) |
재시도, 폴백 헤더
| 헤더 | 타입 | 설명 |
|---|---|---|
x-litellm-attempted-retries |
int | 시도된 재시도 횟수 |
x-litellm-attempted-fallbacks |
int | 시도된 폴백 횟수 |
x-litellm-max-fallbacks |
int | 허용된 최대 폴백 횟수 |
비용 추적 헤더
| 헤더 | 타입 | 설명 | Pass-Through 엔드포인트에서 사용 가능 |
|---|---|---|---|
x-litellm-response-cost |
float | API 호출 비용 | |
x-litellm-response-cost-input |
float | 캐시되지 않은 입력 비용 구성 요소 | |
x-litellm-response-cost-output |
float | 출력 비용 구성 요소(추론 포함) | |
x-litellm-response-cost-cache-read |
float | 프롬프트 캐시 읽기 비용 구성 요소 | |
x-litellm-response-cost-cache-creation |
float | 프롬프트 캐시 쓰기 비용 구성 요소 | |
x-litellm-response-cost-reasoning |
float | 추론 비용, 출력 구성 요소의 일부 | |
x-litellm-response-cost-tool-usage |
float | 내장 도구 비용 구성 요소 | |
x-litellm-key-spend |
float | API 키의 총 지출 | ✅ |
구성 요소 헤더들의 합은 총액과 같아요: input + cache read + cache creation + output + tool usage = x-litellm-response-cost. 추론(reasoning)은 이미 출력 안에 있으므로 합계에서 제외해요. 캐시와 추론 헤더는 해당 비용이 0이 아닐 때만 나타나고, 구성 요소 헤더는 비스트리밍 응답에서만 나타나요.
LiteLLM 전용 헤더
| 헤더 | 타입 | 설명 | Pass-Through 엔드포인트에서 사용 가능 |
|---|---|---|---|
x-litellm-call-id |
string | 이 요청의 Id. general_settings.include_call_id_in_error_body: true면 JSON 오류 본문 안에도 litellm_call_id로 포함됨 (세부 사항) |
✅ |
x-litellm-model-id |
string | 배포 id (model_info.id) |
|
x-litellm-model-api-base |
string | API base URL | ✅ |
x-litellm-version |
string | LiteLLM 버전 | |
x-litellm-model-group |
string | 라우팅된 model_list[].model_name (클라이언트 model) |
예시
model_list:
- model_name: my-chat-model # clients call this
litellm_params:
model: gpt-5.6-luna # LiteLLM calls this upstream
model_info:
id: "7c9f2a1b3d8e4f0a2c6b5d9e1f3a7b8c" # optional; auto-generated if omitted
| 헤더 | 예시 | 참고 |
|---|---|---|
x-litellm-model-group |
my-chat-model |
model_name / 요청 model; litellm_params.model가 아님 |
x-litellm-model-id |
7c9f2a1b3d8e4f0a2c6b5d9e1f3a7b8c |
어느 배포 행인지; /v1/model/info?litellm_model_id=...와 함께 사용 |
응답 본문 model |
종종 my-chat-model |
클라이언트에 맞게 자주 다시 찍힘; 업스트림 id는 config에 남음 |
자동 라우팅 요청
자동 라우터에 대한 요청에서는 본문 model이 클라이언트가 호출한 라우터 별칭이고, 위 헤더들은 여전히 응답한 배포를 가리켜요. 스트리밍 소비자를 포함해 응답 헤더를 읽지 못하는 클라이언트는 라우터에 return_raw_model_name을 설정해서 본문 model 필드에서 선택된 티어를 대신 받을 수 있어요. 응답에서 선택된 모델 읽기를 참고하세요.
컴플렉시티 자동 라우터도 기록된 라우팅 결정을 응답 헤더로 반환해요:
| 헤더 | 타입 | 설명 |
|---|---|---|
x-litellm-complexity-router-tier |
string | 선택된 컴플렉시티 티어 |
x-litellm-complexity-router-cause |
string | 티어를 선택한 라우팅 메커니즘(예: heuristic_scorer, heuristic_v2, llm_classifier, 또는 키워드 규칙) |
x-litellm-complexity-router-score |
float | 기록된 휴리스틱 점수 |
x-litellm-complexity-router-reasoning-effort |
string | 선택된 티어에 구성된 reasoning_effort |
각 헤더는 성공한 시도의 기록된 라우팅 결정에 해당 값이 있을 때만 나타나요. 키워드 및 LLM-분류기 결정을 포함해 점수를 기록하지 않는 경로에서는 점수가 없어요. reasoning-effort 헤더는 선택된 티어의 구성된 오버라이드를 보고해요. 모델의 기본 effort나 분류기 모델의 reasoning effort를 보고하지는 않아요. 유효하지 않거나 비-ASCII 텍스트 값은 생략돼요. 원시 휴리스틱 신호, 매칭된 키워드, 전체 티어 파라미터 맵은 노출되지 않아요.
이 헤더들은 /v1/chat/completions, /v1/responses, /v1/messages에 대한 스트리밍·비스트리밍 요청에서 사용 가능해요. 일반 모델 그룹으로 폴백된 후에는 없어져요. 스트림이 커밋된 후에는 HTTP 헤더를 바꿀 수 없어요.
추가 예시 (예시용)
| 헤더 | 예시 | 의미 |
|---|---|---|
x-litellm-response-cost |
0.000214 |
이 호출 (USD) |
x-litellm-key-spend |
12.847 |
이 호출 후 키 총액 |
x-litellm-response-duration-ms |
842.3 |
프록시 종단 간 (ms) |
x-litellm-overhead-duration-ms |
15.1 |
LiteLLM 오버헤드 (ms) |
x-litellm-attempted-retries |
0 |
재시도 |
x-litellm-attempted-fallbacks |
1 |
다른 배포로의 폴백 |
x-litellm-call-id |
019b2c4d-e5f6-7890-abcd-ef1234567890 |
로그 / 추적 |
x-litellm-version |
1.55.3 |
버전 |
x-litellm-model-api-base |
https://api.openai.com/v1 |
제공자 base (쿼리 문자열 없음) |
LLM 제공자의 응답 헤더
LiteLLM은 또한 LLM 제공자의 원래 응답 헤더를 반환해요. 이 헤더들은 LiteLLM의 헤더와 구분되도록 llm_provider- 접두사가 붙어요.
응답 헤더 예시:
llm_provider-openai-processing-ms: 256
llm_provider-openai-version: 2020-10-01
llm_provider-x-ratelimit-limit-requests: 30000
llm_provider-x-ratelimit-limit-tokens: 150000000
출처: 문서
더 알아보기 (Learn more)
- 레이트 리밋 헤더 동작과 병렬 요청 리미터 원리 이해하기
- 자동 라우터에서 선택된 모델을 응답으로 읽는 방법 확인하기