MCPcopy Create free account
hub / github.com/AQ-MedAI/MedMemoryBench / LLMUsageTracker

Class LLMUsageTracker

utils/llm_client.py:46–84  ·  view source on GitHub ↗

Global LLM usage tracker (singleton).

Source from the content-addressed store, hash-verified

44
45
46class LLMUsageTracker:
47 """Global LLM usage tracker (singleton)."""
48
49 _instance = None
50
51 def __new__(cls):
52 if cls._instance is None:
53 cls._instance = super().__new__(cls)
54 cls._instance._init()
55 return cls._instance
56
57 def _init(self):
58 self._memorize_usage = TokenUsage()
59 self._query_usage = TokenUsage()
60 self._current_phase = "unknown"
61
62 def set_phase(self, phase: str) -> None:
63 self._current_phase = phase
64
65 def record(self, response: "LLMResponse") -> None:
66 if self._current_phase == "memorize":
67 self._memorize_usage.add(response.input_tokens, response.output_tokens, response.latency)
68 else:
69 self._query_usage.add(response.input_tokens, response.output_tokens, response.latency)
70
71 def reset(self) -> None:
72 self._memorize_usage = TokenUsage()
73 self._query_usage = TokenUsage()
74 self._current_phase = "unknown"
75
76 def get_stats(self) -> Dict[str, Any]:
77 total = TokenUsage()
78 total.merge(self._memorize_usage)
79 total.merge(self._query_usage)
80 return {
81 "memorize_phase": self._memorize_usage.to_dict(),
82 "query_phase": self._query_usage.to_dict(),
83 "total": total.to_dict(),
84 }
85
86
87_usage_tracker: Optional[LLMUsageTracker] = None

Callers 1

get_usage_trackerFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected