Spaces:
Running
Running
| 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) | |