{% extends "base.html" %} {% block title %}Traces — {{ project.name }} — evalkit{% endblock %} {% block content %}

Projects / {{ project.name }}

{{ project.name }}

{% if project.description %}

{{ project.description }}

{% endif %}
Evaluations Traces
{% if metric_names %} {% endif %}
{{ total }}
Traces
{% if chart_scores %} {% set avg_val = (chart_scores | sum / chart_scores | length * 100) | round(1) %}
{{ avg_val }}%
{% else %}
{% endif %}
Avg Score
{% if chart_counts %}
{{ (chart_counts | sum / chart_counts | length) | round(1) }}
{% else %}
{% endif %}
Avg / Interval
{{ anomaly_count }}
Anomalies
{% if chart_labels | length >= 1 %}

Score ({{ agg }})

Request Volume

{% endif %} {% if traces %}
{% for t in traces %} {% set scores_list = t.scores %} {% set avg = None %} {% if scores_list | length > 0 %} {% set avg = (scores_list | map(attribute='score') | sum / scores_list | length * 100) | round(0) | int %} {% endif %} {% set tc = t.get_test_case() %} {% endfor %}
Timestamp Question Answer Score Metadata
{{ t.timestamp.strftime('%Y-%m-%d %H:%M') }} {{ tc.get('question', '') }} {{ tc.get('answer', '') }} {% if avg is not none %} {{ avg }}% {% if t.id in trace_anomaly_ids %} anomaly {% endif %} {% else %}—{% endif %} {% for k, v in t.get_metadata().items() %} {{ k }}={{ v }} {% endfor %} View
{% macro qs(p=page) %}range={{ time_range }}&interval={{ interval }}&agg={{ agg }}&per_page={{ per_page }}{% if metric %}&metric={{ metric }}{% endif %}&page={{ p }}{% endmacro %}
{{ total }} trace{{ 's' if total != 1 }} — page {{ page }} of {{ total_pages }}
{% if metric %}{% endif %}
{% if total_pages > 1 %}
{% if page > 1 %} Prev {% endif %} {% for p in range(1, total_pages + 1) %} {% if p == page %} {{ p }} {% elif p == 1 or p == total_pages or (p >= page - 1 and p <= page + 1) %} {{ p }} {% elif p == 2 or p == total_pages - 1 %} {% endif %} {% endfor %} {% if page < total_pages %} Next {% endif %}
{% endif %}
{% else %}

📈

No traces yet

Push traces from your application using the SDK.

from evalkit import EvalKitClient, Suite, TestCase

client = EvalKitClient()
client.log_trace(
    project_id={{ project.id }},
    test_case=TestCase(question="...", answer="...", context=["..."]),
    suite=Suite.RAG_QA,
    metadata={"model": "gpt-4o"},
)
{% endif %} {% endblock %}