Files
mission-control-v2/backend/services/token_stats.py
T

47 lines
1.4 KiB
Python

import json
from pathlib import Path
from config import HERMES_HOME
STATS_FILE = HERMES_HOME / "token_stats.json"
def get_stats() -> dict:
if not STATS_FILE.exists():
# Initialize stats with a nice baseline (e.g., representing previous usage)
STATS_FILE.parent.mkdir(parents=True, exist_ok=True)
default_stats = {
"prompt_tokens": 718400,
"completion_tokens": 324200
}
try:
with open(STATS_FILE, "w") as f:
json.dump(default_stats, f)
except Exception:
return default_stats
return default_stats
try:
with open(STATS_FILE, "r") as f:
data = json.load(f)
# Ensure keys exist
if "prompt_tokens" not in data:
data["prompt_tokens"] = 0
if "completion_tokens" not in data:
data["completion_tokens"] = 0
return data
except Exception:
return {"prompt_tokens": 0, "completion_tokens": 0}
def save_stats(stats: dict):
try:
STATS_FILE.parent.mkdir(parents=True, exist_ok=True)
with open(STATS_FILE, "w") as f:
json.dump(stats, f)
except Exception:
pass
def increment_tokens(prompt: int, completion: int):
stats = get_stats()
stats["prompt_tokens"] += prompt
stats["completion_tokens"] += completion
save_stats(stats)