컴플리션 토큰 사용량 및 비용
컴플리션 토큰 사용량 및 비용 (Completion Token Usage & Cost)
기본적으로 LiteLLM은 모든 컴플리션 요청에서 토큰 사용량을 반환합니다 (여기 참고).
LiteLLM은 모든 호출에서 response_cost 를 반환합니다.
from litellm import completion
response = litellm.completion(
model="gpt-5.6-luna",
messages=[{"role": "user", "content": "Hey, how's it going?"}],
mock_response="Hello world",
)
print(response._hidden_params["response_cost"])
LiteLLM은 또한 몇 가지 헬퍼 함수를 노출합니다:
encode: 전달된 텍스트를 모델별 토크나이저로 인코딩합니다. 코드 보기decode: 전달된 토큰을 모델별 토크나이저로 디코딩합니다. 코드 보기token_counter: 주어진 입력의 토큰 수를 반환합니다. 모델 기반 토크나이저를 사용하며, 모델별 토크나이저가 없으면 tiktoken을 기본으로 합니다. 코드 보기create_pretrained_tokenizer및create_tokenizer: LiteLLM은 OpenAI, Cohere, Anthropic, Llama2, Llama3 모델에 기본 토크나이저를 제공합니다. 다른 모델을 사용한다면 커스텀 토크나이저를 만들어encode,decode,token_counter메서드에custom_tokenizer로 전달할 수 있어요. 코드 보기cost_per_token: prompt(입력)와 completion(출력) 토큰의 비용(USD)을 반환합니다.api.litellm.ai의 라이브 목록을 사용해요. 코드 보기completion_cost: 주어진 LLM API 호출의 전체 비용(USD)을 반환합니다.token_counter와cost_per_token을 결합해 그 쿼리의 비용(입력+출력 비용 모두 계산)을 반환합니다. 코드 보기get_max_tokens: 주어진 모델에 허용된 최대 토큰 수를 반환합니다. 코드 보기model_cost: 모든 모델에 대해max_tokens,input_cost_per_token,output_cost_per_token을 포함하는 사전을 반환합니다. 아래 표시된api.litellm.ai호출을 사용해요. 코드 보기register_model: 모델 비용 사전에 새 모델을 등록/기존 모델을 오버라이드합니다(가격 상세 포함). 코드 보기api.litellm.ai: 모든 지원 모델의 라이브 토큰 + 가격 수. 코드 보기
📣 이것은 커뮤니티 관리 목록입니다. 기여를 환영합니다! ❤️
출처: 문서
본문
예시 사용법
1. encode
인코딩은 anthropic, cohere, llama2, openai에 대한 모델별 토크나이저를 가집니다. 지원되지 않는 모델이 전달되면 tiktoken(openai 토크나이저)을 기본으로 사용합니다.
from litellm import encode, decode
sample_text = "Hellö World, this is my input string!"
# openai encoding + decoding
openai_tokens = encode(model="gpt-5.6-luna", text=sample_text)
print(openai_tokens)
2. decode
디코딩은 anthropic, cohere, llama2, openai를 지원합니다.
from litellm import encode, decode
sample_text = "Hellö World, this is my input string!"
# openai encoding + decoding
openai_tokens = encode(model="gpt-5.6-luna", text=sample_text)
openai_text = decode(model="gpt-5.6-luna", tokens=openai_tokens)
print(openai_text)
3. token_counter
from litellm import token_counter
messages = [{"user": "role", "content": "Hey, how's it going"}]
print(token_counter(model="gpt-5.6-luna", messages=messages))
4. create_pretrained_tokenizer and create_tokenizer
from litellm import create_pretrained_tokenizer, create_tokenizer
# get tokenizer from huggingface repo
custom_tokenizer_1 = create_pretrained_tokenizer("Xenova/llama-3-tokenizer")
# use tokenizer from json file
with open("tokenizer.json") as f:
json_data = json.load(f)
json_str = json.dumps(json_data)
custom_tokenizer_2 = create_tokenizer(json_str)
5. cost_per_token
from litellm import cost_per_token
prompt_tokens = 5
completion_tokens = 10
prompt_tokens_cost_usd_dollar, completion_tokens_cost_usd_dollar = cost_per_token(model="gpt-5.6-luna", prompt_tokens=prompt_tokens, completion_tokens=completion_tokens)
print(prompt_tokens_cost_usd_dollar, completion_tokens_cost_usd_dollar)
6. completion_cost
- 입력:
litellm.completion()응답 또는 prompt + completion 문자열을 받습니다 - 출력: 컴플리션 호출의 비용 float을 반환합니다
litellm.completion() 응답:
from litellm import completion, completion_cost
response = completion(
model="bedrock/us.anthropic.claude-sonnet-5",
messages=messages,
request_timeout=200,
)
# pass your response from completion to completion_cost
cost = completion_cost(completion_response=response)
formatted_string = f"${float(cost):.10f}"
print(formatted_string)
prompt + completion 문자열:
from litellm import completion_cost
cost = completion_cost(model="bedrock/us.anthropic.claude-sonnet-5", prompt="Hey!", completion="How's it going?")
formatted_string = f"${float(cost):.10f}"
print(formatted_string)
7. get_max_tokens
- 입력: 모델 이름을 받습니다 — 예:
gpt-5.6-luna(전체 목록은litellm.model_list호출) - 출력: 주어진 모델에 허용된 최대 토큰 수 반환
from litellm import get_max_tokens
model = "gpt-5.6-luna"
print(get_max_tokens(model)) # Output: 128000
8. model_cost
- 출력: 커뮤니티 관리 목록의 모든 모델에 대한
max_tokens,input_cost_per_token,output_cost_per_token을 포함하는 dict 객체 반환
from litellm import model_cost
print(model_cost) # {'gpt-5.6-luna': {'max_tokens': 128000, 'input_cost_per_token': 2e-07, 'output_cost_per_token': 1.2e-06}, ...}
9. register_model
- 입력: 모델 비용 사전 또는 호스티드 json blob URL 중 하나를 제공
- 출력: 업데이트된
model_cost사전 반환 + 모델 상세로litellm.model_cost업데이트
사전:
import litellm
litellm.register_model({
"gpt-5.6-terra": {
"max_tokens": 128000,
"input_cost_per_token": 0.000002,
"output_cost_per_token": 0.000012,
"litellm_provider": "openai",
"mode": "chat"
},
})
json blob URL:
import litellm
litellm.register_model(model_cost=
"https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json")
호스티드 model_cost_map을 가져오지 않기: 방화벽이 있고 로컬 사본의 모델 비용 맵만 사용하려면 이렇게 할 수 있어요:
export LITELLM_LOCAL_MODEL_COST_MAP="True"
참고: 이것은 업데이트된 가격과 새 모델을 얻으려면 업그레이드가 필요하다는 뜻입니다.