Measurements for one response, including its hidden generation passes.
Source code in src/diapason/telemetry/chat_latency.py
| def __init__(self, clock: Callable[[], float] = time.perf_counter):
self.clock = clock
self.started = clock()
self.request_id = uuid.uuid4().hex
self.phases: dict[str, float] = {}
self.first_model_text_ms: float | None = None
self.first_text_ms: float | None = None
self.inferences: list[dict[str, Any]] = []
# Rempli quand un tour léger a été rerouté : le journal doit dire
# quel modèle a vraiment répondu, pas celui du sélecteur.
self.routage: dict[str, Any] | None = None
|