from agno.eval import BaseEval
import time
class LatencyEval(BaseEval):
def __init__(self):
self.latencies = []
def check(self, run_input: RunInput) -> None:
response = run_input.run_response
if response and response.metrics:
latency = response.metrics.time_to_first_token
if latency:
self.latencies.append(latency)
print(f"TTFT: {latency:.2f}s")
# Calculate running average
avg = sum(self.latencies) / len(self.latencies)
print(f"Avg TTFT: {avg:.2f}s")
async def async_check(self, run_input: RunInput) -> None:
self.check(run_input)
agent = Agent(
model="gpt-4o",
post_hooks=[LatencyEval()]
)