Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
_usage.py37 linesDownload Raw Back to google_adk
1"""Token usage extraction for Google ADK."""2 3from __future__ import annotations4 5from typing import Any, Optional6 7 8def extract_usage_from_response(llm_response: Any) -> dict[str, Any]:9    """Extract token usage from LlmResponse."""10    usage: dict[str, Any] = {}11    usage_metadata = getattr(llm_response, "usage_metadata", None)12    if not usage_metadata:13        return usage14 15    if (v := getattr(usage_metadata, "prompt_token_count", None)) is not None:16        usage["input_tokens"] = int(v)17    if (v := getattr(usage_metadata, "candidates_token_count", None)) is not None:18        usage["output_tokens"] = int(v)19    if (v := getattr(usage_metadata, "total_token_count", None)) is not None:20        usage["total_tokens"] = int(v)21    if (v := getattr(usage_metadata, "cached_content_token_count", None)) is not None:22        usage.setdefault("input_token_details", {})["cache_read"] = int(v)23    if (v := getattr(usage_metadata, "thoughts_token_count", None)) is not None:24        usage.setdefault("output_token_details", {})["reasoning"] = int(v)25 26    return usage27 28 29def extract_model_name(llm_request: Any) -> Optional[str]:30    """Extract the model name from an LlmRequest."""31    if config := getattr(llm_request, "config", None):32        if model := getattr(config, "model", None):33            return str(model)34    if model := getattr(llm_request, "model", None):35        return str(model)36    return None37 
codekingpro/portable-devtools · Team Ai