hcmue-handbook-rag-api / src /api /usage_tracker.py
HCMUE RAG Deploy
Deploy FastAPI RAG backend
75dea23
Raw
History Blame Contribute Delete
1.03 kB
from typing import Any
class UsageTracker:
"""
Sổ cái ghi nhận cấu trúc Pipeline RAG.
Được sử dụng để chuyển số liệu token usage và độ trễ của từng model lên Langfuse.
"""
def __init__(self):
self._steps: list[dict[str, Any]] = []
def record(self, step_name: str, model: str, input_tokens: int, output_tokens: int,
total_tokens: int, start_time: str, end_time: str, metadata: dict | None = None):
self._steps.append({
"step_name": step_name,
"model": model,
"input_tokens": input_tokens,
"output_tokens": output_tokens,
"total_tokens": total_tokens,
"start_time": start_time,
"end_time": end_time,
"metadata": metadata or {}
})
def get_steps(self) -> list[dict[str, Any]]:
return self._steps
def total_tokens(self) -> int:
return sum(step["total_tokens"] for step in self._steps)