Spaces:
Running
Running
File size: 931 Bytes
bad8b6c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | """Token usage extraction helpers for litellm responses."""
def _extract_usage(response) -> dict:
"""Extract token usage from a litellm response object."""
if hasattr(response, "usage") and response.usage:
return {
"prompt_tokens": response.usage.prompt_tokens or 0,
"completion_tokens": response.usage.completion_tokens or 0,
"total_tokens": response.usage.total_tokens or 0,
}
return _empty_usage()
def _empty_usage() -> dict:
"""Return a zeroed usage dict."""
return {"prompt_tokens": 0, "completion_tokens": 0, "total_tokens": 0}
def _sum_usage(*usages: dict) -> dict:
"""Sum multiple usage dicts."""
return {
"prompt_tokens": sum(u.get("prompt_tokens", 0) for u in usages),
"completion_tokens": sum(u.get("completion_tokens", 0) for u in usages),
"total_tokens": sum(u.get("total_tokens", 0) for u in usages),
}
|