Spaces:
Running
Running
| """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), | |
| } | |