Spaces:
Running
Running
File size: 1,028 Bytes
be0f59e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 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)
|